FR3028076A1 - Architecture logicielle pour systeme expert - Google Patents
Architecture logicielle pour systeme expert Download PDFInfo
- Publication number
- FR3028076A1 FR3028076A1 FR1460382A FR1460382A FR3028076A1 FR 3028076 A1 FR3028076 A1 FR 3028076A1 FR 1460382 A FR1460382 A FR 1460382A FR 1460382 A FR1460382 A FR 1460382A FR 3028076 A1 FR3028076 A1 FR 3028076A1
- Authority
- FR
- France
- Prior art keywords
- value
- input
- values
- rule
- input value
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000011156 evaluation Methods 0.000 claims abstract description 48
- 230000014509 gene expression Effects 0.000 claims description 90
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 16
- 230000018109 developmental process Effects 0.000 abstract description 16
- 230000008859 change Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- BSYNRYMUTXBXSQ-UHFFFAOYSA-N Aspirin Chemical compound CC(=O)OC1=CC=CC=C1C(O)=O BSYNRYMUTXBXSQ-UHFFFAOYSA-N 0.000 description 4
- 229960001138 acetylsalicylic acid Drugs 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000001149 cognitive effect Effects 0.000 description 3
- 238000009792 diffusion process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- MWUXSHHQAYIFBG-UHFFFAOYSA-N Nitric oxide Chemical compound O=[N] MWUXSHHQAYIFBG-UHFFFAOYSA-N 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- 230000009885 systemic effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000009423 ventilation Methods 0.000 description 2
- CBENFWSGALASAD-UHFFFAOYSA-N Ozone Chemical compound [O-][O+]=O CBENFWSGALASAD-UHFFFAOYSA-N 0.000 description 1
- 206010037660 Pyrexia Diseases 0.000 description 1
- 241000826860 Trapezium Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/048—Fuzzy inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Fuzzy Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Il est divulgué un procédé mis en œuvre sur ordinateur comprenant les étapes consistant à recevoir une valeur d'entrée à évaluer; enfiler la valeur d'entrée dans une file d'attente; sélectionner au sein de la file d'attente une valeur d'entrée en attente; déterminer une valeur de sortie en évaluant par inférence au moyen de la base de règles la valeur d'entrée en attente sélectionnée. Des développements décrivent la diffusion d'une ou plusieurs valeurs de sortie, la planification dans le temps et/ou dans l'espace des évaluations des valeurs d'entrées en attente (notamment en matière de ressources de calcul), l'évaluation sélective de valeurs d'entrée, l'utilisation d'un graphe de dépendance, des paramètres d'expiration de parties de règles dans le temps, l'utilisation de l'inférence selon la logique floue. Des aspects de système, notamment de composants, et de logiciels sont décrits. 136 mots
Description
3028076 ARCHITECTURE LOGICIELLE POUR SYSTEME EXPERT Domaine de l'invention L'invention concerne le domaine de l'intelligence artificielle en général et le domaine des systèmes experts à base de règles en particulier, notamment fondés sur la logique floue. Etat de la Technique Les Systèmes Intelligents Flous (SIF) - ou systèmes experts flous - sont des systèmes qui intègrent ou implémentent de l'expertise humaine et qui visent à automatiser ou imiter le raisonnement d'experts humains face à des systèmes complexes. Ces systèmes éminemment techniques peuvent se fonder sur différentes aspects de la logique mathématique et en particulier sur la logique dite "logique floue". Les systèmes experts dits "flous" nécessitent généralement plus de calculs que les systèmes experts standards ou classiques. Par ailleurs, ces systèmes requièrent généralement de réitérer dans le temps ces calculs significatifs (par exemple lorsqu'ils sont appliqués à des systèmes dynamiques qui changent au cours du temps). Les systèmes experts dits "flous" nécessitent généralement de la puissance de calcul. Les scientifiques développant des systèmes experts flous sont généralement amenés à construire des opérateurs de plus en plus complexes et "riches". Le temps de calcul peut alors devenir plus important que les conjonctions, disjonctions et négations que l'on trouve généralement avec les systèmes experts classiques.
2 3028076 Par ailleurs, les systèmes experts flous nécessitent la répétition de ces calculs. En effet, dans les systèmes experts classiques, seules certaines règles sont activées à un moment donné alors qu'avec les systèmes experts flous, toutes les règles doivent être recalculées (à tout le moins 5 une grande partie d'entre elles). Selon l'état de l'art des systèmes experts actuellement commercialisés (e.g. offerts au téléchargement ou à l'achat), le seul moyen disponible actuellement afin de gérer un flux de données d'entrée (c'est-à-dire de multiples données reçues au cours du temps) consiste à relancer l'évaluation à chaque pas de temps. Cette approche 10 nécessite en particulier de réévaluer les règles mises en oeuvre dans un tel système expert flou et de manière répétée dans le temps (par exemple toutes les secondes). Cette approche produit l'effet d'une prise de décision continue (e.g. "au fil de l'eau" ou "progressivement" ou "au fur et à mesure" ou "de manière continue", voire dans certains cas une décision 15 "interactive" ou même "temps-réel" ou "quasi-temps réel" ou "en flux tendu"). Un problème technique qui se pose est que toutes les règles doivent être réévaluées à chaque itération, y compris celles dont les entrées n'ont pas changées. Cela est d'autant plus coûteux en termes de calcul que des opérateurs dont l'évaluation peut être fort complexe 20 peuvent être impliqués dans ces calculs. Cette situation sous-optimisée est en soi insatisfaisante. En pratique également, les dispositifs et appareils impliqués peuvent ne pas disposer de la puissance de calcul suffisante, quand bien même le calcul serait-il distribué entre plusieurs appareils coopérant les uns avec les autres. Dans un cadre d'utilisation 25 particulier, celui de l'Internet des objets, il est par exemple généralement prévu un très grand nombre d'objets en interaction mais ces objets ne disposent pas nécessairement de moyens de calcul appropriés. Afin de résoudre ces différents aspects, la littérature brevet reste 30 silencieuse en matière de logique floue. De rares documents de brevet traitent du problème technique initial mais dans le cadre de systèmes 3 3028076 experts classiques, c'est-à-dire sans prendre en compte les spécificités relatives à la logique floue. Dans le cadre classique, le document US8214316 enseigne que l'évaluation des règles (e.g. "forward chaining") peut être soumise à une notification des entrées changées. Les autres 5 documents connus ne traitent pas de logique floue. L'invention proposée dans le présent document permet de répondre à ces besoins ou limitations, au moins en partie.
10 Résumé de l'invention Il est divulgué un procédé mis en oeuvre sur ordinateur comprenant les étapes consistant à recevoir une valeur d'entrée à évaluer; enfiler la valeur d'entrée dans une file d'attente; sélectionner au sein de la file 15 d'attente une valeur d'entrée en attente; déterminer une valeur de sortie en évaluant par inférence au moyen de la base de règles la valeur d'entrée en attente sélectionnée. Des développements décrivent la diffusion d'une ou plusieurs valeurs de sortie, la planification dans le temps et/ou dans l'espace des évaluations des valeurs d'entrées en 20 attente (notamment en matière de ressources de calcul), l'évaluation sélective de valeurs d'entrée, l'utilisation d'un graphe de dépendance, des paramètres d'expiration de parties de règles dans le temps, l'utilisation de l'inférence selon la logique floue. Des aspects de système, notamment de composants, et de logiciels sont décrits.
25 Selon un aspect général de l'invention, il est divulgué une architecture logicielle permettant d'obtenir des performances optimisées, visant à identifier les différentes données en sortie en fonction des règles et des données en entrée.
30 4 3028076 Plus précisément, selon un mode de réalisation de l'invention, il est divulgué un système expert flou capable de gérer un flux (continu ou régulier ou discontinu ou irrégulier ou périodique ou apériodique ou intermittent) d'entrées et de restituer progressivement (e.g. "au fil de 5 l'eau") les valeurs des sorties correspondantes. Les différents modes de réalisation de l'invention sont avantageusement utilisés dans des domaines techniques tels que la domotique ou la régulation industrielle. De manière générale, l'invention trouvera 10 application pour surveiller ("monitoring") un système ou un objet donné au moyen de plusieurs capteurs ("senseurs") qui mesurent différents phénomènes en continu (ou à des fréquences éventuellement différentes, par intermittence ou de manière périodique). Des procédés et des systèmes selon l'invention peuvent permettre d'implémenter un système 15 de régulation en domotique. Par exemple, un système expert flou selon l'invention peut mesurer au cours du temps (de manière discrète ou en continu) les variations de températures, de luminosité et d'occupation des pièces pour déduire et/ou actionner des commandes correspondantes (par exemple d'ouverture des volets).
20 Avantageusement, mais de manière facultative, l'écriture des règles selon l'invention s'effectue en langage naturel (plutôt qu'au moyen d'opérateurs mathématiques). Cela permet de cacher - au moins pour partie - à l'opérateur qui saisit ses règles expertes la complexité mathématique 25 sous-jacente au modèle en cours d'exécution. L'utilisation du langage naturel permet également d'améliorer l'expressivité du système expert. Cette caractéristique permet d'obtenir une meilleure couverture des situations réelles par les règles. En d'autres termes, un système expert flou fondé sur des règles exprimées en langage naturel permet in fine une 30 meilleure "capture" du réel. En d'autres termes, certains modes de réalisation manipule avantageusement des règles ou expressions utilisant 5 3028076 le vocabulaire du langage naturel, améliorant la compréhension (et donc la manipulation ultérieure) des dites règles ou expressions. Cet avantage est inhérent à la logique floue, comme indiqué dans « The 5 concept of a linguistic variable and its applications » de L.A. Zadeh. L'invention trouve avantageusement application pour des systèmes experts tant "classiques" que "flous".
10 La logique floue ("fuzzy logic" en anglais) est une extension de la logique classique aux raisonnements approchés. Par ses aspects numériques, elle s'oppose aux logiques modales. A l'inverse de l'algèbre de Boole, la logique floue autorise la valeur de vérité d'une condition à parcourir un autre domaine que la paire {vrai, faux}. En logique floue, il existe des 15 degrés dans la satisfaction d'une condition. La logique floue attribue des degrés de vérité à une relation du style x est_plus_près_de y que_de z, construite et/ou affinée par apprentissage. De façon générale, les relations floues permettront de coder des connaissances graduées, empiriques ou typiques, acquises directement ou par des heuristiques, 20 des inductions, etc. Les transitions utilisées peuvent être de type linéaire, hyperbolique (e.g. sigmoïde ou tangente hyperbolique), exponentielle, gaussienne, etc. Les procédés et systèmes selon l'invention facilitent de manière générale 25 les interactions homme-machine. En particulier, ils peuvent permettre de décharger l'utilisateur de manipulations fastidieuses, parfois répétitives et souvent complexes. Généralement, les différents modes de réalisation de l'invention conduisent à l'optimisation de l'effort cognitif à fournir par l'utilisateur lors de l'utilisation du système expert selon l'invention. En 30 d'autres termes, les effets techniques liés à certains aspects de l'invention correspondent à une réduction de la charge cognitive de l'utilisateur.
6 3028076 Description des figures Différents aspects et avantages de l'invention vont apparaitre en appui de la description d'un mode préféré d'implémentation de l'invention mais non 5 limitatif, avec référence aux figures ci-dessous : La figure 1 schématise l'architecture générale d'un exemple de procédé selon l'invention; 10 La figure 2 illustre un exemple de règle représentée sous forme de graphe; La figure 3 illustre un exemple de graphe avec des noeuds présentant des priorités.
15 Description détaillée de l'invention D'une manière générale, un système à base de règles est un outil capable de reproduire les mécanismes cognitifs d'un expert, dans un 20 domaine particulier. Plus précisément, un système expert est un logiciel capable de répondre à des questions, en effectuant un raisonnement à partir de faits et de règles connus. Il peut servir notamment comme outil d'aide à la décision. Un système expert se compose de trois parties: une base de faits, une base de règles et un moteur d'inférence. Le moteur 25 d'inférence est capable d'utiliser faits et règles pour produire de nouveaux faits, jusqu'à parvenir à la réponse à la question experte posée. Un système expert peut reposer sur des mécanismes de logique formelle et utilisent le raisonnement déductif. Il peut par exemple s'appuyer sur la logique des propositions (« logique d'ordre 0 »), ou bien la logique des 7 3028076 prédicats du premier ordre (« logique d'ordre 1 »). Des techniques de logique floue peuvent aussi être utilisées. Les algorithmes pour réaliser le calcul par inférence sont divers et 5 peuvent notamment être spécifiques à la nature de la logique qui est implémentée. Par exemple, pour la logique d'ordre 0 - utilisée entre autres par les systèmes de gestion de règles business (« Business Rule Management Systems » ou BRMS) -, les algorithmes de chaînage avant ou arrière (« forward chaining » ou « backward chaining ») permettent de 10 partir des faits et d'en déduire les conclusions (ou inversement de partir des conclusions pour connaître les faits qui en sont à l'origine). Dans les années 80, les algorithmes Rete et Novel ont remplacé ces algorithmes de chaînage en proposant une étape de filtrage des règles impactés par les faits. Pour la logique d'ordre 1, les algorithmes de chaînage sont 15 utilisés conjointement avec un algorithme d'unification qui permet d'instancier un prédicat pour un ou plusieurs individus dans l'espace considéré. Enfin en logique floue, les méthodes d'inférence de Zadeh, Mamdani et Sugeno peuvent être utilisées.
20 Dans les systèmes à base de connaissances exprimées en langage naturel, une connaissance est généralement représentée par des règles de la forme : "si une grandeur est [adjectif] et une autre grandeur est [adjectif] alors la grandeur de la sortie est [adjectifT. Par exemple: "si la température extérieure est très froide et que la pluie est fine alors le 25 risque de verglas est grand'. Les procédés et systèmes selon l'invention effectuent une ou plusieurs opérations ou étapes, parmi lesquelles des étapes de a) stockage b) de mesure ou d'observation c) de planification de l'évaluation d) d'évaluation 30 proprement dite et e) de diffusion.
8 3028076 Plus spécifiquement, le procédé comprend une ou plusieurs étapes parmi - a) des étapes de stockage; les modifications observées quant aux entrées peuvent être stockées dans une file d'attente (cette file d'attente ou "buffer" permet avantageusement de manipuler des données en 5 entrées qui pourraient changer ou s'accumuler plus vite que les capacités de traitement du système ne le permettent). Eventuellement, en application de sa politique propre, la file d'attente selon l'invention peut supprimer, et/ou fusionner des éléments (par exemple si la fréquence de rafraîchissement des entrées est trop élevée). En d'autres termes, la file 10 d'attente peut ne pas être "passive" (au sens d'un simple espace de stockage temporaire) mais au contraire être "active", i.e. participer activement au système global; - b) des étapes de mesure ou d'observation ou de surveillance ou de suivi du contexte courant (comprenant et non limité à la surveillance de l'état 15 de la machine, i.e. charge ou activité processeur ou moyens de calcul, utilisation instantanée de la mémoire, etc); de surcroît, ces étapes peuvent en outre comprendre des étapes de sélection de certains éléments à retirer de la file d'attente, par exemple en vue de leur traitement (selon la politique implémentée); 20 - c) des étapes de planification quant à l'évaluation des éléments sélectionnés sur les différents moyens de calculs physiques (suivant les différents niveaux de granularité accessibles, depuis les grappes de serveurs, les serveurs, les processeurs au sein des serveurs, les coeurs au sein des processeurs; également la subdivision des tâches de calcul, 25 par exemple les threads de calcul, etc). Par exemple, si les éléments sont indépendants (c'est-à-dire qu'ils n'influent pas sur les mêmes sorties), il est possible dans certains cas de procéder à des calculs en parallèle. En d'autres termes, le composant de planification peut sélectionner une ou plusieurs entrées (ou un groupe d'entrées) ayant changées ou ayant été 30 modifiées et peut décider d'affecter son évaluation à une entité (un coeur, un calculateur) et/ou peut simplement ne pas prendre en compte un 9 302 80 76 groupe d'entrées s'il juge que la machine est trop occupée et/ou que ces modifications ne sont pas informatives ou redondantes. - d) des étapes d'évaluation des sorties à partir des éléments sélectionnés en amont; 5 - e) des étapes de diffusion des nouvelles valeurs de sortie (en considération de la politique de diffusion définie localement); les modalités de ladite diffusion peuvent s'effectuer de diverses manières et à l'intention soit de diverses sous-entités (généralement vers l'extérieur du système expert flou, mais dans des cas particuliers vers des composants 10 internes à ce système). De manière générale, il est divulgué un procédé mis en oeuvre sur ordinateur de gestion d'une base de règles 150 le procédé comprenant les étapes consistant à recevoir une valeur d'entrée 101 à évaluer; 15 évaluer par inférence au moyen de la base de règles 150 une valeur de sortie 102 correspondant à la valeur d'entrée 101; caractérisé en ce que le procédé comprend les étapes consistant à enfiler la valeur d'entrée dans une file d'attente 110; sélectionner 112 au sein de la file d'attente 110 une valeur d'entrée en attente; et déterminer une valeur de sortie 102 20 en évaluant par inférence au moyen de la base de règles 150 la valeur d'entrée en attente sélectionnée. Une valeur d'entrée peut être une valeur numérique (par exemple "38") ou une donnée symbolique ou bien une variable (par exemple "a") ou 25 bien encore une suite de caractères (par exemple "38°C"). La base de règles 150 comprend des règles. Une règle - au sens de l'invention - est constituée de plusieurs éléments: 30 des propositions, des expressions (unaires, binaires, ...) et des conclusions. Les propositions peuvent comprendre des variables 10 3028076 linguistiques dans le cadre de la logique floue. Une règle comprend plusieurs expressions (prémices, conclusions) et un ou plusieurs opérateurs (par exemple des opérateurs logiques prédéfinis standard "si", "alors", etc. ainsi que des opérateurs spécifiques "avant", "après", "tant 5 que"). Par exemple une règle peut être "si la température est haute alors ouvrir la fenêtre"). Une expression peut notamment comprendre une suite de caractères (par exemple "si la température est haute" ou "ouvrir la fenêtre"). Une expression peut être une expression régulière. Une expression peut être une expression rationnelle. Une expression peut être 10 une expression formelle. Avantageusement une règle ou une expression manipulée par le procédé selon l'invention comprend du vocabulaire appartenant au langage naturel (i.e. les mots ou suites de caractères sont des mots du langage naturel), 15 améliorant la compréhension des règles par l'utilisateur et renforçant l'expressivité de ces mêmes règles (e.g. leur capacité de "capture" du monde réel). Une valeur d'entrée selon l'invention est "enfilée" ("to queue" en anglais) 20 ou "placée dans une file d'attente". Une valeur d'entrée est ensuite sélectionnée parmi les valeurs en attente. Spécifiquement, cette sélection peut être du fait de la file d'attente elle- 25 même (par exemple lorsque la capacité de stockage de la file d'attente est atteinte, cette dernière peut "pousser" une ou plusieurs valeurs d'entrée vers l'évaluation ou vers d'autres composants du système). De manière générale, la sélection est du fait du module de planification 30 (i.e. des étapes consistant à planifier les évaluations), par exemple selon 11 3028076 un mode "pull". Le composant de planification (les étapes de planification) participe du contrôle du système ainsi défini. Dans certains modes de réalisation, l'enfilage peut être du type "First In 5 First Out'. Dans certains modes de réalisation, la mise en file d'attente peut impliquer des traitements sur les valeurs. La file d'attente peut en effet être associée à une "politique", c'est-à-dire un ensemble de règles. Ces règles sont prédéfinies. Elles peuvent être de type logique (selon diverses modalités, par exemple logique classique. Elles sont parfois 10 configurables (de manière préalable et/ou à la demande i.e. en cours d'exécution du procédé ou système global). En l'espèce, en matière de file d'attente, les valeurs d'attente peuvent être "ordonnées" et/ou "triées" et/ou "regroupées" et/ou "effacées". Les critères de traitement sont variables (pondérations, corrélations, scoring, etc.).
15 L'étape de mise en file (i.e. le composant de mise en file des entrées) peut placer les modifications perçues des entrées dans une file d'attente de manière à ne perdre aucune information. Dans un mode de réalisation la file d'attente (ou le composant système correspondant) n'est en effet 20 pas nécessairement de capacité limitée comme un buffer peut l'être; une file d'attente selon l'invention peut éventuellement être adaptée à la gestion d'une grande quantité de données. En fonction de sa politique, le composant de mise en file des entrées peut supprimer des éléments ou les fusionner, par exemple si une entrée change de valeurs sans que le 25 changement soit significatif. Dans un autre exemple, il permet aussi de les regrouper par heure d'arrivée. Activement sollicitée par l'étape de planification ou poussée par la gestion de la file d'attente, une valeur d'entrée est sélectionnée.
30 12 3028076 Par la suite la valeur d'entrée est "exécutée" (i.e. "l'expression ou la règle est évaluée"). En d'autres termes, selon une vue systémique, le composant d'évaluation reçoit un groupe d'entrées modifiées et par inférence par rapport à la base de règles calcule les sorties.
5 Par exemple, la valeur de l'entrée vitesse (« La vitesse est-elle élevée ? ») peut être évaluée: une valeur peut être déterminée en sortie. En considérant la règle ou commande floue «si la fièvre est forte, alors administrer de l'aspirine", une entrée sera une valeur de température (par 10 exemple "41°C"). Il peut être considéré qu'une fiè\re n'est pas forte en dessous de 38 °C, et qu'elle est forte au-dessus de40 °C selon la base de règles (i.e. graduellement de plus en plus forte entre 38°C et 40°C (linéairement, exponentiellement, ou selon des fonctions continues). Une valeur de sortie sera une expression «administrer de l'aspirine » ou une 15 valeur/quantification par exemple "X" milligrammes d'aspirine. L'évaluation proprement dite s'effectue par inférence. L'inférence est un mouvement de la pensée qui va des principes à la conclusion. Le terme désigne les actions de mise en relation d'un ensemble de propositions, 20 aboutissant à une démonstration de vérité, de fausseté ou de probabilité, sous la forme d'une proposition appelée conclusion. Selon l'invention, l'inférence peut être déductive ou inductive ou bien encore abductive. Dans un développement, le procédé comprend en outre une étape 25 consistant à diffuser une ou plusieurs valeurs de sortie 102. En termes de système, le composant de planification, en application de sa politique, peut sélectionner une valeur de sortie particulière.
13 3028076 Le composant de diffusion peut, également en fonction de sa politique, sur-sélectionner des valeurs avant de les communiquer (i.e. sélectionner des valeurs préalablement sélectionnées).
5 Par exemple, le composant de diffusion peut communiquer ou diffuser des valeurs de sortie à intervalle régulier dans le temps et/ou quand un événement particulier se produit et/ou si certaines conditions sont satisfaites, etc. La prise en compte de l'historique peut par exemple contribuer à la fusion ou à l'assimilation des valeurs d'entrée; la prise en 10 compte de certains seuils prédéfinis peut conduire le composant de diffusion à ne pas réitérer la diffusion d'un résultat associé à une entrée si une valeur très proche (e.g. dans les limites de seuils prédéfinis) a déjà été communiquée par le passé, à tout le moins au cours d'une fenêtre temporelle également prédéfinie etc. ....
15 En d'autres termes, l'étape de diffusion (respectivement le composant de diffusion) comprend une étape consistant à communiquer les valeurs des sorties à l'extérieur du système expert flou en fonction de sa politique. Il peut ainsi diffuser les valeurs des seules sorties ayant changées de 20 valeurs et/ou d'y joindre les informations d'interprétation (tout ou partie des les valeurs permettant de retracer l'inférence par exemple) et/ou de communiquer les valeurs des sorties ayant connues un changement significatif (supérieur à un seuil) et/ou les valeurs des sorties qui n'ont pas changé pas de valeur mais dont les informations d'interprétation sont 25 différentes. Le composant ou unité ou organe en charge de la "diffusion" ou "communication" ou "publication" proprement dite de cette valeur de sortie 102 peut être le composant 130 par exemple. Par "diffusion" ou 30 "communication" ou "publication" il est signifié une diffusion ou communication extérieure ou externe (les autres échanges ou passages 14 3028076 de message s'effectuent de manière interne au système 100. Le système 100 du point de vue de l'utilisateur ou d'un point de vue systémique apparaît comme une "boite noire", qui traite (selon une régulation ou des traitements internes propres) un certain nombre de données et publie 5 certaines valeurs en sortie. Les modalités de communications sont nombreuses: affichage visuel (écran LCD, flash lumineux, etc), transmission de données ou passage de messages (e.g. email, canal données, flux RSS), signal ou émission audio, signal vibratile (ou selon une combinaison de ces modalités de communication).
10 Dans un développement, l'étape consistant à évaluer une valeur d'entrée en attente sélectionnée comprend une étape consistant à planifier dans le temps et/ou dans l'espace les évaluations des valeurs d'entrées en attente.
15 Il est souligné qu'au moins une valeur d'entrée en attente sélectionnée en amont peut être évaluée. L'étape d'évaluation peut en effet comprendre des étapes consistant à allouer les tâches de calcul aux différents moyens de calcul (répartition physique et également temporelle). Le 20 terme "planifier" veut dire "organiser" (i.e. ordonnancement dans le temps et dans l'espace). La planification dans le temps et/ou l'espace consiste notamment et par exemple à ordonner ou organiser ou orchestrer les calculs (par exemple les "threads" ou selon toute autre sous-tâche de calcul correspondant à des niveaux de granularité différents) ainsi qu'à 25 les assigner à des unités de calculs, c'est-à-dire une allocation des tâches de calcul dans l'espace (de manière physique entre les différents processeurs ou coeurs de processeur, CPU multicore ou manycore). Dans un développement, une sélection de valeurs d'entrée (ayant été 30 sélectionnées) est évaluée à son tour.
15 3028076 L'évaluation ou exécution peut être sélective. Parmi les valeurs d'entrée sélectionnées dans la file d'attente, par exemple par le composant de planification, seule une fraction peut être 5 éventuellement évaluée in fine. En d'autres termes, une sélection de valeurs d'entrées préalablement sélectionnées peut être évaluée. Le procédé selon l'invention peut en effet ne pas calculer ou évaluer certaines valeurs d'entrée. De manière positive, seules certaines 10 expressions ou valeurs d'entrées sont évaluées. Cette sélection peut se faire en raison de différentes contraintes ou raisons (e.g. économie de calculs, vitesse, etc.). Selon un aspect de l'invention, le procédé est économe en calculs.
15 La manière de sélectionner les expressions ou valeurs qui seront seules évaluées peut se faire de différentes manières (e.g. critères de pertinence, seuils, etc.).
20 Le procédé peut n'évaluer une ou plusieurs valeurs d'entrée que lorsque cela est nécessaire. Dans un mode de réalisation, l'étape ou unité d'enfilage peut regrouper des entrées par exemple en fonction du contexte de modification (par 25 exemple, l'heure à laquelle les entrées ont changé) et l'étape de planification ou le planificateur peut récupérer un groupe d'entrées associé à ce même contexte. Dans une variante, le contexte peut être le lieu où les entrées ont changé. D'autres variantes utilisent des combinaisons de date et de lieu etc.
30 16 3028076 Dans un développement, le procédé comprend en outre une étape consistant à disjoindre le graphe correspondant à la base de règles 150 en plusieurs sous-graphes disjoints, une étape consistant à sélectionner au moins un sous-graphe comprenant un noeud correspondant à une 5 valeur d'entrée en attente sélectionnée et une étape consistant à évaluer ledit sous-graphe sélectionné. Afin de déterminer quelles sont les valeurs d'entrée dont l'évaluation est nécessaire, il est avantageux de représenter la dépendance entre tous les 10 éléments qui composent la règle ou l'expression. De la sorte des optimisations peuvent être conduites (suppressions des redondances, calculs restreints aux seuls calculs nécessaires, etc.). Deux méthodes sont décrites ci-après.
15 Dans un mode de réalisation particulier, une représentation des règles sous forme de graphe permet d'isoler les noeuds (correspondant aux différentes règles ou expressions composant ces règles) dont il est avantageux de procéder à la réévaluation.
20 La base de règles peut être représentée sous la forme d'un graphe plutôt que sous la forme d'une forêt (un ensemble d'arbres) car ce faisant il est possible de s'assurer de l'unicité des noeuds. Selon cet aspect, une partie d'une règle (une proposition, une expression, une conclusion, une entrée, 25 une sortie...) ne peut être représentée que par un seul noeud. En d'autres termes, il existe une bijection des noeuds vers les parties de règles et les règles elles-mêmes. Ainsi, si une même partie de règle apparaît plusieurs fois dans différentes règles, elle peut n'être évaluée qu'une seule fois.
30 Lorsqu'un certain sous-ensemble des entrées change à un temps t, seuls les noeuds qui sont affectés peuvent en effet être réévalués.
17 3028076 Il est avantageux d'identifier différents sous-graphes disjoints du graphe (lequel représente toute la base de règles). Concrètement, le graphe G correspondant à la base de toutes les règles sera disjoint en plusieurs 5 graphes Gi connexes pour lesquels il n'existe pas d'arête commune entre ces différents Gi. Les graphes disjoints n'ont ainsi aucun noeud en commun, donc aucune partie en commun donc aucune entrée ou sortie en commun. Ainsi, il devient possible d'évaluer parallèlement les différents sous graphes disjoints du graphe global.
10 Le graphe est orienté (par exemple, le noeud A orienté vers le noeud B). L'évaluation d'un noeud donné peut avoir une conséquence sur l'évaluation d'un noeud qui en dépend. Pour procéder à l'évaluation des noeuds du graphe, ledit graphe peut être parcouru. Au chargement de la 15 base de règles, lors de la construction du graphe, chaque noeud est associé à une certaine "priorité" d'évaluation relative à sa profondeur dans le graphe (dans un mode de réalisation, les valeurs d'entrée peuvent être associées avec une priorité égale à zéro ; d'autres noeuds peuvent avoir une même priorité mais généralement les différents noeuds 20 sont associés à des priorités différentes). Une fois les différentes priorités (ou profondeurs) déterminées, certains noeuds - déterminés par les chemins les reliant aux noeuds représentant une entrée du système - sont recalculés. Les noeuds sont évalués tour à tour uniquement si au moins un de leurs prédécesseurs a changé de valeur. Si un noeud ne 25 change pas de valeur, l'évaluation des chemins partant de lui-même ne s'effectue pas. Le graphe global associé ou représentant la base de règles est d'abord disjoint en plusieurs sous-graphes disjoints, ce qui permet des traitements 30 ou des analyses en parallèle (les sous-graphes sont "indépendants"). Le procédé sélectionne ensuite un ou plusieurs sous-graphes. Un critère de 18 3028076 sélection comprend le fait de détecter un ou plusieurs noeuds représentant par exemple les seules valeurs d'entrée ayant changé suffisamment i.e. qui sont été sélectionnées par le planificateur parmi la file d'attente contenant les valeurs d'entrée. Enfin, le sous-graphe est 5 évalué. Disjoindre le graphe en plusieurs sous-graphes permet par suite de paralléliser les calculs et d'allouer ces calculs à des coeurs et/ou threads indépendants. Avantageusement, cette parallélisation amoindrit les 10 possibilités d'erreurs dans les calculs, améliore la vitesse de traitement, optimise l'utilisation des ressources ou moyens de calcul, etc. Dans un développement, l'étape consistant à évaluer un sous-graphe comprend une étape consistant à parcourir ledit sous-graphe, une étape 15 consistant à associer récursivement une priorité à chaque noeud du sous- graphe et une étape consistant à évaluer les noeuds par priorité croissante. La priorité est de manière plus générale un coefficient ou un paramètre ou 20 une valeur. D'autres modes de réalisation de l'invention font intervenir non pas une valeur de priorité mais une "profondeur". Il existe diverses manières d'annoter le graphe. Il est possible dans un mode de réalisation d'associer les entrées à une valeur égale à zéro et de procéder par incrémentation à mesure que le graphe est parcouru (les noeuds associés 25 aux valeurs de priorité les plus faibles étant alors traitées en premier lieu).D'autres modes de réalisation de l'invention peuvent utiliser d'autres techniques de pondération ou de scoring. Dans un développement, le procédé comprend en outre une étape 30 consistant à comparer les chaines de caractères composant les expressions composant les règles de la base de règles, une étape 19 3028076 consistant à supprimer les redondances entre lesdites expressions de manière à obtenir des expressions uniques et une étape consistant à évaluer lesdites expressions uniques.
5 Alternativement à la représentation sous forme de graphe, i.e. sans recourir à un mode de représentation et/ou d'analyse des données sous forme de graphe (i.e. représentation seule, analyse seule, ou représentation et analyse sous forme de graphe), il est possible de procéder à des comparaisons de chaînes de caractères.
10 Une expression peut être présente dans plusieurs règles. Par exemple l'expression "la température est haute" peut être présente dans une première règle "si la température est haute alors ouvrir la fenêtre" et une seconde règle "si la température est haute alors administrer de l'aspirine".
15 II est possible de représenter de manière unique des expressions apparaissant plusieurs fois dans la base de règles. Une façon de faire comprend des opérations de comparaison de chaines de caractères composant les expressions ou règles. Les redondances peuvent être partiellement ou totalement supprimées.
20 Dans un développement, une partie d'une règle de la base de règles 150 est associée à une paramètre/valeur d'expiration dans le temps. Dans certains modes de réalisation, aucune règle (ou a fortiori partie de 25 règle) n'expire, i.e. la validité de la règle est persistante dans le temps. Dans d'autres modes de réalisation, une ou plusieurs règles (ou parties de règles) peuvent expirer dans le temps (selon divers paramétrages) Selon un aspect de l'invention, une partie ou portion de règle peut expirer 30 dans le temps ("se périmer", devenir "obsolète" ou "caduque" ou "non actionnable" ou "sans effet"). Une partie de règle peut être une 20 3028076 proposition ou une expression par exemple. Les parties de règles expirables sont donc des objets qui ont une durée de vie limitée dans le temps (ou dont la valeur calculée a une durée limitée dans le temps). Lorsque cette durée est dépassée, i.e. expirée ou périmée, le 5 planificateur (entre autres unités du système) peut prendre la décision de ne pas évaluer la partie de règle en question. En pratique, le planificateur peut vérifier si l'expression expirée est utilisée dans un des calculs tels que planifiés dans le temps et/ou l'espace. Le cas échéant, l'expression est évaluée; à défaut, l'expression est laissée inchangée avec sa valeur 10 expirée. Dans certains cas, l'expression expirée est supprimée. Par exemple si une règle est de la forme « si demain il fera beau et qu'aujourd'hui il pleut alors retarder la lessive », l'expression « demain il fera beau » peut changer de valeur pour deux raisons: soit les prévisions 15 météorologiques ont changé (dans ce cas il ne s'agit pas véritablement d'une expiration mais d'un simple changement de valeur en fonction des entrées du système) soit la valeur change (par exemple du fait du passage de la journée de mercredi minuit à jeudi). Même si la valeur de la prévision météorologique pour mercredi demeure inchangée, l'expression 20 va expirer (en l'espèce, elle expire toutes les 24h). De manière générale chaque expression peut expirer selon des paramètres temporels différents. Dans certains modes de réalisation, des paramètres temporels avancés sont utilisés (intervalles de temps mais 25 également et par exemple selon les dérivées de temps, i.e. accélération de tendances etc). Des expressions ou parties de règles peuvent expirer selon des échelles de temps très diverses (e.g. toutes les secondes ou toutes les millisecondes pour des systèmes réactifs).
30 L'expiration de la validité des parties de règles peut être modulée de manière plus sophistiquée, par exemple en fonction de paramètres, de 21 3028076 tests, de circonstances ou de conditions diverses. Par exemple, des paramètres d'espace peuvent être pris en compte pour déterminer l'expiration ou la non-expiration d'une règle (e.g. conditions de géo localisation ou de "geofencing", etc).
5 Dans un développement, deux valeurs d'entrées sensiblement concomitantes sont assimilées à une seule et même entrée. Dans modes de réalisation, il est possible de considérer que les 10 modifications de deux entrées différentes intervenant à quelques millisecondes d'intervalles sont en fait concomitantes ("sensiblement" concomitantes) et par suite les fusionner ou les assimiler. L'emploi optionnel de seuils prédéfinis permet ladite assimilation.
15 Dans un développement, au moins une règle est exprimée en langage naturel. L'avantage associé au fait qu'une règle s'exprime en langage naturel, par opposition à un langage formel, réside dans l'expressivité de la base de 20 règles ainsi constituée. En outre, dans un contexte d'édition de ces règles, cette forme est avantageuse car compréhensible pour l'utilisateur. Dans un développement, l'évaluation par inférence s'effectue selon la logique d'ordre 0 ou la logique d'ordre 1 ou selon la logique floue.
25 Différentes familles d'algorithmes existent pour la mise en oeuvre de l'évaluation par inférence dans le procédé selon l'invention. L'une ou l'autre des logiques citées peut être utilisée selon les avantages associés à ces différentes logiques et aux contextes d'utilisation.
30 22 3028076 Il est divulgué un produit programme d'ordinateur, ledit programme d'ordinateur comprenant des instructions de code permettant d'effectuer une ou plusieurs des étapes du procédé, lorsque ledit programme est exécuté sur un ordinateur.
5 Il est divulgué un système comprenant des moyens pour la mise en oeuvre d'une ou plusieurs des étapes du procédé. Dans un développement, le système comprend des moyens de réception 10 d'une valeur d'entrée 101 à évaluer; des moyens d'évaluation par inférence au moyen de la base de règles 150 d'une valeur de sortie 102 correspondant à la valeur d'entrée 101; et est caractérisé en ce que le système comprend des moyens de stockage pour enfiler la valeur d'entrée 101; des moyens de calcul pour sélectionner une valeur d'entrée 15 enfilée et pour planifier dans le temps et/ou dans l'espace les évaluations d'une ou de plusieurs valeurs d'entrées en attente; des moyens de calcul pour évaluer la valeur d'entrée en attente sélectionnée enfilée en une valeur de sortie 102; des moyens d'entrée/sortie pour diffuser une ou de plusieurs valeurs de sortie 102; 20 Les moyens de stockage désignent par exemple des mémoires volatiles ou persistantes (e.g. mémoire flash, disque dur, DDRAM, SRAM, etc). Les moyens de calcul sont des processeurs ou des coeurs de processeurs. Les moyens d'entrée/sortie (ou "E/S" ou "I/O" pour 25 "Input/output" en anglais) sont des moyens de communication de différents types (radio, sans-fil, câblé e.g. Ethernet; utilisant une variété de protocoles TCP/IP ou autres). Dans un développement, le système comprend un composant 30 d'entrée/sortie pour recevoir une ou plusieurs valeurs d'entrée; un composant d'enfilage adapté pour effectuer une ou plusieurs des étapes 23 3028076 parmi celles consistant à stocker, regrouper, fusionner et supprimer des valeurs d'entrées; un composant de planification adapté pour effectuer une ou plusieurs des étapes parmi celles consistant à sélectionner, supprimer 7 regrouper, fusionner, allouer des valeurs d'entrées enfilées; 5 un composant d'évaluation adapté pour évaluer une ou plusieurs valeurs d'entrée enfilées et manipulées par le composant de planification par inférence au moyen de la base de règles; un composant de diffusion adapté pour sélectionner et communiquer une ou plusieurs valeurs d'entrées.
10 Une politique ("poney' en anglais) associée à un composant ou à une unité correspond à un ensemble de règles "internes" au composant ou à l'unité. Une politique peut être statique, i.e. prédéfinie et constante au cours du temps. Une politique peut aussi être dynamique, i.e. variable au 15 cours du temps. Parlant d'un système composé d'un ensemble de composants associé chacun avec de telles "politiques", une politique « générale » peut se dégager, au sens d'une émergence ou d'une constatation, résultant de la combinaison des différentes politiques mis en oeuvre de manière effective localement pour chaque composant. En 20 d'autres termes, l'ensemble des politiques des différents composants peuvent paramétrer le comportement global du système global. En particulier, différents fichiers de configuration des politiques mises en oeuvre dans les différents composants peuvent être mis à disposition (e.g. définis par l'utilisateur, l'opérateur du service de surveillance, via le 25 réseau etc). Les différentes politiques sont généralement exprimées par des règles liant des attributs descriptifs du problème ou de l'aspect du système à surveiller (e.g. en matière de temps de rafraichissement des entrées, 30 fréquence de rafraichissement des sorties...) ou des attributs descriptifs de la plateforme sur laquelle le système s'exécute (e.g. nombre et 24 3028076 occupation des processeurs, quantité de mémoire disponible et utilisée...) et des seuils. Par exemple pour le composant de mise en file, une règle peut-être que si une entrée change de valeur plusieurs fois en moins d'une seconde, seule la dernière valeur sera sélectionnée. Pour le 5 composant de planification, si la plateforme dispose de plusieurs coeurs disponibles, l'exécution pourra être parallélisée. Pour le composant d'évaluation, si un opérateur « AVANT» est utilisé par exemple, une « version » de l'opérateur - spécifique au problème ou à l'aspect du système surveillé -, par exemple une variante de l'implémentation de 10 l'opérateur pourra être mise en oeuvre. Pour le composant de diffusion, une politique pourra consister à diffuser les modifications toutes les secondes par exemple. En particulier, concernant l'aspect temporel, une politique de composant 15 peut considérer que des modifications relatives à deux entrées différentes intervenant à quelques millisecondes d'intervalles sont en fait concomitantes ("sensiblement" concomitantes) et seront donc assimilées à une seule et même entrée. Une politique peut configurer ou prédéfinir des assimilations ou fusions ou agrégations de données. Une politique de 20 fusion ou agrégation ou assimilation de données peut avantageusement être utilisée lorsqu'on sait que les valeurs des entrées sont apportées par un moyen de communication avec une certaine latence (réseau...). Une politique est donc un moyen de configurer ou de paramétrer un 25 composant par rapport à une application donnée. Le composant de planification peut « sélectionner » et « allouer » des valeurs d'entrées préalablement enfilées : en d'autres termes il peut « propager » des valeurs d'entrée particulières (il peut notamment 30 sélectionner ces valeurs de par la connaissance du graphe de 25 3028076 dépendance). Le composant de diffusion peut effectuer la communication à un temps ultérieur et donc « différer » la communication ou la diffusion. Une politique de composant comprend un ensemble de règles en relation 5 avec des moyens d'exécution tangibles pour exécuter ces règles. La politique associée à un composant permet de paramétrer et de modifier le comportement ("émergent") du composant auquel il s'applique. Une politique comprend généralement un ensemble d'opérations choisies 10 parmi les opérations consistant à filtrer, ordonner, trier, segmenter, diviser, fusionner, supprimer, ignorer, ajouter, substituer, concaténer, compresser, stocker une ou plusieurs valeurs d'entrée. Une politique peut être paramétrée (e.g. préalablement) ou paramétrable 15 (e.g. en fonction de variables par exemple...). En d'autres termes, une politique peut être configurée ou configurable. Dans un mode de réalisation, une politique peut être "universelle", au sens où les différentes politiques associées aux différents composants 20 peuvent être interchangeables. Dans un autre mode de réalisation, les politiques peuvent précisément ne pas être interchangeables entre les différents composants. Par exemple, concernant l'opération consistant à filtrer, l'unité d'enfilage n'appliquera pas le même type de filtrage que l'unité de diffusion ou bien encore que le planificateur.
25 Certains modes de réalisation particuliers associent préférentiellement certains types opérations à certains composants. Dans ces modes de réalisation particuliers, le composant d'enfilage est adapté pour effectuer une ou plusieurs des étapes parmi celles consistant à stocker, regrouper, 30 fusionner et supprimer des valeurs d'entrées ou des données; le composant de planification est adapté pour effectuer une ou plusieurs des 26 3028076 étapes parmi celles consistant à supprimer, annuler, sauter, fusionner, allouer (vers des ressources de calcul par exemple), associer ou annoter (e.g. par des valeurs d'état) des valeurs d'entrées; le composant de diffusion est adapté pour effectuer une ou plusieurs des étapes parmi 5 celles consistant à sélectionner (e.g. selon des critères ou des seuils prédéfinis), regrouper, différer, choisir des instants dans le temps, annuler des valeurs d'entrées ou des données; le composant d'évaluation est adapté pour effectuer une ou plusieurs des étapes parmi celles consistant à restreindre ou étendre les opérateurs évaluables (en choisissant des 10 variantes d'implémentation prédéfinies par exemple, i.e. changer la sémantique des operateurs) La figure 1 schématise l'architecture générale d'un exemple de procédé selon l'invention.
15 L'architecture d'un système expert flou 100 est composée d'une base de règles 150, d'un ensemble d'entrées 101 (ou "I" pour "input") et d'un ensemble de sorties 102 (ou "0" pour "Output"). Lorsque les entrées 101 changent, les sorties 102 sont calculées en fonction de la base de règles 20 150. Cette architecture est celle d'un système expert flou "classique". Selon l'invention, il est ajouté trois composants spécifiques à cette architecture.
25 Le composant 110 est un composant de mise en file ("enfilage" ou "Q" pour "queueing") des entrées 101. Dans le cadre d'un système dont les entrées changent de valeur au cours du temps, e.g. progressivement ou "au fil de l'eau", ce composant permet de capturer ces changements. Dans certains modes de réalisation, ce composant peut appliquer 30 différentes politiques de mise en file. Par exemple, certaines règles - ou politiques ("poney' en anglais) - de filtrage peuvent tenir compte des 27 3028076 capacités de la machine (e.g. de la machine-hôte ou de la machine monitorée) et/ou de la nature même des changements (par exemple si la valeur d'une sortie n'a changé de moins de 1%, il n'est pas utile de considérer sa nouvelle valeur), ou bien encore grouper les modifications 5 (non exhaustif). Le composant 130 est un composant de diffusion des sorties. Les sorties 102 changent au cours du temps. Ce composant selon l'invention permet avantageusement de "diffuser" (ou "notifier" ou "communiquer" ou 10 "transmettre") les nouvelles valeurs en sortie 102. Dans certains modes de réalisation, des explications sur le changement des valeurs des sorties peuvent être également communiquées. Le composant 130 à l'instar du composant 110 peut appliquer différentes politiques prédéfinies. Par exemple, le composant 110 peut informer des changements de valeur 15 des sorties 102 à un intervalle temporel prédéfini (par exemple toutes les N secondes) et/ou informer dès qu'une valeur d'activation a changé, selon des seuils ou des plages de seuils (non exhaustif). Le composant 120 est un composant de planification des calculs. Ce 20 composant 120 est informé ou notifier à l'étape 112 de l'arrivée d'un ou de plusieurs changements par le composant unité d'enfilage 110. Le composant 120 peut alors déclencher ou actionner ou solliciter ou commander le composant le composant 130 de diffusion des sorties. En fonction de l'état courant de la machine ou de l'ensemble des machines, 25 le composant 120 est capable d'affecter les calculs à un processeur ou à un coeur sur une machine en particulier, de prioriser un calcul ou une sous-tâche de calcul (e.g. thread), etc... Comme le montre la figure 1, à chaque instant t, l'ensemble des entrées 30 101 ayant changées sont mises en file par l'unité d'enfilage 110 (éventuellement traitée selon sa politique). Pendant l'évaluation 140, si de 28 3028076 nouvelles modifications des valeurs d'entrée 101 arrivent, ces dernières ne seront pas perdues mais mise à la suite de la file au sein du composant 110. L'unité d'enfilage notifie ensuite à l'étape 112 l'unité de planification 120 que de nouvelles entrées sont disponibles. Cette unité 5 de planification 120 applique alors sa politique et fait appel à l'unité d'évaluation 140 a l'étape 122. L'unité d'évaluation 140, à la fin du calcul, informe ou notifie en retour (étape 123) l'unité de planification 120 que l'évaluation est terminée. Le composant 120 informe a l'étape 121 l'unité de diffusion 130 qu'elle peut diffuser les modifications des sorties (s'il y a 10 lieu). Le composant 120 exécute également sa propre politique, le cas échéant. La figure 2 représente un exemple de règle sous forme de graphe.
15 Selon un aspect de l'invention, la base de règles du système expert peut être optimisée, en particulier la représentation de cette base de règles. En outre, selon un autre aspect de l'invention, l'unité d'évaluation peut également être optimisée. En particulier, l'évaluation 140 peut être 20 sélective, c'est-à-dire procéder à l'évaluation des seules expressions impactées par le changement constaté quant à certaines entrées 101. Avantageusement, le procédé selon l'invention vise à optimiser les calculs ou opérations arithmétiques aux seules opérations ou calculs 25 nécessaires. En particulier, le procédé évite l'exécution d'une portion de code dont les résultats ne sont pas (réellement ou strictement) nécessaires. (e.g. il est inutile de calculer un résultat qui n'est pas utilisé). Le procédé selon l'invention est avantageusement économe en calcul, améliorant les temps de réponse associés.
30 29 3028076 Concrètement, le procédé selon l'invention pour calculer une expression ou règle du système expert uniquement lorsque cela est nécessaire, il est avantageux de représenter la dépendance entre tous les éléments qui composent la règle ou l'expression. De la sorte des optimisations peuvent 5 être conduites (suppressions des redondances, calculs restreints aux seuls calculs nécessaires, etc). Une règle - au sens de l'invention - est constituée de plusieurs éléments: des propositions, des expressions (unaires, binaires, ...) et des 10 conclusions. Les propositions peuvent comprendre des entrées (par exemple des variables linguistiques dans le cadre de la logique floue). Par exemple, sur la figure 2, dans la règle ou expression 230 «si la température est chaude et que l'air n'est pas humide alors le risque est 15 nul», l'expression 215 <da température est chaude» est une première proposition, l'expression 213 «l'air est humide» est une seconde proposition. L'expression 214 «l'air n'est pas humide» est une expression unaire, l'expression 220 «la température est chaude et l'air n'est pas humide» est une expression binaire et l'expression «le risque est nul» est 20 une conclusion. Pour pouvoir évaluer la conclusion, il faut évaluer l'expression «la température est chaude et que l'air n'est pas humide», qui dépend de l'expression 215 <da température est chaude» et de l'expression 214 «l'air n'est pas humide», qui dépend de l'expression 213 «l'air est humide», qui dépendent de la température et de la mesure de 25 l'humidité de l'air. Afin de représenter ces dépendances efficacement, il est avantageux de vérifier que chaque expression n'existe qu'une seule fois dans la représentation choisie. Selon un mode de réalisation avantageux, la base de règle peut être 30 représentée à l'aide d'un graphe dans lequel chaque noeud représente une entité (e.g. variable, expression, conclusion, règle, etc.). Un arc entre 30 3028076 deux noeuds A et B, noté A -> B, indique que l'évaluation de B dépend de l'évaluation de A. Autrement dit, lorsque A change de valeur, la valeur de B doit être recalculée. Ainsi, lorsqu'un certain sous-ensemble des entrées change à un temps t, seuls les noeuds affectés sont réévalués.
5 Dans la plupart des systèmes existants, une règle est représentée par un arbre et donc une base de règles correspond à une forêt d'arbres. Dans le cadre de l'invention, une arborescence ne suffit pas car il est possible que des règles partagent des entités (par exemple une même 10 proposition). La représentation en graphe permet avantageusement d'obtenir l'unicité de la représentation de chaque expression ou entité. Cette unicité évite la redondance des calculs. Au moyen d'une représentation par graphe, il suffit de vérifier dans l'ensemble des noeuds du graphe si aucun d'eux n'est porteur de la même information.
15 Cette représentation de la base de règles sous forme de graphe combinée avec des règles exprimées en langage naturel est particulièrement avantageuse pour la manipulation d'un système expert flou. En effet, pour une même variable physique, en fonction de la 20 fonction d'appartenance, la même valeur floue peut être associée à différentes valeurs après "fuzzyfication", i.e. application des techniques de logique floue. Par exemple, pour si la variable considérée est la température, si la fonction d'appartenance est un trapèze dont la petite base se trouve entre les valeurs 15° et 25° et à 1sur les ordonnées, alors 25 toutes les valeurs de température entre 15° et 25°ont pour valeur 1 après fuzzyfication. Dans ce cas-là, il n'y aura aucun calcul au-delà de la fuzzyfication de la température. Cet aspect rend la mise en oeuvre du procédé pratique les capteurs fournissent des valeurs qui oscillent légèrement ou de manière limitée. Selon cette implémentation, si la valeur 30 d'un noeud ne change pas, ses noeuds voisins ne sont pas réévalués, économisant des calculs.
31 302 80 76 La figure 3 illustre un exemple de graphe avec des noeuds présentant des priorités.
5 Dans certains modes de réalisation, la représentation de la base de règles par un graphe peut ne pas suffire. Comme le montre la figure 2, si la température et l'humidité changent au même temps t, les noeuds parents vont être évalués jusqu'à arriver à l'évaluation de l'expression 220 «la température est chaude et l'air n'est pas humide». Cependant, le 10 chemin entre l'entrée 202 "humidité" et cette expression 220 est plus long que celui partant de l'entrée 201 "température". L'expression 220 «la température est chaude et l'air n'est pas humide» va être évaluée deux fois: une première fois comme dépendante de l'expression 215 «la température est chaude» et une seconde fois comme dépendante de 15 l'expression 213 «l'air n'est pas humide». Pour éviter ce type d'inconvénients, il est avantageux d'utiliser un graphe orienté, i.e. de donner un ordre aux noeuds. Différents modes de réalisation sont possibles. Selon un premier mode de réalisation, une file 20 à priorité est créée qui traite en premier les noeuds dont la priorité est la plus faible et qui n'accepte pas qu'un même objet soit présent deux fois dans la file. Pour donner une priorité aux noeuds, il est possible de donner aux entrées une priorité nulle i.e. égale à 0 (ces entrées doivent être évaluées en premier dans tous les cas), puis donner à un noeud d'un 25 autre type le maximum des priorités de ses antécédents incrémenté de un. Avec une file à priorité selon un développement de l'invention, l'expression 201 «capteur de température» et l'expression 202 «capteur 30 d'humidité» sont placées dans la file. Dans l'exemple fourni, les deux expressions étant à égalité de priorité, l'expression 201 «capteur de 32 3028076 température» sera par exemple évaluée et l'expression 215 <da température est chaude» sera ajoutée à la file. Ensuite, l'expression 202 «capteur d'humidité» sera évaluée et l'expression 213 «l'air est humide» sera rajoutée à la file. L'expression 215 «la température est chaude» est 5 ensuite évaluée et l'expression «la température est chaude et l'air n'est pas humide» est mise dans la file à priorité. Cependant, comme l'expression 213 «l'air est humide» est prioritaire (son poids ou coefficient de priorité 2131 est égal à 1 alors que l'autre expression 220 est associée à une priorité 2201 égale à 3), elle est évaluée et l'expression 214 «l'air 10 n'est pas humide» est ajoutée à la file. Comme la priorité 2141 de l'expression 214 est égale à 2, cette expression 214 sera évaluée en premier et l'expression 220 «la température est chaude et l'air n'est pas humide» devrait être rajoutée. Cependant, cette expression 220 «la température est chaude et l'air n'est pas humide» est déjà présente dans 15 la file à priorité donc elle n'est pas ajoutée. Ensuite, l'expression 220 est à son tour évaluée. De la sorte, il est évité de procéder à une double évaluation de l'expression 220 «la température est chaude et l'air n'est pas humide».
20 Concernant le composant 120 de planification des calculs, l'unité 110 (de mise en file des notifications des changements de valeur des entrées) guette pour chacune des entrées du système les changements de valeur. Le cas échéant, les changements sont mis dans une file d'attente dans un certain ordre (e.g. selon la politique de cette unité). A un temps t, l'unité 25 110 de mise en file des notifications des changements d'entrées communique ou notifie à l'étape 112 les valeurs des nouvelles entrées à l'unité de planification 120. Entre autres exemples, une politique peut exprimer la nécessité de 30 fusionner des changements de valeurs qui se sont produits de manière consécutive. Une politique peut également considérer que des 33 3028076 modifications de deux entrées différentes intervenant à quelques millisecondes d'intervalles sont en fait concomitantes ("sensiblement" concomitantes). En d'autres termes, une politique peut configurer ou prédéfinir des assimilations ou fusions ou agrégations de données. Cette 5 dernière politique peut être utilisée lorsqu'on sait que les valeurs des entrées sont apportées par un moyen de communication avec une certaine latence (réseau...). L'unité de planification 120 qui reçoit une communication ou une 10 notification depuis l'unité 110 réagit en fonction de sa propre politique. Une politique simple peut consister à déclencher immédiatement l'évaluation des noeuds voisins de chacun des noeuds représentant les entrées qui ont été changées. Il est également possible d'implémenter d'avoir une ou plusieurs politiques plus sophistiquée qui peuvent 15 consister, par exemple, à gérer le calcul parallèle ou la distribution des calculs. Dans certains cas, les calculs peuvent en effet être répartis sur plusieurs coeurs et/ou plusieurs machines multi-coeurs. Plus précisément, soit les 20 différents temps sont traités sur des coeurs ou des machines différentes, soit pour un temps t donné, les entités à évaluer sont séparées (si cela est possible) afin d'être évaluées de manière indépendante. Selon un mode de réalisation de l'invention (combinant une représentation sous forme de graphe de la base de règles), cette séparation peut être mise en 25 oeuvre de la façon suivante: dans le graphe G qui représente la base de règles, il est sélectionné un graphe G' inclus dans G, de manière à ce qu'il existe un chemin partant des entrées qui viennent d'être modifiées. Puis il est cherché dans G', s'ils existent, des graphes Gi connexes pour lesquels il n'existe pas d'arête commune entre ces différents Gi. Ce cas 30 de figure se produit par exemple en présence de deux règles qui ne partagent aucune expression ou entité commune. Chaque graphe 34 302 80 76 connexe Gi peut être ensuite évalué en parallèle (i.e. faire l'objet de calculs parallélisés). Optionnellement, à des fins d'optimisation complémentaire, d'autres politiques peuvent être mises en oeuvre pour tenir compte, par exemple, des capacités et du taux d'occupation des 5 machines utilisées. Une fois qu'un graphe Gi a fini d'être traité par l'unité d'évaluation 140, le résultat est fourni à l'unité 130 de diffusion des résultats. Cette unité 130, en fonction de sa politique, peut indiquer les nouvelles valeurs des sorties modifiées. L'unité 130 peut également diffuser ou communiquer plus d'informations, si nécessaire (par exemple, 10 des informations pourl"interprétation ou la compréhension des résultats). Dans un développement, des règles de gestion temporelle sont ajoutées et combinées aux règles de la base de règles. Il est notamment divulgué un système pour lequel une ou plusieurs valeurs d'expiration sont 15 associées aux expressions ou règles qui sont manipulées. Dans un système expert destiné à traiter en continu des données, il est par exemple avantageux d'exprimer une expression sous la forme: "si un événement s'est produit dans les 10 dernières minutes alors...". En supposant qu'un tel événement s'est produit à tO, à t0+5 minutes, la 20 proposition est vraie. En revanche, elle ne sera plus vraie à t0+15 minutes car la fenêtre temporelle de 10 minutes aura expiré. Une expression comme «un événement s'est produit dans les 10 dernières minutes» peut donc évoluer, i.e. changer d'expression ou de valeur, et ce sans qu'une entrée ne change de valeur. Selon un mode de réalisation de 25 cette technique d'expiration, certaines expressions (e.g. des expressions temporelles ou contenant des références au temps) peuvent être "expirables", c'est-à-dire que leur valeur a une durée limitée et/ou que ces expressions ont connaissance qu'elles doivent être recalculées au bout d'un certain temps (lequel peut être paramétré ou paramétrable e.g. 30 fonction de variables ou bien configuré/configurable). A expiration de leur valeur, ces expressions sont communiquées par l'unité de planification 3028076 120 à l'unité d'évaluation 140. En fonction de la file des entrées et de sa politique, l'unité de planification 120 décide en particulier à quel moment l'expression doit être réévaluée.
5 La présente invention peut s'implémenter à partir d'éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d'ordinateur sur un support lisible par ordinateur. Le support peut être électronique, magnétique, optique ou électromagnétique.
10 Le dispositif peut utiliser un ou plusieurs circuits électroniques dédiés ou un circuit à usage général. La technique de l'invention peut se réaliser sur une machine de calcul reprogrammable (un processeur ou un micro contrôleur par exemple) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par 15 exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel). Selon un mode de réalisation, le dispositif comprend un support de stockage lisible par ordinateur (RAM, ROM, EEPROM, mémoire flash ou 20 une autre technologie de mémoire, CD-ROM, DVD ou un autre support à disque optique, cassette magnétique, bande magnétique, disque de stockage magnétique ou un autre dispositif de stockage, ou un autre support de stockage non transitoire lisible par ordinateur) codé avec un programme d'ordinateur (c'est-à-dire plusieurs instructions exécutables) 25 qui, lorsqu'il est exécuté sur un processeur ou plusieurs processeurs, effectue les fonctions des modes de réalisation décrits précédemment. A titre d'exemple d'architecture matérielle adaptée à mettre en oeuvre l'invention, un dispositif peut comporter un bus de communication auquel 30 sont reliés une unité centrale de traitement ou microprocesseur (CPU, acronyme de « Central Processing Unit » en anglais), lequel processeur 36 3028076 peut être "multi-core" ou "many-core"; une mémoire morte (ROM, acronyme de « Read Only Memory » en anglais) pouvant comporter les programmes nécessaires à la mise en oeuvre de l'invention; une mémoire vive ou mémoire cache (RAM, acronyme de « Random Access Memory » 5 en anglais) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et une interface de communication ou E/S (I/O acronyme de « lnput/ouput » en anglais) adaptée à transmettre et à recevoir des données.
10 Dans le cas où l'invention est implantée sur une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) peut être stocké dans ou sur un médium de stockage amovible (par exemple une carte SD, un DVD ou Bluray, un moyen de 15 stockage de masse tel que un disque dur e.g. un SSD) ou non-amovible, volatile ou non-volatile, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur. Le support lisible par ordinateur peut être transportable ou communicable ou mobile ou transmissible (i.e. par un réseau de télécommunication 2G, 3G, 4G, Wifi, 20 BLE, fibre optique ou autre). La référence à un programme d'ordinateur qui, lorsqu'il est exécuté, effectue l'une quelconque des fonctions décrites précédemment, ne se limite pas à un programme d'application s'exécutant sur un ordinateur 25 hôte unique. Au contraire, les termes programme d'ordinateur et logiciel sont utilisés ici dans un sens général pour faire référence à tout type de code informatique (par exemple, un logiciel d'application, un micro logiciel, un microcode, ou toute autre forme d'instruction d'ordinateur) qui peut être utilisé pour programmer un ou plusieurs processeurs pour 30 mettre en oeuvre des aspects des techniques décrites ici. Les moyens ou ressources informatiques peuvent notamment être distribués ("Cloud 37 3028076 computing"), éventuellement avec ou selon des technologies de pair-àpair. Le code logiciel peut être exécuté sur n'importe quel processeur approprié (par exemple, un microprocesseur) ou coeur de processeur ou un ensemble de processeurs, qu'ils soient prévus dans un dispositif de 5 calcul unique ou répartis entre plusieurs dispositifs de calcul (par exemple tels qu'éventuellement accessibles dans l'environnement du dispositif). Le code exécutable de chaque programme permettant au dispositif programmable de mettre en oeuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur ou en mémoire morte. De 10 manière générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif avant d'être exécutés. L'unité centrale peut commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur ou dans la mémoire 15 morte ou bien dans les autres éléments de stockage précités. De manière non limitative, les senseurs (ou capteurs) peuvent comprendre un ou plusieurs des senseurs ou capteurs choisis parmi des capteurs de pression, de flux, de température, d'oxygène, de vitesse, de 20 mouvement, de position, de localisation, de radioactivité, d'énergie, de produits ou de composants chimiques (e.g. monoxyde d'azote, ozone, fumée, polluants, etc) ou de produits ou composants biologiques (e.g. virus, contaminants, pollens, etc). Les capteurs peuvent comprendre un ou plusieurs MEMS, magnétomètres, hygromètres, gyroscopes, 25 accéléromètres, bio-senseurs, radars, sonars, caméras, scanners 3D etc. Les actuateurs ou actionneurs peuvent être de type pneumatique, hydraulique, électrique, mécanique, magnétique, à effet Pelletier, piézoélectrique ou à électroluminescence, etc. Ils peuvent par exemple comprendre un ou plusieurs vérins, moteurs, résistances chauffantes, 30 lampes, enceintes acoustiques, électroaimants, ou bien encore des 38 3028076 thermo refroidisseurs, des ioniseurs, des vannes, des soupapes, des enrouleurs, etc. En l'espèce, les capteurs et actionneurs (« sensors and actuators ») selon 5 l'invention peuvent être ceux utilisés dans le cadre des applications de la domotique. Les actionneurs peuvent comprendre des interrupteurs, claviers, gradateurs, des capteurs de température, des capteurs de passage, des capteurs de présence, des capteur d'humidité, des capteur de luminosité, des détecteurs de fumée et analogues. L'invention trouvera 10 avantageusement application pour la gestion des systèmes d'éclairage, chauffage, de climatisation, d'ouverture/fermeture de volets, d'arrosage de jardin, de vidéosurveillance, d'ouverture/fermeture de porte, de ventilation, d'éclairage, d'accès ou de tout autre système pouvant être commandé par un système domotique 15 20 25 30 39
Claims (15)
- REVENDICATIONS1. Procédé mis en oeuvre sur ordinateur de gestion d'une base de règles 150 le procédé comprenant les étapes consistant à: - recevoir une valeur d'entrée 101 à évaluer; - enfiler la valeur d'entrée dans une file d'attente 110; - sélectionner au sein de la file d'attente 110 une valeur d'entrée en attente; - déterminer une valeur de sortie 102 en évaluant par inférence au moyen de la base de règles 150 la valeur d'entrée en attente sélectionnée.
- 2. Procédé selon la revendication 1, comprenant en outre une étape consistant à diffuser une ou plusieurs valeurs de sortie 102.
- 3. Procédé selon la revendication 1, l'étape consistant à évaluer une valeur d'entrée en attente sélectionnée comprenant une étape consistant à planifier dans le temps et/ou dans l'espace les évaluations des valeurs d'entrées en attente.
- 4. Procédé selon l'une quelconque de revendications précédentes, une sélection de valeurs d'entrée ayant été sélectionnées étant évaluée.
- 5. Procédé selon l'une quelconque des revendications précédentes, le procédé comprenant en outre une étape consistant à disjoindre le graphe correspondant à la base de règles 150 en plusieurs sous-graphes disjoints, une étape consistant à sélectionner au moins un sous-graphe comprenant un noeud correspondant à une valeur d'entrée en attente sélectionnée et une étape consistant à évaluer ledit sous-graphe sélectionné.
- 6. Procédé selon la revendication 5, l'étape consistant à évaluer un sous-graphe comprenant une étape consistant à parcourir ledit sous-graphe, 40 3028076 une étape consistant à associer récursivement une priorité à chaque noeud du sous-graphe et une étape consistant à évaluer les noeuds par priorité croissante. 5
- 7. Procédé selon l'une quelconque des revendications précédentes, le procédé comprenant en outre une étape consistant à comparer les chaines de caractères composant les expressions composant les règles de la base de règles, une étape consistant à supprimer les redondances entre lesdites expressions de manière à obtenir des expressions uniques 10 et une étape consistant à évaluer lesdites expressions uniques.
- 8. Procédé selon l'une quelconque des revendications précédentes, une partie d'une règle de la base de règles 150 étant associée à une paramètre/valeur d'expiration dans le temps. 15
- 9. Procédé selon l'une quelconque des revendications précédentes, deux valeurs d'entrées sensiblement concomitantes étant assimilées à une seule et même valeur d'entrée. 20
- 10. Procédé selon l'une quelconque des revendications précédentes, au moins une règle étant exprimée en langage naturel.
- 11. Procédé selon l'une quelconque des revendications précédentes, l'évaluation par inférence s'effectuant selon la logique d'ordre 0, la logique 25 d'ordre 1 ou selon la logique floue.
- 12. Un produit programme d'ordinateur, ledit programme d'ordinateur comprenant des instructions de code permettant d'effectuer les étapes du procédé selon l'une quelconque des revendications 1 à 11, lorsque ledit 30 programme est exécuté sur un ordinateur. 41 3028076
- 13. Système comprenant des moyens pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 11.
- 14. Système selon la revendication 13, comprenant 5 - des moyens de réception d'une valeur d'entrée 101 à évaluer; - des moyens d'évaluation par inférence au moyen de la base de règles 150 d'une valeur de sortie 102 correspondant à la valeur d'entrée 101; caractérisé en ce que le système comprend: - des moyens de stockage pour enfiler la valeur d'entrée 101; 10 - des moyens de calcul pour sélectionner une valeur d'entrée enfilée et pour planifier dans le temps et/ou dans l'espace les évaluations d'une ou de plusieurs valeurs d'entrées en attente; - des moyens de calcul pour évaluer la valeur d'entrée en attente sélectionnée enfilée en une valeur de sortie 102;
- 15 - des moyens d'entrée/sortie pour diffuser une ou de plusieurs valeurs de sortie 102; 15. Système selon la revendication 13 ou 14 comprenant: - un composant d'entrée/sortie pour recevoir une ou plusieurs valeurs 20 d'entrée; - un composant d'enfilage adapté pour effectuer une ou plusieurs des étapes parmi celles consistant à stocker, regrouper, fusionner et supprimer des valeurs d'entrées; - un composant de planification adapté pour effectuer une ou plusieurs 25 des étapes parmi celles consistant à sélectionner, supprimer7 regrouper, fusionner, allouer des valeurs d'entrées enfilées; - un composant d'évaluation adapté pour évaluer une ou plusieurs valeurs d'entrée enfilées et manipulées par le composant de planification par inférence au moyen de la base de règles; 30 - un composant de diffusion adapté pour sélectionner et communiquer une ou plusieurs valeurs d'entrées.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1460382A FR3028076B1 (fr) | 2014-10-29 | 2014-10-29 | Architecture logicielle pour systeme expert |
EP15771155.7A EP3213267A1 (fr) | 2014-10-29 | 2015-09-30 | Architecture logicielle pour systeme expert |
US15/516,859 US20170300804A1 (en) | 2014-10-29 | 2015-09-30 | Software architecture for expert system |
PCT/EP2015/072603 WO2016066364A1 (fr) | 2014-10-29 | 2015-09-30 | Architecture logicielle pour systeme expert |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1460382A FR3028076B1 (fr) | 2014-10-29 | 2014-10-29 | Architecture logicielle pour systeme expert |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3028076A1 true FR3028076A1 (fr) | 2016-05-06 |
FR3028076B1 FR3028076B1 (fr) | 2017-12-01 |
Family
ID=52692736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1460382A Active FR3028076B1 (fr) | 2014-10-29 | 2014-10-29 | Architecture logicielle pour systeme expert |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170300804A1 (fr) |
EP (1) | EP3213267A1 (fr) |
FR (1) | FR3028076B1 (fr) |
WO (1) | WO2016066364A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3843016A1 (fr) | 2019-12-23 | 2021-06-30 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Procédé de criblage de données mis en oeuvre par ordinateur |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013513B2 (en) | 2014-10-31 | 2018-07-03 | International Business Machines Corporation | Accelerating particle-swarm algorithms |
CN108984843B (zh) * | 2018-06-20 | 2021-02-09 | 北京大学 | 一种基于守卫计算的区间信息分析方法 |
DE102020206325A1 (de) * | 2020-05-20 | 2021-11-25 | Robert Bosch Gesellschaft mit beschränkter Haftung | Computerimplementiertes Verfahren zum Testen eines technischen Systems |
CN114004360B (zh) * | 2021-12-30 | 2022-04-01 | 北京壬工智能科技有限公司 | 基于模糊专家模型的智能装备诊断设备和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2402892A2 (fr) * | 2010-06-17 | 2012-01-04 | Palo Alto Research Center Incorporated | Système et procédé de recherche de graphique parallèle utilisant un partage de bordure parallèle |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778402A (en) * | 1995-06-07 | 1998-07-07 | Microsoft Corporation | Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types |
AU7939100A (en) * | 1999-10-27 | 2001-05-08 | Ims Inc. | Air bag system controlled by fuzzy logic |
US8176527B1 (en) * | 2002-12-02 | 2012-05-08 | Hewlett-Packard Development Company, L. P. | Correlation engine with support for time-based rules |
US8214316B2 (en) | 2009-03-23 | 2012-07-03 | Microsoft Corporation | Notification-based forward chaining |
-
2014
- 2014-10-29 FR FR1460382A patent/FR3028076B1/fr active Active
-
2015
- 2015-09-30 EP EP15771155.7A patent/EP3213267A1/fr not_active Withdrawn
- 2015-09-30 WO PCT/EP2015/072603 patent/WO2016066364A1/fr active Application Filing
- 2015-09-30 US US15/516,859 patent/US20170300804A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2402892A2 (fr) * | 2010-06-17 | 2012-01-04 | Palo Alto Research Center Incorporated | Système et procédé de recherche de graphique parallèle utilisant un partage de bordure parallèle |
Non-Patent Citations (3)
Title |
---|
"LECTURE NOTES IN COMPUTER SCIENCE", vol. 2206, 31 January 2001, SPRINGER BERLIN HEIDELBERG, Berlin, Heidelberg, ISBN: 978-3-54-045234-8, ISSN: 0302-9743, article ZENON A. SOSNOWSKI: "Chaining of Fuzzy Rules in RETE Network", pages: 895 - 903, XP055197149, DOI: 10.1007/3-540-45493-4_89 * |
ISHIDA T ED - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "Methods and effectiveness of parallel rule firing", PROCEEDINGS OF THE CONFERENCE ON ARTIFICIAL INTELLIGENCE APPLICATIONS. SANTA BARBARA, MAR. 5 - 9, 1990; [PROCEEDINGS OF THE CONFERENCE ON ARTIFICIAL INTELLIGENCE APPLICATIONS], LOS ALAMITOS, IEEE COMP. SOC. PRESS, US, vol. CONF. 6, 5 May 1990 (1990-05-05), pages 116 - 122, XP010018624, ISBN: 978-0-8186-2032-4, DOI: 10.1109/CAIA.1990.89179 * |
TIE LIU ET AL: "Rule graph: Incorporate expert and statistical knowledge for rule execution", SERVICE OPERATIONS, LOGISTICS AND INFORMATICS, 2009. SOLI '09. IEEE/INFORMS INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 22 July 2009 (2009-07-22), pages 573 - 578, XP031512216, ISBN: 978-1-4244-3540-1 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3843016A1 (fr) | 2019-12-23 | 2021-06-30 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Procédé de criblage de données mis en oeuvre par ordinateur |
Also Published As
Publication number | Publication date |
---|---|
US20170300804A1 (en) | 2017-10-19 |
WO2016066364A1 (fr) | 2016-05-06 |
EP3213267A1 (fr) | 2017-09-06 |
FR3028076B1 (fr) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6523354B2 (ja) | 改善されたインターフェースを備えるステートマシンビルダー及び状態非依存イベントの処理 | |
EP3213267A1 (fr) | Architecture logicielle pour systeme expert | |
US11595415B2 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
US10756991B2 (en) | Simplified entity engagement automation | |
KR102454201B1 (ko) | 이벤트 스트림 변환 기법 | |
US20210125083A1 (en) | Edge devices, systems and methods for processing extreme data | |
US20210158147A1 (en) | Training approach determination for large deep learning models | |
EP2364467B1 (fr) | Procédé de reconnaissance de motifs séquentiels pour procédé de traitement des messages de pannes | |
US11595269B1 (en) | Identifying upgrades to an edge network by artificial intelligence | |
WO2019164812A1 (fr) | Structure intégrée distribuée | |
EP3846087A1 (fr) | Procede et systeme de selection d'un modele d'apprentissage au sein d'une pluralite de modeles d'apprentissage | |
EP2593909A1 (fr) | Processeur d'analyse situationnelle | |
EP3523772A1 (fr) | Système de détection de fraude dans un flux de données | |
EP3758898A1 (fr) | Gestion de compétences de robot | |
US20220091897A1 (en) | Rule-based assignment of event-driven application | |
US20220051112A1 (en) | Automated model pipeline generation with entity monitoring, interaction, and intervention | |
US10523724B2 (en) | Dynamic stream operator fission and fusion with platform management hints | |
US11556650B2 (en) | Methods and systems for preventing utilization of problematic software | |
Kim et al. | Goal-driven scheduling model in edge computing for smart city applications | |
Khoshaba et al. | Machine learning algorithms in Bigdata analysis and its applications: A Review | |
US11889149B2 (en) | Intelligent mitigation of concentration conflicts | |
US20230244996A1 (en) | Auto adapting deep learning models on edge devices for audio and video | |
US20200311900A1 (en) | Automated trend detection by self-learning models through image generation and recognition | |
EP3380942B1 (fr) | Procédé et système d'aide à la maintenance et à l'optimisation d'un supercalculateur | |
EP3881515B1 (fr) | Système de supervision formelle de communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20160506 |
|
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 |
|
PLFP | Fee payment |
Year of fee payment: 8 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |