Université Mohamed BOUDIAF de M’SILA
Faculté des Mathématiques et de l'Informatique
Département de l'Informatique
Matière : Intelligence artificielle- 3SI
Cours 2 : Les systèmes experts
1. Introduction
Les êtres humains ne savent pas toujours déduire des faits d'autres faits qui leur sont connus et nécessi-
tent l'aide d'un expert. Par exemple dans le cas d'une panne automobile, la majorité des personnes ne
peut pas déterminer l'origine de celle-ci et se tourne alors vers le garagiste (l'expert). Celui-ci, grâce à
ses connaissances, va pouvoir trouver la panne (et la réparer, normalement).
Beaucoup d'emplois sont constitués de ces experts. Les médecins, les assureurs ou les agents immobi-
liers n'en sont que quelques exemples.
L'intelligence artificielle peut nous aider, en créant un programme informatique appelé système expert
qui jouera le rôle de ce professionnel. Dans certains cas comme la médecine, cet outil pourra devenir
une aide au spécialiste lui-même car le domaine étudié est très vaste. Il est en effet rare que l'expert
humain puisse être complètement remplacé, et il sera souvent là en appui pour confirmer la conclusion
du système, en lui faisant tout de même gagner un temps précieux.
Dans d'autres cas, le système donnera un premier diagnostic, qui ne sera complété par une personne
physique que dans le cas où la panne n'est pas connue de la base de données utilisée (comme pour les
pannes très rares par exemple). Dans la majorité des cas, le système expert sera suffisant.
Exemple d’illustration : un système expert en polygones
Cet exemple permet de voir le fonctionnement détaillé d'un système expert dont le but est de détermi-
ner le nom d'un polygone (par exemple un rectangle) en fonction de caractéristiques sur la forme (le
nombre de côtés, les angles droits… ). Un polygone est défini comme une forme géométrique possé-
dant au moins
trois côtés. L'ordre d'un polygone correspond au nombre de ses côtés.
Triangles
Si l'ordre d'un polygone vaut 3, il possède donc trois côtés et il s'agit d'un
triangle. Celui-ci peut être quelconque, rectangle, isocèle, rectangle isocèle ou équilatéral .
Triangle quelconque : Triangle rectangle : Triangle isocèle : Triangle rectangle isocèle Triangle équilatéral :
possède trois côtés de possède trois côtés de possède deux côtés : cumule les deux possède trois côtés de
tailles différentes et tailles de même côtés égaux du triangle même taille (et ne peut
aucun angle droit. différentes et un taille, mais pas isocèle et l'angle droit du pas posséder d'angle
angle droit . d'angle droit . triangle rectangle. droit) .
1
2. Contenu d'un système expert
Pour comprendre la conception d'un système expert, il est également nécessaire de comprendre les
principaux rôles des individus qui interagissent avec le système. Ces rôles sont les suivants
Composants d’un système expert
1. Expert du domaine - l'individu ou les individus qui sont actuellement des experts résolvant les
problèmes que le système est censé résoudre ;
2. Ingénieur des connaissances - l'individu qui encode les connaissances de l'expert dans une
forme déclarative qui peut être utilisée par le système expert ;
3. Utilisateur - l'individu qui consultera le système pour obtenir des conseils qui auraient été
fournis par l'expert du domaine.
Un système expert est constitué de différentes parties liées entre elles :
2.1. Base de règles
Un système expert contient un ensemble de règles nommé base de règles.
Celles-ci représentent les connaissances de l'expert sur le domaine.
Ces règles sont toujours de la forme :
SI ( ensemble de conditions ) ALORS nouvelle connaissance
Les conditions d'application d'une règle sont appelées les prémisses. Il peut y avoir plusieurs pré-
misses, elles sont alors reliées par une coordination ET, signifiant qu'elles doivent toutes être vraies
pour que la règle s'applique.
2
Les nouvelles connaissances sont appelées conclusions.
Pour notre système expert sur les formes géométriques, voici les règles concernant les triangles :
SI (ordre vaut 3 ) ALORS c’est un triangle
SI ( triangle ET 1 angle droit ) ALORS c' est un tri angle rectangle
SI ( triangle ET 2 côtés de même taille ) ALORS c'est un triangle isocèle
SI ( triangle rectangle ET triangle isocèle ) ALORS c'est un triangle rectangle isocèle
SI ( triangle ET côtés tous égaux ) ALORS c'est un triangle équilatéral
De plus, selon le système utilisé, chaque règle doit suivre une syntaxe précise et imposée.
En particulier, les prémisses et conclusions peuvent être demandées sous la forme attribut (valeur), par
exemple ordre (3) ou angle Droit (1) . La règle du triangle rectangle dans une telle représentation pour-
rait être :
SI (ordre (3) ET angle Droit (l) ) ALORS polygone (Triangle Rectangle )
2.2 Base de faits
Les prémisses d'une règle peuvent être de deux types :
- Des connaissances sur le problème fournies par l'utilisateur du système : ce sont les entrées .
- Des connaissances issues de l'application de règles : ce sont les faits inférés .
Ces deux types de connaissances doivent être enregistrés dans une base de faits qui contient donc
toutes les informations sur le problème, quelle que soit leur origine. Lorsqu'on lance un système ex-
pert, la base ne contient initialement que les connaissances de l'utilisateur (les entrées) et se remplit
petit à petit des faits inférés.
Supposons que nous ayons affaire à une forme d'ordre 4, possédant 4 côtés parallèles, de même taille
et 4 angles droits. Ce sont nos connaissances initiales.
À ces faits en entrée va se rajouter le fait que la figure est u n quadrilatère (elle est d'ordre 4) et un pa-
rallélogramme (un quadrilatère avec 4 côtés parallèles), qu'il s'agit plus précisément d'un losange (un
parallélogramme dont les 4 côtés sont de même taille) et qu'il s'agit aussi d'un rectangle (un parallélo-
gramme avec des angles droits). Enfin, on ajoute le fait qu'il s'agit d'un carré (car il s'agit d'un losange
et d'un rectangle).
Généralement, c'est le dernier fait ajouté qui intéresse vraiment l'utilisateur : il s'agit du but du pro-
gramme.
Cependant, on peut aussi concevoir un système expert qui permet de savoir si un fait est vrai ou non.
Dans ce cas, on regarde si le fait donné est dans la base de faits après application des règles.
Dans l'exemple de notre quadrilatère précédent, au lieu de demander quel est le nom de ce polygone (il
s'agit d'un carré), on pourrait demander s'il s'agit d'un losange ou s'il s'agit d'un triangle rectangle. On
obtiendrait une réponse affirmative dans le premier cas (un carré est un losange particulier) , et néga-
tive dans le deuxième (un carré n'est pas un triangle).
2.3. Moteur d'inférences
3
Le moteur d'inférences (ou système d'inférences) est le cœur du système expert. Le moteur va per-
mettre de sélectionner et d'appliquer les règles. Cette tâche n'est pas forcément aisée car il peut exister
des milliers de règles.
C'est aussi le moteur d'inférences qui va ajouter les nouveaux faits à la base de faits, ou y accéder pour
vérifier qu'un fait est déjà connu. L'ajout des faits que l'on sait faux est tout aussi intéressant que celui
des faits que l'on sait justes.
En effet, savoir qu'une forme n'est pas un quadrilatère permet d'éliminer plusieurs règles d'un coup.
Dans un système plus complexe, savoir que l'insecte recherché ne possède pas d'ailes est aussi très
instructif et peut limiter les tentatives pour retrouver l'espèce cherchée.
Enfin, le moteur doit pouvoir prendre une décision importante : celle de s'arrêter pour présenter à l'uti-
lisateur la réponse à sa question. Il doit donc savoir quand un but est atteint, ou quand il ne le sera ja-
mais.
L'avantage des systèmes experts sur de nombreuses autres techniques d'intelligence artificielle est leur
capacité à expliquer le raisonnement suivi : les moteurs implémentent donc souvent un mécanisme
permettant de retrouver toutes les règles utilisées pour arriver à un fait donné. L'utilisateur obtient le
raisonnement en plus du résultat, ce qui peut être très important dans certains domaines.
De nombreux moteurs d'inférences sont disponibles ou peuvent être codés de toutes pièces, et ce dans
n'importe quel langage de programmation. Certains langages ont cependant été créés dans le but d'im-
plémenter des moteurs d'inférences. Ils correspondent à la famille des langages de programmation
logique, dont fait partie Prolog. Cependant la création d'un moteur d'inférences dans un langage objet
comme le C# est aussi possible. Enfin, il existe des ponts entre ces langages, permettant d'utiliser un
moteur d'inférences en Prolog dans un code C # par exemple.
2.4. Interface utilisateur
L e dernier élément d'un système expert e s t l'interface utilisateur. En effet, il faut que l'utilisateur
puisse simplement entrer les données qu'il possède, soit en une seule fois avant de lancer le processus,
soit au fur et à mesure des besoins du moteur d'inférences.
Comme pour tout logiciel, si l'interface n'est pas agréable à utiliser ou si elle est trop complexe, voire
contre-intuitive, le système sera peu ou pas utilisé.
De plus, dans un système expert, il est primordial que les choix dont dispose l'utilisateur soient clairs,
pour qu'il puisse répondre correctement aux questions posées, sans quoi le résultat retourné serait faux.
Dans le cas du système expert sur les polygones, il y a peu de chances d'erreurs, car les règles sont
basées sur le nombre de côtés, les angles droits, les côtés parallèles et les tailles des segments. Pour-
tant, une interface demandant l'ordre du polygone sans préciser qu'il s'agit du nombre de côtés ne serait
pas adéquate.
Dans le cas de la reconnaissance d'insectes, si le logiciel demande si celui-ci possède des cerques ou
des cornicules, il y a peu de chances qu'un utilisateur non entomologiste puisse répondre correctement.
Par contre, si on lui demande si le corps se finit par deux longues pointes (cerques, que l'on retrouve
par exemple chez les perce-oreilles) ou deux très courtes pointes (cornicules, présentes chez le puce-
ron) , il y aura moins d'erreurs ou de confusions. Une photo ou un dessin serait encore plus parlant
pour l'utilisateur.
4
Il est donc important de travailler sur l'ergonomie du système expert avec de futurs utilisateurs ou des
représentants des utilisateurs, de manière à savoir quels termes seraient les plus adaptés, ainsi que la
disposition des écrans, pour limiter les erreurs.
3. Types d'inférences
Les moteurs d'inférences peuvent enchaîner les règles de différentes façons : c'est ce que l'on appelle le
chaînage. Les deux principaux chaînages sont le chaînage avant et le chaînage arrière, mais il existe
des moteurs possédant un chaînage mixte.
3.1. Chaînage avant
3.1.1. Principe
Un moteur à chaînage avant est aussi appelé un moteur à inférences dirigé par les données. Dans ce
mode de chaînage, on part des données disponibles en base de faits, et on teste pour chaque règle si
elle peut s'appliquer ou non. Si oui, on l'applique et on rajoute la conclusion à la base de faits.
Le moteur explore donc toutes les possibilités, jusqu'à trouver le fait recherché ou jusqu'à ne plus pou-
voir appliquer de nouvelles règles.
Ce mode de chaînage est celui proposé par défaut dans des langages de type CLIPS ( C Language In-
tegrated Production System), spécialisés dans la construction de systèmes experts.
3.1.2. Application à un exemple
Dans le cas de notre système expert sur les polygones, supposons que nous partions des faits suivants :
- L'ordre vaut 3.
- Il y a un angle droit.
- Deux côtés sont de même taille.
On commence par appliquer la règle suivante, qui ajoute dans la base de faits que la forme est u n
triangle :
SI ( ordre vaut 3 ) ALORS c'est un triangle
On peut ensuite en déduire que c'est un triangle rectangle grâce à la règle suivante :
SI ( triangle ET 1 angle droit ) ALORS c 'est un triangle rectangle
De même, on sait que c'est un triangle isocèle :
SI (triangle ET 2 côtés de même taille ) ALORS c'est un triangle isocèle
Enfin, en sachant qu'il s'agit d'un triangle rectangle et d'un triangle isocèle, on peut appliquer :
SI ( triangle rectangle ET triangle isocèle ) ALORS c'est un triangle rectangle isocèle
On rajoute donc enfin le fait qu'il s'agit d'un triangle rectangle isocèle. Comme il n'y a plus de règles
applicables, le moteur d'inférences s'arrête. L'utilisateur est informé que son polygone est un triangle
rectangle isocèle.
On peut résumer la logique du moteur par le schéma suivant :
5
3.2. Chaînage arrière
3.2.1. Principe
Les moteurs d'inférences à chaînage arrière sont aussi dits dirigés par le but. Ce cou p-ci, on part des
faits que l'on souhaiterait obtenir et on cherche une règle qui pourrait permettre d'obtenir ce fait. On
rajoute alors toutes les prémisses de cette règle dans les nouveaux buts à atteindre.
On réitère, jusqu'à ce que les nouveaux buts à atteindre soient présents dans la base de fait s. S i un fait
est absent de la base de faits ou prouvé comme faux, alors on sait que la règle ne peut pas s'appliquer.
Ces moteurs ont donc un mécanisme (le backtracking) leur permettant de passer à une nouvelle règle,
qui serait un nouveau moyen de prouver le fait. Si plus aucune règle ne peut mener au but recherché,
alors celui-ci est considéré comme faux.
Ce mode de chaînage est celui présent par défaut dans le langage Prolog, dédié aux systèmes experts.
3.2.2. Application à un exemple
On reprend l'exemple précédent, à savoir un polygone pour lequel :
- L'ordre vaut 3 .
- I l y a un angle droit .
- Deux côtés sont de même taille.
On demande au logiciel si le triangle est rectangle isocèle. C'est notre premier but . Le moteur re-
cherche une règle permettant d'obtenir ce fait, il n'y en a qu'une :
SI ( triangle rectangle ET triangle isocèle ) ALORS c'est un triangle rectangle isocèle
Le moteur ajoute donc les buts « triangle rectangle » et « triangle isocèle » à sa liste de buts. Il com-
mence par chercher une règle permettant de prouver qu'il s'agit d'un triangle rectangle. Là encore, nous
n'avons qu'une règle :
SI ( triangle ET un angle droit ) ALORS c'est un triangle rectangle
Il obtient ainsi deux nouveaux b u t s : s'agit-il d'un triangle et a-t-il un angle droit ? La présence d'un
angle droit est déjà en base de faits, ce but est donc atteint. Pour le triangle, il a besoin de la règle sui-
vante :
6
S I ( ordre vaut 3 ) ALORS c'est un triangle
La base de faits précise que l'ordre a une valeur de 3, la règle est donc prouvée.
Le fait triangle peut ainsi être ajouté à la base de faits et enlevé des buts à atteindre, tout comme le fait
« triangle rectangle ». Il ne lui reste alors plus que « triangle isocèle » à prouver.
De la même façon, il cherche une règle possédant ce but :
SI ( triangle ET 2 côtés de même taille ) ALORS c'est un triangle isocèle
Le fait que la forme soit un triangle est déjà en base de faits (on l'a obtenu juste avant) et la présence de
deux côtés de même taille aussi. On rajoute que c'est un triangle isocèle.
Le programme finit par retourner à son but initial, à savoir s'il s'agissait d'un triangle rectangle isocèle .
Comme les faits « triangle rectangle » et « triangle isocèle » sont maintenant prouvés, il peut en con-
clure que oui, la forme est un triangle rectangle isocèle, et l'indiquer à l'utilisateur.
La logique est donc ce coup-ci la suivante : on part du but à atteindre et on essaie de prouver que les
prémisses sont vraies.
Chaque mode de chaînage a ses avantages et ses inconvénients :
- Le chaînage avant permet de découvrir en permanence de nouveaux faits, mais il risque d'appliquer et
de tester de nombreuses règles qui ne concernent pas l'information recherchée par l'utilisateur. Il est
donc plu s adapté à l'exploration.
- Le chaînage arrière permet de se concentrer sur un but précis (ou plusieurs buts), mais il va tester de
nombreuses possibilités qui seront finalement démontrées comme fausses. Ainsi, il va essayer de
prouver des règles qui ne pourront pas l'être. Sa gestion est aussi plu s complexe (car il doit gérer la
liste des buts et permettre le backtracking).
3.3. Le chaînage mixte.
Un mélange des deux chaînages a alors été proposé : le chaînage mixte. Dans ce nouveau chaînage, on
va alterner des périodes en chaînage avant (pour déduire de nouveaux faits de ceux que l'on vient juste
de prouver) et des périodes de chaînage arrière (dans lesquelles on cherche de nouveaux buts à
7
prouver).
C'est donc un savant équilibre entre les deux méthodes de recherche, en fonction de règles de re-
cherche. De plus, on peut alterner les phases de recherche en profondeur aux phases de recherche en
largeur selon les buts. On dépasse cependant ici le cadre de ce livre.
Remarque
Le chaînage mixte est cependant peu utilisé, car il ajoute de la complexité au moteur d'inférences. Il
est pourtant beaucoup plus efficace.