FR3077146A1 - RECALCULATION OF PRECALCULATED INTERVIEW RESULTS - Google Patents

RECALCULATION OF PRECALCULATED INTERVIEW RESULTS Download PDF

Info

Publication number
FR3077146A1
FR3077146A1 FR1850581A FR1850581A FR3077146A1 FR 3077146 A1 FR3077146 A1 FR 3077146A1 FR 1850581 A FR1850581 A FR 1850581A FR 1850581 A FR1850581 A FR 1850581A FR 3077146 A1 FR3077146 A1 FR 3077146A1
Authority
FR
France
Prior art keywords
precalculated
results
recalculation
query results
interrogation
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.)
Granted
Application number
FR1850581A
Other languages
French (fr)
Other versions
FR3077146B1 (en
Inventor
Jean-Philippe Aubry
Guillaume Le Grand
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
Application filed by Amadeus SAS filed Critical Amadeus SAS
Priority to FR1850581A priority Critical patent/FR3077146B1/en
Priority to EP19702063.9A priority patent/EP3743823B1/en
Priority to PCT/EP2019/051865 priority patent/WO2019145480A1/en
Priority to ES19702063T priority patent/ES2927601T3/en
Publication of FR3077146A1 publication Critical patent/FR3077146A1/en
Application granted granted Critical
Publication of FR3077146B1 publication Critical patent/FR3077146B1/en
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Abstract

Des résultats précalculés d'interrogation stockés sur un serveur de base de données sont recalculés par un dispositif de calcul. Les résultats précalculés d'interrogation sont composés d'une pluralité de parts. Chaque part inclut un certain nombre de résultats précalculés d'interrogation. Les ressources de calcul du dispositif de calcul, nécessaires pour recalculer un résultat précalculé d'interrogation d'une première part dépendent du fait de recalculer, ou pas, d'autres résultats précalculés de la première part qui sont recalculés au cours d'un intervalle de temps donné en formant un cycle de calcul actuel. Le dispositif de calcul reçoit une demande pour recalculer des résultats précalculés d'interrogation pour au moins une première part, détermine un nombre de résultats précalculés d'interrogation dans la première part devant être recalculée au cours du cycle de recalcul actuel sur la base d'un algorithme d'apprentissage par renforcement, et recalcule le nombre déterminé de résultats précalculés d'interrogation dans la première part.Precalculated query results stored on a database server are recalculated by a computing device. The precalculated query results are composed of a plurality of parts. Each share includes a number of precalculated query results. The calculation means of the computing device, necessary for recalculating a precalculated query result of a first part, depends on recalculating, or not, other pre-calculated results of the first part which are recalculated during an interval. given time by forming a current computation cycle. The computing device receives a request to recalculate precalculated query results for at least a first portion, determines a number of pre-computed query results in the first portion to be recalculated during the current recalculation cycle based on a reinforcement learning algorithm, and recalculates the determined number of precalculated query results in the first part.

Description

RECALCUL DE RÉSULTATS PRÉCALCULÉS D’INTERROGATIONRECALCULATING PRE-CALCULATED QUERY RESULTS

DOMAINE DE L’INVENTIONFIELD OF THE INVENTION

L’invention présente concerne de façon générale la technologie de base de données. Plus spécifiquement, elle vise à recalculer des résultats précalculés de recherche stockés comme enregistrements de base de données.The present invention relates generally to database technology. More specifically, it aims to recalculate pre-calculated search results stored as database records.

CONTEXTECONTEXT

Un problème courant en matière de technologie de base de données est d’assurer des temps de réponse courts aux interrogations de bases de données ou aux requêtes qui exigent un traitement complexe, long et des ressources importantes, p. ex. en raison de larges volumes de données. Ce traitement consommateur de puissance de calcul doit par exemple être mis en œuvre en réponse à des soi-disant « interrogations ouvertes » qui contiennent très peu d’informations saisies (p. ex. seulement un ou deux paramètres parmi une douzaine de paramètres possibles sont spécifiés et/ou la valeur spécifiée des fourchettes de valeur est large) et, par conséquent, renvoient en général un grand nombre de résultats. Les possibilités d’accélérer le traitement des données en augmentant la performance du matériel sont limitées. Ainsi, l’attention est portée sur l’amélioration des mécanismes sous-jacents du traitement complexe, long et requérant des ressources importantes afin de répondre à ces interrogations.A common problem in database technology is to ensure short response times to database queries or queries that require complex, time consuming processing and significant resources, eg. ex. due to large volumes of data. This computing power consumer processing must for example be implemented in response to so-called "open queries" which contain very little information entered (eg only one or two parameters among a dozen possible parameters are specified and / or the specified value of the value ranges is wide) and, therefore, generally return a large number of results. The possibilities for speeding up data processing by increasing hardware performance are limited. Attention is therefore focused on improving the mechanisms underlying complex, long and resource-intensive processing in order to answer these questions.

Une approche générale pour raccourcir les temps de réponse est de préparer des résultats à renvoyer en réponse à des requêtes attendues (p. ex. en calculant ou en collectant à l’avance ces résultats) et de conserver les résultats d’interrogation correspondants dans une réserve de résultats précalculés d’interrogation. Il s’ensuit que les requêtes ne sont pas actuellement traitées et les réponses basées sur la base importante des données d’origine, mais sont orientées vers la réserve de résultats précalculés d’interrogation.A general approach to shortening response times is to prepare results to be returned in response to expected queries (eg by calculating or collecting these results in advance) and to keep the corresponding query results in a reserve of pre-calculated interrogation results. It follows that the requests are not currently processed and the responses based on the large base of original data, but are directed towards the pool of precomputed query results.

Recalculer un large nombre de résultats précalculés d’interrogation est une tâche qui requiert une quantité substantielle de ressources de calcul. Ainsi, des mécanismes de recalcul sont recherchés pour effectuer le recalcul des résultats précalculés d’interrogation avec efficacité.Recalculating a large number of precomputed query results is a task that requires a substantial amount of computing resources. Thus, recalculation mechanisms are sought to effect the recalculation of the precalculated query results.

Demande de brevet n°18 50581 A5013307FRPOOMmPatent application n ° 18 50581 A5013307FRPOOMm

EP 2913764 concerne le recalcul de résultats précalculés de recherche où les ressources de calcul nécessaires pour recalculer un résultat précalculé de recherche i dépendent généralement du fait de recalculer, ou pas, d’autres résultats précalculés de recherche associés aux résultats précalculés de recherche i qui sont recalculés pendant le même cycle de calcul. Par conséquent, les ressources de calcul pour recalculer les résultats précalculés de recherche ne sont donc pas statiques, mais varient selon la sélection d’un ensemble de résultats précalculés de recherche devant être recalculés au cours d’un cycle de calcul. EP 2913764 propose un processus d’estimation itératif selon lequel un contrôleur de recalcul sélectionne de façon itérative un nombre de résultats précalculés de recherche pour être recalculés par la plateforme de calcul pendant un intervalle de temps donné formant un cycle de recalcul. Le nombre de résultats précalculés de recherche est limité par les ressources de calcul disponibles pendant l’intervalle de temps donné. Après l’initialisation des ressources de calcul Ci nécessaires pour recalculer chaque résultat précalculé de recherche i avec une valeur supposant le calcul de i indépendamment du calcul d’autres résultats précalculés de recherche sélectionnés pour un recalcul pendant l’intervalle de temps donné, une première portion des résultats précalculés de recherche est sélectionnée pour le recalcul dans une première itération de sélection, dans laquelle cette première portion sélectionnée ne nécessite qu’un pourcentage en dessous de 100 % des ressources globales de calcul disponibles pour le recalcul dans l’intervalle de temps donné. Les ressources de calcul Ci nécessaires pour recalculer chaque résultat précalculé de recherche i sont ensuite réévaluées en prenant en compte les résultats précalculés de recherche associés au résultat précalculé de recherche i qui ont été sélectionnés pour un recalcul. D’autres itérations pour sélectionner d’autres portions n’ayant pas encore été sélectionnées de résultats précalculés de recherche et pour réévaluer les ressources de calcul Ci nécessaires pour recalculer chaque résultat précalculé de recherche i sont alors effectuées si moins de 100 % des ressources globales de calcul disponibles pour un recalcul dans l’intervalle de temps donnés ont été épuisées.EP 2913764 relates to the recalculation of precalculated search results where the computing resources necessary to recalculate a precalculated search result i generally depend on the fact of recalculating, or not, other precalculated search results associated with the precalculated search results i which are recalculated during the same calculation cycle. Therefore, the computing resources for recalculating the pre-calculated search results are therefore not static, but vary depending on the selection of a set of pre-calculated search results to be recalculated during a calculation cycle. EP 2913764 proposes an iterative estimation process according to which a recalculation controller iteratively selects a number of precalculated search results to be recalculated by the calculation platform during a given time interval forming a recalculation cycle. The number of precomputed search results is limited by the computing resources available during the given time interval. After the initialization of the computing resources Ci necessary to recalculate each precalculated search result i with a value assuming the calculation of i independently of the calculation of other precalculated search results selected for recalculation during the given time interval, a first portion of the pre-calculated search results is selected for recalculation in a first selection iteration, in which this first selected portion requires only a percentage below 100% of the global computing resources available for recalculation in the time interval given. The computing resources Ci necessary to recalculate each pre-calculated search result i are then re-evaluated taking into account the pre-calculated search results associated with the pre-calculated search result i which have been selected for a recalculation. Other iterations to select other portions of the pre-calculated search results that have not yet been selected and to reassess the computing resources Ci necessary to recalculate each pre-calculated search result i are then performed if less than 100% of the global resources computations available for recalculation in the given time interval have been exhausted.

RÉSUMÉABSTRACT

Selon un premier aspect, un dispositif de calcul est fourni pour recalculer des résultats précalculés d’interrogation stockés sur un serveur de base de données. Les résultats précalculés d’interrogation sont composés d’une pluralité de parts. Chaque part inclut un certain nombre de résultats précalculés d’interrogation. Les ressources de calcul du dispositif de calcul, nécessaires pour recalculer un résultat précalculéAccording to a first aspect, a calculation device is provided for recalculating precalculated query results stored on a database server. The precalculated query results are composed of a plurality of parts. Each part includes a number of pre-computed query results. The computing resources of the computing device, necessary to recalculate a precalculated result

Demande de brevet n° 18 50581 A50133O7FRP0OMm d’interrogation d’une première part, dépendent du fait de recalculer, ou pas, d’autres résultats précalculés de la première part qui sont recalculés au cours d’un intervalle de temps donné en formant un cycle de calcul actuel. L’intervalle de temps donné forme un cycle de recalcul actuel. Le dispositif de calcul est agencé pour recevoir une requête de recalcul des résultats précalculés d’interrogation pour au moins une première part. Le dispositif de calcul est par ailleurs agencé pour déterminer un nombre de résultats précalculés d’interrogation dans la première part devant être recalculée dans le cycle de recalcul actuel sur la base d’un algorithme d’apprentissage par renforcement. Le nombre déterminé de résultats précalculés de recherche est limité par les ressources de calcul disponibles du dispositif de calcul pendant l’intervalle de temps donné. Le dispositif de calcul est par ailleurs agencé pour recalculer le nombre déterminé de résultats précalculés d’interrogation dans la première part.Patent application n ° 18 50581 A50133O7FRP0OMm of interrogation on the first hand, depend on the fact of recalculating, or not, other precalculated results of the first part which are recalculated during a given time interval by forming a current calculation cycle. The given time interval forms a current recalculation cycle. The computing device is arranged to receive a request for recalculation of the precalculated query results for at least a first share. The calculation device is also arranged to determine a number of precalculated query results in the first part to be recalculated in the current recalculation cycle on the basis of a reinforcement learning algorithm. The determined number of precomputed search results is limited by the available computing resources of the computing device during the given time interval. The calculation device is also arranged to recalculate the determined number of precalculated query results in the first part.

Selon un second aspect un procédé correspondant exécuté par un dispositif de calcul est fourni.According to a second aspect, a corresponding method executed by a computing device is provided.

Selon un troisième aspect, un programme informatique stocké sur un support de stockage est fourni qui, lorsqu’il est exécuté par un dispositif de calcul, équipe le dispositif de calcul avec la fonctionnalité correspondante.In a third aspect, a computer program stored on a storage medium is provided which, when executed by a computing device, equips the computing device with the corresponding functionality.

BRÈVE DESCRIPTION DES GRAPHIQUESBRIEF DESCRIPTION OF THE GRAPHICS

L’invention présente sera décrite en faisant référence aux graphiques qui l’accompagnent. Des numéros de référence similaires font généralement référence à des éléments fonctionnellement identiques ou similaires.The present invention will be described with reference to the accompanying graphics. Similar reference numbers generally refer to functionally identical or similar elements.

FIG. 1 décrit de façon schématique un exemple de système de base de données stockant des résultats précalculés interrogation.FIG. 1 schematically describes an example of a database system storing precomputed query results.

FIG. 2 est une représentation visuelle d’un effet de diminution de la probabilité de validité des résultats précalculés d’interrogation dans le temps.FIG. 2 is a visual representation of an effect of decreasing the probability of validity of the pre-calculated interrogation results over time.

FIG. 3 illustre des ressources de calcul variantes, nécessaires pour recalculer différentes parts exemplaires de résultats précalculés d’interrogation.FIG. 3 illustrates alternative computing resources, necessary for recalculating different exemplary parts of precalculated query results.

FIG. 4 est un schéma plus détaillé d’un système de recalcul tel qu’il est décrit dans les présentes.FIG. 4 is a more detailed diagram of a recalculation system as described herein.

FIG. 5 montre les éléments basiques du système d’apprentissage par renforcement.FIG. 5 shows the basic elements of the reinforcement learning system.

FIG. 6 illustre deux exemples d’un calcul agrégé d’indicateurs de performance clés.FIG. 6 illustrates two examples of an aggregated calculation of key performance indicators.

FIG. 7 montre un exemple de la mise à jour d’une fonction de valeur.FIG. 7 shows an example of the updating of a value function.

FIG. 8 est un flux séquentiel schématique avec des processus de haut niveau mis en œuvre par le dispositif de calcul et son sous-système décrits dans les présentes.FIG. 8 is a schematic sequential flow with high-level processes implemented by the computing device and its subsystem described herein.

FIG. 9 illustre une approche itérative basée sur l’apprentissage par renforcement pour déterminer un nombre optimal de résultats précalculés d’interrogation devant être recalculés pendant un cycle de calcul.FIG. 9 illustrates an iterative approach based on reinforcement learning to determine an optimal number of precalculated query results to be recalculated during a calculation cycle.

FIG. 10 est une vue exemplaire schématique de l’architecture interne du tableau de la base de données et/ou d’une requête d’un client.FIG. 10 is a schematic exemplary view of the internal architecture of the database table and / or of a client request.

DESCRIPTION DÉTAILLÉEDETAILED DESCRIPTION

Afin de pouvoir gérer des interrogations de bases de données ou des lots de requêtes de calcul qui exigent des calculs sur la base d’importants volumes de données sous-jacentes, les résultats de recherche correspondant à des interrogations attendues sont généralement précalculés et stockés comme enregistrements de base de données dans une base de données. Cette base de données est interrogée par des entités demandeuses (telles que des clients, des applications, des navigateurs installés sur des terminaux d’utilisateurs, etc.) au cours d’une recherche et des résultats précalculés de recherche qui remplissent les critères indiqués par l’interrogation sont renvoyés au client en réponse à l’interrogation. Par la suite, le terme « interrogation » est utilisé comme terme général incluant tout type de requêtes d’extraction d’informations telles que des interrogations transactionnelles, des requêtes pour des calculs de lots et d’autres formes.In order to be able to manage database queries or batches of calculation queries that require calculations based on large volumes of underlying data, the search results corresponding to expected queries are generally precomputed and stored as records from database to database. This database is queried by requesting entities (such as customers, applications, browsers installed on user terminals, etc.) during a search and pre-calculated search results that meet the criteria indicated by the query is returned to the client in response to the query. Thereafter, the term "interrogation" is used as a general term including any type of information retrieval queries such as transactional queries, queries for batch calculations and other forms.

FIG. 1 illustre un tel environnement de base de données 1 à un niveau abstrait. Une donnée basique, également dénommée ci-après « donnée de calcul » est conservée dans et/ou accédée par un dispositif de calcul 3 qui est connecté à un contrôleur de recalcul 2. Ce dernier émet des ordres de recalcul au dispositif de calcul 3 qui, à son tour, transmet les résultats correspondants à la plateforme de recherche 4 et, qui plus est, au contrôleur de recalcul 2 qui stocke aussi les résultats précalculés de recherche pour des raisons de contrôle de recalcul. Les utilisateurs finaux 5 tels que les applications sur des terminaux d’utilisateurs accèdent aux résultats précalculés de recherche à partir de la plateforme de recherche 4. Comme indiqué par la FIG. 1, une ou plusieurs plateformes de recherche 4 peuvent être présentes dans l’environnement 1. Si une pluralité de plateformes 4 est présente, les résultats précalculés de recherche peuvent être stockés d’une manière distribuée entre plusieurs des plateformes de recherche 4 et le contrôleur de recalcul 2 peut contrôler les recalculs de tous les résultats précalculés de recherche distribués entre les plateformes de recherche 4. La plateforme de recherche 4 peut aussi offrir un ensemble hétérogène de requêtes précalculées de recherche, p. ex. des plateformes de recherche 4 stockent des requêtes précalculées de recherche concernant un transport aérien, d’autres plateformes de recherche 4 stockent des requêtes précalculées de recherche liées aux assurances et d’autres plateformes de recherche 4 stockent des requêtes précalculées (ou préextraites) liées à des sites Web sur Internet. Un tel environnement hétérogène peut être contrôlé par un seul contrôleur de recalcul 2 ou par une pluralité de contrôleurs de recalcul 2. Autrement, la pluralité des plateformes de recherche 4 peut être utilisée pour refléter les mêmes résultats précalculés de recherche, par exemple, pour des raisons de redondance.FIG. 1 illustrates such a database environment 1 at an abstract level. Basic data, also referred to below as "calculation data", is stored in and / or accessed by a calculation device 3 which is connected to a recalculation controller 2. The latter issues recalculation orders to the calculation device 3 which , in turn, transmits the corresponding results to the search platform 4 and, moreover, to the recalculation controller 2 which also stores the pre-calculated search results for reasons of recalculation control. End users 5 such as applications on user terminals access the pre-calculated search results from the search platform 4. As shown in FIG. 1, one or more search platforms 4 can be present in the environment 1. If a plurality of platforms 4 is present, the precomputed search results can be stored in a distributed manner between several of the search platforms 4 and the controller Recalculation 2 can control the recalculations of all the pre-calculated search results distributed between the search platforms 4. The search platform 4 can also offer a heterogeneous set of pre-calculated search queries, p. ex. search platforms 4 store pre-calculated search requests relating to air transport, other search platforms 4 store pre-calculated search requests linked to insurance and other search platforms 4 store pre-calculated (or pre-extracted) requests linked to websites on the Internet. Such a heterogeneous environment can be controlled by a single recalculation controller 2 or by a plurality of recalculation controllers 2. Otherwise, the plurality of research platforms 4 can be used to reflect the same precomputed research results, for example, for reasons for redundancy.

L’approche de précalcul des résultats de recherche et de leur stockage sur la plateforme de recherche accessible aux clients demandeurs conduit à la situation générale que les données de calcul peuvent changer dans le temps et, par conséquent, les résultats précalculés de recherche deviennent obsolètes ou invalides (les deux termes sont utilisés comme synonymes dans les présentes). Les résultats précalculés de recherche qui sont toujours d’actualité, c.-à-d. qui correspondent à des calculs équivalents correspondants en temps réel (des résultats qui seraient actuellement calculés à la demande sans disposer de résultats précalculés de recherche) sont dénommés résultats précalculés de recherche « exacts » ci-après dans les présentes. Par conséquent, lorsque la plateforme de recherche qui stocke les résultats précalculés de recherche représente correctement l’état actuel sous-jacent du domaine de données des résultats d’interrogation en antémémoire, c.-à-d. que les données de calcul, les résultats précalculés de recherche stockés sur la plateforme de recherche sont — en général — exacts.The approach of precalculating search results and their storage on the search platform accessible to requesting customers leads to the general situation that the calculation data can change over time and, therefore, the precalculated search results become obsolete or invalid (both terms are used as synonyms herein). Pre-computed research results that are still relevant, i.e. which correspond to corresponding equivalent calculations in real time (results which would currently be calculated on demand without having pre-calculated search results) are hereinafter referred to as “exact” pre-calculated search results. Therefore, when the search platform that stores the precalculated search results correctly represents the current underlying state of the cached query results data domain, i.e. that the calculation data, the pre-calculated search results stored on the search platform are - in general - correct.

Généralement, pour permettre à la- plateforme de recherche de renvoyer des résultats corrects, on voudra conserver un niveau élevé de corrélation entre les résultats précalculés de recherche qui sont fournis par l’entité d’interrogation en réponse à des interrogations de la base de données et leurs équivalents de calcul en temps réel. En même temps, il est néanmoins souhaitable de minimiser la consommation de ressources de calcul occasionnée par les recalculs, c.-à-d. d’éviter tout recalcul non nécessaire tel que les recalculs de résultats d’interrogation en antémémoire qui sont toujours d’actualité. Les ressources de calcul sont limitées et généralement il n’y a pas assez de ressources de calcul pour recalculer tous les résultats précalculés de recherche à tout moment. Par conséquent, il faut trouver un compromis entre l’exactitude des résultats précalculés d’interrogation et l’utilisation de la puissance de calcul disponible.Generally, to allow the search platform to return correct results, one will want to maintain a high level of correlation between the pre-calculated search results that are provided by the query entity in response to queries from the database. and their real-time computing equivalents. At the same time, it is nevertheless desirable to minimize the consumption of computing resources caused by the recalculations, i.e. to avoid any unnecessary recalculation such as recalculation of cached query results which are still current. Computing resources are limited and generally there are not enough computing resources to recalculate all pre-computed search results at any time. Therefore, a compromise must be found between the accuracy of the pre-computed query results and the use of the available computing power.

Afin de rendre le recalcul plus efficace, des métriques sont définies pour évaluer la « nécessité » ou « l’absence de nécessité » d’un recalcul. Par exemple, relancer un recalcul global, massif chaque jour n’en vaut peut-être pas la peine, si moins de la moitié des résultats calculés d’interrogation s’avèrent être obsolètes. D’autre part, si des catégories de résultats d’interrogation sont connues pour changer fréquemment, les recalculer plusieurs fois par jour peut s’avérer bénéfique en termes d’exactitude. Par conséquent, une façon effective d’évaluer ou d’estimer l’exactitude des résultats de recherche est nécessaire, en prenant généralement en compte à la fois les gains attribuables^, l’exactitude et le coût du recalcul. Dans ce but, des mécanismes modèlent la validité décroissante des résultats précalculés d’interrogation dans le temps. Deux de ces fonctions exemplaires d’exactitude probable diminuant dans le temps sont illustrées par la FIG. 2. La fonction 10 représente un résultat précalculé de recherche qui reste potentiellement plus exact (ou plus précisément, demeure à une probabilité élevée d’être valide dans le temps) qu’un autre résultat précalculé de recherche associé à la fonction 11. Par exemple, le résultat précalculé de recherche représenté par la fonction 10 a 70 % de probabilité d’être encore valide 35 heures après son dernier recalcul alors que la validité de l’autre résultat précalculé de recherche caractérisé par la fonction 11 ne va pas au-delà de 50 % environ 35 heures après son dernier recalcul. Les fonctions 10 et 11 peuvent aussi représenter des ensembles entiers de résultats précalculés de recherche et indiquer ensuite des proportions des ensembles de résultats précalculés de recherche vraisemblablement valides à un moment dans le passé depuis le dernier recalcul de l’ensemble.In order to make the recalculation more efficient, metrics are defined to assess the "necessity" or "the absence of necessity" of a recalculation. For example, relaunching a global, massive recalculation every day may not be worth it, if less than half of the calculated query results turn out to be out of date. On the other hand, if categories of query results are known to change frequently, recalculating them several times a day may prove to be beneficial in terms of accuracy. Therefore, an effective way to assess or estimate the accuracy of research results is necessary, generally taking into account both attributable earnings, accuracy and the cost of recalculation. To this end, mechanisms model the decreasing validity of the pre-calculated interrogation results over time. Two of these exemplary functions of probable accuracy decreasing over time are illustrated in FIG. 2. Function 10 represents a precalculated search result which remains potentially more exact (or more precisely, remains at a high probability of being valid over time) than another precalculated search result associated with function 11. For example , the pre-calculated search result represented by function 10 has a 70% probability of being still valid 35 hours after its last recalculation while the validity of the other pre-calculated search result characterized by function 11 does not go beyond by 50% approximately 35 hours after its last recalculation. Functions 10 and 11 can also represent entire sets of pre-calculated search results and then indicate proportions of the pre-calculated search result sets likely valid at some point in the past since the last recalculation of the set.

Souvent, les considérations de recalcul des résultats précalculés d’interrogation supposent que le recalcul de tout résultat précalculé de recherche par le dispositif de calcul 3 exige substantiellement la même quantité de ressources de calcul sans tenir compte du fait que les résultats précalculés de recherche sont calculés séparément, ensemble avec des résultats précalculés d’interrogation associés (p. ex. de mêmes origine, destination et dates adjacentes) ou tout autre résultat non associé d’interrogation. Cependant, en pratique cette supposition ne peut généralement pas être faite, car certains résultats précalculés d’interrogation et/ou leurs données sous-jacentes correspondantes de calcul sont, par exemple, interdépendants. Recalculer ces résultats précalculés d’interrogation interdépendants ensemble (c.-à-d. pendant un même cycle de recalcul) pourrait inclure des effets synergiques et pourrait ainsi être plus efficace que de les recalculer séparément. Par conséquent, quand des résultats précalculés d’interrogation interdépendants sont recalculés ensemble les coûts de calcul par résultat prëcalculé d’interrogation individuel sont généralement moindres que le coût de calcul par résultat précalculé d’interrogation individuel requis s’ils sont recalculés séparément (c.-à-d. au cours de différents cycles de recalcul.Often, considerations of recalculating pre-computed query results assume that the recalculation of any pre-calculated search result by the computing device 3 requires substantially the same amount of computing resources regardless of whether the pre-calculated search results are calculated. separately, together with associated precalculated query results (eg from the same origin, destination and adjacent dates) or any other non-associated query results. However, in practice this assumption cannot generally be made, since certain precalculated query results and / or their corresponding underlying calculation data are, for example, interdependent. Recalculating these pre-computed interdependent query results together (i.e. during the same recalculation cycle) could include synergistic effects and could therefore be more effective than recalculating them separately. Therefore, when pre-calculated interdependent query results are recalculated together the calculation costs per pre-calculated individual query result are generally less than the cost of calculation per pre-calculated individual query result required if they are recalculated separately (c. i.e. during different recalculation cycles.

Pour faciliter la compréhension des résultats précalculés de recherche interdépendants, un exemple particulier va maintenant être présenté. Cet exemple provient d’une application particulière de 1 ’environnement de base de données distribuée 1 dans l’industrie du voyage (c.à-d. que la base de données 4 stocke des résultats précalculés de recherche liés au voyage et les met à la disponibilité des utilisateurs finaux. Cependant, l’exemple suivant n’est pas supposé limiter les résultats précalculés de recherche interdépendants à une telle application de données liée au voyage. Au lieu de cela, des conditions similaires ou analogues permettant un recalcul synergique, et donc plus efficace de résultats précalculés de recherche interdépendants, sont présents dans des systèmes de base de données indépendants du contenu des ensembles de données précalculés. En général, on peut dire que tout processus de recalcul des résultats précalculés de recherche vise à une mutualisation de sous-tâches de recalcul qui doivent être exécutées couramment pour tout résultat précalculé de recherche d’un ensemble de résultats précalculés de recherche. Ainsi, le recalcul groupé des résultats précalculés de recherche qui ont de telles sous-tâches de recalcul en commun est généralement plus favorable que le recalcul groupé de requêtes précalculées de recherche qui ne partagent pas des sous-tâches de recalcul similaires.To facilitate understanding of the pre-calculated interdependent research results, a specific example will now be presented. This example is from a particular application of the distributed database environment 1 in the travel industry (i.e., the database 4 stores and computes pre-calculated travel related search results availability of end users. However, the following example is not intended to limit the pre-computed interdependent search results to such a travel-related data application. Instead, similar or analogous conditions for synergistic recalculation, and therefore more efficient from pre-computed interdependent search results, are present in database systems independent of the content of pre-calculated data sets. In general, we can say that any process of recalculating pre-calculated search results aims at a pooling of sub - recalculation tasks which must be performed fluently for any precalculated research result he of a set of pre-calculated search results. Thus, the group recalculation of the pre-calculated search results which have such recalculation sub-tasks in common is generally more favorable than the group recalculation of pre-calculated search queries which do not share similar recalculation sub-tasks.

Dans un mode de réalisation particulier, les requêtes précalculées de recherche sont pour des d’enregistrements de données de vols aller-retour, chacun spécifiant une origine de voyage et une destination, et une date de départ et d’arrivée (ou une durée de séjour relative à la date de départ comme alternative à la date d’arrivée). Dans cet exemple, la base de données 4 contient 5 des recommandations précalculées de voyage aller-retour pour toute paire origine-destination et toute paire départ-date d’arrivée devant être couvertes. Le tableau 1 indique un petit extrait de recommandations précalculées de voyage conservées dans la base de données 4, l’extrait étant des recommandations de voyage pour la paire de villes Nice-Boston (« NCE-BOS ») et pour des dates de départ du 1er juillet au 5 juillet avec une durée de séjour maximum de cinq 10 jours, l’abréviation «pc-fr x» signifie «nombre x de recommandations précalculées de voyage ».In a particular embodiment, the pre-calculated search queries are for round trip flight data records, each specifying a travel origin and a destination, and a departure and arrival date (or a duration of stay relative to the departure date as an alternative to the arrival date). In this example, database 4 contains 5 pre-calculated round trip recommendations for any origin-destination pair and any departure-arrival date pair to be covered. Table 1 shows a small extract from pre-calculated travel recommendations kept in database 4, the extract being travel recommendations for the city pair Nice-Boston (“NCE-BOS”) and for departure dates from July 1 to July 5 with a maximum stay of five 10 days, the abbreviation "pc-fr x" means "number x of pre-calculated travel recommendations".

NCE-BOS NCE-BOS Dep. 1 JUL. Dep. 1 JUL. Dep. 2 JUIL. Dep. JUL 2. Dep. 3 JUIL. Dep. JUL 3. Dep. 4 JUIL. Dep. JUL 4. Dep. 5 JUIL. Dep. JUL 5. Ret. 2 JUIL. Ret. JUL 2. pc-fr 0 pc-fr 0 - - - - Ret. 3 JUIL. Ret. JUL 3. pc-fr 1 pc-en 1 pc-fr 5 pc-fr 5 - - - Ret. 4 JUIL. Ret. JUL 4. pc-fr 2 pc-en 2 pc-fr 6 pc-en 6 pc-fr 10 pc-en 10 - - Ret. 5 JUIL. Ret. JUL 5. pc-fr 3 pc-en 3 pc-fr 7 pc-en 7 pc-fr 11 pc-en 11 pc-fr 15 pc-fr 15 - Ret. 6 JUIL. Ret. JUL 6. pc-fr 4 pc-en 4 pc-fr 8 pc-fr 8 pc-fr 12 pc-en 12 pc-fr 16 pc-fr 16 pc-fr 20 pc-fr 20 Ret. 7 JUIL. Ret. JUL 7. - pc-fr 9 pc-fr 9 pc-fr 13 pc-fr 13 pc-fr 17 pc-en 17 +pc-fr 21 + pc-en 21 Ret. 8 JUL. Ret. 8 JUL. - - pc-fr 14 pc-en 14 pc-fr 18 pc-en 18 pc-fr 22 pc-en 22 Ret. 9 JUIL. Ret. JUL 9. - -- - - pc-fr 19 pc-en 19 pc-fr 23 pc-en 23 Ret. 10 JUIL. Ret. JUL 10. -- - - - pc-fr 24 pc-en 24

Tableau 1Table 1

Le recalcul d’une recommandation précalculée particulière de voyage, par exemple pc-fr 9 15 relative à une date de départ le 2 juillet et une date de retour le 7 juillet, est plus ou moins effectué par le dispositif de calcul 3 par les sous-tâches suivantes :The recalculation of a specific pre-calculated travel recommendation, for example pc-fr 9 15 relating to a departure date on July 2 and a return date on July 7, is more or less carried out by the calculation device 3 by the sub - following tasks:

1: Récupération des routes géographiques possibles entre Nice et Boston incluant des arrêts/correspondances intermédiaires, par exemple : Nice-Paris-Boston, Nice-LondresBoston, Nice-New York-Boston, Nice-Paris-New York-Boston, etc.1: Recovery of possible geographic routes between Nice and Boston including intermediate stops / connections, for example: Nice-Paris-Boston, Nice-London Boston, Nice-New York-Boston, Nice-Paris-New York-Boston, etc.

2: L’identification de tous les vols possibles sur toutes les routes récupérées par l’activité 1 : par exemple, Air France 123 et Emirates 7123 pour le segment Nice-Paris, Air France 456 et American Airlines 564 et United Airlines 125 pour le segment ParisNew York, etc.2: The identification of all possible flights on all routes recovered by activity 1: for example, Air France 123 and Emirates 7123 for the Nice-Paris segment, Air France 456 and American Airlines 564 and United Airlines 125 for the ParisNew York segment, etc.

a. Cette activité est effectuée pour la portion de départ du voyage à la date de départ le 2 juillet (sous-tâche 2a) etat. This activity is performed for the departure portion of the trip on the departure date July 2 (subtask 2a) and

b. pour la portion de retour du voyage à la date de retour le 7 juillet (sous-tâche 2b) parce que les vols ne sont généralement pas disponibles tous les jours.b. for the return portion of the trip on the return date July 7 (subtask 2b) because flights are generally not available daily.

3: La vérification de la disponibilité de tous les vols par les activités 2a et 2b, c.-à-d. le 2 juillet pour la portion de départ du voyage (= sous-tâche 3a) et le 7 juillet pour la portion de retour du voyage (- sous-tâche 3b).3: Checking the availability of all flights by activities 2a and 2b, i.e. July 2 for the departure portion of the trip (= subtask 3a) and July 7 for the return portion of the trip (- subtask 3b).

4: La récupération des tarifs qui sont appliqués à ces vols à ces dates. Un tarif typique est une règle qui produit un prix pour l’ensemble du voyage. Cependant, les tarifs peuvent aussi être valides pour les portions de départ et de retour du voyage à leurs dates respectives auquel cas ils peuvent être récupérés une fois pour la portion de départ (= sous-tâche 4a) et une fois pour la portion de retour du voyage (= sous-tâche 4b). Les tarifs ont des restrictions pour les dates de départ, pour les dates de retour, sur les vols applicables, et beaucoup d’autres. Les tarifs peuvent être combinés, réduits dans des cas spécifiques et ainsi de suite.4: The recovery of the tariffs which are applied to these flights on these dates. A typical fare is a rule that produces a price for the entire trip. However, the rates may also be valid for the departure and return portions of the trip on their respective dates in which case they can be recovered once for the departure portion (= sub-task 4a) and once for the return portion of the trip (= subtask 4b). Fares have restrictions on departure dates, return dates, applicable flights, and many others. Tariffs can be combined, reduced in specific cases and so on.

5: La meilleure solution, c.-à-d. la correspondance au meilleur prix est retenue, renvoyée par le dispositif de calcul 3 et stockée par la base de données 4 sous pc-ff 9.5: The best solution, i.e. the correspondence at the best price is retained, returned by the calculation device 3 and stored by the database 4 under pc-ff 9.

Ces sous-tâches sont effectuées d’une manière similaire pour toute recommandation précalculée de voyage. En effectuant le recalcul pour l’ensemble complet des recommandations précalculées de voyage (pc-fr 0 à pc-fr 24), plusieurs sous-tâches de recalcul peuvent être mutualisées. L’exécution de la sous-tâche 1 est nécessaire une seule fois pour l’ensemble complet des recommandations de voyage pc-fr 0 à pc-fr 24 parce que toutes ces recommandations précalculées de voyage appartiennent à la même paire de villes originedestination, Nice-Boston. Ainsi, la sous-tâche 1 n’a pas besoin d’être réeffectuée pour chaque résultat précalculé de recherche pc-fr 0 à pc-fr 24.These subtasks are performed in a similar manner for any pre-calculated travel recommendations. By performing the recalculation for the complete set of pre-calculated travel recommendations (pc-fr 0 to pc-fr 24), several recalculation subtasks can be pooled. Execution of sub-task 1 is necessary only once for the complete set of travel recommendations pc-fr 0 to pc-fr 24 because all these pre-calculated travel recommendations belong to the same pair of cities of origindestination, Nice -Boston. Thus, subtask 1 does not need to be re-performed for each precalculated search result pc-fr 0 to pc-fr 24.

Les sous-tâches 2a, 3a et la sous-tâche 4 sont, d’un autre côté, spécifiques à une date de départ. Elles peuvent donc être réutilisées pour toutes les recommandations précalculées de voyage relatives à une et même date de départ. Ceci est indiqué par le tableau 2 pour les 5 recommandations précalculées de voyage pc-fr 5 à pc-fr 9 relatives à la date de départ du 2 juillet :Sub-tasks 2a, 3a and sub-task 4 are, on the other hand, specific to a start date. They can therefore be reused for all pre-calculated travel recommendations relating to the same departure date. This is indicated in Table 2 for the 5 pre-calculated travel recommendations pc-fr 5 to pc-fr 9 relating to the departure date of July 2:

NCE-BOS NCE-BOS Dep. 1 JUIL. Dep. JUL 1. Dep. 2 JUIL. Dep. JUL 2. Dep. 3 JUIL. Dep. JUL 3. Dep. 4 JUIL. Dep. JUL 4. Dep. 5 JUIL. Dep. JUL 5. Ret. 2 JUIL. Ret. JUL 2. pc-fr 0 pc-fr 0 - - - -- - Ret. 3 JUIL. Ret. JUL 3. pc-fr 1 pc-en 1 Sous-tâches communes : 2a, 3a, 4a Common subtasks: 2a, 3a, 4a - - - - Ret. 4 JUIL. Ret. JUL 4. pc-fr 2 pc-en 2 pc-fr 10 pc-en 10 - -- - Ret. 5 JUIL. Ret. JUL 5. pc-fr 3 pc-en 3 pc-fr 11 pc-en 11 pc-fr 15 pc-fr 15 - Ret. 6 JUIL. Ret. JUL 6. pc-fr 4 pc-en 4 pc-fr 12 pc-en 12 pc-fr 16 pc-fr 16 pc-fr 20 pc-fr 20 Ret. 7 JUIL. Ret. JUL 7. -- - pc-fr 13 pc-fr 13 pc-fr 17 pc-en 17 pc-fr 21 pc-en 21 Ret. 8 JUIL. Ret. 8 JUL. - - pc-fr 14 pc-en 14 pc-fr 18 pc-en 18 pc-fr 22 pc-en 22 Ret 9 JUIL. Ret 9 JUL. - - - pc-fr 19 pc-en 19 pc-fr 23 pc-en 23 Ret. 10 JUIL. Ret. JUL 10. -- - - - - pc-fr 24 pc-en 24

Tableau 2Table 2

De la même façon, les sous-tâches 2b, 3 b et 4b sont spécifiques à une date de retour, par conséquent, elles sont couramment effectuées pour les recommandations précalculées de voyage relatives à une et même date de retour. Ceci est illustré par le tableau 3 pour les recommandations précalculées de voyage pc-fr 9, pc-fr 13, pc-fr 17 et pc-fr 21, toutes étant relatives à la date de retour du 7 juillet.Similarly, subtasks 2b, 3b and 4b are specific to a return date, therefore, they are commonly performed for pre-calculated travel recommendations for one and the same return date. This is illustrated in Table 3 for the pre-calculated travel recommendations pc-fr 9, pc-fr 13, pc-fr 17 and pc-fr 21, all relating to the return date of July 7.

NCE-BOS NCE-BOS Dep. 1 JUIL. Dep. JUL 1. Dep. 2 JUIL. Dep. JUL 2. Dep. 3 JUIL. Dep. JUL 3. Dep. 4 JUIL. Dep. JUL 4. Dep. 5 JUIL. Dep. JUL 5. Ret. 2 JUIL. Ret. JUL 2. pc-fr 0 pc-fr 0 - - - - Ret. 3 JUIL. Ret. JUL 3. pc-ff 1 pc-ff 1 pc-ff 5 pc-ff 5 - - - Ret. 4 JUIL. Ret. JUL 4. pc-fr 2 pc-en 2 pc-fr 6 pc-en 6 pc-fr 10 pc-en 10 - - Ret. 5 JUIL. Ret. JUL 5. pc-fr 3 pc-en 3 pc-fr 7 pc-en 7 pc-fr 11 pc-en 11 pc-fr 15 pc-fr 15 - Ret. 6 JUIL. Ret. JUL 6. pc-fr 4 pc-en 4 pc-fr 8 pc-fr 8 pc-fr 12 pc-en 12 pc-fr 16 pc-fr 16 pc-fr 20 pc-fr 20 Ret. 7 JUIL. Ret. JUL 7. - Sous-tâches communes : 2b, 3b, 4b Common subtasks: 2b, 3b, 4b Ret. 8 JUIL. Ret. 8 JUL. - - pc-fr 14 pc-en 14 pc-fr 18 pc-en 18 pc-fr 22 pc-en 22 Ret. 9 JUIL. Ret. JUL 9. - - - pc-fr 19 pc-en 19 pc-fr 23 pc-en 23 Ret. 10 JUIL. Ret. JUL 10. - - - - pc-fr 24 pc-en 24

Tableau 3Table 3

Ainsi, pour résumer, seule une partie de la sous-tâche 4, notamment la récupération des tarifs qui ne sont pas valides pour toute la portion de départ du voyage et pour toute la portion de retour du voyage, mais qui sont spécifiques aux sous-ensembles ou aux recommandations particulières de voyage, doit être effectuée séparément pour chaque recommandation précalculée de voyage alors que d’autres sous-tâches peuvent être effectuées en commun pour toutes les recommandations précalculées de voyage relatives à la même paire de villes originedestination (vrai pour la sous-tâche 1) ou au moins pour les recommandations de voyages relatives à la même date de départ (sous-tâches 2a, 3 a et 4a) ou à la même date de retour (soustâches 2b, 3b et 4b). Par conséquent, plus les recommandations précalculées sont liées à une paire de villes origine-destination et plus les recommandations précalculées de voyage liées à une date de départ et une date de retour respectivement plus les ressources de calcul peuvent être économisées en mutualisant ces sous-tâches entre les requêtes respectives précalculées de vols.To summarize, only part of sub-task 4, in particular the recovery of fares which are not valid for the entire departure portion of the trip and for the entire return portion of the trip, but which are specific to the sub- sets or specific travel recommendations, must be carried out separately for each pre-calculated travel recommendation while other subtasks can be carried out jointly for all pre-calculated travel recommendations relating to the same pair of cities of origin destination (true for sub-task 1) or at least for travel recommendations relating to the same departure date (sub-tasks 2a, 3 a and 4a) or to the same return date (sub-tasks 2b, 3b and 4b). Consequently, the more the pre-calculated recommendations are linked to a pair of origin-destination cities and the more the pre-calculated travel recommendations linked to a departure date and a return date respectively, the more the calculation resources can be saved by pooling these subtasks. between the respective precomputed flight requests.

Cette relation entre les effets synergiques croissants et un nombre croissant de recommandations précalculées de voyage relatives à une paire de villes origine-destination et à une date de départ ou de retour est aussi représentée visuellement par la FIG. 3. La FIG. 3 montre six graphiques d’ensembles de recommandations précalculées de voyage, chaque ensemble appartenant à une paire de villes origine-destination et formant un exemple d’une part de résultats précalculés d’interrogation tels qu’ils sont utilisés dans les présentes. En nombre décroissant de recommandations précalculées de voyage associé à une paire de villes, le graphique 36 est relatif à la paire de villes New York-Buffalo, le graphique 37 à New YorkMinsk, le graphique 38 à New York-Hilo, Hawaï, le graphique 39 à New York-Bilbao, le graphique 40 à New York -Male et finalement, le graphique 41 à New York-Mauritius. L’axe x du diagramme de la FIG. 3 dénote le nombre de recommandations précalculées de voyage alors que l’axe y trace une mesure des ressources de recalcul nécessaires pour effectuer un recalcul des recommandations précalculées de voyage, notamment le temps machine (CPU).This relationship between the growing synergistic effects and an increasing number of pre-calculated travel recommendations relating to a pair of origin-destination cities and a departure or return date is also visually represented by FIG. 3. FIG. 3 shows six graphs of sets of pre-calculated travel recommendations, each set belonging to a pair of origin-destination cities and forming an example of a part of pre-calculated query results as used herein. In decreasing number of pre-calculated travel recommendations associated with a city pair, Chart 36 relates to the New York-Buffalo city pair, Chart 37 in New YorkMinsk, Chart 38 in New York-Hilo, Hawaii, the chart 39 in New York-Bilbao, graph 40 in New York -Male and finally, graph 41 in New York-Mauritius. The x-axis of the diagram in FIG. 3 denotes the number of pre-calculated travel recommendations while the axis plots a measure of the recalculation resources necessary to perform a recalculation of the pre-calculated travel recommendations, in particular machine time (CPU).

D’un côté, la FIG. 3 montre qu’un recalcul de certains ensembles de recommandations précalculées exige plus de ressources de calcul que d’autres. Par exemple, le recalcul de recommandations précalculées de voyage de l’ensemble 41 incluant des recommandations précalculées de voyage pour des vols entre New York et Mauritius est généralement plus coûteux que le recalcul des recommandations précalculées de voyage de l’ensemble 36 incluant des recommandations précalculées de voyage pour des vols entre New York et Buffalo. Cette différence générale de la quantité de ressources de calcul nécessaires pour recalculer des recommandations précalculées de voyage est prise en compte par l’inclusion des coûts de recalcul C dans l’indicateur de recalcul comme on vient de l’expliquer en détail ci-dessus. Cependant, les graphiques de la FIG. 3 indiquent aussi que les coûts de recalcul varient avec le nombre de recommandations précalculées de voyage d’un ensemble en cours de recalcul. En général, plus les recommandations précalculées de voyage relatives à un ensemble sont recalculées ensemble, moins de ressources de calcul sont nécessaires pour recalculer chaque recommandation précalculée de voyage. Par exemple, le graphique 36 indique que recalculer au 32 les recommandations précalculées de voyage pour l’ensemble New York-Buffalo exige environ 1000 ms de CPU, c.-à-d. à peu près 31,25 ms de CPU par recommandation précalculée de voyage, alors que le recalcul au 170 de recommandations précalculées de voyage nécessite environ 5000 ms de CPU, c.-à-d. seulement 29,4 ms environ de CPU par recommandation précalculée de voyage. Par rapport au graphique 38 relatif à la paire de villes New York-Hilo, recalculer au 35 les recommandations précalculées de voyage de cet ensemble nécessite environ 10 000 ms de CPU, c.-à-d. 286 ms de CPU par recommandation précalculée de voyage alors que le recalcul, au 140, des recommandations précalculées de voyage de cet ensemble exige environ 25 000 ms de CPU, c.-à-d. seulement 178,5 ms de CPU par recommandation précalculée de voyage. Par conséquent, il est clair que les recommandations précalculées de voyage appartenant à une paire de villes origine-destination (l’exemple présent d’une part) sont interdépendantes en matière de ressources informatiques requises pour leur recalcul comme expliqué ci-dessus.On the one hand, FIG. 3 shows that a recalculation of certain sets of precalculated recommendations requires more computing resources than others. For example, recalculating pre-calculated travel recommendations from set 41 including pre-calculated travel recommendations for flights between New York and Mauritius is generally more costly than recalculating pre-calculated travel recommendations from set 36 including pre-calculated recommendations for flights between New York and Buffalo. This general difference in the amount of computing resources required to recalculate pre-calculated travel recommendations is taken into account by the inclusion of recalculation costs C in the recalculation indicator, as explained in detail above. However, the graphs in FIG. 3 also indicate that the recalculation costs vary with the number of pre-calculated recommendations for the travel of a set being recalculated. In general, the more recalculated travel recommendations for a set are recalculated together, the less computational resources are required to recalculate each pre-calculated travel recommendation. For example, Graph 36 indicates that recalculating pre-calculated travel recommendations for the New York-Buffalo set to 32 requires approximately 1000 ms of CPU, i.e. roughly 31.25 ms of CPU per pre-calculated trip recommendation, while recalculation to 170 of pre-calculated travel recommendations requires about 5000 ms of CPU, i.e. only about 29.4 ms of CPU per pre-calculated trip recommendation. Compared to graph 38 relating to the New York-Hilo city pair, recalculating to 35 the precalculated travel recommendations of this set requires approximately 10 000 ms of CPU, i.e. 286 ms of CPU per pre-calculated travel recommendation whereas the recalculation to 140 of the pre-calculated travel recommendations of this set requires approximately 25,000 ms of CPU, i.e. only 178.5 ms of CPU per pre-calculated trip recommendation. Therefore, it is clear that the pre-calculated travel recommendations belonging to a pair of origin-destination cities (the present example on the one hand) are interdependent in terms of IT resources required for their recalculation as explained above.

En d’autres termes, les ressources de calcul nécessaires pour recalculer un résultat précalculé de recherche i dépendent généralement du fait de recalculer, ou pas, d’autres résultats précalculés de recherche relatifs au résultat précalculé de recherche i au cours du même cycle de calcul. Ainsi, les ressources de calcul pour recalculer les résultats précalculés de recherche ne sont pas statiques, mais varient selon la sélection de l’ensemble de résultats précalculés de recherche devant être recalculé au cours du cycle de calcul.In other words, the computing resources necessary to recalculate a precalculated search result i generally depend on whether or not to recalculate other precalculated search results relating to the precalculated search result i during the same calculation cycle. . Thus, the computing resources for recalculating the pre-calculated search results are not static, but vary according to the selection of the set of pre-calculated search results to be recalculated during the calculation cycle.

Donc, unjnécanisme est recherché pour déterminer de façon dynamique un nombre optimal de résultats précalculés d’interrogation d’une part devant être recalculée durant un cycle de calcul (désigné ci-après « nombre de recalculs ») pour optimiser l’utilisation efficace des ressources de recalcul. En même temps, le mécanisme devrait minimiser le gaspillage de ressources de calcul dû au recalcul de résultats précalculés d’interrogation qui sont toujours valides et n’ont besoin d’aucun recalcul. Par ailleurs, le mécanisme ne devrait pas compromettre la stabilité du dispositif de recalcul, mais en assurer la robustesse.Therefore, a mechanism is sought to dynamically determine an optimal number of pre-calculated query results on the one hand to be recalculated during a calculation cycle (hereinafter referred to as "number of recalculations") to optimize the efficient use of resources. recalculation. At the same time, the mechanism should minimize the waste of computational resources due to the recalculation of precalculated query results that are still valid and need not be recalculated. Furthermore, the mechanism should not compromise the stability of the recalculation device, but ensure its robustness.

Il est proposé de supplémenter le système 1 de la FIG.l avec un module additionnel, désigné ci-après comme sous-système d’auto réglage de calcul 6 (FIG.4). La fonction du sous-système d’auto réglage de calcul 6 est de déterminer automatiquement et de façon autonome ainsi que d’affiner le nombre de résultats précalculés interdépendants d’interrogation qui doivent être calculés afin de recalculer plus de résultats précalculés de recherche avec les mêmes ressources de calcul. Pour remplir cette fonction, le sous-système d’auto réglage de calcul 6 incorpore une base de données de connaissance experte et est couplé à deux autres sous-systèmes, notammentIt is proposed to supplement the system 1 of FIG.l with an additional module, designated below as the self-adjusting subsystem of calculation 6 (FIG. 4). The function of the calculation auto-tuning subsystem 6 is to automatically and autonomously determine as well as refine the number of interdependent precalculated query results which must be calculated in order to recalculate more precalculated search results with the same computing resources. To fulfill this function, the self-adjusting calculation subsystem 6 incorporates a database of expert knowledge and is coupled to two other subsystems, in particular

- au dispositif de calcul 3 auquel le sous-système d’auto réglage de calcul 6 apporte un nombre optimal (un ensemble) de résultats précalculés de recherche devant être recalculés pour une demande de recalcul donnée provenant du contrôleur de recalcul 2. En termes de fonctionnalités, le sous-système d’auto réglage de calcul 6 peut être considéré comme formant une partie du dispositif de calcul 3.- to the calculation device 3 to which the calculation self-tuning subsystem 6 provides an optimal number (a set) of pre-calculated search results to be recalculated for a given recalculation request coming from the recalculation controller 2. In terms of functionalities, the calculation self-adjustment subsystem 6 can be considered as forming part of the calculation device 3.

- Un serveur de statistiques 7 qui agit comme fournisseur de statistiques pour affiner la base de connaissance interne du sous-système d’auto réglage de calcul 6.- A statistics server 7 which acts as a statistics provider to refine the internal knowledge base of the self-adjusting calculation subsystem 6.

Le contrôleur de recalcul 2 déclenche régulièrement le recalcul de résultats précalculés d’interrogation en envoyant au 16 des demandes de recalcul (potentiellement basée sur des plannings de recalcul 12) au dispositif de calcul 3. Par exemple, à un moment dans le temps, le contrôleur de recalcul 2 décide de recalculer une ou plusieurs parts particulières des résultats précalculés d’interrogation (également désignée comme ladite « au moins une première part ») et déclenche un recalcul de ladite une ou de plusieurs parts. Chaque fois que le contrôleur de recalcul 2 demande au 16 le recalcul de certains résultats précalculés d’interrogation au cours d’un nouveau cycle de calcul, le dispositif de calcul 3 récupère des données pertinentes du soussystème d’auto réglage 6 pour décider de la politique pour déterminer le nombre de résultats précalculés d’interrogation devant être recalculés dans les parts respectives des résultats précalculés d’interrogation. Un processus de mécanisme de sauvegarde 22 fournit une certaine qualité de décision du nombre de résultats précalculés d’interrogation devant être recalculés ce qui peut conduire à un réalignement potentiel dynamique de la décision dans le cas actuel et dans le temps. Un processus asynchrone 24 collecte, à partir du sous-système serveur de statistiques 7, les données statistiques de calculs antérieurs (qui ont été postés au 20 sur le soussystème serveur de statistiques 7) pour affiner les décisions dans le temps. Les recalculs du dispositif de calcul 3 lui-même sont basés sur d’autres données de calcul, dans l’exemple de la FIG. 4 les plannings de vol ou de voyage, les données de disponibilité et de tarifs, stockés dans le système de base de données 8. On notera que celle-ci n’est pas un exemple limitatif du système de base de données distribuée. Le mécanisme présenté dans les présentes est applicables à tous les cas d’utilisation de résultats d’interrogation précalculés, ou en antémémoire, dans lesquels le précalcul ou la conservation en antémémoire implique des synergies entre les résultats interdépendants d’interrogation de la manière exemplaire définie dans les détails ci-dessus par rapport aux FIGS. 2 et 3.The recalculation controller 2 regularly triggers the recalculation of precalculated interrogation results by sending recalculation requests (potentially based on recalculation schedules 12) to 16 to the calculation device 3. For example, at a point in time, the recalculation controller 2 decides to recalculate one or more particular parts of the pre-calculated interrogation results (also known as said “at least a first part”) and triggers a recalculation of said one or more parts. Each time that the recalculation controller 2 requests 16 to recalculate certain precalculated interrogation results during a new calculation cycle, the calculation device 3 retrieves relevant data from the self-adjusting subsystem 6 to decide on the policy for determining the number of pre-computed query results to be recalculated in the respective parts of the pre-computed query results. A back-up mechanism process 22 provides some quality of decision on the number of pre-computed query results to be recalculated which can lead to potential dynamic realignment of the decision in the current case and over time. An asynchronous process 24 collects, from the statistics server subsystem 7, the statistical data of previous calculations (which have been posted to 20 on the statistics server subsystem 7) to refine the decisions over time. The recalculations of the calculation device 3 itself are based on other calculation data, in the example of FIG. 4 flight or travel schedules, availability and fare data, stored in the database system 8. Note that this is not a limiting example of the distributed database system. The mechanism presented herein is applicable to all cases of the use of precalculated, or cached, query results, in which precalculating or caching involves synergies between the interdependent query results in the exemplary manner defined in the details above compared to FIGS. 2 and 3.

Il n’existe pas de modèle qui pourrait être immédiatement utilisé pour attribuer un nombre optimal de recalculs à une part donnée de résultats précalculés d’interrogation afin de recalculer les résultats précalculés d’interrogation de la part durant un cycle de calcul. D’un côté, les effets synergiques de recalcul d’un nombre de résultats précalculés d’interrogation associé dépendent du cas d’utilisation spécifique du système de base de données et des caractéristiques des résultats précalculés d’interrogation en termes de leur interdépendance et validité décroissante dans le temps. De l’autre côté, le nombre optimal de résultats précalculés associés d’interrogation devant être recalculés dépend aussi de la stratégie de recalcul employée (p. ex. toujours recalculer les résultats précalculés d’interrogation ayant la moindre probabilité d’être à jour). Par ailleurs, des options peuvent être incluses dans le déclenchement de calcul 16 à partir du contrôleur de recalcul 2. qui ont une influence — à priori inconnue — sur les résultats précalculés d’interrogation pouvant être plus importants pour être valides/exacts que d’autres.There is no model that could be immediately used to assign an optimal number of recalculations to a given share of pre-computed query results in order to recalculate the pre-computed query results on the part during a calculation cycle. On the one hand, the synergistic effects of recalculating a number of associated precalculated interrogation results depend on the specific use of the database system and on the characteristics of the precalculated interrogation results in terms of their interdependence and validity. decreasing over time. On the other hand, the optimal number of associated pre-computed query results to be recalculated also depends on the recalculation strategy employed (e.g. always recalculate pre-computed query results with the least probability of being up to date) . In addition, options can be included in the triggering of calculation 16 from the recalculation controller 2. which have an influence - a priori unknown - on the precalculated results of interrogation which can be more important to be valid / exact than other.

Afin d’adresser ces obstacles, il est donc généralement proposé dans les présentes d’utiliser un algorithme d’apprentissage qui optimise de façon dynamique la décision de nombre de résultats précalculés d’interrogation au cours d’un cycle de calcul dans le temps, indépendamment desdites influences a priori inconnues mentionnées auparavant. Cependant, il ne semble pas possible d’utiliser des algorithmes d’apprentissage supervisés standards, c.-à-d. un algorithme basé uniquement sur la connaissance d’un expert tel qu’un réseau neuronal puisqu’il n’y a pas de connaissance du nombre de recalculs optimal pour une part donnée de résultats précalculés d’interrogation. Ces algorithmes exigeraient un entraînement sur une base de données associant les déclenchements de calcul 16 à partir du contrôleur de recalcul 2 avec leurs meilleurs nombres respectifs de recalculs pour chaque part devant être recalculée. Cependant, la connaissance experte requise n’est généralement pas disponible.In order to address these obstacles, it is therefore generally proposed herein to use a learning algorithm which dynamically optimizes the decision on the number of precalculated query results during a calculation cycle over time, independently of said a priori unknown influences mentioned previously. However, it does not seem possible to use standard supervised learning algorithms, i.e. an algorithm based solely on the knowledge of an expert such as a neural network since there is no knowledge of the optimal number of recalculations for a given share of pre-calculated interrogation results. These algorithms would require training on a database associating the calculation triggers 16 from the recalculation controller 2 with their respective best numbers of recalculations for each part to be recalculated. However, the required expert knowledge is generally not available.

Une autre façon de construire cette base de données serait d’utiliser une approche de force brute pour permuter tous les nombres possibles de recalculs pour un déclenchement de calcul donné 16 venant du contrôleur de recalcul 2. Cela pourrait amener à déterminer quel nombre de recalculs est le plus approprié pour le déclenchement de calcul 16. Cependant, cette approche présente plusieurs problèmes, car elle demanderait beaucoup de temps et de matériel pour rassembler toutes ces statistiques. Par ailleurs, elle établit seulement des nombres de recalculs statiques et il pourrait donc y avoir des incohérences entre le statut actuel de cette base de données et le moment où elle est employée par le dispositif de calcul 3. Cela exposerait le système 1 dans son ensemble (FIG.l) à une élévation potentielle de rejets techniques, c.-à-d. des états d’échec provoqués par des déclenchements de calcul 16 en provenance du contrôleur de recalcul 2, en cas de changements des résultats précalculés d’interrogation.Another way to build this database would be to use a brute force approach to permute all the possible numbers of recalculations for a given calculation trigger 16 coming from the recalculation controller 2. This could lead to determining what number of recalculations is most suitable for triggering computation 16. However, this approach presents several problems, since it would require a great deal of time and material to collect all these statistics. Furthermore, it only establishes numbers of static recalculations and there could therefore be inconsistencies between the current status of this database and the time when it is used by the calculation device 3. This would expose system 1 as a whole (FIG.l) to a potential elevation of technical rejections, i.e. failure states caused by calculation triggers 16 coming from the recalculation controller 2, in the event of changes in the pre-calculated interrogation results.

Par conséquent il est proposé de former l’algorithme d’apprentissage de façon continue au cours du traitement de chaque déclenchement de calcul 16 venant du contrôleur de recalcul 2. Un algorithme façonné par des tests et des erreurs semble approprié pour noter le résultat d’une décision de nombre de recalculs en réponse au déclenchement de calcul 16. La notation pourrait par exemple utiliser des seuils d’un nombre d’indicateurs de performance clés pour juger la qualité de la décision. Les algorithmes de la famille d’apprentissage par renforcement semblent être les plus appropriés pour cette tâche.Consequently, it is proposed to train the learning algorithm continuously during the processing of each triggering of calculation 16 coming from the recalculation controller 2. An algorithm shaped by tests and errors seems suitable for noting the result of a decision on the number of recalculations in response to the triggering of calculation 16. The rating could for example use thresholds of a number of key performance indicators to judge the quality of the decision. The reinforcement learning family algorithms seem to be the most suitable for this task.

Par conséquent, le dispositif de calcul 3 est amélioré par le module d’auto réglage 6 pour implémenter un algorithme d’apprentissage par renforcement afin de déterminer un nombre optimal de résultats précalculés d’interrogation dans une part devant être recalculée au cours d’un cycle de calcul. Plus spécifiquement, le dispositif de calcul 3 reçoit une requête au 16 pour recalculer des résultats précalculés d’interrogation pour au moins une première part. Le dispositif de calcul 3, plus spécifiquement le sous-système d’auto réglage 6 détermine un nombre de résultats précalculés d’interrogation dans la première part devant être recalculée dans le cycle de recalcul actuel sur la base d’un algorithme d’apprentissage par renforcement. Le nombre déterminé de résultats précalculés est limité par les ressources de calcul du dispositif de calcul qui sont disponibles pendant l’intervalle de temps donné. Le dispositif de calcul 3 recalcule ensuite le nombre déterminé de résultats précalculés d’interrogation dans la première part pendant le cycle de calcul.Consequently, the calculation device 3 is improved by the self-adjustment module 6 to implement a reinforcement learning algorithm in order to determine an optimal number of pre-calculated interrogation results in a part to be recalculated during a calculation cycle. More specifically, the calculation device 3 receives a request to 16 to recalculate precalculated query results for at least a first share. The calculation device 3, more specifically the self-adjusting subsystem 6 determines a number of pre-calculated interrogation results in the first part to be recalculated in the current recalculation cycle on the basis of a learning algorithm by enhancement. The determined number of precomputed results is limited by the computing resources of the computing device which are available during the given time interval. The calculation device 3 then recalculates the determined number of precalculated query results in the first part during the calculation cycle.

Dans certains modes de réalisation, l’algorithme d’apprentissage RL décrit dans les présentes prend en compte les indicateurs de performance clés (KPIs) et examine les effets des décisions respectives de nombre de résultats précalculés d’interrogation devant être recalculés en fonction des KPIs durant un cycle de calcul. Une connaissance experte peut être utilisée pour déterminer, par ex., les options de déclenchements de calcul 16 du contrôleur de recalcul 2 qui n’ont pas d’influence sur les KPIs — ceci pouvant être utilisé pour réduire la dimensionnalité de l’espace d’apprentissage.In some embodiments, the RL learning algorithm described herein takes into account the key performance indicators (KPIs) and examines the effects of the respective decisions of the number of precalculated query results to be recalculated according to the KPIs during a calculation cycle. Expert knowledge can be used to determine, for example, the calculation trigger options 16 of the recalculation controller 2 which have no influence on the KPIs - this can be used to reduce the dimensionality of the space d 'learning.

Dans certains modes de réalisation, les KPIs incluent un ou plusieurs des facteurs suivants : la somme des nombres des résultats précalculés d’interrogation, le temps écoulé pour recalculer les résultats précalculés interrogation devant être recalculés dans l’intervalle de temps donné, les ressources maximum de calcul pour recalculer des résultats précalculés d’interrogation indiqués dans la demande et la mémoire maximum requise pour recalculer des résultats précalculés d’interrogation qui sont indiqués dans la demande. Dans certains modes de réalisation, les valeurs des KPIs sont agrégées en une valeur agrégée de KPIs, ce qui est expliqué de façon détaillée ci-dessous. Dans certains modes de réalisation, le KPI peut être déterminé selon une hiérarchie, avec des KPIs plus généraux composés d’un nombre de KPIs plus spécifiques. Cela permet une évaluation à fine granularité de l’effet technique, c.-à-d. un usage efficace des ressources de calcul dû à un nombre optimal de résultats précalculés d’interrogation sélectionnés pour le recalcul. L’agrégation de KPI est alors à chaque niveau de hiérarchie, où le nombre de KPIs plus spécifiques est agrégé pour former le KPI plus général et les KPIs plus généraux sont agrégés pour établir une valeur de récompense commune pour une certaine action comme ce sera expliqué de façon plus détaillée ci-dessous.In some embodiments, KPIs include one or more of the following factors: the sum of the numbers of the pre-computed query results, the time elapsed to recalculate the pre-computed query results to be recalculated in the given time interval, the maximum resources computation to recalculate pre-calculated interrogation results indicated in the request and the maximum memory required to recalculate pre-calculated interrogation results which are indicated in the request. In some embodiments, the values of the KPIs are aggregated into an aggregated value of KPIs, which is explained in detail below. In some embodiments, the KPI can be determined according to a hierarchy, with more general KPIs composed of a number of more specific KPIs. This allows a fine-grained evaluation of the technical effect, i.e. efficient use of computing resources due to an optimal number of pre-calculated query results selected for recalculation. KPI aggregation is then at each hierarchy level, where the number of more specific KPIs is aggregated to form the more general KPI and more general KPIs are aggregated to establish a common reward value for a certain action as will be explained in more detail below.

Avant de se tourner vers des options de conception plus détaillée pour un algorithme RL dans le but de résoudre le problème technique mentionné ci-dessus, une vue globale de certains concepts de RL est d’abord présentée. Les mécanismes d’apprentissage par renforcement sont aussi décrits, par exemple dans le livre « Reinforcement Leaming » de Richard S. Sutton et Andrew G. Barto, publié par MIT Press en 1998. Les mécanismes RL utilisent des termes de pointe ayant une signification établie et sont utilisés dans les présentes avec cette signification établie pour décrire l’algorithme de détermination d’un nombre optimal de recalculs, incluant (voirFIG.5):Before turning to more detailed design options for an RL algorithm in order to solve the technical problem mentioned above, an overview of some RL concepts is first presented. Reinforcement learning mechanisms are also described, for example in the book “Reinforcement Leaming” by Richard S. Sutton and Andrew G. Barto, published by MIT Press in 1998. RL mechanisms use advanced terms with established meanings. and are used herein with this meaning established to describe the algorithm for determining an optimal number of recalculations, including (see FIG. 5):

- l’agent : le module qui apprend et prend des décisions, le dispositif de calcul 3 avec le sous-système d’auto réglage 6 qui définissent le nombre de recalculs.- the agent: the module which learns and makes decisions, the calculation device 3 with the self-adjusting subsystem 6 which define the number of recalculations.

- l’environnement : tous les faits extérieurs à l’agent avec lesquels l’agent interagit à chacun des points discrets d’une séquence dans le temps. L’environnement influence les décisions de l’agent et il est influencé par les décisions de l’agent.- the environment: all the facts external to the agent with which the agent interacts at each of the discrete points of a sequence in time. The environment influences the agent's decisions and is influenced by the agent's decisions.

- la tâche : une spécification complète d’un environnement, un cas de problème d’apprentissage par renforcement.- the task: a complete specification of an environment, a case of reinforcement learning problem.

- une observation : la détermination d’un état de l’environnement à un point discret dans le temps. Dans les présentes, l’état comprend des paramètres variés tels que le contenu d’une requête de déclenchement de calcul 16 (une indication d’une ou de plusieurs parts devant être recalculée et potentiellement d’autres options de recalcul), l’état de recalcul (le calcul a-t-il été accompli avec succès ?), les KPIs du recalcul (dans quelle mesure le calcul s’est-il bien achevé ? Plus spécifiquement : les coûts de CPU, la consommation de mémoire, etc.).- an observation: the determination of a state of the environment at a discrete point in time. In the present report, the report includes various parameters such as the content of a calculation triggering request 16 (an indication of one or more parts to be recalculated and potentially other recalculation options), the report recalculation (has the calculation been successfully completed?), the recalculation KPIs (how well did the calculation finish? More specifically: CPU costs, memory consumption, etc. ).

- l’action : une décision prise par l’agent à partir d’un ensemble d’actions disponibles dans l’état actuel de l’environnement. Dans les présentes : il s’agit de déterminer le nombre de résultats précalculés d’interrogation d’une ou de plusieurs parts devant être recalculées pendant le cycle actuel de recalcul.- action: a decision taken by the agent from a set of actions available in the current state of the environment. Herein: it is a question of determining the number of precalculated results of interrogation of one or more parts to be recalculated during the current recalculation cycle.

- la politique : le mappage des états de l’environnement aux probabilités de sélection de chaque action possible.- Politics: the mapping of the states of the environment to the probabilities of selecting each possible action.

- la fonction de récompense : la fonction qui détermine une récompense pour chaque action sélectionnée par l’agent. Dans les présentes, la fonction de récompense utilise des seuils de KPI. Par exemple, une action qui cause un rejet technique de l’environnement produira une mauvaise récompense. Dans certains modes de réalisation, la fonction de récompense attribue une valeur à une action prise par le soussystème d’auto réglage 6 sur la base des KPIs agrégés récupérés à partir du serveur de statistiques 7.- the reward function: the function which determines a reward for each action selected by the agent. Herein, the reward function uses KPI thresholds. For example, an action that causes technical rejection of the environment will produce a bad reward. In some embodiments, the reward function assigns a value to an action taken by the self-tuning subsystem 6 based on the aggregated KPIs retrieved from the statistics server 7.

- la valeur de fonction : un tableau qui associe un ensemble d’actions avec leurs récompenses estimées.- the function value: a table which associates a set of actions with their estimated rewards.

Le but de l’agent est de maximiser les récompenses non pas immédiatement, mais sur le long terme.The agent’s goal is to maximize rewards not immediately, but over the long term.

Une caractéristique générale de RL est le compromis entre exploration et exploitation :A general characteristic of RL is the compromise between exploration and exploitation:

- En mode exploration, l’agent essaie de nouvelles sortes d’action pour voir dans quelles mesures elles sont efficaces. L’efficacité d’une action est immédiatement fournie par la récompense renvoyée à l’agent en réponse à l’action sélectionnée.- In exploration mode, the agent tries new kinds of action to see how effective they are. The effectiveness of an action is immediately provided by the reward returned to the agent in response to the selected action.

- En mode exploitation, l’agent fait usage d’actions qui sont connues pour produire une récompense élevée en utilisant l’histoire des récompenses dérivées de la fonction de valeur. Plus spécifiquement pendant chaque phase d’exploitation, le nombre de recalculs est déterminé c’est-à-dire, selon la base de données de connaissance experte actuellement connue pour produire le plus de récompenses. Le but est de maximiser les récompenses sur le long terme (mathématiquement, cela signifie que la somme de toutes les récompenses sur une durée de vie infinie est maximisée). Généralement parlant, en mode exploitation, l’algorithme essaie de tirer profit de ce qu’il a appris alors que le mode exploration peut être vu comme un « investissement » pour rechercher d’autres opportunités afin d’optimiser encore plus la détermination du nombre de recalculs.- In exploitation mode, the agent makes use of actions which are known to produce a high reward using the history of rewards derived from the value function. More specifically during each operating phase, the number of recalculations is determined, that is to say, according to the database of expert knowledge currently known to produce the most rewards. The goal is to maximize rewards over the long term (mathematically, this means that the sum of all rewards over an infinite lifetime is maximized). Generally speaking, in exploitation mode, the algorithm tries to take advantage of what it has learned while exploration mode can be seen as an "investment" to seek other opportunities in order to further optimize the determination of the number recalculations.

En mode exploration et exploitation, l’agent tire continuellement des enseignements de son environnement. Cependant, l’exploration et l’exploitation doivent être équilibrées. Trop de concentration sur l’exploration ou sur l’exploitation produira de mauvais résultats. L’agent peut explorer pour découvrir de nouvelles stratégies qui pourraient potentiellement produire une récompense très élevée, mais trop explorer peut s’avérer dangereux, car l’agent n’utilise jamais sa connaissance de l’environnement. Une stratégie pour équilibrer ces deux modes afin de résoudre un problème technique particulier discuté dans les présentes sera présentée par ailleurs ci-dessous.In exploration and exploitation mode, the agent continually learns from his environment. However, exploration and exploitation must be balanced. Too much concentration on exploration or exploitation will produce poor results. The agent can explore to discover new strategies that could potentially yield a very high reward, but exploring too much can be dangerous because the agent never uses his knowledge of the environment. A strategy for balancing these two modes in order to resolve a particular technical problem discussed herein will be presented below.

Certaines particularités du concept de la fonction de récompense pour implémenter le dispositif de calcul 3 avec le sous-système 6 vont maintenant être décrites. Le problème principal qui doit être évité est celui des rejets techniques, c.-à-d. les états d’échec du dispositif de calcul 3 causés par un nombre inapproprié de recalculs qui produisent un message de rejet pour un déclenchement de calcul 16. Par conséquent une pénalité élevée est attribuée à l’agent dans ce cas.Certain features of the concept of the reward function for implementing the computing device 3 with the subsystem 6 will now be described. The main problem to be avoided is that of technical rejections, i.e. the states of failure of the calculation device 3 caused by an inappropriate number of recalculations which produce a rejection message for a triggering of calculation 16. Consequently, a high penalty is attributed to the agent in this case.

D’un autre côté, l’agent ne doit pas surréagir. Des instabilités du dispositif de calcul 3 qui généreraient des rejets techniques et qui ne seraient pas dues aux actions prises par l’agent sont possibles. Dans ce but, dans certains modes de réalisation, les nombres de recalculs qui se sont traduits par des rejets techniques (RcNbTR) sont associés à des nombres de recalculs qui n’ont pas abouti à un rejet technique (RcNbOK). Par conséquent, dans certains modes de réalisation, le premier terme de la fonction de récompense est défini par la formule suivante :On the other hand, the agent should not overreact. Instabilities of the calculation device 3 which would generate technical rejections and which would not be due to the actions taken by the agent are possible. For this purpose, in certain embodiments, the numbers of recalculations which have resulted in technical rejections (RcNbTR) are associated with numbers of recalculations which have not resulted in a technical rejection (RcNbOK). Therefore, in some embodiments, the first term of the reward function is defined by the following formula:

PENALITE™PENALTY ™

RcNbTR\RcNbTR \

RcNbOK/ avec PENALITE (X) = exp(X), c.-à-d. une fonction exponentielle.RcNbOK / with PENALTY (X) = exp (X), i.e. an exponential function.

Par ailleurs, un ensemble de seuils de KPI est utilisé dans certains modes de réalisation. Ces seuils de KPI sont des limites que les actions de l’agent ne doivent pas dépasser. Par conséquent, ces seuils de KPI doivent être déterminés judicieusement, par ex., avec l’aide des experts du domaine du système 1 (FIG.l), selon le cas d’usage particulier du système 1.Furthermore, a set of KPI thresholds is used in certain embodiments. These KPI thresholds are limits that the agent's actions cannot exceed. Consequently, these KPI thresholds must be determined judiciously, e.g. with the help of experts in the field of system 1 (FIG.l), depending on the particular use of system 1.

Afin d’accroître les actions sécurisées de l’agent, un niveau additionnel de sécurité est mis en place dans certains modes de réalisation. Le seuil est pris comme un pourcentage donné du seuil actuel à partir duquel un rejet technique serait actuellement généré (« seuil dur »). Cela produit trois états possibles : acceptable (sous le seuil), avertissement (au-dessus du seuil, mais toujours sous le seuil dur) et rejet technique (au-delà du seuil dur). De cette façon, une marge de sécurité est introduite sous le seuil dur :In order to increase the secure actions of the agent, an additional level of security is implemented in certain embodiments. The threshold is taken as a given percentage of the current threshold from which a technical rejection would currently be generated ("hard threshold"). This produces three possible states: acceptable (below the threshold), warning (above the threshold, but always below the hard threshold) and technical rejection (beyond the hard threshold). In this way, a safety margin is introduced below the hard threshold:

SEUILKPlx = MARGEseuilCkpix') * SEUIL DURKpix avec 0 < MARGESEUIL(KP!x) < 1 constantTHRESHOLD KPlx = MARGINhresholdCkpix ') * HARD THRESHOLD K pi x with 0 <MARGIN THRESHOLD ( KP! X) <1 constant

En réponse à la détermination que tous les KPIs sont en dessous de leurs seuils correspondants après que l’agent a pris un certain action, la valeur de récompense est positive. Plus un KPI est situé près de son seuil, plus la récompense attribuée est élevée. Mais si un KPI dépasse son seuil (état d’« avertissement »), le système est récompensé par une récompense négative. Une récompense négative est aussi appelée une pénalité.In response to the determination that all KPIs are below their corresponding thresholds after the agent has taken a certain action, the reward value is positive. The closer a KPI is to its threshold, the higher the reward awarded. But if a KPI exceeds its threshold ("warning" state), the system is rewarded with a negative reward. A negative reward is also called a penalty.

En option, les KPIs sont normalisées par leur seuil pour permettre des comparaisons plus rapides. Donc dans certains modes de réalisation, un second terme de la fonction de récompense est donné par :Optionally, the KPIs are normalized by their threshold to allow faster comparisons. So in certain embodiments, a second term of the reward function is given by:

où, pour chaque KPI, la récompense est positive (multipliée par un facteur positif « récompense positive» PR) si le seuil est respecté, mais négatif (multiplié par un facteur négatif « récompense négative » NR) si le seuil est dépassé :where, for each KPI, the reward is positive (multiplied by a positive factor "positive reward" PR) if the threshold is respected, but negative (multiplied by a negative factor "negative reward" NR) if the threshold is exceeded:

RECOMPENSE (X)AWARD (X)

Les paramètres MARGESEUi^KPIx^, avec lesquels les variables PR et NR doivent être réglés sur la base d’une approche empirique pour obtenir le comportement souhaité.The MARGIN SEU parameters i ^ KPIx ^, with which the variables PR and NR must be adjusted on the basis of an empirical approach to obtain the desired behavior.

En résumé, dans certains modes de réalisation, la fonction de récompense globale est définie comme :In summary, in some embodiments, the overall reward function is defined as:

Un exemple est donné par la FIG. 6. Deux radars sont tracés avec un vecteur de trois KPIs qui sont déterminés après un recalcul d’un nombre de résultats précalculés d’interrogation conformément à la décision de l’agent implémentée dans le sous-système d’auto réglage 6. Comme expliqué ci-dessus, les KPIs sont normalisés par leur seuil respectif permis indiqué par le cercle intérieur en ligne solide, avec le seuil dur indiqué par le cercle extérieur en pointillés. Lorsque chaque KPI est en dessous du seuil comme illustré par la FIG 6A, le vecteur résultant des trois KPIs (triangle complet à l’intérieur du cercle intérieur solide) est considéré comme acceptable. Cependant si un seul KPI dépasse le seuil et que le vecteur résultant pénètre le corridor entre le cercle solide et le cercle pointillé comme illustré par la FIG. 6 B, l’algorithme RL considère ceci comme un avertissement et pénalise la récompense individuelle pour ce KPI (KPI2 dans l’exemple de la FIG.6B).An example is given by FIG. 6. Two radars are plotted with a vector of three KPIs which are determined after a recalculation of a number of precalculated interrogation results in accordance with the decision of the agent implemented in the auto-tuning subsystem 6. As explained above, the KPIs are normalized by their respective permitted threshold indicated by the inner circle in solid line, with the hard threshold indicated by the dotted outer circle. When each KPI is below the threshold as illustrated in FIG 6A, the vector resulting from the three KPIs (full triangle inside the solid inner circle) is considered acceptable. However if only one KPI exceeds the threshold and the resulting vector enters the corridor between the solid circle and the dotted circle as illustrated in FIG. 6 B, the RL algorithm considers this as a warning and penalizes the individual reward for this KPI (KPI2 in the example of FIG. 6B).

Des particularités du concept de la fonction de valeur pour implémenter le dispositif de calcul 3 avec le sous-système d’auto réglage 6 sont décrites ensuite. Comme mentionné ci-dessus, la fonction de valeur est un tableau qui associe un ensemble N d’actions possibles, notamment le nombre de résultats précalculés d’interrogation d’une part devant être recalculée au cours du cycle de calcul,avec leurs récompenses estimées. Dans certains modes de réalisation, les récompenses estimées associées par la valeur de fonction sont spécifiées par une fonction de récompense de l’algorithme d’apprentissage par renforcement, telle que la fonction de récompense exemplaire décrite ci-dessus. Comme on vient de le décrire, la fonction de récompense peut attribuer une valeur agrégée d’une pluralité d’indicateurs de performance clés à une sélection correspondante de résultats précalculés d’interrogation d’au moins ladite première part.Particulars of the concept of the value function for implementing the calculation device 3 with the self-adjusting subsystem 6 are described next. As mentioned above, the value function is an array which associates a set N of possible actions, in particular the number of precalculated query results on the one hand which must be recalculated during the calculation cycle, with their estimated rewards . In some embodiments, the estimated rewards associated with the function value are specified by a reward function of the reinforcement learning algorithm, such as the exemplary reward function described above. As just described, the reward function can assign an aggregated value of a plurality of key performance indicators to a corresponding selection of precalculated query results of at least said first share.

Dans certains modes de réalisation, la fonction de valeur est calculée de façon itérative à partir d’une histoire des récompenses reçues antérieurement (indexées par k qui représente la kth itération). La fonction de valeur V du nombre de recalculs 1¾ est par conséquent dans certains modes de réalisationIn certain embodiments, the value function is calculated iteratively from a history of the rewards previously received (indexed by k which represents the k th iteration). The value function V of the number of recalculations 1¾ is therefore in certain embodiments

Vk+i(WÙ= ^(^) + «(k+1) (WJ * (RECOMPENSER^) - VM) où <xk (Wj) est le paramètre de vitesse d’apprentissage (paramètre de la taille d’étape) utilisé pour traiter la récompense après la k111 sélection du nombre de recalculs 1¾.V k + i (WÙ = ^ (^) + “(k +1 ) (WJ * (AWARD ^) - VM) where <x k (Wj) is the learning speed parameter (step size parameter ) used to process the reward after the k 111 selection of the number of recalculations 1¾.

De ce fait, deux formules d’apprentissage par renforcement sont utilisées pour assurer une convergence de l’algorithme RL. La première formule: prévoit que les étapes d’apprentissage sont suffisamment larges pour surpasser éventuellement toutes les conditions initiales ou fluctuations aléatoires :Therefore, two reinforcement learning formulas are used to ensure convergence of the RL algorithm. The first formula: provides that the learning stages are wide enough to possibly surpass all the initial conditions or random fluctuations:

«k (W) = 00 k"K (W) = 00 k

La seconde est donnée par :The second is given by:

ak (147) < oo ka k (147) <oo k

Puisque le système 1 n’est pas stationnaire, c.-à-d. que le comportement du système variera avec le temps de sorte que les nombres de recalculs optimaux changeront, cette seconde condition ne peut être respectée. En effet, le système ne converge jamais complètement parce qu’il a besoin d’être adapté continuellement pour modifier ce qui peut survenir.Since System 1 is not stationary, i.e. as the behavior of the system will vary over time so that the optimal recalculation numbers will change, this second condition cannot be met. Indeed, the system never converges completely because it needs to be continuously adapted to modify what may happen.

Dans certains modes de réalisation, le paramètre de vitesse d’apprentissage ocfc (1¾) se voit attribué une influence plus élevée aux dernières récompenses et est adapté à la situation du système pour fournir une autre optimisation d’apprentissage incluant l’état de l’environnement et le mode de l’algorithme RL :In some embodiments, the learning speed parameter oc fc (1¾) is assigned a higher influence to the last rewards and is adapted to the situation of the system to provide another learning optimization including the state of the environment and mode of the RL algorithm:

- mode actuel : exploration ou exploitation. Comme les décisions doivent être conservatives afin d’éviter des échecs, l’apprentissage doit être effectué de façon moins active en mode exploration, c.-à-d. que l’agent apprend, mais de façon sécurisée. Conversement, en mode exploitation, une modification du comportement doit être prise en compte plus rapidement.- current mode: exploration or exploitation. As decisions must be conservative in order to avoid failures, learning should be done less actively in exploration mode, i.e. that the agent learns, but in a secure manner. Conversely, in operating mode, a change in behavior must be taken into account more quickly.

- indicateur de charge de code indiquant une mise à jour logicielle récente pour le dispositif de calcul 3 : S’il est fixé sur vrai, le système doit apprendre plus rapidement, car une charge de code peut induire une variation rapide et réelle des KPIs qui n’indiquent aucune instabilité du système.- code load indicator indicating a recent software update for the calculation device 3: If it is set to true, the system must learn more quickly, because a code load can induce a rapid and real variation of the KPIs which do not indicate any system instability.

Le paramètre de taille d’étape est alors la fonction d’une situation de système S (/c) et une oc constante :The step size parameter is then the function of a system situation S (/ c) and a constant oc:

ock (W) = °c* S (fc) où S(k) =oc k (W) = ° c * S (fc) where S (k) =

1, Mode Exploitation ER < 1, Mode Exploration CL > 1, Charge de Code1, ER Operating Mode <1, CL Exploration Mode> 1, Code Load

ER, CL constant les variables oc, ER and CL sont réglées avec une approche empirique (p. ex. en utilisant la connaissance d’un expert de domaine) pour obtenir le comportement souhaité.ER, CL constant the variables oc, ER and CL are adjusted with an empirical approach (eg using the knowledge of a domain expert) to obtain the desired behavior.

Les paramètres de vitesse d’apprentissage doivent assurer que, dans le cas de l’intégration d’une récompense négative, la fonction de valeur n’est pas trop dégradée, car elle peut être due à une certaine instabilité du système :The learning speed parameters must ensure that, in the case of the integration of a negative reward, the value function is not too degraded, as it may be due to a certain instability of the system:

Vk+i(Wd< Vk(WdV k + i (Wd <V k (Wd

Après SN récompenses négatives successives, l’algorithme RL doit forcer le système à réagir rapidement et à redéterminer une nouvelle politique comme point de départ :After SN successive negative rewards, the RL algorithm must force the system to react quickly and to redetermine a new policy as a starting point:

vk+sN(Wi)< 0v k + s N (Wi) <0

À ce stade, l’exactitude de la fonction de valeur est questionnable. Il est vraisemblable que la fonction de valeur pour d’autres nombres est inexacte. Donc la première approche pourrait être d’utiliser une « approche brute » pour fixer arbitrairement le nouveau point de recommencement à nombre de recalculs Nouveau = DF nombre de recalculs ancien où 0 < DF < 1 est un facteur de dégradation.At this point, the accuracy of the value function is questionable. It is likely that the value function for other numbers is incorrect. So the first approach could be to use a "raw approach" to arbitrarily set the new starting point to number of recalculations New = DF number of recalculations old where 0 <DF <1 is a degradation factor.

La FIG.7 montre un exemple d’intégration de récompense par la fonction de valeur du poids W4. La valeur de la récompense pour W4 a augmenté entre k+1 et k sélections.FIG. 7 shows an example of reward integration by the value function of the weight W4. The reward value for W4 increased between k + 1 and k selections.

Dans certains modes de réalisation, la requête pour recalculer des résultats précalculés d’interrogation d’au moins une première part (= déclenchement de calcul 16 dans l’exemple de la FIG. 4) indique des résultats précalculés d’interrogation de ladite au moins une première part qui doivent être recalculés. En réutilisant l’exemple non limitatif de la FIG. 3, décrit ci-dessus, la requête peut inclure une ou plusieurs paires d’origine et de destination, chaque paire d’origine et de destination indiquant une part devant être recalculée (comme dans l’exemple de la FIG. 3, chaque paire d’origine et de destination définit une part). Par ailleurs, la requête peut indiquer une date de départ, de multiples dates de départ ou une fourchette de dates de départ, ainsi qu’une durée de séjour, de multiples durées de séjour ou une fourchette de durées de séjour. Pour donner un exemple particulier, le contrôleur de recalcul 2 peut demander au dispositif de calcul 3 de recalculer les prix les plus bas de toutes les recommandations de voyage avec Nice comme origine et Boston comme destination (identifiant la part Nice-Boston) avec une fourchette de date de départ de 30 jours commençant le 1er novembre 2017 et une fourchette de durée de séjour entre 7 et 14 jours (= une fourchette de durée de huit jours), demandant au total le recalcul de 30-8 = 240 des résultats précalculés d’interrogation formant une portion de la part Nice-Boston devant être recalculés.In certain embodiments, the request to recalculate precalculated results of interrogation of at least a first part (= triggering of calculation 16 in the example of FIG. 4) indicates precalculated results of interrogation of said at least a first part which must be recalculated. By reusing the nonlimiting example of FIG. 3, described above, the request may include one or more pairs of origin and destination, each pair of origin and destination indicating a part to be recalculated (as in the example of FIG. 3, each pair origin and destination defines a share). In addition, the request may indicate a departure date, multiple departure dates or a range of departure dates, as well as a length of stay, multiple lengths of stay or a range of lengths of stay. To give a particular example, the recalculation controller 2 can ask the calculation device 3 to recalculate the lowest prices of all the travel recommendations with Nice as origin and Boston as destination (identifying the Nice-Boston share) with a fork. 30 day departure date starting November 1, 2017 and a range of length of stay between 7 and 14 days (= a range of eight days), requiring a total recalculation of 30-8 = 240 of the pre-calculated results d 'interrogation forming a portion of the Nice-Boston part to be recalculated.

Dans ces modes de réalisation, le dispositif de calcul 3 est agencé en option pour déterminer le nombre de résultats précalculés d’interrogation dans la première part devant être recalculée sur la base des résultats précalculés d’interrogation indiqués de ladite au moins une première part. Par exemple, les ressources de calcul du dispositif de calcul 3 peuvent permettre de recalculer 100 résultats précalculés d’interrogation au cours des trois prochains cycles de calcul. Dans cette situation, la plateforme de calcul est agencée pour sélectionner un nombre optimal de résultats précalculés d’interrogation devant être recalculés au cours du prochain cycle de calcul en divisant la portion de la première part définie par le nombre indiqué dans la requête 16 en trois tranches, où la division résulte en tranches qui utilisent les ressources de calcul disponibles d’une manière optimale. Chacune des trois tranches est recalculée au cours des trois prochains (ou trois des prochains) cycles de calcul. Un autre exemple plus spécifique d’une telle division est donné ci-dessous.In these embodiments, the calculation device 3 is optionally arranged to determine the number of pre-calculated interrogation results in the first part to be recalculated on the basis of the pre-calculated interrogation results indicated in said at least one first part. For example, the computing resources of the computing device 3 can make it possible to recalculate 100 precalculated query results during the next three computing cycles. In this situation, the calculation platform is arranged to select an optimal number of precalculated query results to be recalculated during the next calculation cycle by dividing the portion of the first part defined by the number indicated in query 16 into three slices, where the division results in slices which use the available computing resources in an optimal way. Each of the three tranches is recalculated during the next three (or three of the next) calculation cycles. Another more specific example of such a division is given below.

Plus de particularités du concept de l’algorithme d’apprentissage par renforcement pour implémenter le dispositif de calcul 3 avec le sous-système d’auto réglage 6 vont être décrites maintenant en référence à la FIG. 8. Dans certains modes de réalisation, l’algorithme de détermination du nombre de recalculs est composé de trois activités principales :More particulars of the concept of the reinforcement learning algorithm for implementing the computing device 3 with the self-adjusting subsystem 6 will now be described with reference to FIG. 8. In some embodiments, the algorithm for determining the number of recalculations is composed of three main activities:

- En réponse à la réception d’un déclenchement de calcul 16 par le dispositif de calcul 3 (FIG.8 : « Début de l’activité 1 »), l’agent situé au sous-système d’auto réglage 6 (après avoir été notifié via l’interface 18) récupère au 24 à partir du serveur de statistiques 7 le nombre de recalculs de chaque part de résultats précalculés d’interrogation concernée qui ont été déterminés au dernier recalcul de la part respective.- In response to the reception of a calculation trigger 16 by the calculation device 3 (FIG.8: "Start of activity 1"), the agent located at the self-adjusting subsystem 6 (after having been notified via the interface 18) retrieves on 24 from the statistics server 7 the number of recalculations of each part of the pre-calculated results of the interrogation concerned which were determined at the last recalculation of the respective part.

- L’agent détermine ensuite le mode RL (FIG. 8 : « utiliser et enregistrer »), c.-à-d. il choisit entre le mode exploration et le mode exploitation. La détermination du mode est basée sur la fonction de valeur pour le ou les nombres récupéré (s) du dernier recalcul comme cela sera décrit de façon plus détaillée ci-dessous.- The agent then determines the RL mode (FIG. 8: "use and save"), ie. he chooses between exploration mode and exploitation mode. The determination of the mode is based on the value function for the number (s) recovered from the last recalculation as will be described in more detail below.

- L’agent enregistre aussi au 20 des rapports de calcul sur le serveur de statistiques 7 (FIG. 8 : « utiliser et enregistrer »). Par conséquent, dans un certain mode de réalisation, le dispositif de calcul 3 est agencé pour stocker le nombre déterminé de résultats précalculés d’interrogation dans la première part sur le serveur de statistiques 7 pour une détermination ultérieure du nombre de résultats précalculés d’interrogation devant être recalculés au cours d’un cycle de calcul ultérieur.- The agent also saves 20 of the calculation reports on the statistics server 7 (FIG. 8: "use and save"). Consequently, in a certain embodiment, the calculation device 3 is arranged to store the determined number of precalculated interrogation results in the first part on the statistics server 7 for a subsequent determination of the number of precalculated interrogation results. to be recalculated in a subsequent calculation cycle.

- Parallèlement à ces activités (FIG. 8 : « utiliser et enregistrer »), l’agent peut employer un mécanisme de sauvegarde (FIG. 8 : « mécanisme de sauvegarde ») afin d’exclure des situations dans lesquelles les déterminations des agents pourraient causer un état d’échec du dispositif de calcul 3 ou du système 1 dans son ensemble qui mettrait en péril l’ensemble des calculs). Par exemple, si un tel problème technique avec le soussystème d’auto réglage 6 est détecté, le mécanisme de sauvegarde peut placer le soussystème d’auto réglage 6 en liste noire pour une ou plusieurs parts particulières devant être recalculée (s) et utiliser une politique par défaut (telle qu’un recalcul donné ou un nombre prédéterminé de résultats précalculés d’interrogation de ladite une ou plusieurs parts) connue pour fonctionner correctement.- In addition to these activities (FIG. 8: “use and save”), the agent can use a safeguard mechanism (FIG. 8: “safeguard mechanism”) in order to exclude situations in which agents' determinations could cause a state of failure of the calculation device 3 or of the system 1 as a whole which would jeopardize all the calculations). For example, if such a technical problem with the self-tuning subsystem 6 is detected, the backup mechanism can blacklist the self-tuning subsystem 6 for one or more specific parts to be recalculated and use a default policy (such as a given recalculation or a predetermined number of precalculated results of querying said one or more shares) known to work correctly.

- L’agent exécute par ailleurs un processus asynchrone (FIG. 8 « début de l’activité 2 ») pour collecter des données historiques à partir du serveur de statistiques 7, analyser ces données et affiner la base des données pour les décisions concernant les nombres de recalculs.- The agent also runs an asynchronous process (FIG. 8 "start of activity 2") to collect historical data from the statistics server 7, analyze this data and refine the database for decisions concerning recalculation numbers.

Plus de détails sur le mode de détermination RL vont être décrits maintenant. Comme expliqué dans l’introduction sur l’apprentissage par renforcement ci-dessus, un compromis équilibré est recherché entre ces deux modes.More details on the RL determination mode will now be described. As explained in the introduction to reinforcement learning above, a balanced compromise is sought between these two modes.

Deux méthodes connues d’équilibrage sont la stratégie Epsilon-Greedy et la stratégie Softmax. La stratégie Epsilon-Greedy explore de nouvelles stratégies pendant un pourcentage donné de temps et exploite l’action ayant la récompense la plus élevée le reste du temps (action gloutonne) Par exemple, le système pourrait explorer 1 % du temps (en choisissant une action aléatoire parmi l’ensemble des actions possibles) et exploiter le reste (99 %) du temps (utilisation de l’action la mieux notée). La stratégie Softmax vise à résoudre un inconvénient d’Epsilon, notamment l’exploration en faisant un choix égal entre les actions. Cela signifie qu’il est aussi vraisemblable de choisir la pire action en apparence que de choisir une action proche de la meilleure. Pour des tâches ou les pires actions sont néfastes, cela peut-être désavantageux. La stratégie Softmax affine donc la stratégie Epsilon-Greedy en variant les probabilités d’action comme une fonction graduée de la valeur estimée.Two known balancing methods are the Epsilon-Greedy strategy and the Softmax strategy. The Epsilon-Greedy strategy explores new strategies for a given percentage of time and exploits the action with the highest reward the rest of the time (greedy action) For example, the system could explore 1% of the time (by choosing an action random among all the possible actions) and use the rest (99%) of the time (use of the action with the highest score). The Softmax strategy aims to resolve a disadvantage of Epsilon, including exploration by making an equal choice between actions. This means that it is as likely to choose the worst action apparently as it is to choose an action close to the best. For tasks where the worst actions are harmful, this can be disadvantageous. The Softmax strategy therefore refines the Epsilon-Greedy strategy by varying the probabilities of action as a graduated function of the estimated value.

La stratégie d’équilibrage utilisée dans certains modes de réalisation dans les présentes est différente de ces deux stratégies connues. À un niveau général, le dispositif de calcul 3 est agencé pour récupérer une indication des résultats précalculés d’interrogation de ladite au moins une première part qui a été recalculée dans un intervalle de temps antérieur, c.-à-d. le dernier nombre de recalculs comme ceci a été expliqué ci-dessus. Le dispositif de calcul 3 est par ailleurs déterminé pour appliquer un mode d’exploitation de l’algorithme d’apprentissage par renforcement ou pour appliquer un mode d’exploration de l’algorithme d’apprentissage par renforcement. Dans certains modes de réalisation, le dispositif de calcul 3 détermine d’appliquer, soit le mode d’exploitation de l’algorithme d’apprentissage par renforcement, soit d’appliquer le mode d’exploration de l’algorithme d’apprentissage par renforcement en déterminant la récompense donnée par la fonction de valeur des résultats précalculés d’interrogation indiquée dans l’indication récupérée et en déterminant un nombre de cycles de recalcul pour appliquer le mode d’exploitation de l’algorithme d’apprentissage par renforcement sur la base d’une comparaison de la récompense déterminée avec un seuil de récompense. Dans certains modes de réalisation, le seuil de récompense est défini par des pourcentages donnés de valeurs de seuil respectivement pour chacun de la pluralité d’indicateurs de performance clés pour lesquels le recalcul pendant un intervalle de temps donné résulterait en un état d’erreur du dispositif de calcul. Comme décrit ci-dessous, un filet de sécurité additionnel est introduit, évitant l’échec technique du dispositif de calcul 3 causé par l’algorithme RL. Le dispositif de calcul 3 applique le mode exploitation de l’algorithme d’apprentissage par renforcement pendant le cycle de recalcul actuel et les cycles de recalcul ultérieurs tels qu’ils sont fournis par le nombre déterminé de cycles de recalcul. Un exemple plus détaillé sera décrit ci-dessous.The balancing strategy used in some embodiments herein is different from these two known strategies. At a general level, the computing device 3 is arranged to retrieve an indication of the precalculated results of interrogation of said at least one first part which has been recalculated in a previous time interval, i.e. the last number of recalculations as explained above. The calculation device 3 is also determined to apply a mode of exploitation of the reinforcement learning algorithm or to apply a mode of exploration of the reinforcement learning algorithm. In certain embodiments, the computing device 3 determines to apply either the operating mode of the reinforcement learning algorithm or to apply the exploration mode of the reinforcement learning algorithm by determining the reward given by the value function of the precalculated query results indicated in the indication retrieved and by determining a number of recalculation cycles to apply the operating mode of the reinforcement learning algorithm on the basis a comparison of the determined reward with a reward threshold. In some embodiments, the reward threshold is defined by given percentages of threshold values respectively for each of the plurality of key performance indicators for which recalculation for a given time interval would result in an error state of the computing device. As described below, an additional safety net is introduced, avoiding the technical failure of the computing device 3 caused by the RL algorithm. The calculation device 3 applies the operating mode of the reinforcement learning algorithm during the current recalculation cycle and the subsequent recalculation cycles as provided by the determined number of recalculation cycles. A more detailed example will be described below.

En réponse à la détermination d’appliquer le mode d’exploitation, le dispositif de calcul 3 de certains modes de réalisation est agencé pour déterminer le nombre de résultats précalculés d’interrogation dans la première part devant être recalculée au cours du cycle de calcul actuel sur la base d’une valeur de fonction de l’algorithme d’apprentissage par renforcement pour le nombre de résultats précalculés d’interrogation indiqué par l’indication récupérée, la fonction de valeur associant des sélections possibles de résultats précalculés d’interrogation dans ladite au moins une première part pour un recalcul avec des récompenses respectives estimées.In response to the determination to apply the operating mode, the calculation device 3 of certain embodiments is arranged to determine the number of precalculated query results in the first part to be recalculated during the current calculation cycle based on a function value of the reinforcement learning algorithm for the number of precalculated interrogation results indicated by the indication retrieved, the value function associating possible selections of precalculated interrogation results in said at least a first part for a recalculation with respective estimated rewards.

Dans certains modes de réalisation, le dispositif de calcul adapte de façon itérative le nombre de résultats précalculés d’interrogation indiqués par l’indication récupérée sur la base au moins du nombre de résultats précalculés d’interrogation indiqués par l’indication récupérée, la fonction de valeur de l’algorithme d’apprentissage par renforcement pour le nombre de résultats précalculés d’interrogation indiqués par l’indication récupérée et le seuil de récompense. Un exemple plus spécifique, illustrant comment le dispositif de calcul 3 peut déterminer un nouveau nombre de recalculs durant le mode d’exploration afin d’optimiser encore plus ses actions, est donné ci-dessous.In certain embodiments, the calculation device iteratively adapts the number of precalculated interrogation results indicated by the indication retrieved based at least on the number of precalculated interrogation results indicated by the retrieved indication, the function of value of the reinforcement learning algorithm for the number of precalculated query results indicated by the indication retrieved and the reward threshold. A more specific example, illustrating how the computing device 3 can determine a new number of recalculations during the exploration mode in order to further optimize its actions, is given below.

Le mécanisme d’équilibrage pour passer du mode exploitation au mode exploration et vice versa est justifié par le fait qu’il est possible de « classer » les nombres de recalculs. En d’autres termes, il utilise le fait que jusqu’à un certain point, plus le nombre de recalculs est élevé, plus la récompense est importante (et passé ce point, il y a un échec). Cela aide à construire une politique d’exploration : en supposant un nombre de recalculs acceptable (Les KPIs sont sous le seuil), il peut être décidé d’explorer avec un nombre de recalculs plus important (puisqu’il est connu qu’un poids plus faible n’apportera aucune amélioration de la récompense).The balancing mechanism for switching from operating mode to exploration mode and vice versa is justified by the fact that it is possible to "classify" the numbers of recalculations. In other words, it uses the fact that up to a certain point, the higher the number of recalculations, the greater the reward (and beyond this point, there is a failure). This helps to build an exploration policy: assuming an acceptable number of recalculations (KPIs are below the threshold), it can be decided to explore with a higher number of recalculations (since it is known that a weight lower will bring no improvement in reward).

Il est aussi possible de décider dans quelle mesure le système peut explorer en utilisant la différence entre la fonction de valeur du nombre actuel de recalculs et la récompense maximum attendue. Dans ce but, on peut estimer à quelle distance se situe le nombre de recalculs par rapport au seuil du KPI et utiliser cette estimation pour décider explorer avec une grande ou petite étape. Cela permet d’atteindre un compromis entre la vitesse de convergence de ce nombre optimal de recalculs pour l’appliquer à une part donnée et le risque de collecter une récompense peu élevée (notamment l’évitement des rejets techniques).It is also possible to decide how far the system can explore using the difference between the value function of the current number of recalculations and the maximum expected reward. For this purpose, we can estimate how far the number of recalculations is from the KPI threshold and use this estimate to decide to explore with a large or small step. This makes it possible to reach a compromise between the speed of convergence of this optimal number of recalculations to apply it to a given share and the risk of collecting a low reward (in particular the avoidance of technical rejections).

Plus spécifiquement, l’algorithme de détermination de mode RL suivant, basé sur un cas, est utilisé dans certains modes de réalisation pour trouver le nombre optimal de recalculs tout en gardant le système 1 stable.More specifically, the following case-based RL mode determination algorithm is used in some embodiments to find the optimal number of recalculations while keeping the system 1 stable.

1. 0 < une fonction de valeur pour le dernier nombre de recalculs < 50 % de la récompense maximum agrégée résultant de tous les KPIs pointant vers leurs valeur de seuil respectif (Récompense Max.): Exploiter Cl fois et explorer ensuite un nombre donné de fois (p. ex. une fois) avec un nombre de recalculs plus important (les détails du choix de ce nombre de recalculs plus important seront expliqués ci-dessous).1. 0 <a value function for the last number of recalculations <50% of the maximum aggregate reward resulting from all the KPIs pointing to their respective threshold value (Max Reward): Exploit Cl times and then explore a given number of times (e.g. once) with a higher number of recalculations (the details of choosing this higher number of recalculations will be explained below).

2. 50 % < une fonction de valeur pour le dernier nombre de recalculs < 75 % de la réponse max. : Exploiter C2 > Cl fois et explorer ensuite une fois avec un autre nombre de recalculs plus important2. 50% <a value function for the last number of recalculations <75% of the max response. : Use C2> Cl once and then explore once with another higher number of recalculations

3. 5 % < une fonction de valeur pour le dernier nombre de recalculs < 90 % de la récompense max. : Exploiter C3 > C2 fois et explorer ensuite une fois avec un nombre de recalculs plus important.3. 5% <a value function for the last number of recalculations <90% of the max reward. : Use C3> C2 times and then explore once with a higher number of recalculations.

4. 90 % < une fonction de valeur pour le dernier nombre de recalculs < 100 % de la récompense max. : Exploiter C4 > C3 de fois et explorer ensuite une fois avec un nombre de recalculs plus important.4. 90% <a value function for the last number of recalculations <100% of the max reward. : Use C4> C3 once and then explore once with a higher number of recalculations.

Les variables Cl, C2, C3 et C4 doivent être réglées avec une approche empirique pour obtenir le comportement souhaité (par exemple, en termes de vitesse de convergence).The variables Cl, C2, C3 and C4 must be adjusted with an empirical approach to obtain the desired behavior (for example, in terms of speed of convergence).

En réponse à la détermination que l’agent est autorisé à explorer dans le cycle de calcul actuel, le nombre de recalculs plus important pour l’exploration doit être décidé. Il est supposé que :In response to the determination that the agent is allowed to explore in the current compute cycle, the number of recalculations larger for exploration must be decided. It is assumed that:

- La récompense calculée pour un nombre donné de recalculs est meilleure lorsque les KPIs, après la décision pour le nombre donné de recalculs, sont plus proches du seuil des KPIs que pour le dernier nombre de recalculs.- The reward calculated for a given number of recalculations is better when the KPIs, after the decision for the given number of recalculations, are closer to the threshold of KPIs than for the last number of recalculations.

— L’évolution de la récompense n’est pas proportionnelle au nombre de recalculs (sousadditivité), p. ex. :- The evolution of the reward is not proportional to the number of recalculations (subadditivity), p. ex. :

RECOMPENSER * W) < 2 * RECOMPENSERAWARD * W) <2 * AWARD

Du fait que dans certains modes de réalisation, le système a une approche conservatrice pour éviter les états d’échec, la convergence vers le meilleur recalcul pour une part donnée est faite prudemment, étape par étape, dans certains modes de réalisation. Dans certains modes de réalisation, le nouveau nombre de recaïcuïsWnouveau est donné par :Because in some embodiments, the system has a conservative approach to avoid failure states, convergence to the best recalculation for a given share is done carefully, step by step, in some embodiments. In some embodiments, the new number of new recaïcuïsW is given by:

RECOMPENSEmax REWARD max

W = ----------W^nouveau Vk(Wt) 1 où Vfc(ÏVi) est la fonction de valeur du dernier nombre de recalculs exploité Wk. C’est une valeur strictement positive puisque le mode RL actuel est un mode d’exploration qui a été permis par la comparaison avec la récompense maximum. Cette approche est appliquée de façon itérative pour déterminer le nombre de recalculs pour la prochaine phase d’exploration. Sur de multiples nombres de phases d’exploration, l’emploi respectif de cette formule dans chacune des phases d’exploration pour déterminer Wnouveau, étape par étape forme une approche itérative qui amène le nombre de recalculs de plus en plus près de la récompense agrégée maximum RECOMPENSEmax et ainsi, pour sélectionner le nombre de recalculs d’une manière optimisée afin d’utiliser de façon efficace les ressources disponibles de recalcul.W = ---------- W ^ new V k (Wt) 1 where Vfc (ÏVi) is the value function of the last number of recalculations used W k . This is a strictly positive value since the current RL mode is an exploration mode which has been enabled by comparison with the maximum reward. This approach is applied iteratively to determine the number of recalculations for the next exploration phase. On multiple numbers of exploration phases, the respective use of this formula in each of the exploration phases to determine W new , step by step forms an iterative approach which brings the number of recalculations closer and closer to the reward maximum aggregate RECOMPENSEmax and thus, to select the number of recalculations in an optimized way in order to use efficiently the available recalculation resources.

La FIG. 9 donne un exemple de cette sélection d’équilibrage entre le mode exploitation et le mode exploration. Cet exemple détaille l’évolution de la fonction de valeur d’une part donnée de résultats précalculés d’interrogation.FIG. 9 gives an example of this balancing selection between the operating mode and the exploration mode. This example details the evolution of the value function of a given part of precalculated query results.

Initialement (FIG. 9A), lorsqu’une part doit être recalculée pour la première fois, il n’existe aucun nombre antérieur de recalculs pour la part. Dans ce cas, le mode exploration est sélectionné par défaut. Dans certains modes de réalisation, le sous-système d’auto réglage 6 peut émettre un avertissement au 14 au contrôleur de recalcul 2. Le contrôleur de recalcul 2 peut ensuite inclure un nombre de recalculs par défaut dans les requêtes futures relatives à cette part au 16. L’agence sélectionne un nombre donné conservateur (c.-à-d. relativement bas) de recalculs pour la part comme le représente visuellement la FIG. 9 A. Une valeur de récompense pour cette action est calculée sur la base de la fonction de récompense expliquée en détail cidessus. Le dispositif de calcul 3 recalcule ensuite les résultats précalculés d’interrogation de la part dans le cycle de calcul conformément au nombre déterminé de recalculs. Ce nombre déterminé de recalculs est stocké sur le serveur de statistiques 7.Initially (FIG. 9A), when a share has to be recalculated for the first time, there are no previous recalculations for the share. In this case, the exploration mode is selected by default. In some embodiments, the auto-tuning subsystem 6 can issue a warning at 14 to the recalculation controller 2. The recalculation controller 2 can then include a number of default recalculations in future requests relating to this part at 16. The agency selects a given conservative (ie relatively low) number of recalculations for the share as shown visually in FIG. 9 A. A reward value for this action is calculated based on the reward function explained in detail above. The calculation device 3 then recalculates the precalculated results of interrogation of the part in the calculation cycle in accordance with the determined number of recalculations. This determined number of recalculations is stored on the statistics server 7.

En réponse à la réception par le dispositif de calcul 3 d’un autre déclenchement de calcul 16 pour recalculer les résultats précalculés d’interrogation de la part dans un cycle de calcul suivant (toujours FIG. 9A), le dernier nombre de recalculs est récupéré à partir du serveur de statistiques 7. L’agent détermine ensuite que le dernier nombre de recalculs était en dessous de la récompense maximum, par exemple dans une fourchette de 50-75 % de la récompense maximum selon le cas 2 ci-dessus. Conformément à l’algorithme d’équilibrage ci-dessus, l’agent détermine le mode RL d’exploitation pour les intervalles C2, dans l’exemple de la FIG. 9B pour trois cycles de calcul supplémentaires. Ceci assure que le nombre de recalculs antérieur est une solution stable (mais pas encore nécessairement un choix optimal). Dans ce cas, C2 recalculs similaires de la part avec les mêmes résultats précalculés d’interrogation seront effectués avant de procéder à une nouvelle exploration.In response to the reception by the calculation device 3 of another triggering of calculation 16 to recalculate the precalculated results of interrogation on the part in a following calculation cycle (always FIG. 9A), the last number of recalculations is recovered from the statistics server 7. The agent then determines that the last number of recalculations was below the maximum reward, for example in a range of 50-75% of the maximum reward according to case 2 above. In accordance with the above balancing algorithm, the agent determines the RL mode of operation for the C2 intervals, in the example of FIG. 9B for three additional calculation cycles. This ensures that the previous number of recalculations is a stable solution (but not yet necessarily an optimal choice). In this case, C2 similar recalculations on the part with the same precalculated results of interrogation will be carried out before proceeding to a new exploration.

Au recalcul C2+lst de la part (FIG. 9B), une nouvelle exploration est déterminée avec un nombre de recalculs plus élevé, comme expliqué précédemment. Il en résulte un nombre de recalculs plus élevé avec une valeur de récompense plus élevée. Durant les recalculs suivants, le mode RL d’exploitation est à nouveau sélectionné (toujours FIG. 9B). Cette fois, la valeur de récompense pour le nombre de recalculs plus élevé est dans le cas 3, donc les prochains recalculs C3 de la part sont faits en mode exploitation. Comme dans la FIG. 9 A, cela assure que le nombre de recalculs explorés est stable.At the recalculation C2 + 1 st on the part (FIG. 9B), a new exploration is determined with a higher number of recalculations, as explained previously. This results in a higher number of recalculations with a higher reward value. During the following recalculations, the RL operating mode is again selected (always FIG. 9B). This time, the reward value for the higher number of recalculations is in case 3, so the next C3 recalculations on the part are done in operating mode. As in FIG. 9 A, this ensures that the number of recalculations explored is stable.

Cette sélection alternative d’une exploration suivie par un nombre d’exploitations est réitérée ultérieurement de la même manière pour déterminer le nombre optimal de recalculs pour cette part particulière (FIG. 9C). L’algorithme de sélection de mode entrera dans le cas 4, ou le nombre d’exploitations ultérieures C4 est le plus élevé. Par conséquent, de nouveaux nombres de recalculs potentiellement plus optimaux sont maintenant explorés moins souvent que dans les itérations précédentes.This alternative selection of an exploration followed by a number of exploitations is reiterated later in the same way to determine the optimal number of recalculations for this particular part (FIG. 9C). The mode selection algorithm will enter in case 4, where the number of subsequent operations C4 is the highest. As a result, new numbers of potentially more optimal recalculations are now explored less often than in previous iterations.

A un point dans le temps, un nouveau nombre de recalculs explorés peut entrer dans la zone d’avertissement, c.-à-d. que le seuil de KPI pour un ou plusieurs KPIs est dépassé, produisant une valeur de récompense négative (FIG. 9D). Comme expliqué auparavant, dans certains modes de réalisation, il s’agit d’un avertissement, car le seuil a été calculé à un pourcentage donné en dessous du seuil dur. Cela signifie que le nombre de recalculs a atteint (en fait même dépassé) la phase dans laquelle on ne peut attendre que peu d’amélioration de la récompense. Par conséquent le nombre de recalculs est stabilisé à la dernière valeur qui a produit les meilleures récompenses. Cependant, cette stabilisation signifie seulement que l’exploration est faite moins souvent, mais jamais exclue. En effet, il est souhaitable de continuer l’exploration de temps en temps, car un système dans son ensemble n’est pas stationnaire et peut changer dans le temps, p. ex., lorsque les résultats précalculés d’interrogation, stockés par la plateforme de recherche 4, changent. Une autre phase d’exploration permet au système 1 de découvrir et de s’actualiser avec ces changements et développements.At a point in time, a new number of recalculations explored may enter the warning area, i.e. that the KPI threshold for one or more KPIs is exceeded, producing a negative reward value (FIG. 9D). As explained before, in some embodiments, this is a warning, because the threshold has been calculated at a given percentage below the hard threshold. This means that the number of recalculations has reached (in fact even exceeded) the phase in which one can expect little improvement in the reward. Consequently, the number of recalculations is stabilized at the last value which produced the best rewards. However, this stabilization only means that exploration is done less often, but never excluded. Indeed, it is desirable to continue the exploration from time to time, because a system as a whole is not stationary and can change over time, p. e.g., when the precalculated query results, stored by the search platform 4, change. Another exploration phase allows System 1 to discover and update with these changes and developments.

La FIG. 9E représente une situation spéciale qui pourrait indiquer une dégradation du système 1 dans lequel une réinitialisation pourrait être appropriée. Les raisons possibles pour une dégradation des performances sont un changement substantiel des résultats précalculés de recherche, un changement du plan de la base de données ou du modèle de la plateforme de recherche 4, du dispositif de calcul 3 et/ou du contrôleur de recalcul résultant en une fonctionnalité modifiée/affinée ou une réserve modifiée des résultats précalculés d’interrogation. Le terme dégradation indique que le nombre optimal de recalculs peut être réduit à ces changements comparés avec l’état du système 1 avant les changements.FIG. 9E represents a special situation which could indicate a degradation of the system 1 in which a reinitialization could be appropriate. Possible reasons for performance degradation are a substantial change in the pre-calculated search results, a change in the database plan or the model of the research platform 4, the computing device 3 and / or the resulting recalculation controller. in a modified / refined functionality or a modified reserve of the precalculated results of interrogation. The term degradation indicates that the optimal number of recalculations can be reduced to these changes compared to the state of system 1 before the changes.

Dans le scénario de la FIG. 9E, de multiples récompenses renvoyées ultérieurement pour des nombres de recalculs explorés ultérieurement sont négatifs bien que le système 1 ait été stable durant une certaine longueur de temps précédente. Après plusieurs intégrations de récompenses, la fonction de valeur pour le poids est toujours négative. La chute des récompenses en valeurs négatives implique ensuite qu’il n’y a pas d’autres raisons apparentes qu’une possible dégradation. Par conséquent, cela indique que la fonction de valeur est probablement inexacte ou pour le moins n’est plus appropriée pour intégrer les changements dans le système. Un nouveau nombre de recalculs est ensuite déterminé par l’analyse de la fonction de valeur pour le nombre actuel de recalculs afin de déterminer le nouveau point de départ. Par exemple, le sous-système d’auto réglage 6 peut commencer à partir d’une valeur donnée initiale par défaut du nombre de recalculs comme décrit ci-dessus dans le cas d’une part recalculée pour la première fois. Dans un autre exemple, le sous-système d’auto réglage 6 peut effectuer une « approche dichotomique », c.-à-d. utiliser le tout dernier nombre de recalculs qui a produit une récompense positive et, pour le réduire encore plus, p. ex. en le divisant p. ex. par deux.In the scenario of FIG. 9E, multiple rewards returned later for recalculated numbers explored later are negative although System 1 has been stable for some previous length of time. After several rewards integrations, the weight value function is still negative. The fall in rewards in negative values then implies that there are no other apparent reasons than a possible deterioration. Therefore, this indicates that the value function is probably inaccurate or at least is no longer suitable for incorporating changes into the system. A new number of recalculations is then determined by analyzing the value function for the current number of recalculations to determine the new starting point. For example, the self-adjusting subsystem 6 can start from a default initial value of the number of recalculations as described above in the case of a part recalculated for the first time. In another example, the self-adjusting subsystem 6 can perform a "dichotomous approach", ie. use the very last number of recalculations that produced a positive reward and, to reduce it even more, p. ex. by dividing it p. ex. by two.

Des détails du réajustement du nombre de recalculs vont être décrits maintenant.Details of the readjustment of the number of recalculations will now be described.

Dans certains modes de réalisation, le dispositif de calcul 3 n’a pas assez de ressources de calcul pour recalculer une part entière d’une partie de la part qui a fait l’objet d’une requête pour être recalculée par le contrôleur de recalcul 2 dans un seul cycle de recalcul. Dans ces modes de réalisation, les mécanismes décrits dans les présentes peuvent être employés pour diviser la part, ou la partie de la part faisant l’objet d’une demande, en tranches optimales qui sont recalculées par le dispositif de calcul 3 au cours d’une pluralité de cycles de calcul. Ici le nombre de recalculs déterminé par les mécanismes décrits dans les présentes indique la taille d’une tranche devant être recalculée dans chaque cycle.In certain embodiments, the computing device 3 does not have enough computing resources to recalculate an entire part of a part of the part which has been the subject of a request to be recalculated by the recalculation controller. 2 in a single recalculation cycle. In these embodiments, the mechanisms described herein can be used to divide the portion, or the portion of the portion that is the subject of the request, into optimal slices which are recalculated by the computing device 3 during 'a plurality of calculation cycles. Here the number of recalculations determined by the mechanisms described herein indicates the size of a slice to be recalculated in each cycle.

Par ailleurs, dans certains modes de réalisation, les résultats précalculés d’interrogation sont arrangés en cellules avec deux dimensions. Un exemple non limitatif a déjà été mentionné cidessus en référence à la FIG.3 où les recommandations de voyage tarifées sont précalculées et stockées dans une part respective pour chaque paire d’origine et de destination. Dans cet exemple non limitatif, les deux dimensions sont les données de départ et de durée du séjour. Dans ces modes de réalisation, un nombre de recalculs indique une partie d’une part ayant la forme d’un carré (c.-à-d. qu’elle indique un tuple de deux nombres, un pour chaque dimension.Furthermore, in certain embodiments, the precalculated query results are arranged in cells with two dimensions. A nonlimiting example has already been mentioned above with reference to FIG. 3 where the fare-based travel recommendations are precalculated and stored in a respective share for each pair of origin and destination. In this nonlimiting example, the two dimensions are the starting data and the length of stay. In these embodiments, a number of recalculations indicates a portion of a part having the shape of a square (i.e., it indicates a tuple of two numbers, one for each dimension.

La détermination de ce nombre de recalculs selon les mécanismes décrits ci-dessus respecterait d = plafondÇ^/w) s = plancBer(—J dans laquelle d est la fourchette de jours de départ [un départ dans les prochains d jours, la première dimension] et s est la fourchette de durée du séjour [une durée de séjour de 1 à s jours, la seconde dimension] et W est un poids optimal recommandé par la base de données de connaissances expertes [c.-à-d. que dans l’état actuel de l’algorithme RL, il est censé produire la plus haute récompense]. Cependant, en fonction de la fourchette de dates de départ et de la fourchette de durées de séjour demandées dans le déclenchement de calcul 16, cette solution peut amener à de petites tranches de recalculs à la fin de la [partie de la] part devant être recalculée.The determination of this number of recalculations according to the mechanisms described above would respect d = ceilingÇ ^ / w) s = plancBer (—J in which d is the range of departure days [a departure in the next d days, the first dimension ] and s is the length of stay range [a length of stay from 1 to s days, the second dimension] and W is an optimal weight recommended by the expert knowledge database [ie in the current state of the RL algorithm, it is supposed to produce the highest reward.] However, depending on the range of departure dates and the range of length of stay requested in triggering calculation 16, this solution can bring to small slices of recalculations at the end of the [part of the] part to be recalculated.

L’algorithme suivant apporte une division améliorée de la partie de la part devant être recalculée en tranches par le dispositif de calcul 3, chacune des tranches doit être recalculée au cours d’une pluralité de cycles de calcul, notamment pour choisir un nombre de recalculs ayant la forme d’un parallélogramme comme suit :The following algorithm provides an improved division of the part of the part to be recalculated into slices by the calculation device 3, each of the slices must be recalculated during a plurality of calculation cycles, in particular to choose a number of recalculations having the form of a parallelogram as follows:

- Déterminer une fourchette de durées de séjour s qui est proche deVïÿ et diviser la fourchette de durées de séjour indiquée dans la requête 16 venant du contrôleur de recalcul 2 jusqu’à arriver à des morceaux aussi égaux que possible.- Determine a range of length of stay s which is close to Vïÿ and divide the range of length of stay indicated in request 16 from the recalculation controller 2 until the pieces are as equal as possible.

- Déterminer le nombre le plus élevé possible de recalculs étant un carré de s · d avec la tranche la moins non pleine [c.-à-d. la dernière tranche de la partie de la part devant être recalculée est la plus proche du nombre de recalculs (c.-à-d. la taille des autres tranches) et avec s > d afin d’optimiser l’usage efficace des ressources de calcul (si s > d, moins de dates de départ doivent être recalculées durant chaque cycle de calcul, p. ex. le recalcul d’un carré de 3d · 15s est moins coûteux que le recalcul d’un carré de 15 d · 3s).- Determine the highest possible number of recalculations being a square of s · d with the least not full slice [ie the last part of the part to be recalculated is the closest to the number of recalculations (i.e. the size of the other parts) and with s> d in order to optimize the efficient use of calculation (if s> d, fewer start dates must be recalculated during each calculation cycle, eg recalculating a 3d15s square is less expensive than recalculating a 15d3s square ).

Les nombres déterminés s et d sont fixés à plancher 0=) et donc ont :The determined numbers s and d are fixed at floor 0 =) and therefore have:

s = plafond(----et d = plancier(—).s = ceiling (---- e td = planner (-).

plancher^) sfloor ^) s

Implicitement, cet algorithme considère que la fourchette de durées de séjour indiquée dans la requête 16 est plus petite que la fourchette de dates de départ indiquée dans la requête et que la fourchette de durées de séjour indiquée est donc celle qui doit être divisée. Si d’un autre côté, la durée de séjour indiquée dans la requête 16 est égale ou plus élevée que la fourchette de durée de séjour, le même algorithme doit être appliqué avec une durée indiquée de séjour échangée et un jour indiqué de départ échangé, et donc s et d échangés.Implicitly, this algorithm considers that the range of length of stay indicated in request 16 is smaller than the range of departure dates indicated in request and that the range of length of stay indicated is therefore the one that must be divided. If on the other hand, the length of stay indicated in request 16 is equal to or higher than the range of duration of stay, the same algorithm must be applied with a specified duration of stay exchanged and a specified day of departure exchanged, and therefore s and d exchanged.

Comme exemple, le contrôleur de recalcul 2 demande au dispositif de calcul 3 de recalculer une part particulière pour les prochains 31 jours de départ avec une fourchette de durées de séjour de 16 [c.-à-d. toutes les durées de séjour étant de 1 à 16 jours]. Par conséquent, dans l’ensemble, un carré de 31 · 16 = 496 de résultats précalculés d’interrogation doivent être recalculés. La plateforme de calcul a suffisamment de ressources de calcul pour recalculer 50 résultats précalculés d’interrogation par cycle de recalcul.As an example, the recalculation controller 2 requests the calculation device 3 to recalculate a specific portion for the next 31 days of departure with a range of length of stay of 16 [ie. all lengths of stay being from 1 to 16 days]. Therefore, overall, a square of 31 · 16 = 496 of precalculated query results must be recalculated. The calculation platform has enough calculation resources to recalculate 50 precalculated query results per recalculation cycle.

La solution naïve mentionnée ci-dessus produirait un nombre de recalculs de 7d -7s = 49 qui résulterait en 8 tranches de 7d-7s, ainsi que 7 tranches non pleines, notamment 4 tranches de 2d-7s, 2 tranches de 7d-4s, et une tranche finale de 2d-4s, afin de compléter le recalcul des 496 résultats précalculés d’interrogation. Le nombre moyen de recalculs au-delà de ces 15 cycles de calcul est de seulement 33. L’approche plus sophistiquée dessinée ci-dessus conduit à une division de 6d-8s. Ce qui résulte en 12 tranches, notamment 11 tranches de 6d-8s et une tranche restante non pleine de ld·7s, et un nombre moyen global de recalculs de 4LThe naive solution mentioned above would produce a number of recalculations of 7d -7s = 49 which would result in 8 slices of 7d-7s, as well as 7 non-full slices, in particular 4 slices of 2d-7s, 2 slices of 7d-4s, and a final slice of 2d-4s, in order to complete the recalculation of the 496 precalculated query results. The average number of recalculations beyond these 15 calculation cycles is only 33. The more sophisticated approach drawn above leads to a division of 6d-8s. This results in 12 slices, in particular 11 slices of 6d-8s and one remaining slice not full of ld · 7s, and an overall average number of recalculations of 4L

Cette approche peut-être généralisée à d’autres cas d’usage avec les résultats précalculés d’interrogation ayant d’autres dimensions ou un nombre différent de dimensions [p. ex. trois dimensions].This approach can be generalized to other use cases with precalculated query results having other dimensions or a different number of dimensions [p. ex. three dimensions].

Enfin, la FIG. 10 est un exemple de représentation schématique d’un système informatique 100 agencé en dispositif de calcul pour exécuter un ensemble d’instructions, afin d’amener le système informatique 100 à mettre en œuvre une quelconque des méthodologies implémentant la détermination d’un nombre optimal de recalculs pour une part afin de recalculer un nombre optimal de résultats précalculés d’interrogation au cours d’un cycle de calcul, comme décrit cidessus. Le système informatique 100 inclut un processeur 102, une mémoire principale 104 et une interface de réseau 108 qui communiquent les uns avec les autres via un bus 101. Le système informatique 100 inclut par ailleurs une mémoire statique 106, p. ex. non amovible flash et/ou un disque dur et/ou une carte micro ou mini SD amovible qui stockent de façon permanente les instructions permettant au système informatique 100 de mettre en œuvre sesFinally, FIG. 10 is an example of a schematic representation of a computer system 100 arranged as a computing device to execute a set of instructions, in order to cause the computer system 100 to implement any of the methodologies implementing the determination of an optimal number of recalculations for a part in order to recalculate an optimal number of precalculated results of interrogation during a cycle of computation, as described above. The computer system 100 includes a processor 102, a main memory 104 and a network interface 108 which communicate with each other via a bus 101. The computer system 100 also includes a static memory 106, for example. ex. non-removable flash and / or a hard disk and / or a removable micro or mini SD card which permanently store the instructions allowing the computer system 100 to implement its

Demande de brevet n°18 50581 A5013307FRP00Mm fonctions, en particulier d’exécuter l’algorithme d’apprentissage par renforcement pour sélectionner le nombre de recalculs en réponse à la réception d’un déclenchement de calcul 16. En outre, le système informatique 100 peut inclure une interface d’utilisateur 110 prise en charge par un module de contrôle d’interface d’utilisateur correspondant.Patent Application No. 18 50581 A5013307FRP00Mm Functions, in particular to execute the reinforcement learning algorithm to select the number of recalculations in response to the reception of a calculation trigger 16. In addition, the computer system 100 can including a user interface 110 supported by a corresponding user interface control module.

Dans certains exemples, les instructions programmées pour mettre en œuvre les routines afin de déterminer le nombre de recalculs sont également stockées sur la mémoire statique 106. Lorsque les instructions sont exécutées, les données de processus résident dans la mémoire principale 104 et/ou dans le processeur 102. Les instructions peuvent par ailleurs être transmises ou reçues comme signal propagé par le dispositif d’interface de réseau 108 à partir de/vers un serveur de logiciels dans un réseau local ou sur Internet. Le dispositif d’interface de réseau 108 peut-être une interface de réseau sans fil [telles qu’une interface Wifî et/ou Bluetooth] et/ou une interface de réseau mobile 2G/3G/4G/5G.In some examples, the instructions programmed to implement the routines to determine the number of recalculations are also stored on the static memory 106. When the instructions are executed, the process data resides in the main memory 104 and / or in the processor 102. The instructions can also be transmitted or received as a signal propagated by the network interface device 108 from / to a software server in a local network or on the Internet. The network interface device 108 may be a wireless network interface [such as a WIFI and / or Bluetooth interface] and / or a 2G / 3G / 4G / 5G mobile network interface.

Les mécanismes décrits dans les présentes pour déterminer un nombre optimal de recalculs augmentent l’efficacité du recalcul de résultats précalculés d’interrogation qui sont composés d’une pluralité de parts avec un certain nombre respectif de résultats précalculés, dans lequel les ressources de calcul du dispositif de calcul, nécessaires pour recalculer un résultat précalculé d’interrogation résultent en une première part qui dépend, ou pas du fait de recalculer d’autres résultats précalculés de la première part pendant un intervalle de temps donné formant un cycle de recalcul actuel. L’utilisation, de la manière décrite ci-dessus, de l’algorithme d’apprentissage par renforcement optimise l’usage des ressources de calcul du dispositif de calcul 3 en permettant le recalcul de plus de résultats précalculés d’interrogation avec la même quantité de ressources de calcul que si l’algorithme n’était pas utilisé. Les mécanismes sont indépendants du cas d’usage particulier du dispositif de calcul et peuvent être employés par tout système qui recalcule des résultats précalculés d’interrogation ayant une interdépendance en termes de ressources de calcul requises pour les recalculer, comme décrit à titre d’exemple ci-dessus par référence à l’exemple de la FIG. 3.The mechanisms described herein for determining an optimal number of recalculations increase the efficiency of the recalculation of precalculated query results which are composed of a plurality of parts with a respective number of precalculated results, in which the computing resources of the calculation device, necessary to recalculate a precalculated result of interrogation result in a first part which depends, or not on the fact of recalculating other precalculated results of the first part during a given time interval forming a current recalculation cycle. The use, as described above, of the reinforcement learning algorithm optimizes the use of the computing resources of the computing device 3 by allowing the recalculation of more precalculated query results with the same quantity computing resources only if the algorithm was not used. The mechanisms are independent of the particular use case of the calculation device and can be used by any system which recalculates precalculated query results having an interdependence in terms of the computing resources required to recalculate them, as described by way of example. above with reference to the example of FIG. 3.

Bien que certains produits et procédés construits selon les enseignements de l’invention aient été décrits dans les présentes, la portée de couverture de ce brevet ne leur est pas limitée. Au contraire, ce brevet couvre tous les modes de réalisation des enseignements de l’invention, soit littéralement, soit sous la doctrine des équivalents.Although certain products and processes constructed according to the teachings of the invention have been described herein, the scope of coverage of this patent is not limited to them. On the contrary, this patent covers all the embodiments of the teachings of the invention, either literally or under the doctrine of equivalents.

Claims (11)

REVENDICATIONS 1. Un dispositif de calcul pour recalculer des résultats précalculés d’interrogation stockés sur un serveur de base de données, dans lequel les résultats précalculés d’interrogation sont composés d’une pluralité de parts, dans lequel chaque part inclut un certain nombre de résultats précalculés d’interrogation, dans lequel les ressources de calcul du dispositif de calcul qui sont nécessaires pour recalculer un résultat précalculé d’interrogation d’une première part dépendent du fait de recalculer, ou pas, d’autres résultats précalculés d’interrogation pendant un intervalle de temps donné formant un cycle de recalcul actuel, le dispositif de calcul étant agencé pour :1. A computing device for recalculating pre-computed query results stored on a database server, wherein the pre-computed query results are composed of a plurality of parts, wherein each part includes a number of results precalculated interrogation, in which the computing resources of the calculating device which are necessary to recalculate a precalculated interrogation result on the one hand depend on whether or not to recalculate other precalculated interrogation results during a given time interval forming a current recalculation cycle, the calculation device being arranged for: - recevoir une demande de recalcul des résultats précalculés d’interrogation pour au moins une première part ;- receive a request for recalculation of the precalculated query results for at least a first part; - déterminer un nombre de résultats précalculés d’interrogation dans la première part devant être recalculée dans le cycle de recalcul actuel sur la base d’un algorithme d’apprentissage par renforcement, le nombre déterminé de résultats précalculés de recherche étant limité par les ressources de calcul disponibles du dispositif de calcul pendant l’intervalle de temps donné ; et- determine a number of precalculated query results in the first part to be recalculated in the current recalculation cycle on the basis of a reinforcement learning algorithm, the determined number of precalculated search results being limited by the resources of calculation available from the calculation device during the given time interval; and - recalculer le nombre déterminé de résultats précalculés d’interrogation dans la première part pendant le cycle de recalcul.- recalculate the determined number of precalculated query results in the first part during the recalculation cycle. 2. Le dispositif de calcul selon la revendication 1, dans lequel la demande de recalcul de résultats précalculés d’interrogation pour au moins une première part indique des résultats précalculés d’interrogation pour ladite au moins une première part qui doit être recalculée et le dispositif de calcul est agencé pour déterminer le nombre de résultats précalculés d’interrogation dans la première part devant être recalculée sur la base des résultats précalculés d’interrogation indiqués pour ladite au moins une première part.2. The calculation device according to claim 1, in which the request for recalculation of precalculated interrogation results for at least one first part indicates precalculated interrogation results for said at least one first part which is to be recalculated and the device calculation is arranged to determine the number of pre-calculated interrogation results in the first part to be recalculated on the basis of the pre-calculated interrogation results indicated for said at least one first part. 3. Le dispositif de calcul selon la revendication 1 ou la revendication 2 étant agencé pour déterminer le nombre de résultats précalculés d’interrogation dans la première part devant être recalculée en étant agencé pour3. The calculation device according to claim 1 or claim 2 being arranged to determine the number of pre-calculated query results in the first part to be recalculated by being arranged for - récupérer une indication des résultats précalculés d’interrogation pour ladite au moins une première part qui a été recalculée au cours d’un intervalle de temps antérieur ;- retrieve an indication of the precalculated interrogation results for said at least one first part which has been recalculated during a previous time interval; - déterminer l’application d’un mode d’exploitation de l’algorithme d’apprentissage par renforcement ou l’application d’un mode d’exploration de l’algorithme d’apprentissage par renforcement ; et- determine the application of a mode of exploitation of the reinforcement learning algorithm or the application of a mode of exploration of the reinforcement learning algorithm; and - en réponse à la détermination d’appliquer le mode d’exploitation, déterminer le nombre de résultats précalculés d’interrogation dans la première part devant être recalculée au cours du cycle de calcul actuel sur la base d’une valeur de fonction de l’algorithme d’apprentissage par renforcement pour le nombre de résultats précalculés d’interrogation indiqué par l’indication récupérée, la fonction de valeur associant des sélections possibles de résultats précalculés d’interrogation dans ladite au moins une première part pour un recalcul avec des récompenses respectives estimées.- in response to the determination to apply the operating mode, determining the number of precalculated query results in the first part to be recalculated during the current calculation cycle on the basis of a function value of the reinforcement learning algorithm for the number of precalculated interrogation results indicated by the retrieved indication, the value function associating possible selections of precalculated interrogation results in said at least one first part for a recalculation with respective rewards estimated. 4. Le dispositif de calcul selon la revendication 3, dans lequel les récompenses estimées associées par la fonction de valeur sont spécifiées par une fonction de récompense de l’algorithme d’apprentissage par renforcement qui attribue une valeur agrégée d’une pluralité d’indicateurs de performance clés à une sélection correspondante de résultats précalculés d’interrogation de ladite au moins une première part.4. The computing device according to claim 3, wherein the estimated rewards associated with the value function are specified by a rewards function of the reinforcement learning algorithm which assigns an aggregated value of a plurality of indicators of key performance to a corresponding selection of precomputed results of interrogation of said at least a first part. 5. Le dispositif de calcul selon la revendication 4, dans lequel la valeur agrégée d’indicateurs de performance clés est basée sur au moins un des indicateurs de performance clés suivants: la somme des nombres de résultat précalculés d’interrogation devant être recalculés, le temps écoulé de recalcul des résultats précalculés d’interrogation devant être recalculés au cours de l’intervalle de temps donné, les ressources de calcul maximum pour recalculer les résultats précalculés d’interrogation indiqués dans la demande et la mémoire maximum requise pour recalculer les résultats précalculés d’interrogation indiqués dans la demande.5. The calculation device according to claim 4, in which the aggregated value of key performance indicators is based on at least one of the following key performance indicators: the sum of the numbers of precalculated query results to be recalculated, the elapsed time to recalculate the precalculated query results to be recalculated during the given time interval, the maximum computing resources to recalculate the precalculated query results indicated in the request and the maximum memory required to recalculate the precalculated results of interrogation indicated in the request. 6. Le dispositif de calcul selon l’une quelconque des revendications 3 à 5 étant agencé pour déterminer l’application du mode d’exploitation de l’algorithme d’apprentissage par renforcement ou l’application du mode d’exploration de l’algorithme d’apprentissage par renforcement en étant agencé pour6. The computing device according to any one of claims 3 to 5 being arranged to determine the application of the operating mode of the reinforcement learning algorithm or the application of the exploration mode of the algorithm reinforcement learning by being arranged for - déterminer la récompense donnée par sa fonction de valeur pour les résultats précalculés d’interrogation indiqués par l’indication récupérée ;- determine the reward given by its value function for the precalculated query results indicated by the indication retrieved; - déterminer un nombre de cycles de recalcul pour appliquer le mode d’exploitation de l’algorithme d’apprentissage par renforcement basé sur une comparaison de la récompense déterminée avec un seuil de récompense ;- determine a number of recalculation cycles to apply the operating mode of the reinforcement learning algorithm based on a comparison of the determined reward with a reward threshold; - appliquer le mode d’exploitation de l’algorithme d’apprentissage par renforcement pendant le cycle de recalcul actuel et les cycles de recalcul ultérieurs donnés par le nombre déterminé de cycles de recalcul.- apply the operating mode of the reinforcement learning algorithm during the current recalculation cycle and the subsequent recalculation cycles given by the determined number of recalculation cycles. 7. Le dispositif de calcul selon la revendication 6, dans lequel le seuil de récompense est défini par des pourcentages donnés de valeurs de seuil respectivement pour chacun de la pluralité des indicateurs de performance clés pour lesquels le recalcul pendant l’intervalle de temps donné résulterait en un état d’erreur du dispositif de calcul.7. The calculation device according to claim 6, in which the reward threshold is defined by given percentages of threshold values respectively for each of the plurality of key performance indicators for which recalculation during the given time interval would result. in a state of error of the calculation device. 8. Le dispositif de calcul selon la revendication 6 ou 7 étant agencé pour8. The calculation device according to claim 6 or 7 being arranged for - en réponse à la détermination d’appliquer le mode d’exploration, adapter de façon itérative le nombre de résultats précalculés d’interrogation indiqués par l’indication récupérée sur la base au moins du nombre de résultats précalculés d’interrogation indiqués par l’indication récupérée, la fonction de valeur de l’algorithme d’apprentissage par renforcement pour le nombre de résultats précalculés d’interrogation indiqué par l’indication récupérée et le seuil de récompense.- in response to the determination to apply the exploration mode, iteratively adapt the number of precalculated interrogation results indicated by the indication retrieved on the basis at least of the number of precalculated interrogation results indicated by the indication retrieved, the value function of the reinforcement learning algorithm for the number of precalculated query results indicated by the indication retrieved and the reward threshold. 9. Le dispositif de calcul selon l’une quelconque des revendications 1 à 8 étant agencé pour stocker le nombre déterminé de résultats précalculés d’interrogation dans la première part sur un serveur de statistiques pour une détermination ultérieure du nombre de résultats précalculés d’interrogation devant être recalculés au cours d’un cycle ultérieur de calcul.9. The calculation device according to any one of claims 1 to 8 being arranged to store the determined number of precalculated query results in the first part on a statistics server for a subsequent determination of the number of precomputed query results to be recalculated in a subsequent calculation cycle. 10. Un procédé pour le recalcul de résultats précalculés d’interrogation stockés sur un serveur de base de données, dans lequel les résultats précalculés d’interrogation sont composés d’une pluralité de parts, dans lequel chaque part inclut un certain nombre de résultats précalculés d’interrogation, dans lequel les ressources de calcul d’un dispositif de calcul, nécessaires pour recalculer un résultat précalculé d’interrogation d’une première part, dépendent du fait de recalculer, ou pas, d’autres résultats précalculés d’interrogation de la première part au cours d’un intervalle de temps donné formant un cycle de recalcul actuel, le procédé comprenant, au niveau du dispositif de calcul :10. A method for the recalculation of pre-calculated query results stored on a database server, wherein the pre-calculated query results are composed of a plurality of parts, wherein each part includes a number of pre-calculated results of interrogation, in which the computing resources of a computing device, necessary to recalculate a precalculated result of interrogation on the one hand, depend on the fact of recalculating, or not, other precalculated results of interrogation of the first part during a given time interval forming a current recalculation cycle, the method comprising, at the level of the calculation device: - la réception d’une demande de recalcul de résultats précalculés d’interrogation pour au moins une première part ;- the receipt of a request for recalculation of precalculated query results for at least a first part; - la détermination d’un nombre de résultats précalculés d’interrogation dans la première part devant être recalculée au cours du cycle de recalcul actuel sur la base- the determination of a number of precalculated query results in the first part to be recalculated during the current recalculation cycle on the basis 5 d’un algorithme d’apprentissage par renforcement, le nombre déterminé de résultats précalculés de recherche étant limité aux ressources disponibles de calcul du dispositif de calcul pendant l’intervalle de temps donné ; et5 of a reinforcement learning algorithm, the determined number of precomputed search results being limited to the available computing resources of the computing device during the given time interval; and - le recalcul du nombre déterminé de résultats précalculés d’interrogation dans la première part au cours du cycle de recalcul.- the recalculation of the determined number of precalculated query results in the first part during the recalculation cycle. 11. Un produit-programme informatique comprenant des instructions de code de programme stockées sur un support lisible par ordinateur pour mettre en œuvre les étapes du procédé conformément la revendication 10 lorsque ledit programme fonctionne sur un ordinateur11. A computer program product comprising program code instructions stored on a computer-readable medium for implementing the steps of the method according to claim 10 when said program is running on a computer.
FR1850581A 2018-01-25 2018-01-25 RECALCULATION OF PRECALCULATED QUERY RESULTS Active FR3077146B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1850581A FR3077146B1 (en) 2018-01-25 2018-01-25 RECALCULATION OF PRECALCULATED QUERY RESULTS
EP19702063.9A EP3743823B1 (en) 2018-01-25 2019-01-25 Re-computing pre-computed query results
PCT/EP2019/051865 WO2019145480A1 (en) 2018-01-25 2019-01-25 Re-computing pre-computed query results
ES19702063T ES2927601T3 (en) 2018-01-25 2019-01-25 Recalculation of previously calculated query results

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1850581A FR3077146B1 (en) 2018-01-25 2018-01-25 RECALCULATION OF PRECALCULATED QUERY RESULTS
FR1850581 2018-01-25

Publications (2)

Publication Number Publication Date
FR3077146A1 true FR3077146A1 (en) 2019-07-26
FR3077146B1 FR3077146B1 (en) 2020-02-07

Family

ID=62222836

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1850581A Active FR3077146B1 (en) 2018-01-25 2018-01-25 RECALCULATION OF PRECALCULATED QUERY RESULTS

Country Status (1)

Country Link
FR (1) FR3077146B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3789878A1 (en) * 2019-09-05 2021-03-10 Amadeus S.A.S. Extended caching and query-time validation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050234971A1 (en) * 2004-04-14 2005-10-20 Oracle International Corporation Using estimated cost to refresh a set of materialized views (MVS)
US20140280028A1 (en) * 2013-03-14 2014-09-18 Oracle International Corporation Selective materialized view refresh
EP2913764A1 (en) * 2014-02-19 2015-09-02 Amadeus S.A.S. Re-computing pre-computed search results

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050234971A1 (en) * 2004-04-14 2005-10-20 Oracle International Corporation Using estimated cost to refresh a set of materialized views (MVS)
US20140280028A1 (en) * 2013-03-14 2014-09-18 Oracle International Corporation Selective materialized view refresh
EP2913764A1 (en) * 2014-02-19 2015-09-02 Amadeus S.A.S. Re-computing pre-computed search results

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SANJAY KRISHNAN ET AL: "Stale view cleaning", PROCEEDINGS OF THE VLDB ENDOWMENT; [ACM DIGITAL LIBRARY], ASSOC. OF COMPUTING MACHINERY, NEW YORK, NY, vol. 8, no. 12, 1 August 2015 (2015-08-01), pages 1370 - 1381, XP058072809, ISSN: 2150-8097, DOI: 10.14778/2824032.2824037 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3789878A1 (en) * 2019-09-05 2021-03-10 Amadeus S.A.S. Extended caching and query-time validation
FR3100630A1 (en) * 2019-09-05 2021-03-12 Amadeus Extended caching and query time validation
US11762854B2 (en) 2019-09-05 2023-09-19 Amadeus S.A.S. Extended caching and query-time validation

Also Published As

Publication number Publication date
FR3077146B1 (en) 2020-02-07

Similar Documents

Publication Publication Date Title
US20240028658A1 (en) Systems, apparatuses, and methods for providing a quality score based recommendation
US8489632B1 (en) Predictive model training management
EP2668545B1 (en) Dynamic predictive modeling platform
US8533222B2 (en) Updateable predictive analytical modeling
US10353764B1 (en) Automated identification of device status and resulting dynamic modification of device operations
US8595154B2 (en) Dynamic predictive modeling platform
US20170293865A1 (en) Real-time updates to item recommendation models based on matrix factorization
US20140330741A1 (en) Delivery estimate prediction and visualization system
US20120143718A1 (en) Optimization of a web-based recommendation system
US8799455B1 (en) Addressable network resource selection management
US20180082364A1 (en) Adaptive risk-based verification and authentication platform
FR3030168A1 (en) METHOD FOR CHOOSING AT LEAST ONE SERVICE AND ASSOCIATED DEVICE
US11593381B2 (en) Re-computing pre-computed query results
FR3077146A1 (en) RECALCULATION OF PRECALCULATED INTERVIEW RESULTS
US11210712B2 (en) Automatic rule generation for next-action recommendation engine
US20170213236A1 (en) Estimation of Causal Impact of Digital Marketing Content
EP3743823B1 (en) Re-computing pre-computed query results
FR3086412A1 (en) RECALCULATION OF PRECALCULATED RESEARCH RESULTS
EP3475847B1 (en) Statistics server for optimising client-server queries
FR3001823A1 (en) SYSTEM FOR MANAGING TRANSACTION ORDERS WITH LIMITED PARTIES
US20230230099A1 (en) Goal-based next optimal action recommender
EP3617888A1 (en) Device and method for optimising the use over time of the resources of a computer infrastructure
EP4148569A1 (en) Method for scheduling a set of calculation tasks in a supercomputer
US20240095608A1 (en) Method and system for intelligent itinerary management
US11972278B2 (en) Dynamic computing touchpoint journey recommendation platform

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190726

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7