ES2927601T3 - Recálculo de resultados de consultas calculados previamente - Google Patents

Recálculo de resultados de consultas calculados previamente Download PDF

Info

Publication number
ES2927601T3
ES2927601T3 ES19702063T ES19702063T ES2927601T3 ES 2927601 T3 ES2927601 T3 ES 2927601T3 ES 19702063 T ES19702063 T ES 19702063T ES 19702063 T ES19702063 T ES 19702063T ES 2927601 T3 ES2927601 T3 ES 2927601T3
Authority
ES
Spain
Prior art keywords
query results
recalculation
precomputed
share
recalculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19702063T
Other languages
English (en)
Inventor
Jean-Philippe Aubry
Grand Guillaume Le
Johann Marchi
Nicolas Legrand
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/879,654 external-priority patent/US11593381B2/en
Priority claimed from FR1850581A external-priority patent/FR3077146B1/fr
Application filed by Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2927601T3 publication Critical patent/ES2927601T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Los resultados de la consulta calculados previamente almacenados en un servidor de base de datos se vuelven a calcular mediante una máquina de cálculo. Los resultados de la consulta calculados previamente se componen de una pluralidad de acciones. Cada recurso compartido incluye un cierto número de resultados de consulta calculados previamente. Los recursos de cálculo de la máquina de cálculo necesarios para volver a calcular un resultado de consulta calculado previamente de un primer recurso compartido dependen de si otros resultados de consulta calculados previamente del primer recurso compartido se vuelven a calcular o no durante un intervalo de tiempo dado que forma un recurso actual. -ciclo de cómputo. La máquina de cálculo recibe una solicitud para volver a calcular los resultados de consulta precalculados de al menos un primer recurso compartido, determina una cantidad de resultados de consulta precalculados en el primer recurso compartido que se volverán a calcular en el ciclo de recálculo actual en función de un algoritmo de aprendizaje por refuerzo y vuelve a calcular el número determinado de resultados de consulta calculados previamente en el primer recurso compartido. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Recálculo de resultados de consultas calculados previamente
Campo de la invención
La presente invención se refiere en general a la tecnología de bases de datos. Más específicamente, está dirigida a recalcular resultados de búsqueda previamente calculados almacenados como registros de bases de datos.
Antecedentes
Un problema común en la tecnología de bases de datos es garantizar tiempos de respuesta cortos a consultas o solicitudes de bases de datos que requieren un procesamiento complejo, largo y que requiere muchos recursos, por ejemplo, debido a grandes volúmenes de datos. Por ejemplo, dicho procesamiento que consume potencia informática debe realizarse en respuesta a las llamadas "consultas abiertas" que contienen solo poca información de entrada (por ejemplo, solo se especifican uno o dos parámetros de una docena de parámetros posibles y/o los intervalos de valores especificados de los parámetros son amplios) y, en consecuencia, conducen a un gran número de resultados en general. Las posibilidades de acelerar el procesamiento de datos aumentando el rendimiento del hardware son limitadas. Por lo tanto, se llama la atención sobre la mejora de los mecanismos subyacentes al procesamiento complejo, largo y que requiere muchos recursos para responder a tales consultas.
Un enfoque general para acortar los tiempos de respuesta es preparar los resultados para que se devuelvan en respuesta a consultas esperadas (por ejemplo, mediante el cálculo previo o la recopilación previa de dichos resultados) y mantener los resultados de consultas correspondientes en un conjunto de resultados de consultas calculados previamente. Entonces, las solicitudes no se procesan realmente y las respuestas no se basan en la gran base de datos original, sino que se dirigen al grupo de resultados de consultas calculadas previamente.
Recalcular una gran cantidad de resultados de consultas calculadas previamente es una tarea que consume una cantidad sustancial de recursos de cálculo. Por lo tanto, se buscan mecanismos de recálculo para realizar eficientemente el recálculo de los resultados de consultas calculados previamente.
El documento EP 2913764 se refiere a recalcular resultados de búsqueda calculados previamente donde los recursos de cálculo necesarios para recalcular un resultado de búsqueda calculado previamente i generalmente dependen de si otros resultados de búsqueda calculados previamente relacionados con el resultado de búsqueda calculado previamente i se recalculan o no durante el mismo ciclo de cálculo. Así, los recursos de cálculo para recalcular los resultados de búsqueda calculados previamente no son estáticos, sino que varían con la selección del conjunto de resultados de búsqueda calculados previamente a recalcular durante el ciclo de cálculo. El documento EP 2913764 propone un proceso de estimación iterativo según el cual un controlador de recálculo selecciona iterativamente un número de los resultados de búsqueda calculados previamente para que la plataforma de cálculo los recalcule durante un intervalo de tiempo determinado formando un ciclo de recálculo. El número de resultados de búsqueda calculados previamente está limitado por los recursos de cálculo disponibles durante el intervalo de tiempo dado. Después de inicializar los recursos de cálculo ci necesarios para recalcular cada resultado de búsqueda calculado previamente i con un valor suponiendo que el cálculo de i sea independiente del cálculo de otros resultados de búsqueda calculados previamente seleccionados para recalcularse durante el intervalo de tiempo dado, una primera porción de los resultados de búsqueda calculados previamente se seleccionan para recalcularse en una primera iteración de selección, en la que esta primera porción seleccionada solo requiere un porcentaje inferior al 100% de los recursos de cálculo totales disponibles para recalcular dentro del intervalo de tiempo dado. Los recursos de cálculo ci necesarios para recalcular cada resultado de búsqueda calculado previamente i se vuelven a evaluar teniendo en cuenta qué resultados de búsqueda calculados previamente relacionados con el resultado de búsqueda calculado previamente i se han seleccionado para recalcular. Más iteraciones de selección de porciones aún no seleccionadas de resultados de búsqueda calculados previamente y evaluados previamente de los recursos de cálculo ci necesarios para recalcular cada resultado de búsqueda calculado previamente i se realizan si se agota menos del 100% de los recursos de cálculo totales disponibles para recalcular dentro del intervalo de tiempo dado.
Sumario
De acuerdo con un primer aspecto como se establece en la reivindicación 1, se proporciona un método para recalcular resultados de consultas previamente calculados almacenados en un servidor de base de datos. Los resultados de consultas calculados previamente se componen de una pluralidad de acciones. Cada recurso compartido incluye una determinada cantidad de resultados de consultas calculados previamente. Los recursos de cálculo de una máquina de cálculo necesarios para recalcular un resultado de consulta calculado previamente de un primer recurso compartido dependen de si otros resultados de consultas calculados previamente del primer recurso compartido se recalculan o no durante un intervalo de tiempo dado. El intervalo de tiempo dado forma un ciclo de recálculo actual. El método que comprende, en una máquina de cálculo, recibir una solicitud para recalcular los resultados de consultas calculados previamente de al menos un primer recurso compartido. El método determina además una serie de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará en el ciclo de recálculo actual en función de un algoritmo de aprendizaje por refuerzo. El número determinado de resultados de búsqueda calculados previamente está limitado por los recursos de cálculo de la máquina de cálculo disponibles durante el intervalo de tiempo dado. El método recalcula además el número determinado de resultados de consultas calculados previamente en el primer recurso compartido.
De acuerdo con un segundo aspecto como se establece en la reivindicación 13, una máquina de cálculo para recalcular resultados de consultas calculados previamente almacenados en un servidor de base de datos, en el que los resultados de consultas calculados previamente se componen de una pluralidad de recursos compartidos, en el que cada recurso compartido incluye un cierto número de resultados de consultas calculados previamente, en el que los recursos de cálculo de una máquina de cálculo necesarios para recalcular un resultado de consulta calculado previamente de un primer recurso compartido dependen de si se recalculan o no otros resultados de consultas calculados previamente del primer recurso compartido durante un intervalo de tiempo dado que forma un ciclo de recálculo actual, estando dispuesta la máquina de cálculo para recibir una solicitud para recalcular los resultados de consultas calculados previamente de al menos un primer recurso compartido. La máquina de cálculo está dispuesta además para determinar una cantidad de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará en el ciclo de recálculo actual en función de un algoritmo de aprendizaje por refuerzo mediante el número determinado de resultados de consultas calculados previamente limitados por los recursos de cálculo de la máquina de cálculo disponibles durante el intervalo de tiempo dado. La máquina de cálculo está dispuesta además para recalcular el número determinado de resultados de consultas calculados previamente en el primer recurso compartido durante el ciclo de recálculo.
De acuerdo con un tercer aspecto, se proporciona un programa de ordenador almacenado en un medio de almacenamiento que, cuando es ejecutado por un ordenador, equipa al ordenador para ejecutar la metodología expuesta en el primer aspecto.
La invención se expone en las reivindicaciones independientes adjuntas.
Aspectos opcionales adicionales se exponen en las reivindicaciones dependientes.
Breve descripción de las figuras
La presente invención se describirá con referencia a las figuras adjuntas. Los números de referencia similares generalmente indican elementos idénticos o funcionalmente similares.
La FIG. 1 representa esquemáticamente un ejemplo de un sistema de base de datos distribuido que mantiene resultados de consultas calculados previamente.
La FIG. 2 visualiza un efecto de disminución de la probabilidad de validez de los resultados de consultas calculados previamente a lo largo del tiempo.
La FIG. 3 ilustra diversos recursos de cálculo que son necesarios para recalcular diferentes porcentajes de ejemplo de resultados de consultas calculados previamente.
La FIG. 4 es un sistema de recálculo esquemático más detallado como se describe en el presente documento. La FIG. 5 muestra los elementos básicos de un sistema de aprendizaje por refuerzo.
La FIG. 6 ilustra dos ejemplos del cálculo de un indicador de rendimiento clave agregado.
La FIG. 7 muestra un ejemplo de una actualización de función de valor.
La FIG. 8 es un diagrama de flujo esquemático con procesos de alto nivel ejecutados por la máquina de cálculo y sus subsistemas descritos en el presente documento.
La FIG. 9 ilustra un enfoque iterativo y basado en el aprendizaje por refuerzo para determinar un número óptimo de resultados de consultas calculados previamente que se recalcularán durante un ciclo de cálculo.
La FIG. 10 es una vista esquemática de ejemplo de la arquitectura interna de la tabla de base de datos y/o un cliente de solicitud.
Descripción detallada
Las funcionalidades descritas en el presente documento se refieren a todos los aspectos: método, máquina de cálculo, producto de programa informático y programa informático indicados en el sumario.
Para poder manejar consultas de bases de datos o solicitudes de cálculo por lotes que requieren cálculos sobre la base de grandes volúmenes de datos subyacentes, los resultados de búsqueda correspondientes a las consultas esperadas generalmente se calculan previamente y se almacenan como registros de base de datos en una base de datos. Esta base de datos es consultada por entidades solicitantes (tal como clientes, aplicaciones, navegadores instalados en terminales de usuario, etc.) en el curso de una búsqueda y los resultados de búsqueda calculados previamente que cumplen con los criterios de búsqueda indicados por la consulta se devuelven al cliente en respuesta a la consulta. Posteriormente, el término "consulta" se utiliza como un término general que incluye cualquier tipo de solicitud de recuperación de información, tal como consultas transaccionales, solicitudes de cálculos por lotes y otras formas.
La FIG. 1 ilustra un entorno de base de datos 1 de este tipo en un nivel abstracto. Los datos básicos, en lo sucesivo también denominados "datos de cálculo", se mantienen en una máquina de cálculo 3 que está conectada a un controlador de recálculo 2 y/o se accede a ellos. Este último emite órdenes de recálculo a la máquina de cálculo 3 que, a su vez, transmite los resultados correspondientes a la plataforma de búsqueda 4 y, además, al controlador de recálculo 2, que también mantiene los resultados de búsqueda calculados previamente por motivos de control de recálculo. Los usuarios finales 5, tal como aplicaciones en los terminales de usuario, acceden a los resultados de búsqueda calculados previamente desde la plataforma de búsqueda 4. Como se indica en la FIG. 1, una o varias plataformas de búsqueda 4 pueden estar presentes en el entorno 1. Si está presente una pluralidad de plataformas de búsqueda 4, los resultados de búsqueda calculados previamente pueden mantenerse de manera distribuida entre las diversas plataformas de búsqueda 4 y el controlador de recálculo 2 puede controlar el recálculo de todos los resultados de búsqueda calculados previamente distribuidos en las plataformas de búsqueda 4. La plataforma de búsqueda 4 también puede ofrecer un conjunto heterogéneo de solicitudes de búsqueda calculadas previamente, por ejemplo, algunas plataformas de búsqueda 4 mantienen solicitudes de búsqueda calculadas previamente relacionadas con viajes aéreos, otras plataformas de búsqueda 4 almacenan solicitudes de búsqueda calculadas previamente relacionadas con seguros y otras plataformas de búsqueda 4 mantienen solicitudes de búsqueda calculadas previamente (o rastreadas previamente) relacionadas con sitios web de Internet. Tal entorno heterogéneo puede ser controlado por un solo controlador de recálculo 2 o por una pluralidad de controladores de recálculo 2. Alternativamente, la pluralidad de plataformas de búsqueda 4 se puede utilizar para reflejar los mismos resultados de búsqueda calculados previamente, por ejemplo, por motivos de redundancia.
El enfoque de calcular previamente los resultados de la búsqueda y almacenarlos en la plataforma de búsqueda accesible para los clientes que consultan conduce a la situación general de que los datos de cálculo pueden cambiar con el tiempo y, por lo tanto, los resultados de la búsqueda calculados previamente quedan obsoletos o no son válidos (ambos términos son utilizados como sinónimos en el presente documento). Los resultados de búsqueda calculados previamente que todavía están actualizados, es decir, que coinciden con los equivalentes de cálculo en tiempo real correspondientes (resultados que se calcularían realmente bajo demanda sin tener resultados de búsqueda calculados previamente disponibles), se denominan resultados de búsqueda calculados previamente "precisos" en lo sucesivo. Por lo tanto, cuando la plataforma de búsqueda que mantiene los resultados de búsqueda calculados previamente representa correctamente el estado actual del dominio de datos subyacente a los resultados de consultas en caché, es decir, los datos de cálculo, los resultados de búsqueda calculados previamente almacenados en la plataforma de búsqueda son, en general, precisos.
En general, para permitir que la plataforma de búsqueda devuelva resultados correctos, se desea mantener un alto grado de correlación entre los resultados de búsqueda calculados previamente que se proporcionan a la entidad que consulta en respuesta a las consultas de la base de datos y sus equivalentes de cálculo en tiempo real. Al mismo tiempo, sin embargo, es deseable minimizar el consumo de recursos de cálculo causado por los recálculos, es decir, evitar cualquier recálculo innecesario, tal como el recálculo de resultados de consultas almacenados en memoria caché aún precisos. Los recursos de cálculo son limitados y, en general, no hay suficientes recursos de cálculo para recalcular todos los resultados de búsqueda calculados previamente en todo momento. Por lo tanto, debe encontrarse un equilibrio entre la precisión de los resultados de consultas calculados previamente y la utilización de la potencia informática disponible.
Para hacer que el recálculo sea más eficiente, se definen métricas para evaluar cuán "necesario" o "innecesario" es un recálculo. Por ejemplo, no vale la pena volver a realizar un cálculo previo masivo completo todos los días si menos de la mitad de los resultados de consultas calculados resultan estar desactualizados. Por otro lado, si se sabe que clases particulares de resultados de consultas cambian con frecuencia, recalcularlos varias veces al día puede ser beneficioso para la precisión. En consecuencia, se necesita una forma eficaz de evaluar o estimar la precisión de los resultados de la búsqueda, generalmente teniendo en cuenta tanto la ganancia asociada en la precisión como el coste de recalcular. Con este fin, algunos mecanismos modelan la validez decreciente de los resultados de las consultas calculadas previamente a lo largo del tiempo. Dos funciones de ejemplo de esta precisión probable que disminuye con el tiempo se representan en la FIG. 2. La función 10 representa un resultado de búsqueda calculado previamente que potencialmente sigue siendo más preciso (o, más correctamente, tiene una mayor probabilidad de ser válido a lo largo del tiempo) que otro resultado de búsqueda calculado previamente asociado con la función 11. Por ejemplo, el resultado de búsqueda calculado previamente representado por la función 10 tiene un 70% de probabilidad de seguir siendo válido 35 horas después de su último cálculo, mientras que el otro resultado de búsqueda calculado previamente caracterizado por la función 11 solo es válido hasta un 50% aproximadamente 35 horas después su último recálculo. Las funciones 10 y 11 también pueden representar conjuntos completos de resultados de búsqueda calculados previamente y luego indicar proporciones de los conjuntos de resultados de búsqueda calculados previamente que probablemente sean válidos en un tiempo transcurrido desde el último recálculo del conjunto.
A menudo, las consideraciones de recalcular los resultados de consultas calculados previamente asumen que el recálculo de cualquier resultado de la búsqueda calculado previamente por la máquina de cálculo 3 requiere sustancialmente la misma cantidad de recursos de cálculo independientemente de si los resultados de la búsqueda calculados previamente se calculan por separado, junto con los resultados de consultas calculados previamente relacionados (por ejemplo, mismo origen, destino y fechas adyacentes) o cualquier otro resultado de consulta no relacionado. En la práctica, sin embargo, esta suposición no puede hacerse en general porque, por ejemplo, ciertos resultados de consultas calculados previamente y/o sus correspondientes datos de cálculo subyacentes están interrelacionados entre sí. Recalcular juntos esos resultados de consultas calculados previamente interrelacionados (es decir, dentro del mismo ciclo de recálculo) podría tener efectos sinérgicos y, por lo tanto, podría ser más eficiente que recalcularlos por separado. Por lo tanto, cuando los resultados de consultas calculados previamente interrelacionados se recalculan juntos, los costes de cálculo por resultado de consulta calculado previamente individual generalmente son menores que el coste de cálculo por resultado de consulta calculado previamente individual requerido si se recalculan por separado, es decir, en diferentes ciclos de recálculo.
Para promover la comprensión de los resultados de búsqueda calculados previamente interrelacionados, a continuación, se proporciona un ejemplo particular. Este ejemplo se origina en una aplicación particular del entorno de base de datos distribuida 1 en la industria de viajes, es decir, la base de datos 4 mantiene resultados de búsqueda calculados previamente relacionados con viajes y los pone a disposición de los usuarios finales. Sin embargo, no se supone que el siguiente ejemplo limite la cuestión de los resultados de búsqueda calculados previamente interrelacionados, tal como una aplicación de datos de viaje. Más bien, condiciones similares o análogas que permiten un recálculo sinérgico y, por lo tanto, más eficiente de resultados de búsqueda calculados previamente interrelacionados están presentes en sistemas de bases de datos independientes del contenido de conjuntos de datos calculados previamente. En general, se puede decir que cualquier proceso de recálculo de resultados de búsqueda calculados previamente apuntará a una mutualización de subtareas de recálculo que deben ejecutarse comúnmente para cualquier resultado de búsqueda calculado previamente de un conjunto de resultados de búsqueda calculados previamente. Por lo tanto, recalcular juntos los resultados de búsqueda calculados previamente que tienen dichas subtareas de recálculo en común es generalmente más favorable que recalcular juntas las solicitudes de búsqueda calculadas previamente que no comparten subtareas de recálculo similares.
En una realización particular, las solicitudes de búsqueda calculadas previamente son registros de datos de vuelos de ida y vuelta, cada uno de los cuales especifica un origen y un destino del viaje y una fecha de salida y llegada (o, alternativamente a la fecha de llegada, una duración de la estadía relacionada con la fecha de salida). En este ejemplo, la base de datos 4 contiene recomendaciones de viaje de ida y vuelta calculadas previamente para cualquier par de origen-destino y cualquier par de salida-llegada-fecha a cubrir. La Tabla 1 indica un pequeño extracto de las recomendaciones de viaje calculadas previamente que se mantienen en la base de datos 4, el extracto son recomendaciones de viaje para el par de ciudades Niza-Boston ("NCE-BOS") y para las fechas de salida del 1 de julio a 5 de julio con una duración máxima de estadía de cinco días, la abreviatura "pc-fr x" significa "número x de recomendación de viaje calculado previamente ".
Tabla 1
Figure imgf000005_0001
El recálculo de una recomendación de viaje calculada previamente, en particular, por ejemplo, pc-fr 9 en relación con una fecha de salida del 2 de julio y una fecha de regreso del 7 de julio, lo realiza aproximadamente la máquina de cálculo 3 mediante las siguientes subtareas:
1: Recuperar las posibles rutas geográficas entre Niza y Boston incluyendo paradas/cambios intermedios, por ejemplo: Niza-París-Boston, Niza-Londres-Boston, Niza-Nueva York-Boston, Niza-París-Nueva York-Boston, etc. 2: Encontrar todos los vuelos posibles en todas las rutas recuperadas por la actividad 1: por ejemplo, Air France 123 y Emirates 7123 en el tramo Niza-París, Air France 456 y American Airlines 564 y United Airlines 125 en el tramo París-Nueva York, etc.
a. esta actividad se realiza para la parte de ida del viaje en la fecha de salida 2 de julio (subtarea 2a) y b. para la parte de regreso del viaje en la fecha de regreso el 7 de julio (subtarea 2b) porque los vuelos generalmente no están disponibles todos los días.
3: Comprobar la disponibilidad en todos los vuelos determinados por las actividades 2a y 2b, es decir, el 2 de julio para la parte de ida del viaje (= subtarea 3a) y el 7 de julio para la parte de regreso del viaje (= subtarea 3b).
4: Consultar las tarifas que se pueden aplicar a estos vuelos en estas fechas. Una tarifa típica es la regla que arroja un precio para todo el viaje. Sin embargo, las tarifas también pueden ser válidas para la parte de ida y vuelta del viaje en sus respectivas fechas, en cuyo caso se pueden recuperar una vez para la parte de ida (= subtarea 4a) y una vez para la parte de regreso del viaje (= subtarea 4b). Las tarifas tienen restricciones en las fechas de salida, en las fechas de regreso, en los vuelos a aplicar y muchas otras. Las tarifas se pueden combinar, descontar en algunos casos específicos, etc.
5: La mejor solución, es decir, la conexión con el mejor precio, se conserva, la devuelve la máquina de cálculo 3 y la base de datos 4 la almacena como pc-fr 9.
Estas subtareas se realizan de manera similar para cualquier recomendación de viaje calculada previamente. Al realizar el recálculo para todo el conjunto de recomendaciones de viaje calculadas previamente (pc-fr 0 a pc-fr 24), se pueden mutualizar varias subtareas de recálculo. La ejecución de la subtarea 1 es necesaria solo una vez para todo el conjunto de recomendaciones de viaje calculadas previamente pc-fr 0 a pc-fr 24 porque todas estas recomendaciones de viaje calculadas previamente pertenecen al mismo par de ciudades de origen-destino Niza-Boston. Por lo tanto, no es necesario volver a realizar la subtarea 1 para cada resultado de búsqueda calculado previamente pc-fr 0 a pc-fr 24.
Las subtareas 2a, 3a y la subtarea 4 son, por otro lado, específicas para una fecha de salida. Por lo tanto, pueden reutilizarse para todas las recomendaciones de viaje calculadas previamente relacionadas con una misma fecha de salida. La Tabla 2 indica esto para las recomendaciones de viaje calculadas previamente pc-fr 5 a pc-fr 9 relacionadas con la fecha de salida del 2 de julio:
Tabla 2
Figure imgf000006_0001
Asimismo, las subtareas 2b, 3b y 4b son específicas para una fecha de regreso y, por lo tanto, se realizan comúnmente para recomendaciones de viaje calculadas previamente relacionadas con una misma fecha de regreso. Esto se ilustra en la tabla 3 para las recomendaciones de viaje calculadas previamente pc-fr 9, pc-fr 13, pc-fr 17 y pc-fr 21, todas las cuales se refieren a la fecha de regreso del 7 de julio:
Tabla 3
Figure imgf000007_0001
Por lo tanto, en resumen, solo una parte de la subtarea 4, a saber, recuperar las tarifas que no son válidas para toda la parte del viaje de ida y para toda la parte del viaje de regreso, pero que son específicas para subconjuntos o viajes particulares recomendaciones, se debe realizar por separado para cada recomendación de viaje calculada previamente, mientras que las otras subtareas se pueden realizar en común para todas las recomendaciones de viaje calculadas previamente relacionadas con el mismo par de ciudades de origen y destino (verdadero para la subtarea 1) o al menos para recomendaciones de viaje calculadas previamente relacionadas con la misma fecha de salida (subtareas 2a, 3a y 4a) o con la misma fecha de regreso (subtareas 2b, 3b y 4b). En consecuencia, cuantas más recomendaciones de viaje calculadas previamente se relacionen con un par de ciudades de origen y destino y más recomendaciones de viaje calculadas previamente se relacionen con una fecha de salida y una fecha de regreso, respectivamente, más recursos de cálculo se pueden ahorrar al mutualizar estas subtareas entre las respectivas solicitudes de vuelo calculadas previamente.
También se visualiza en la FIG. 3 esta relación entre los efectos sinérgicos crecientes con un número creciente de recomendaciones de viaje calculadas previamente relacionadas con un par de ciudades de origen y destino y con una fecha de salida o de regreso. La FIG. 3 muestra seis gráficos de conjuntos de recomendaciones de viaje calculados previamente a modo de ejemplo, cada conjunto perteneciente a un par de ciudades de origen-destino y formando un ejemplo de una parte de resultados de consultas calculados previamente como se usa en el presente documento. En el número decreciente de recomendaciones de viaje calculadas previamente asociadas con un par de ciudades, el gráfico 36 se relaciona con el par de ciudades Nueva York-Buffalo, el gráfico 37 con Nueva York-Minsk, el gráfico 38 con Nueva York-Hilo en Hawái, el gráfico 39 con Nueva York-Bilbao, la gráfica 40 a Nueva York-Malé y, por último, la gráfica 41 a Nueva York-Mauricio. El eje X del diagrama de la FIG. 3 indica el número de recomendaciones de viaje calculadas previamente, mientras que el eje Y representa una medida de los recursos de recálculo necesarios para realizar un nuevo cálculo de las recomendaciones de viaje calculadas previamente, es decir, el tiempo de CPU.
Por un lado, la FIG. 3 muestra que el recálculo de algunos conjuntos de recomendaciones de viajes calculados previamente requiere más recursos de cálculo que otros. Por ejemplo, recalcular las recomendaciones de viaje calculadas previamente del conjunto 41, incluyendo las recomendaciones de viaje calculadas previamente para vuelos entre Nueva York y Mauricio, suele ser más costosa que recalcular las recomendaciones de viaje calculadas previamente del conjunto 36, incluyendo las recomendaciones de viaje calculadas previamente para vuelos entre Nueva York y Búfalo. Esta diferencia general de la cantidad de recursos de cálculo necesarios para recalcular las recomendaciones de viaje calculadas previamente se tiene en cuenta al incluir los costes de recálculo C en el indicador de recálculo, como se ha explicado en detalle anteriormente. Sin embargo, los gráficos de la FIG. 3 también indican que los costes de recálculo varían con el número de recomendaciones de viaje calculadas previamente de un conjunto que se está recalculando. En general, cuantas más recomendaciones de viaje calculadas previamente relacionadas con un conjunto se recalculen juntas, menos recursos de cálculo se necesitarán para recalcular cada recomendación de viaje calculada previamente. Por ejemplo, el gráfico 36 indica que recalcular 32 recomendaciones de viaje calculadas previamente del conjunto Nueva York-Búfalo requiere alrededor de 1000 ms de CPU, es decir, alrededor de 31,25 ms de CPU por recomendación de viaje calculada previamente, mientras que recalcular 170 recomendaciones de viaje calculadas previamente requiere alrededor de 5000 ms de CPU, es decir, solo alrededor de 29,4 ms de CPU por recomendación de viaje calculada previamente. Con respecto al gráfico 38 relacionado con el par de ciudades Nueva York-Hilo, recalcular 35 recomendaciones de viaje calculadas previamente de ese conjunto requiere alrededor de 10.000 ms de CPU, es decir, 286 ms de CPU por recomendación de viaje calculada previamente, mientras que recalcular 140 recomendaciones de viaje calculadas previamente de ese conjunto requieren alrededor de 25.000 ms de CPU, es decir, solo 178,5 ms de CPU por recomendación de viaje calculada previamente. Por lo tanto, está claro que las recomendaciones de viaje calculadas previamente pertenecen a un par de ciudades de origen y destino (el presente ejemplo de un recurso compartido) están interrelacionados en términos de recursos de cálculo necesarios para su recálculo como se explicó anteriormente.
En otras palabras, los recursos de cálculo necesarios para recalcular un resultado de búsqueda calculado previamente i generalmente dependen de si otros resultados de búsqueda calculados previamente relacionados con el resultado de búsqueda calculado previamente i se recalculan o no durante el mismo ciclo de cálculo. Por tanto, los recursos de cálculo para recalcular los resultados de búsqueda calculados previamente no son estáticos, sino que varían con la selección del conjunto de resultados de búsqueda calculados previamente a recalcular durante el ciclo de cálculo.
Por lo tanto, se busca un mecanismo para determinar dinámicamente un número óptimo de resultados de consultas calculados previamente de un recurso compartido que se recalculará durante un ciclo de cálculo (brevemente denominado "número de recálculo" en lo sucesivo) para optimizar la utilización eficiente de los recursos de recálculo. Al mismo tiempo, el mecanismo debe minimizar el desperdicio de recursos de cálculo debido al recálculo de resultados de consultas calculados previamente que todavía son válidos y no necesitan ningún recálculo. Además, el mecanismo no debería comprometer la estabilidad de la máquina de cálculo 3, sino garantizar su robustez.
Se propone complementar el sistema 1 de la FIG. 1 con un módulo adicional denominado en lo sucesivo subsistema de ajuste automático de cálculo 6 (FIG. 4). La función del subsistema de ajuste automático de cálculo 6 es determinar y ajustar de forma automática y autónoma el número de resultados de consultas calculados previamente interrelacionados que se van a calcular para recalcular más resultados de búsqueda calculados previamente con los mismos recursos de cálculo. Para cumplir esta función, el subsistema de ajuste automático de cálculo 6 incorpora una base de datos de conocimiento experto y está acoplado a otros dos subsistemas, a saber
- a la máquina de cálculo 3 a la que el subsistema de ajuste automático de cálculo 6 proporciona un número óptimo (conjunto de) de resultados de búsqueda calculados previamente para recalcular para una solicitud de recálculo dada del controlador de recálculo 2. En términos de funcionalidad, se puede considerar que el subsistema de ajuste automático de cálculo 6 forma parte de la máquina de cálculo 3.
- un servidor de estadísticas 7 que actúa como un proveedor de estadísticas para refinar la base de datos de conocimiento interno del subsistema de ajuste automático de cálculo 6.
El controlador de recálculo 2 activa periódicamente el recálculo de los resultados de consultas calculados previamente mediante el envío de 16 solicitudes de recálculo (posiblemente basadas en programas de recálculo 12) a la máquina de cálculo 3. Por ejemplo, en algún momento, el controlador de recálculo 2 decide recalcular uno o más recursos compartidos particulares de los resultados de consultas calculados previamente (también denominada "al menos un primer recurso compartido") y desencadena un nuevo cálculo de estos uno o más recursos compartidos. Cada vez que el controlador de recálculo 2 solicita 16 el recálculo de ciertos resultados de consultas calculados previamente durante un nuevo ciclo de cálculo, la máquina de cálculo 3 recupera datos relevantes del subsistema de ajuste automático 6 para decidir la política para determinar el número de resultados de consultas calculados previamente que se recalcularán en los recursos compartidos respectivos de resultados de consultas calculados previamente. Un proceso de mecanismo de salvaguardia 22 proporciona una cierta calidad de la decisión del número de resultados de consultas calculados previamente que se recalcularán, lo que puede conducir a una realineación dinámica potencial de la decisión en la instancia actual y con el tiempo. Un proceso asíncrono 24 recopila del subsistema del servidor de estadísticas 7 los datos estadísticos de nuevos cálculos anteriores (que se han enviado 20 al subsistema del servidor de estadísticas 7) para ajustar las decisiones a lo largo del tiempo. Los recálculos de la propia máquina de cálculo 3 se basan en otros datos de cálculo, en el ejemplo de la FIG. 4 horarios de vuelos o viajes, datos de disponibilidad y tarifas, almacenados en el sistema de base de datos 8. Obsérvese que este es un ejemplo no limitativo del sistema de base de datos distribuida. El mecanismo presentado en el presente documento es aplicable a todos los casos de uso de precálculo o almacenamiento en caché de resultados de consultas donde el precálculo o el almacenamiento en caché implican sinergias entre resultados de consultas interrelacionados de la manera ilustrada anteriormente en detalle con respecto a las FIGS. 2 y 3.
No hay ningún modelo existente que pueda usarse fácilmente para atribuir un número de recálculo óptimo a un recurso compartido dado de resultados de consultas calculados previamente para recalcular los resultados de consultas calculados previamente del recurso compartido durante un ciclo de cálculo. Por un lado, los efectos sinérgicos de recalcular varios resultados de consultas calculados previamente relacionados dependen del caso de uso específico del sistema de base de datos y de las características de los resultados de consultas calculados previamente en términos de su interrelación y validez decreciente a lo largo del tiempo. Por otro lado, el número óptimo de resultados de consultas calculados previamente relacionados que se recalcularán también depende de la estrategia de recálculo empleada (por ejemplo, siempre recalcular los resultados de consultas calculados previamente con la menor probabilidad de estar actualizados). Además, pueden incluirse opciones en activadores de cálculo 16 desde el controlador de recálculo 2 que tienen una influencia, a priori desconocida, en la que los resultados de consultas calculados previamente pueden ser más importantes para que sean válidos/precisos que otros.
Para abordar estas barras, por lo tanto, generalmente se propone en el presente documento utilizar un algoritmo de aprendizaje que optimice dinámicamente la decisión del número de resultados de consultas calculados previamente que se recalcularán durante un ciclo de cálculo a lo largo del tiempo, independientemente de las influencias desconocidas a priori previamente mencionadas. Sin embargo, no parece posible utilizar un algoritmo de aprendizaje supervisado estándar, es decir, un algoritmo que se base únicamente en el conocimiento de un experto de dicha red neuronal, ya que no se sabe qué número de recálculo es óptimo para un determinado porcentaje de resultados de consultas calculados previamente. Dichos algoritmos requerirían ser entrenados en una base de datos que asocie los activadores de cálculo 16 desde el controlador de recálculo 2 con su mejor número de recálculo respectivo para cada acción a recalcular. Sin embargo, el conocimiento experto requerido generalmente no está disponible.
Otra forma de construir esta base de datos sería usar un enfoque de fuerza bruta para permutar todos los números de recálculo posibles para un activador de cálculo 16 dado desde el controlador de recálculo 2. Esto podría generar una determinación de qué número de recálculo es el más apropiado al activador de cálculo 16. Sin embargo, este enfoque tiene varios inconvenientes, ya que se necesitaría mucho tiempo y hardware para recopilar todas estas estadísticas. Además, esto solo establece números de recálculo estáticos y, por lo tanto, podría haber discrepancias entre el estado actual de esta base de datos y el momento en que es utilizada por la máquina de cálculo 3. Esto expondría el sistema general 1 (FIG. 1) a un aumento potencial de rechazos técnicos, es decir, estados de fallo causados por activadores de cálculo 16 desde el controlador de recálculo 2, en caso de cambios de los resultados de consultas calculados previamente.
Como consecuencia, se propone entrenar el algoritmo de aprendizaje continuamente en el curso del procesamiento de cada activador de cálculo 16 desde el controlador de recálculo 2. Parece adecuado un algoritmo controlado por prueba y error que califique el resultado de una decisión del número de recálculo en respuesta a la recepción de un activador de cálculo 16. La calificación podría, por ejemplo, utilizar umbrales de una serie de indicadores clave de rendimiento para juzgar la calidad de la decisión. Los algoritmos de la familia de aprendizaje por refuerzo parecen ser los más adecuados para esta tarea.
Por lo tanto, la máquina de cálculo 3 se mejora con el módulo de ajuste automático 6 que implementa un algoritmo de aprendizaje por refuerzo para determinar un número óptimo de resultados de consultas calculados previamente en una parte que se recalculará durante un ciclo de cálculo. Más específicamente, la máquina de cálculo 3 recibe una solicitud 16 para recalcular los resultados de consultas calculados previamente de al menos un primer recurso compartido. La máquina de cálculo 3, más específicamente su subsistema de ajuste automático 6, determina una serie de resultados de consultas calculados previamente en el primer recurso compartido para recalcularse en el ciclo de recálculo actual en base a un algoritmo de aprendizaje por refuerzo. El número determinado de resultados de búsqueda calculados previamente está limitado por los recursos de cálculo de la máquina de cálculo disponibles durante el intervalo de tiempo dado. A continuación, la máquina de cálculo 3 vuelve a calcular el número determinado de resultados de consultas calculados previamente en el primer recurso compartido durante el ciclo de cálculo.
En algunas realizaciones, el algoritmo de aprendizaje de RL descrito en el presente documento considera indicadores clave de rendimiento (KPI) y examina los impactos de las decisiones respectivas del número de resultados de consultas calculados previamente que se recalcularán durante un ciclo de cálculo en los KPI. El conocimiento experto se puede utilizar para determinar, por ejemplo, qué opciones de activadores de cálculo 16 del controlador de recálculo 2 no tienen influencia en los KPI; esto puede usarse para reducir la dimensionalidad del espacio de aprendizaje.
En algunas realizaciones, los KPI incluyen uno o más de los siguientes factores: suma de números de resultados de consultas calculados previamente que se recalcularán, tiempo transcurrido de recalcular los resultados de consultas calculados previamente que se recalcularán en el determinado intervalo de tiempo, recursos de cálculo máximos para recalcular los resultados de consultas calculados previamente indicados en la solicitud y la cantidad máxima de memoria necesaria para recalcular los resultados de consultas calculados previamente indicados en la solicitud. En algunas realizaciones, los valores de los KPI se agregan a un valor agregado de KPI como se explica con más detalle a continuación. En algunas realizaciones, el KPI puede definirse jerárquicamente, estando compuestos los KPI más generales por una serie de KPI más específicos. Esto permite una evaluación detallada del efecto técnico, es decir, un uso eficiente de los recursos de cálculo debido a un número óptimo de resultados de consultas calculados previamente seleccionados para el recálculo. La agregación de KPI es entonces en cada nivel de jerarquía, donde la cantidad de KPI más específicos se agregan para formar el KPI más general y los KPI más generales se agregan para establecer un valor de recompensa común para una determinada acción, como se explica con más detalle más adelante.
Antes de pasar a opciones de diseño más detalladas para un algoritmo de RL para resolver el problema técnico mencionado anteriormente, primero damos una descripción general de algunos conceptos de RL. Los mecanismos de aprendizaje por refuerzo también se describen, por ejemplo, en el libro de texto "Reinforcement Learning" de Richard S. Sutton y Andrew G. Barto, publicado por MIT Press en 1998. Los mecanismos de RL utilizan términos de última generación que tienen un significado y se utilizan en el presente documento en este significado establecido para describir el algoritmo para determinar un número de recálculo óptimo, que incluye (véase la FIG. 5):
- agente: el módulo que aprende y toma decisiones, la máquina de cálculo 3 con el subsistema de ajuste automático 6 que define los números de recálculo.
- entorno: todos los hechos fuera del agente con los que el agente interactúa en cada una de una secuencia de puntos discretos en el tiempo. El entorno influye en las decisiones del agente y es influido por las decisiones del agente.
- tarea: una especificación completa de un entorno, una instancia del problema de aprendizaje por refuerzo.
- observación: determinación de un estado del entorno en un punto discreto en el tiempo. En este documento, el estado comprende varios parámetros, tal como el contenido de la solicitud de activación del cálculo 16 (indicación de una o más acciones que se recalcularán y posiblemente otras opciones de nuevo cálculo), el estado del nuevo cálculo (¿ha finalizado correctamente el cálculo?), KPI del recálculo (qué tan bien terminó el cálculo, más específicamente: costes de CPU, consumo de memoria, etc.).
- acción: decisión tomada por el agente a partir de un conjunto de acciones disponibles en el estado actual del entorno. En el presente documento: determinar el número de resultados de consultas calculados previamente de uno o más recursos compartidos que se recalcularán durante el ciclo de cálculo actual.
- política: mapeo de los estados del entorno a las probabilidades de seleccionar cada acción posible.
- función de recompensa: función que determina una recompensa a cada acción seleccionada por el agente. Aquí, la función de recompensa utiliza umbrales de KPI. Por ejemplo, una acción que provoque un rechazo técnico del entorno generará una mala recompensa. En algunas realizaciones, la función de recompensa atribuye un valor a una acción realizada por el subsistema de ajuste automático 6 en función de los KPI agregados recuperados del servidor de estadísticas 7.
- función de valor: una tabla que asocia un conjunto de acciones con su recompensa estimada.
El objetivo del agente es maximizar las recompensas no de forma inmediata, sino a largo plazo.
Una característica general de RL es el compromiso entre exploración y explotación:
- En el modo de exploración, el agente prueba nuevos tipos de acciones para ver qué tan efectivas son. La efectividad de una acción viene dada inmediatamente por la recompensa devuelta al agente en respuesta a la acción seleccionada.
- En el modo de explotación, el agente hace uso de acciones que se sabe que producen una recompensa alta utilizando el historial de recompensas derivado de la función de valor. Más específicamente, durante cada fase de explotación, se determina el número de recálculo que, según la base de datos de conocimiento experto, actualmente se sabe que produce la mayor cantidad de recompensas. El objetivo es maximizar las recompensas a largo plazo (matemáticamente, esto significa que se maximiza la suma de todas las recompensas en una vida útil infinita). En términos generales, en el modo de explotación, el algoritmo trata de aprovechar lo que ha aprendido, mientras que el modo de exploración puede considerarse como una "inversión" para buscar otras oportunidades para optimizar aún más la determinación del número de recálculo.
El agente aprende continuamente en modo de exploración y de explotación de su entorno. Sin embargo, la exploración y la explotación deben estar equilibradas. Un enfoque demasiado fuerte en la exploración o en la explotación producirá malos resultados. El agente puede explorar para descubrir nuevas estrategias que potencialmente podrían generar una recompensa muy alta, pero explorar demasiado puede ser peligroso porque el agente nunca usa su conocimiento del entorno. Más adelante se presentará una estrategia para equilibrar estos dos modos para resolver el problema técnico particular discutido en el presente documento.
A continuación, se describen algunas particularidades del diseño de la función de recompensa para implementar la máquina de cálculo 3 con el subsistema de ajuste automático 6. El problema principal que debe evitarse son los rechazos técnicos, es decir, los estados de fallo de la máquina de cálculo 3 causados por un número de recálculo inapropiado que da como resultado un mensaje de rechazo a un activador de cálculo 16. Por lo tanto, se atribuye una penalización alta al agente en tal caso.
Por otro lado, el agente no debe reaccionar de forma exagerada. Es posible que existan inestabilidades de la máquina de cálculo 3 que puedan generar rechazos técnicos y que no se deban a las acciones del agente. Para ello, en algunas realizaciones, los números de recálculo que terminaron en rechazo técnico (RcNbTR) se relacionan con los números de recálculo que no terminaron en rechazo técnico (RcNbOK). Por lo tanto, en algunas realizaciones, el primer término de la función de recompensa se define con la siguiente fórmula:
Figure imgf000010_0001
con PENALIZACIÓNtr (X) = Exp(X), es decir, una función exponencial.
Además, en algunas realizaciones se utiliza un conjunto de umbrales de KPI. Estos umbrales de KPI son límites que no deben ser superados por las acciones del agente. Por lo tanto, estos umbrales de KPI deben determinarse sabiamente, por ejemplo, con la ayuda de expertos en el dominio del sistema 1 (FIG. 1), dependiendo del caso de uso particular del sistema 1.
Para aumentar las acciones seguras por parte del agente, en algunas realizaciones se toma un nivel adicional de seguridad. El umbral se toma como un porcentaje dado del umbral real a partir del cual se generaría realmente un rechazo técnico ("umbral duro"). Esto genera tres estados posibles: aceptable (por debajo del umbral), advertencia (por encima del umbral, pero aún por debajo del umbral estricto) y rechazo técnico (por encima del umbral estricto). De esta forma, se introduce un margen de seguridad por debajo del umbral duro:
UMBRALkpix = MARGENumbral(kpix) * UMBRAL DUROkpix
con 0 < MARGENumbral(kpix) < 1 constante
En respuesta a la determinación de que todos los KPI están por debajo de su umbral correspondiente después de que el agente haya tomado un determinado agente, el valor de la recompensa es positivo. Cuanto más cerca se encuentre un KPI de su umbral, mayor será la recompensa atribuida. Pero si un KPI supera su umbral (estado de "advertencia"), el sistema recibe una recompensa negativa. Una recompensa negativa también se denomina penalización.
Opcionalmente, los KPI se normalizan por su umbral para permitir comparaciones más rápidas. Entonces, en alguna realización, un segundo término de la función de recompensa viene dado por:
Figure imgf000011_0001
donde, para cada KPI, la recompensa es positiva (multiplicada por un factor positivo "recompensa positiva" PR) si se mantiene el umbral, pero negativa (multiplicada por un factor negativo "recompensa negativa" NR) si se supera el umbral:
X * PR, X < 1 ,P R > 0 constante
RECOMPENSA « ■ (í * NR, X > 1 ,N R < 0 constante con \NR\ > Z k p iPR
Los parámetros MARGENumbral (kpix), y las variables PR y NR se deben ajustar con base en un enfoque empírico para obtener el comportamiento deseado.
En resumen, en algunas realizaciones, la función de recompensa global se define como:
Figure imgf000011_0002
Un ejemplo se da mediante la FIG. 6. Se trazan dos radares con un vector de tres KPI que se determinan después de un recálculo de una serie de resultados de consultas calculados previamente de acuerdo con la decisión del agente implementado en el subsistema de ajuste automático 6. Como se explicó anteriormente , los KPI se normalizan por su respectivo umbral permitido indicado por el círculo interior sólido, con el umbral estricto indicado por el círculo exterior discontinuo. Cuando cada KPI está por debajo del umbral, como se ilustra en la FIG. 6A, el vector resultante de los tres KPI (triángulo completado dentro del círculo interior sólido) se considera aceptable. Sin embargo, si un solo KPI supera el umbral y el vector resultante entra en el corredor entre el círculo sólido y el punteado como se ilustra en la FIG. 6B, el algoritmo RL lo considera como una advertencia y penaliza la recompensa individual por este KPI (KPI 2 en el ejemplo de la FIG. 6B).
A continuación, se describen algunas particularidades del diseño de la función de valor para implementar la máquina de cálculo 3 con el subsistema de ajuste automático 6. Como se mencionó anteriormente, la función de valor es una tabla que asocia un conjunto de N acciones posibles, a saber, el número de resultados de consultas calculados previamente de un recurso compartido que se recalculará durante el ciclo de cálculo, W, con sus recompensas estimadas. En algunas realizaciones, las recompensas estimadas asociadas por la función de valor se especifican mediante una función de recompensa del algoritmo de aprendizaje por refuerzo, tal como el ejemplo de función de recompensa descrito anteriormente. Como se describió anteriormente, la función de recompensa puede atribuir un valor agregado de una pluralidad de indicadores clave de rendimiento a una selección correspondiente de resultados de consultas calculados previamente de la al menos un primer recurso compartido.
En algunas realizaciones, la función de valor se calcula iterativamente a partir de un historial de recompensas recibidas previamente (indexadas con k, que representa la késima iteración). La función de valor V del número de recálculo W es, por lo tanto, en algunas realizaciones
Figure imgf000012_0001
donde «k (W) es el parámetro de velocidad de aprendizaje (o parámetro de tamaño de etapa) utilizado para procesar la recompensa después de la késima selección del número de recálculo W.
En este sentido, se utilizan dos fórmulas de aprendizaje por refuerzo para asegurar una convergencia del algoritmo RL. La primera fórmula establece que las etapas de aprendizaje son lo suficientemente grandes como para superar eventualmente cualquier condición inicial o fluctuaciones aleatorias:
Figure imgf000012_0002
ocfe ( W ) = oo
La segunda está dada por:
Figure imgf000012_0003
Dado que el sistema 1 no es estacionario, es decir, el comportamiento del sistema variará con el tiempo de manera que cambiarán los números de recálculo óptimos, esta segunda condición no puede respetarse. De hecho, el sistema nunca converge por completo porque necesita adaptarse continuamente a los cambios que puedan producirse.
En algunas realizaciones, el parámetro de velocidad de aprendizaje «k (W) recibe una mayor influencia en las últimas recompensas y se adapta a la situación del sistema para proporcionar una mayor optimización del aprendizaje, incluyendo el estado del entorno y el modo del algoritmo de RL:
- modo actual: exploración o explotación. Como las decisiones deben ser conservadoras para evitar fallos, el aprendizaje debe realizarse de forma menos activa en modo de exploración, es decir, el agente aprende, pero de forma segura. Por el contrario, en el modo de explotación, se debe tener en cuenta más rápidamente una modificación del comportamiento.
- indicador de carga de código que indica una actualización de software reciente para la máquina de cálculo 3: Si se establece en verdadero, el sistema tiene que aprender más rápidamente, ya que la carga de un código puede inducir una variación rápida y real de los KPI que no indican ninguna inestabilidad del sistema.
El parámetro de tamaño de etapa es entonces función de la situación de un sistema S (k) y una constante «:
ocfc ( W ) = oc* 5 (fc)
dónde
1, Modo de explotación
Figure imgf000012_0004
ER < 1, Modo de exploración ER, CL constante
CL > 1, Carga de código
las variables «, ER y CL se ajustan con un enfoque empírico (por ejemplo, utilizando el conocimiento de un experto en el dominio) para obtener el comportamiento deseado.
Los parámetros de velocidad de aprendizaje deben garantizar que, en el caso de una integración de recompensa negativa, la función de valor no se degrade demasiado, ya que puede deberse a alguna inestabilidad del sistema:
Figure imgf000012_0005
Después de SN recompensas negativas sucesivas, el algoritmo de RL debería obligar al sistema a reaccionar rápidamente y volver a determinar una nueva política desde donde comenzar:
En esta etapa, la certeza de la función de valor es cuestionable. Es probable que la función de valor para otros números de recálculo sea incorrecta. Entonces, el primer enfoque podría ser usar un "enfoque bruto" para establecer arbitrariamente el nuevo punto de aprendizaje de reinicio en
número de recálculoNuevo = DF • número recálculoviejo
donde 0 < DF < 1 es un factor de degradación.
La FIG. 7 muestra un ejemplo de integración de recompensa por la función de valor de la ponderación W4. El valor de la recompensa por W4 ha aumentado entre k+1 y k selecciones.
En algunas realizaciones, la solicitud para recalcular los resultados de consultas calculados previamente de al menos un primer recurso compartido (= activador de cálculo 16 en el ejemplo de la FIG. 4) estimó los resultados de consultas de recompensas del al menos el primer recurso compartido que se van a recalcular. Reutilizando el ejemplo no limitativo de la FIG. 3 descrito anteriormente, la solicitud puede incluir uno o más pares de origen y destino, indicando cada par de origen y destino un recurso compartido que se va a recalcular (como en el ejemplo de la FIG. 3, cada par de origen y destino define un recurso compartido). Además, la solicitud puede indicar una fecha de salida, varias fechas de salida o un intervalo de fechas de salida, así como la duración de una estadía, varias duraciones de estadía o un intervalo de duraciones de estadía. Para dar un ejemplo particular, el controlador de recálculo 2 puede solicitar a la máquina de cálculo 3 que vuelva a calcular los precios más bajos de todas las recomendaciones de viaje con origen Niza y destino Boston (identificando la parte Niza-Boston) con un intervalo de fechas de salida de 30 días a partir del 1 de noviembre de 2017 y un intervalo de duración de estadía entre 7 y 14 días (= un intervalo de duración de estadía de 8 días), en total solicitando el nuevo cálculo de 308 = 240 resultados de consultas calculados previamente que forman una porción del recurso compartido Niza- Boston se recalculará. En estas realizaciones, la máquina de cálculo 3 está configurada opcionalmente para determinar el número de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará basándose en los resultados de consultas calculados previamente indicados del al menos primer recurso compartido. Por ejemplo, los recursos de cálculo de la máquina de cálculo 3 pueden permitir recalcular 100 resultados de consultas calculados previamente en los tres ciclos de cálculo siguientes. En esta situación, la máquina de cálculo 3 está configurada para seleccionar un número óptimo de resultados de consultas calculados previamente para recalcularlos durante el próximo ciclo de cálculo dividiendo la porción del primer recurso compartido definido por el número indicado en la solicitud 16 en tres porciones, donde la división da como resultado porciones que utilizan los recursos de cálculo disponibles de manera óptima. Cada una de las tres porciones se vuelve a calcular durante los siguientes tres (o tres de los siguientes) ciclos de cálculo. A continuación, se proporciona otro ejemplo más específico de tal división. Más particularidades del diseño del algoritmo de aprendizaje por refuerzo para implementar la máquina de cálculo 3 con el subsistema de ajuste automático 6 se describen a continuación con referencia a la FIG. 8. En algunas realizaciones, el algoritmo de determinación del número de recálculo se compone de tres actividades principales: - En respuesta a la recepción de un activador de cálculo 16 por parte de la máquina de cálculo 3 (FIG. 8: "Iniciar actividad 1"), el agente ubicado en el subsistema de ajuste automático 6 (después de haber sido notificado a través de la interfaz 18) recupera 24 del servidor de estadísticas 7 el número de recálculo de cada uno de los recursos compartidos de los resultados de consultas calculados previamente en cuestión que se determinaron en el último recálculo del recurso compartido respectivo.
- A continuación, el agente determina el modo de RL (FIG. 8: "uso y registro"), es decir, elige entre el modo de exploración y el modo de explotación. La determinación del modo se basa en la función de valor para los últimos números de recálculo recuperados, como se describirá con más detalle a continuación.
- El agente también registra 20 informes de cálculo en el servidor de estadísticas 7 (FIG. 8: "uso y registro"). Por lo tanto, en alguna realización, la máquina de cálculo 3 está configurada para almacenar el número determinado de resultados de consultas calculados previamente en el primer recurso compartido en el servidor de estadísticas 7 para una determinación posterior del número de resultados de consultas calculados previamente que se recalcularán en un ciclo de cálculo posterior.
- Paralelamente a estas actividades (FIG. 8: "uso y registro"), el agente puede emplear un mecanismo de salvaguarda (FIG. 8: "mecanismo de salvaguarda") con el fin de excluir situaciones en las que las determinaciones de los agentes podrían causar un estado de fallo de la máquina de cálculo 3 o del sistema global 1 que pone en peligro los cálculos globales). Por ejemplo, si se detecta un problema técnico de este tipo con el subsistema de ajuste automático 6, el mecanismo de salvaguarda puede incluir en la lista negra el subsistema de ajuste automático 6 para que se vuelvan a calcular una o más acciones específicas y utilizar una política predeterminada (tal como recalcular un número determinado o predeterminado de resultados de consultas calculados previamente de uno o más recursos compartidos) que se sabe que funciona correctamente.
- El agente ejecuta además un proceso asíncrono (FIG. 8: "Iniciar actividad 2") para recopilar datos históricos del servidor de estadísticas 7, analizar estos datos y ajustar la base de datos para las decisiones de los números de recálculo.
Más detalles de la determinación del modo de RL se describen a continuación. Como se explicó en la introducción sobre el aprendizaje por refuerzo anterior, se busca un compromiso equilibrado entre estos dos modos.
Dos métodos de equilibrado conocidos son la estrategia Epsilon-Greedy y la estrategia Softmax. La estrategia Epsilon-Greedy explora nuevas estrategias de un porcentaje dado del tiempo y explota la acción con la recompensa más alta el resto del tiempo (acción codiciosa). Por ejemplo, el sistema podría explorar el 1% del tiempo (eligiendo al azar una acción entre el conjunto de acciones posibles) y explotar el resto (99%) del tiempo (utilizar la acción mejor valorada). La estrategia Softmax aborda un inconveniente del Epsilon, a saber, explorar eligiendo por igual entre todas las acciones. Esto significa que es tan probable elegir la acción que parece peor como elegir la siguiente a la mejor acción. En tareas donde las peores acciones son malas, esto puede ser una desventaja. Por lo tanto, la estrategia Softmax refina la estrategia Epsilon-Greedy variando las probabilidades de acción como una función graduada del valor estimado.
La estrategia de equilibrado utilizada en algunas realizaciones del presente documento es diferente de estas dos estrategias conocidas. En un nivel general, la máquina de cálculo 3 está dispuesta para recuperar una indicación de los resultados de consultas calculados previamente de al menos un primer recurso compartido que se han recalculado en un intervalo de tiempo anterior, es decir, el último número de recálculo como se explicó anteriormente. La máquina de cálculo 3 se determina además para aplicar un modo de explotación del algoritmo de aprendizaje por refuerzo o para aplicar un modo de exploración del algoritmo de aprendizaje por refuerzo. En algunas realizaciones, la máquina de cálculo 3 determina aplicar el modo de explotación del algoritmo de aprendizaje por refuerzo o aplicar el modo de exploración del algoritmo de aprendizaje por refuerzo determinando la recompensa otorgada por la función de valor para los resultados de consultas calculados previamente indicados por la indicación recuperada y determinando un número de ciclos de recálculo para aplicar el modo de explotación del algoritmo de aprendizaje por refuerzo basado en una comparación de la recompensa determinada con un umbral de recompensa. En algunas realizaciones, el umbral de recompensa se define mediante porcentajes dados de valores de umbral de los respectivos de la pluralidad de indicadores clave de rendimiento para los que recalcular durante el intervalo de tiempo dado daría como resultado un estado de error de la máquina de cálculo 3. Como se describe a continuación, esto introduce una red de seguridad adicional que evita estados de fallo técnico de la máquina de cálculo 3 provocados por el algoritmo de RL. La máquina de cálculo 3 aplica el modo de explotación del algoritmo de aprendizaje por refuerzo durante el ciclo de recálculo actual y los ciclos de recálculo subsiguientes dado por el número determinado de ciclos de recálculo. A continuación, se describirá un ejemplo más detallado.
En respuesta a la determinación de aplicar el modo de explotación, la máquina de cálculo 3 de algunas realizaciones está dispuesta para determinar el número de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará en el ciclo de cálculo actual en función de una función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada, asociando la función de valor posibles selecciones de resultados de consultas calculados previamente en al menos el primer recurso compartido para el recálculo con las respectivas recompensas estimadas.
En algunas realizaciones, la máquina de cálculo 3 adapta iterativamente el número de resultados de consultas calculados previamente indicados por la indicación recuperada al menos en función del número de resultados de consultas calculados previamente indicados por la indicación recuperada, la función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada y el umbral de recompensa. A continuación, se proporciona un ejemplo más específico de cómo la máquina de cálculo 3 puede determinar un nuevo número de recálculo durante el modo de exploración para optimizar aún más sus acciones.
El mecanismo de equilibrado para cambiar entre el modo de explotación y el modo de exploración está respaldado por el hecho de que es posible "clasificar" los números de recálculo. En otras palabras, utiliza el hecho de que, hasta cierto punto, cuanto mayor sea el número de recálculo, mayor será la recompensa (y después de cierto punto, hay un fallo). Esto ayuda a construir una política de exploración: dado un número de recálculo que es aceptable (los KPI están por debajo del umbral), se puede decidir explorar con un número de recálculo mayor (ya que se sabe que una ponderación más baja no dará ninguna mejora de la recompensa).
También es posible decidir cuánto puede explorar el sistema utilizando la diferencia entre la función de valor del número de recálculo actual y la recompensa máxima esperada. Con este fin, se puede estimar qué tan lejos está el número de recálculo del umbral de KPI y usar esta estimación para decidir explorar con una etapa grande o pequeña. Esto permite llegar a un compromiso entre la velocidad de convergencia al número de recálculo óptimo para aplicar a una acción determinada y el riesgo de recibir una recompensa baja (en particular, evitar los rechazos técnicos). Más específicamente, el siguiente algoritmo de determinación del modo de RL basado en casos se usa en algunas realizaciones para encontrar el número de recálculo óptimo, mientras se mantiene estable el sistema 1:
1. 0 < Función de valor para el último número de recálculo < 50% de la recompensa agregada máxima resultante de todos los KPI mirando a sus respectivos valores de umbral de KPI (Recompensa máxima): Explotar C1 veces y luego explorar una cantidad determinada de veces (por ejemplo, una vez) con un número de recálculo mayor (los detalles de la elección de este número de recálculo mayor se detallarán a continuación).
2. 50% < Función de valor para el último número de recálculo < 75% de la recompensa máxima: Explotar C2 > C1 veces y luego explorar una vez con un mayor número de recálculo.
3. 5% < Función de valor para el último número de recálculo < 90% de la recompensa máxima: Explotar C3 > C2 veces y luego explorar una vez con un mayor número de recálculo.
4. 90% < Función de valor para el último número de recálculo < 100% de recompensa máxima: Explotar C4 > C3 del tiempo y luego explorar una vez con un mayor número de recálculo.
Las variables C1, C2, C3 y C4 deben ajustarse con un enfoque empírico para obtener el comportamiento deseado (en términos de velocidad de convergencia, por ejemplo).
En respuesta a la determinación de que el agente puede explorar en el ciclo de cálculo actual, se debe decidir el mayor número de recálculo para la exploración. Se asume que:
- La recompensa calculada para un número de recálculo dado es mejor cuando los KPI después de la decisión para el número de recálculo dado están más cerca del umbral de KPI que para el último número de recálculo.
- La evolución de la recompensa no es proporcional al número de recálculo (subaditividad), por ejemplo:
RECOMPENSA (2 * W) < 2 * RECOMPENSA (W)
Como, en algunas realizaciones, el sistema tiene un enfoque conservador para evitar estados de fallo, la convergencia hacia el mejor recálculo para un recurso compartido dado se realiza cuidadosamente en algunas realizaciones, paso a paso. En algunas realizaciones, el nuevo número de recálculo Wnuevo es dado por:
Figure imgf000015_0001
dónde 14(W) es la función de valor del último número de recálculo explotado W. Este es un valor estrictamente positivo, ya que el modo de RL actual es el modo de exploración que ha permitido la comparación con la recompensa máxima. Este enfoque se aplica iterativamente para determinar el número de recálculo para la siguiente fase de exploración. Sobre un número múltiple de fases de exploración, el empleo respectivo de esta fórmula en cada una de las fases de exploración para determinar Wnuevo forma un enfoque iterativo para acercar más y más el número de recálculo a la recompensa máxima agregada RECOMPENSAmax y, por lo tanto, para seleccionar el número de recálculo de una manera optimizada para utilizar de manera eficiente los recursos de recálculo disponibles.
Un ejemplo de esta selección de equilibrado entre el modo de explotación y de exploración se da en la FIG. 9. Este ejemplo detalla la evolución de la función de valor de un recurso compartido determinado de resultados de consultas calculados previamente.
Inicialmente (FIG. 9A), cuando se va a recalcular un recurso compartido por primera vez, no existe un número de recálculo previo para el recurso compartido. En este caso, el modo de exploración está seleccionado por defecto. En algunas realizaciones, el subsistema de ajuste automático 6 puede emitir una advertencia 14 al controlador de recálculo 2. El controlador de recálculo 2 puede incluir entonces un número de recálculo predeterminado en futuras solicitudes 16 relacionadas con este recurso compartido. El agente selecciona un número de recálculo conservador (es decir, relativamente bajo) dado para el recurso compartido, como se visualiza en la FIG. 9A. Se calcula un valor de recompensa para esta acción en función de la función de recompensa explicada en detalle anteriormente. A continuación, la máquina de cálculo 3 vuelve a calcular los resultados de consultas calculados previamente de la participación en el ciclo de cálculo de acuerdo con el número de recálculo determinado. El número de recálculo determinado se almacena en el servidor de estadísticas 7.
En respuesta a que la máquina de cálculo 3 recibe otro activador de cálculo 16 para recalcular los resultados de consultas calculados previamente de la participación en un siguiente ciclo de recálculo (todavía la FIG. 9A), el último número de recálculo se recupera del servidor de estadísticas 7. Luego, el agente determina que el último número de recálculo estuvo por debajo de la recompensa máxima, por ejemplo, en el intervalo del 50-75% de la recompensa máxima según el caso 2 anterior. De acuerdo con el algoritmo de equilibrado anterior, el agente determina el modo de explotación de RL para intervalos C2, en el ejemplo de la FIG. 9B para tres ciclos de cálculo más. Esto asegura que el número de recálculo anterior sea una solución estable (pero aún no necesariamente una opción óptima). En ese caso, se realizarán cálculos C2 similares del recurso compartido con los mismos resultados de consultas calculados previamente del recurso compartido antes de proceder a una nueva exploración.
En el recálculo C2+1ésimo del recurso compartido (FIG. 9B), una nueva exploración con un mayor número de recálculo determinado como se explicó anteriormente. Esto produce un número de recálculo mayor con un valor de recompensa más alto. Durante los siguientes recálculos, se selecciona de nuevo el modo de explotación de RL (todavía la FIG. 9B). Esta vez, el valor de la recompensa por el mayor número de recálculo es en el caso 3, por lo que los próximos recálculos C3 del recurso compartido se realizan en modo de explotación. Como en la FIG. 9A, esto asegura que el número de recálculo explorado sea estable.
Esta selección alterna de una exploración seguida por un número de explotaciones se itera posteriormente de la misma manera para determinar el número de recálculo óptimo para este recurso compartido particular (FIG. 9C). El algoritmo de selección de modo entrará en el caso 4, donde el número de explotaciones posteriores C4 es el más alto. Por lo tanto, los nuevos números de recálculo potencialmente óptimos ahora se exploran con menos frecuencia que en las iteraciones anteriores.
En algún momento, un número de recálculo explorado recientemente podría entrar en la zona de advertencia, es decir, se supera el umbral de KPI para uno o más KPI, lo que genera un valor de recompensa negativo (FIG. 9D). Como se explicó anteriormente, en algunas realizaciones, esto es una advertencia, ya que el umbral se ha calculado con un porcentaje determinado por debajo del umbral estricto. Esto significa que el número de recálculo alcanzó (de hecho, incluso superó) la fase en la que no se espera una gran mejora de la recompensa. Por lo tanto, el número de recálculo se estabiliza al valor más reciente que arrojó las mejores recompensas. Sin embargo, esta estabilización solo significa que la exploración se realiza con menos frecuencia, pero no nunca. De hecho, es deseable continuar la exploración de vez en cuando, ya que el sistema en general no es estacionario y puede cambiar con el tiempo, por ejemplo, a medida que cambian los resultados de consultas calculados previamente mantenidos por la plataforma de búsqueda 4. La fase de exploración adicional permite que el sistema 1 descubra y se ponga al día con esos cambios y desarrollos.
La FIG. 9E se refiere a una situación especial que podría indicar una degradación del sistema 1 en la que podría ser adecuado un reinicio. Las posibles razones de un rendimiento degradado son un cambio sustancial de los resultados de consultas calculados previamente, un cambio del esquema de base de datos o modelo de la plataforma de búsqueda 4, o un cambio de las reglas de recálculo, o, más en general, una actualización de la plataforma de búsqueda 4, de la máquina de cálculo 3 y/o del controlador de recálculo, dando como resultado una funcionalidad cambiada/refinada o un grupo cambiado de resultados de consultas calculados previamente. El término degradación indica que el número de recálculo óptimo podría reducirse a estos cambios en comparación con el estado del sistema 1 antes de los cambios.
En el escenario de la FIG. 9E, las múltiples recompensas devueltas posteriormente por los números de recálculo explorados posteriormente son negativas, aunque el sistema 1 se mantuvo estable durante una cierta cantidad de tiempo anterior. Después de varias integraciones de recompensas, la función de valor para la ponderación sigue siendo negativa. La caída de las recompensas a los valores negativos implica entonces que no hay otra razón aparente que una posible degradación. Por lo tanto, esto indica que la función de valor probablemente sea incorrecta o al menos ya no sea adecuada para abordar los cambios en el sistema. A continuación, se determina un nuevo número de recálculo analizando la función de valor para el número de recálculo actual para determinar el nuevo punto de inicio. Por ejemplo, el subsistema de ajuste automático 6 puede comenzar desde el valor inicial predeterminado dado del número de recálculo como se describe anteriormente para el caso de que una acción se vuelva a calcular por primera vez. En otro ejemplo, el subsistema de ajuste automático 6 puede realizar un "enfoque dicotómico", es decir, utilizar el último número de recálculo que arrojó una recompensa positiva y reducirlo aún más, por ejemplo, dividiéndolo, por ejemplo, por dos.
A continuación, se describen algunos detalles del reajuste del número de recálculo.
En algunas realizaciones, la máquina de cálculo 3 no tiene suficientes recursos de cálculo para recalcular un recurso compartido completo o una parte del recurso compartido que el controlador de recálculo 2 solicita que recalcule en un único ciclo de recálculo. En estas realizaciones, los mecanismos descritos en el presente documento pueden emplearse para dividir el recurso compartido o la parte solicitada del recurso compartido en porciones óptimas que la máquina de cálculo 3 recalcula durante una pluralidad de ciclos de cálculo. Aquí, el número de recálculo determinado por los mecanismos descritos en el presente documento indica el tamaño de un segmento que se recalculará en cada ciclo.
Además, en algunas realizaciones, los resultados de consultas calculados previamente se organizan en celdas con dos dimensiones. Ya se ha mencionado anteriormente un ejemplo no limitativo con referencia a la FIG. 3 donde las recomendaciones de viaje con precio se calculan previamente y se almacenan en un recurso compartido respectivo para cada par de origen y destino. En este ejemplo no limitativo, las dos dimensiones son los datos de salida y la duración de la estancia. En dichas realizaciones, un número de recálculo indica una parte de forma cuadrada del recurso compartido, es decir, indica una tupla de dos números, uno para cada dimensión.
La determinación del número de recálculo según los mecanismos descritos anteriormente respetaría:
Figure imgf000016_0001
donde d es el intervalo de días de salida (salida en los próximos d días, la primera dimensión) y s es el intervalo de duración de la estadía (duración de la estadía de 1 a s días, la segunda dimensión) y W es una ponderación óptima recomendada por la base de datos de conocimiento experto (es decir, en el estado actual del algoritmo de RL, se cree que produce la recompensa más alta). Sin embargo, según el intervalo de fechas de salida y el intervalo de duración de la estancia solicitados en el activador de cálculo 16, esta solución puede dar lugar a que se recalculen algunas pequeñas porciones de números de recálculo al final del (parte del) recurso compartido a recalcular.
El siguiente algoritmo proporciona una división mejorada de la parte del recurso compartido que la máquina de cálculo 3 va a recalcular en porciones, cada una de las cuales debe recalcularse en una pluralidad de ciclos de cálculo, es decir, para elegir un número de recálculo en forma de paralelogramo de la siguiente manera:
- Determinar un intervalo de duración de estadía s que esté cerca de VW" y qUe divide el intervalo de duración de estancia indicado en la solicitud 16 del controlador de recálculo 2 en partes tan iguales como sea posible.
- Determinar el número de recálculo más alto posible que sea un cuadrado de s ■ d con la porción menos no completa (es decir, la última porción de la parte del recurso compartido que se recalculará es la más cercana al número de recálculo, es decir, el tamaño de las otras porciones), y con s > d para optimizar el uso eficiente de los recursos de cálculo (si s > d, se tienen que recalcular menos fechas de salida durante cada ciclo de cálculo, por ejemplo, recalcular un cuadrado de 3d ■ l5s es menos costoso que recalcular un cuadrado de 15d ■ 3s).
SR
Figure imgf000017_0001
s = techo[ ') d - suelo f—] Los números determinados s y d se establecen en , y así tener: sueloim y s ■ Implícitamente, este algoritmo considera que el intervalo de duración de la estadía indicado en la solicitud 16 es menor que el intervalo de fechas de salida indicado en la solicitud y, por lo tanto, ese intervalo de duración de la estadía indicado es el que debe estar bien dividido. Si, por el contrario, la duración de la estadía indicada en la solicitud 16 es igual o mayor que el intervalo de días de salida, se puede aplicar el mismo algoritmo intercambiando la duración de estadía indicada y el intervalo de días de salida indicados, y así intercambiar s y d).
Como ejemplo, el controlador de recálculo 2 solicita a la máquina de cálculo 3 que vuelva a calcular un recurso compartido particular para los próximos 31 días de salida con un intervalo de duración de estancia de 16 (es decir, todas las duraciones de estancia de 1 a 16 días). Por lo tanto, en general, se debe recalcular un cuadrado de 31 ■ 16 = 496 resultados de consultas calculados previamente. La máquina de cálculo 3 tiene suficientes recursos de cálculo para recalcular 50 resultados de consultas calculados previamente por ciclo de cálculo.
La solución ingenua mencionada anteriormente produciría un número de recálculo de 7d7s = 49 que daría como resultado 8 porciones de 7d7s, así como 7 porciones no completas, a saber, 4 porciones de 2d7s, 2 porciones de 7d 4s, y una porción final de 2d4s, para completar el nuevo cálculo de los 496 resultados de consultas calculados previamente. El número de recálculo promedio durante estos 15 ciclos de cálculo es solo 33. El enfoque más sofisticado descrito anteriormente conduce a una división de 6d8s. Esto da como resultado 12 porciones, a saber, 11 porciones de 6d8s y una porción no completa restante de 1d7s, y un número de recálculo promedio general de 41.
El enfoque anterior se puede generalizar a otros casos de uso con los resultados de consultas calculados previamente que tienen otras dimensiones o un número diferente de dimensiones (por ejemplo, tres dimensiones). Finalmente, la FIG. 10 es una representación de ejemplo esquemática de un sistema informático 100 dispuesto como una máquina de cálculo 3 para ejecutar un conjunto de instrucciones, para hacer que el sistema informático 100 realice cualquiera de las metodologías que implementan la determinación de un número de recálculo óptimo para una participación en para recalcular un número óptimo de resultados de consultas calculados previamente durante un ciclo de cálculo, como se ha descrito anteriormente. El sistema informático 100 incluye un procesador 102, una memoria principal 104 y una interfaz de red 108 que se comunican entre sí a través de un bus 101. El sistema informático 100 incluye además una memoria estática 106, por ejemplo, unidad flash y/o de estado sólido no extraíble y/o una tarjeta Micro o Mini SD extraíble, que almacena de forma permanente las instrucciones que permiten al sistema informático 100 ejecutar sus funciones, en particular, ejecutar el algoritmo de aprendizaje por refuerzo para seleccionar el número de recálculo en respuesta para recibir un activador de cálculo 16. Además, el sistema informático 100 puede incluir una interfaz de usuario 110 soportada por un módulo de control de interfaz de usuario correspondiente.
En algunos ejemplos, las instrucciones programadas para llevar a cabo las rutinas para determinar el número de recálculo también se almacenan en la memoria estática 106. Cuando se ejecutan las instrucciones, los datos del proceso residen en la memoria principal 104 y/o en el procesador 102. Las instrucciones pueden además transmitirse o recibirse como una señal propagada a través del dispositivo de interfaz de red 108 desde/hacia un servidor de software dentro de una red de área local o Internet. El dispositivo de interfaz de red 108 puede ser una interfaz de red inalámbrica (tal como una interfaz Wi-Fi y/o Bluetooth) y/o una interfaz de red móvil 2G/3G/4G/5G. Los mecanismos para determinar un número óptimo de recálculo descritos en el presente documento aumentan la eficiencia de recálculo de resultados de consultas calculados previamente que se componen de una pluralidad de acciones con un cierto número respectivo de resultados de consultas calculados previamente, en donde los recursos de cálculo de la máquina cálculo necesarios para recalcular un resultado de consulta calculado previamente de un primer recurso compartido depende de si otros resultados de consultas calculados previamente del primer recurso compartido se recalculan o no durante un intervalo de tiempo dado que forma un ciclo de recálculo actual. El uso de un algoritmo de aprendizaje por refuerzo de la manera descrita anteriormente optimiza el uso de los recursos de cálculo de la máquina de cálculo 3 al permitir recalcular más resultados de consultas calculados previamente con la misma cantidad de recursos de cálculo que sin el algoritmo. Los mecanismos son independientes del caso de uso particular de la máquina de cálculo 3 y pueden ser empleados por cualquier sistema que recalcule resultados de consultas calculados previamente que tengan una interdependencia en términos de los recursos de cálculo necesarios para recalcularlos, como se describe a modo de ejemplo anteriormente con referencia al ejemplo de la FIG. 3.
Aunque en el presente documento se han descrito ciertos productos y métodos construidos de acuerdo con las enseñanzas de la invención, no se pretende que esta descripción se interprete en un sentido limitante. El alcance de la invención está definido por las reivindicaciones adjuntas.

Claims (15)

REIVINDICACIONES
1. Un método para recalcular resultados de consultas calculados previamente almacenados en un servidor de base de datos (4), en el que los resultados de consultas calculados previamente se componen de una pluralidad de recursos compartidos, en el que cada recurso compartido incluye un cierto número de resultados de consultas calculados previamente, en el que los recursos de cálculo de una máquina de cálculo (3) necesarios para recalcular un resultado de consulta calculado previamente de un primer recurso compartido dependen de si otros resultados de consultas calculados previamente del primer recurso compartido se recalculan o no durante un intervalo de tiempo dado formando un ciclo de recálculo actual, caracterizado por que el método comprende, en la máquina de cálculo (3):
- recibir una solicitud para recalcular los resultados de consultas calculados previamente del primer recurso compartido;
- determinar una cantidad de resultados de consultas calculados previamente en el primer recurso compartido para recalcularse en el ciclo de recálculo actual en base a un algoritmo de aprendizaje por refuerzo, estando limitado el número determinado de resultados de consultas calculados previamente por los recursos de cálculo de la máquina de cálculo disponibles durante el intervalo de tiempo dado, que comprende:
o recuperar, desde un servidor de estadísticas (7), una indicación de los resultados de consultas calculados previamente del primer recurso compartido que se han recalculado en un intervalo de tiempo anterior;
o determinar la aplicación de un modo de explotación del algoritmo de aprendizaje por refuerzo o la aplicación de un modo de exploración del algoritmo de aprendizaje por refuerzo basado en una función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada;
- almacenar el número determinado de resultados de consultas calculados previamente en el primer recurso compartido en el servidor de estadísticas (7) para una determinación posterior del número de resultados de consultas calculados previamente a recalcular en un ciclo de cálculo posterior; y
- recalcular el número determinado de resultados de consultas calculados previamente en el primer recurso compartido durante el ciclo de recálculo.
2. El método de la reivindicación 1, en el que la solicitud para recalcular los resultados de consultas calculados previamente del primer recurso compartido indica los resultados de consultas calculados previamente del primer recurso compartido que se van a recalcular, y el método comprende además determinar el número de resultados de consultas calculados previamente en el primer recurso compartido calculados en el primer recurso compartido que se recalcularán en función de los resultados de consultas calculados previamente indicados del al menos primer recurso compartido.
3. El método de la reivindicación 1, en el que el método comprende además calcular la función de valor del algoritmo de aprendizaje por refuerzo de forma iterativa a partir de un historial de recompensas recibidas previamente.
4. El método de la reivindicación 1 o la reivindicación 2, en el que el método comprende, además:
- en respuesta a la determinación de aplicar el modo de explotación, determinar el número de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará en el ciclo de cálculo actual en función de la función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada, asociando a la función de valor posibles selecciones de resultados de consultas calculados previamente en el al menos primer recurso compartido para recalcular con las respectivas recompensas estimadas.
5. El método de la reivindicación 4, en el que el método comprende además especificar las recompensas estimadas asociadas por la función de valor mediante una función de recompensa del algoritmo de aprendizaje por refuerzo que atribuye un valor agregado de una pluralidad de indicadores clave de rendimiento a una selección correspondiente de resultados de consultas calculados previamente del al menos un primer recurso compartido.
6. El método de la reivindicación 5, en el que el valor agregado de los indicadores clave de rendimiento se basa en al menos uno de los siguientes indicadores clave de rendimiento: suma de números de resultados de consultas calculados previamente que se recalcularán, tiempo transcurrido de recalcular los resultados de consultas calculados que se recalcularán en el intervalo de tiempo dado, recursos de cálculo máximos para recalcular los resultados de consultas calculados previamente indicados en la solicitud, y la memoria máxima requerida para recalcular los resultados de consultas calculados previamente indicados en la solicitud.
7. El método de una cualquiera de las reivindicaciones 3 a 6, en el que el método comprende además determinar aplicar el modo de explotación del algoritmo de aprendizaje por refuerzo o aplicar el modo de exploración del algoritmo de aprendizaje por refuerzo mediante
- determinar la recompensa otorgada por la función de valor para los resultados de consultas calculados previamente indicados por la indicación recuperada;
- determinar un número de ciclos de recálculo para aplicar el modo de explotación del algoritmo de aprendizaje por refuerzo basado en una comparación de la recompensa determinada con un umbral de recompensa;
- aplicar el modo de explotación del algoritmo de aprendizaje por refuerzo durante el ciclo de recálculo actual y los ciclos de recálculo posteriores dados por el número determinado de ciclos de recálculo.
8. El método de la reivindicación 7, en el que el método comprende además definir el umbral de recompensa por porcentajes dados de valores de umbral de los respectivos de la pluralidad de indicadores clave de rendimiento para los cuales recalcular durante el intervalo de tiempo dado daría como resultado un estado de error de la máquina de cálculo (3).
9. El método de la reivindicación 7 u 8, en el que el método comprende, además, en respuesta a la determinación de aplicar el modo de exploración, adaptar iterativamente el número de resultados de consultas calculados previamente indicados por la indicación recuperada al menos en función del número de resultados de consultas calculados previamente indicados por la indicación recuperada, la función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada y el umbral de recompensa.
10. El método de una cualquiera de las reivindicaciones 1 a 9, en el que el método comprende además determinar un número de recálculo, en el que el número de recálculo es el número óptimo de resultados de consultas calculados previamente de un recurso compartido que se recalculará durante un ciclo de cálculo.
11. El método de la reivindicación 10, en el que el método comprende además determinar el número de recálculo Wnuevo mediante
Figure imgf000020_0001
donde RECOMPENSAm ax es la recompensa máxima y Vk (W) es la función de valor del último número de recálculo explotado W.
12. El método de una cualquiera de las reivindicaciones 1 a 11, en el que el método comprende además determinar en respuesta a que la máquina de cálculo tiene recursos de cálculo insuficientes
o dividir al menos una parte de un recurso compartido completo en porciones;
o recalcular al menos la parte de un recurso compartido completo mediante la máquina de cálculo (3) durante una pluralidad de ciclos de cálculo
13. Una máquina de cálculo (3) para recalcular resultados de consultas calculados previamente almacenados en un servidor de base de datos (4), en la que los resultados de consultas calculados previamente se componen de una pluralidad de recursos compartidos, en el que cada recurso compartido incluye un cierto número de resultados de consultas calculados previamente., en el que los recursos de cálculo de la máquina de cálculo (3) necesarios para recalcular un resultado de consultas calculado previamente de un primer recurso compartido dependen de si otros resultados de consultas calculados previamente del primer recurso compartido se recalculan o no durante un determinado intervalo de tiempo que forma un ciclo de recálculo actual, caracterizado por que la máquina de cálculo está dispuesta para:
- recibir una solicitud para recalcular los resultados de consultas calculados previamente del primer recurso compartido;
- determinar una cantidad de resultados de consultas calculados previamente en el primer recurso compartido que se recalculará en el ciclo de recálculo actual basado en un algoritmo de aprendizaje por refuerzo, disponiéndolos para la cantidad determinada de resultados de búsqueda calculados previamente limitados por los recursos de cálculo de la máquina de cálculo disponibles durante el intervalo de tiempo dado, que comprende:
o recuperar, desde un servidor de estadísticas (7), una indicación de los resultados de consultas calculados previamente del primer recurso compartido que se han recalculado en un intervalo de tiempo anterior;
o determinar la aplicación de un modo de explotación del algoritmo de aprendizaje por refuerzo o la aplicación de un modo de exploración del algoritmo de aprendizaje por refuerzo basado en una función de valor del algoritmo de aprendizaje por refuerzo para el número de resultados de consultas calculados previamente indicados por la indicación recuperada;
- almacenar el número determinado de resultados de consultas calculados previamente en el primer recurso compartido en el servidor de estadísticas (7) para una determinación posterior del número de resultados de consultas calculados previamente a recalcular en un ciclo de cálculo posterior; y
- recalcular el número determinado de resultados de consultas calculados previamente en el primer recurso compartido durante el ciclo de recálculo.
14. La máquina de cálculo (3) de la reivindicación 13, que además está dispuesta para ejecutar la metodología según una cualquiera de las reivindicaciones 2 a 12.
15. Un programa informático que comprende instrucciones de código de programa almacenadas en un medio legible por ordenador para ejecutar las etapas del método según las reivindicaciones 1 a 12, cuando dicho programa se ejecuta en un ordenador (3).
ES19702063T 2018-01-25 2019-01-25 Recálculo de resultados de consultas calculados previamente Active ES2927601T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/879,654 US11593381B2 (en) 2018-01-25 2018-01-25 Re-computing pre-computed query results
FR1850581A FR3077146B1 (fr) 2018-01-25 2018-01-25 Recalcul de resultats precalcules d'interrogation
PCT/EP2019/051865 WO2019145480A1 (en) 2018-01-25 2019-01-25 Re-computing pre-computed query results

Publications (1)

Publication Number Publication Date
ES2927601T3 true ES2927601T3 (es) 2022-11-08

Family

ID=65237036

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19702063T Active ES2927601T3 (es) 2018-01-25 2019-01-25 Recálculo de resultados de consultas calculados previamente

Country Status (3)

Country Link
EP (1) EP3743823B1 (es)
ES (1) ES2927601T3 (es)
WO (1) WO2019145480A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3100630B1 (fr) 2019-09-05 2021-10-29 Amadeus Validation de la mise en mémoire-cache étendue et du temps de requête

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478742B2 (en) * 2004-04-14 2013-07-02 Oracle Corporation Using estimated cost to refresh a set of materialized views (MVS)
US10120899B2 (en) * 2013-03-14 2018-11-06 Oracle International Corporation Selective materialized view refresh
EP2913764B1 (en) 2014-02-19 2017-12-13 Amadeus S.A.S. Re-computing pre-computed search results

Also Published As

Publication number Publication date
EP3743823A1 (en) 2020-12-02
EP3743823B1 (en) 2022-08-24
WO2019145480A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
US9530093B2 (en) Solving vehicle routing problems using evolutionary computing techniques
US11593381B2 (en) Re-computing pre-computed query results
Chen et al. Reliable shortest path finding in stochastic networks with spatial correlated link travel times
ES2608392T3 (es) Validez a largo plazo de resultados de solicitud pre-calculados
US10060753B2 (en) On-demand shortcut computation for routing
ES2917749T3 (es) Método y producto informático y métodos para la generación y selección de reglas de acceso
US20230289857A1 (en) Dynamically adjusting transportation provider pool size
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
US10018476B2 (en) Live traffic routing
ES2882923T3 (es) Almacenamiento de memoria caché de base de datos
ES2927601T3 (es) Recálculo de resultados de consultas calculados previamente
US10657449B2 (en) System and method for load distribution in a network
BR112021007670A2 (pt) mecanismo de predição para um serviço baseado em rede
WO2020236250A1 (en) Efficient freshness crawl scheduling
Weerasinghe et al. From Traditional Adaptive Data Caching to Adaptive Context Caching: A Survey
Huang et al. A minimization problem of the risk probability in first passage semi-Markov decision processes with loss rates
ES2958718T3 (es) Actualización de datos almacenados en caché
WO2015124275A1 (en) Long-term validity of pre-computed request results
WO2014048572A1 (en) System and method for load distribution in a network
Delcoigne et al. Large deviations rate function for polling systems
CN116136416B (zh) 基于多特征融合滤波的实时轨迹优化方法和装置
CN115017215B (zh) 数据处理方法及计算设备
US12124511B1 (en) Systems and methods for optimizing search result generation
US11036798B1 (en) Systems and methods for optimizing search result generation
Futuhi et al. ETGL-DDPG: A Deep Deterministic Policy Gradient Algorithm for Sparse Reward Continuous Control