Système expert

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

D'une manière générale, un système expert est un outil capable de reproduire les mécanismes cognitifs d'un expert, dans un domaine particulier. Il s'agit de l'une des voies tentant d'aboutir à l'intelligence artificielle.

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. Le premier système expert est DENDRAL. Il permettait d'identifier les constituants chimiques.

Un système expert se compose de 3 parties :

Le moteur 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.

La plupart des systèmes experts existants reposent sur des mécanismes de logique formelle (logique aristotélicienne) et utilisent le raisonnement déductif. Pour l'essentiel, ils utilisent la règle d'inférence suivante (syllogisme) :

  • si P est vrai (fait ou prémisse) et si on sait que P implique Q (règle) alors, Q est vrai (nouveau fait ou conclusion).

Les plus simples des systèmes experts s'appuient sur la logique des propositions (dite aussi « logique d'ordre 0 »). Dans cette logique, on n'utilise que des propositions, qui sont vraies, ou fausses. D'autres systèmes s'appuient sur la logique des prédicats du premier ordre (dite aussi « logique d'ordre 1 »), que des algorithmes permettent de manipuler aisément.

Il faut maintenir une certaine cohérence de l'ensemble des règles:

  1. Incompatibilité (R1: Si A et B alors C; R2: Si A et B alors D;)
  2. Redondance (R1: Si A alors B; R2 : Si C alors B; Sauf si on applique des coefficients de certitude différents)
  3. Bouclage (R1: Si A alors B; R2: Si B alors C; R3: Si C alors A;)

Enfin, pour faciliter la description de problèmes réels sous forme de règles logiques, on a recours à des opérateurs ou des valeurs supplémentaires (notions de nécessité/possibilité, coefficients de plausibilité, etc.).

Moteurs d'inférence[modifier | modifier le code]

Article détaillé : moteur d'inférence.

Il existe de nombreux types de moteurs, capables de traiter différentes formes de règles logiques pour déduire de nouveaux faits à partir de la base de connaissance.

On distingue souvent trois catégories, basées sur la manière dont les problèmes sont résolus :

  • les moteurs - dits à « chaînage avant » - qui partent des faits et règles de la base de connaissance, et tentent de s'approcher des faits recherchés par le problème.
  • les moteurs - dits à « chaînage arrière » - qui partent des faits recherchés par le problème, et tentent par l'intermédiaire des règles, de « remonter » à des faits connus,
  • les moteurs - dits à « chaînage mixte » - qui utilisent une combinaison de ces deux approches chaînage avant et chaînage arrière.

Certains[réf. souhaitée] moteurs d'inférence peuvent être partiellement pilotés ou contrôlés par des méta-règles qui modifient leur fonctionnement et leurs modalités de raisonnement.

Acquisition des connaissances[modifier | modifier le code]

Si les algorithmes de manipulation de faits et de règles sont nombreux et connus, la détermination de l'ensemble des faits et règles qui vont composer la base de connaissances est un problème délicat. Comment décrire le comportement d'un expert face à un problème particulier, et sa manière de le résoudre, là est la question. Car ce que l'on souhaite obtenir n'est ni plus ni moins que l'expérience, la connaissance pratique de l'expert, et non la théorie que l'on peut trouver dans les livres ni exclusivement les règles logiques d'inférence. Equivalents des méthodes d'analyse de l'informatique traditionnelle, des méthodes d'acquisition des connaissances sont développées.

Historique[modifier | modifier le code]

Le premier système expert fut Dendral en 1965, créé par les informaticiens Edward Feigenbaum, Bruce Buchanan, le médecin Joshua Lederberg et le chimiste Carl Djerassi. Il permettait d'identifier les constituants chimiques d'un matériau à partir de spectrométrie de masse et de résonance magnétique nucléaire, mais ses règles étaient mélangées au moteur. Il fut par la suite modifié pour en extraire le moteur de système expert nommé Meta-Dendral.

Le plus connu, peut-être, fut Mycin en 1972-73, système expert de diagnostic de maladies du sang et de prescription de médicaments, avec un vrai moteur et une vraie base de règles. Ses règles étaient affectées de coefficients de vraisemblance affectant chacune d'entre elles d'un poids relatif aux autres. Le moteur produisait un chaînage avant simple tout en calculant les probabilités (au sens bayésien) de chaque déduction, ce qui rendait difficile d'expliquer la logique de son fonctionnement et encore plus d'en détecter les contradictions. Quant aux experts, ils étaient obligés de trouver des poids de vraisemblance pour chacune de leurs inférences, démarche complexe, peu naturelle et éloignée de leur mode de raisonnement, en tout cas conscient.

Les systèmes experts ont eu leur heure de gloire dans les années 1980, où on a fortement espéré leur développement massif (Cinquième génération japonaise). En pratique, dès que l'on dépasse la centaine de règles, il devient très difficile de suivre comment le système expert « raisonne » (manipule faits et règles en temps réel), et donc d'en assurer la mise au point finale, puis la maintenance.

Le projet Sachem (Système d'Aide à la Conduite des Hauts fourneaux En Marche, chez Arcelor), opérationnel dans les années 1990, est l'un des derniers projets « système expert » à avoir vu le jour. Il est conçu pour piloter des hauts-fourneaux en analysant les données fournies en temps réel par un millier de capteurs. Le projet a couté entre 1991 et 1998 environ 30 millions d'euros[1], et le système économise environ 1,7 euros par tonne de métal[1].

Voir aussi[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. a et b Marc LE GOC, « Extensive Large Scale Real Time Knowledge Based Systems Design: the Sachem Example »