Académique Documents
Professionnel Documents
Culture Documents
Mehenaoui.zohra@univ-guelma.dz
Zahra_mehnaoui@yahoo.fr
2020-2021
SYLLABUS
(Plan de cours)
Crédits : 5, Coefficient : 3
Email : zahra_mehnaoui@yahoo.fr.
Objectifs :
Chapitre 1 :
Chapitre 2 :
Chapitre 3 :
Chapitre 4 :
Chapitre 5 :
Le raisonnement incertain
Chapitre 6 :
Le support de cours est présenté d’une manière simple et directe. Il n’exige pas des
connaissances approfondies particulières, sauf des connaissances en logique
mathématique.
i
Sommaire
Chapitre 1: Introduction à l'intelligence artificielle et domaines d'application
1.1 Introduction .............................................................................................................................................. 1
1.2 Définition de l’Intelligence Artificielle............................................................................................ 1
1.3 Historique................................................................................................................................................... 2
1.4 Les principaux langages de l’IA ......................................................................................................... 5
1.5 Les grands domaines de l’IA ............................................................................................................... 5
1.6 Quelques difficultés rencontrées en IA .......................................................................................... 6
1.7 Conclusion .................................................................................................................................................... 6
Chapitre 2: Formalismes de Représentation des Connaissances
2.1 Introduction .............................................................................................................................................. 7
2.2 La représentation des connaissances ............................................................................................. 7
2.2.1 Notion de la représentation ....................................................................................................... 7
2.2.2 Type de représentation des connaissances ......................................................................... 7
2.2.3 Langage ou formalisme de représentation .......................................................................... 8
2.3 Les formalismes de représentation des connaissances .......................................................... 8
2.3.1 Les formalismes logiques ............................................................................................................ 9
2.3.1.1 Aspect de la logique comme formalisme de représentation des
connaissances ........................................................................................................................................... 9
2.3.1.2 La logique propositionnelle .............................................................................................10
2.3.1.3 La logique des prédicats ....................................................................................................14
2.3.1.4 Autres types de logique .....................................................................................................17
2.3.2 Les réseaux sémantiques...........................................................................................................19
2.3.2.1 Représentation d’un réseau sémantique....................................................................19
2.3.2.2 Concepts de base d’un réseau sémantique ................................................................19
2.3.2.3 Fonctionnement d’un réseau sémantique .................................................................21
2.3.3 Les règles de production ...........................................................................................................22
2.3.4 Les objets structurés ...................................................................................................................23
2.3.4.1 Les frames ...............................................................................................................................23
2.3.4.2 Les scripts................................................................................................................................25
2.4 Conclusion ................................................................................................................................................26
2.5 Exercices ...................................................................................................................................................26
2.6 Correction.................................................................................................................................................28
ii
Chapitre 3: Les systèmes Inférentiels: PROLOG
3.1 Introduction ...........................................................................................................................................30
3.2 Symboles logique du Prolog .............................................................................................................31
3.3 Constitution d’un programme Prolog ...........................................................................................31
3.3.1 Les faits ........................................................................................................................................31
3.3.2 Les règles.....................................................................................................................................32
3.3.3 Les buts (Questions ou Requêtes) ....................................................................................33
3.4 Les types de Prolog...............................................................................................................................34
3.5 Fonctionnement de Prolog ................................................................................................................35
3.5.1 Séquencement ................................................................................................................................35
3.5.2 Importance de l’ordre des clauses d’un prédicat ............................................................35
3.5.3 Recherche d’une solution par le moteur prolog ..............................................................35
3.5.4 Substitution et Unification ........................................................................................................36
3.6 Exécution d’un programme Prolog ................................................................................................37
3.6.1 Arbre SLD .........................................................................................................................................38
3.6.2 Stratégie de Prolog .......................................................................................................................39
3.7 Conclusion ................................................................................................................................................42
3.8 Exercices ...................................................................................................................................................42
3.9 Correction.................................................................................................................................................45
Chapitre 4: Systèmes Experts et Application
4.1 Introduction ............................................................................................................................................47
4.2 Les domaines d’application des systèmes experts ..................................................................47
4.3 Définition ..................................................................................................................................................48
4.4 Composants d’un système expert ...................................................................................................48
4.4.1 La base de connaissance ............................................................................................................48
4.4.2 Le moteur d’inférence.................................................................................................................49
4.5 Fonctionnement et caractéristiques d’un moteur d’inférence ..........................................50
4.5.1 Cycles d’un moteur d’inférence .............................................................................................51
4.5.1.1 La phase d’évaluation .........................................................................................................51
4.5.1.2 La phase d’exécution...........................................................................................................51
4.5.2 Les caractéristiques d’un moteur d’inférence ...................................................................52
4.5.2.1 Le mode de chaînage...........................................................................................................53
4.5.2.2 Les stratégies de recherche..............................................................................................53
4.5.2.3 Le régime de contrôle .........................................................................................................54
4.5.2.4 Le type de raisonnement...................................................................................................54
iii
4.5.2.5 Ordre d’un système expert { règle de production ..................................................55
4.6 Type de moteurs d’inférence............................................................................................................55
4.6.1 Moteur d’inférence { chaînage avant ...................................................................................55
4.6.2 Moteur d’inférence { chaînage arrière ................................................................................56
4.6.3 Moteur d’inférence { chaînage mixte ...................................................................................58
4.7 Problèmes liés aux systèmes experts ...........................................................................................58
4.8 Conclusion ................................................................................................................................................58
4.9 Exercices ...................................................................................................................................................59
4.10 Correction ...............................................................................................................................................61
Chapitre 5: Le Raisonnement Incertain
5.1 Introduction ............................................................................................................................................64
5.2 Les sources de l’incertitude ..............................................................................................................64
5.3 L’incertitude dans les systèmes experts ......................................................................................65
5.3.1 Approche probabiliste et réseaux bayésiens ....................................................................65
5.3.1.1 La théorie de Bayes .............................................................................................................65
5.3.1.2 Les réseaux bayésiens ........................................................................................................66
5.3.2 Facteurs de confiance .................................................................................................................69
5.3.3 La logique multivalente..............................................................................................................70
5.3.4 La théorie de Dempster-Shafer ...............................................................................................70
5.4 Conclusion ................................................................................................................................................71
5.5 Exercices ...................................................................................................................................................71
5.6 Correction.................................................................................................................................................73
Chapitre 6: Méthodologie de construction des systèmes experts
6.1 Introduction ............................................................................................................................................74
6.2 Les problèmes adaptés aux systèmes experts ..........................................................................74
6.3 Historique.................................................................................................................................................75
6.4 Le développement d’un système expert ......................................................................................75
6.4.1 Etapes de développement d’un système expert ..............................................................75
6.4.2 Les intervenants et leurs rôles ................................................................................................77
6.4.3 Acquisition de connaissance ....................................................................................................78
6.4.4 Mode de représentation de connaissance ..........................................................................80
6.4.5 Les langages spécialisés .............................................................................................................80
6.4.6 Systèmes experts généraux ......................................................................................................81
6.5 Evolution des systèmes experts ......................................................................................................81
6.6 Conclusion ................................................................................................................................................82
Conclusion générale ......................................................................................................................................83
iv
Prototype d’un examen final ......................................................................................................................84
Corrigé type.......................................................................................................................................................86
Bibliographie ....................................................................................................................................................89
v
Université 8 Mai 1945, Faculté des mathématiques, d’Informatique et de Sciences de la matière
Chapitre N° 1 : Introduction à l’Intelligence Artificielle et Domaines d’Application
Chapitre 1
1.1 Introduction
L’intelligence artificielle (IA) est depuis des années un point de focalisation des
scientifiques, des médias, et du public. On s’interroge sur son existence en tant que
discipline scientifique, sur ses objectifs et les difficultés rencontrées, sur ses champs
d’application et sur sa situation actuelle et à venir.
Les premiers pas de l’intelligence artificielle remontent { 1950, où Alain Turing (1912-
1954) a énoncé une vision de l’intelligence artificielle dans son article intitulé
« Computing Machinery and Intelligence » dont lequel le mathématicien explore le
problème de définir si une machine pouvait être considérée comme consciente ou non
(Turing, 1950). Dans cet article, découlera le test de Turing qui permet d’évaluer la
capacité d’une machine à tenir une conversation. En 1956, la discipline
nommée Intelligence artificielle a pris naissance lors d’une conférence au États-Unis qui
s’est tenue au Dartmouth Collège (McCarthy et al., 1955).
Le terme intelligence artificielle a été défini par l’un de ses créateurs, Marvin Lee Minsky
(1927-2016), comme étant « la construction de programmes informatiques qui
s’adonnent à des tâches qui sont, pour l’instant, accomplies de façon plus satisfaisante par
des êtres humains car elles demandent des processus mentaux de haut niveau tels que :
l’apprentissage perceptuel, l’organisation de la mémoire et le raisonnement critique ».
Une autre définition prenant l’être humain comme référence est donnée par (Bellman,
1978) : « l’intelligence artificielle est l'automatisation des activités associées au
raisonnement humain, telles que la décision, la résolution de problèmes, l'apprentissage ».
Vers la fin des années quatre-vingt-dix, de nouvelles définitions ont été données { l’IA,
entre autres : « l’intelligence artificielle est l’étude de la conception d’agents intelligents»
(Poole et al., 1998).
Plusieurs définitions ont été données { l’IA, cependant Il n’y a pas vraiment de
consensus sur la définition de cette discipline. Cependant, toutes les définitions
s’accordent sur le fait que l’objectif de l’IA est de créer des systèmes intelligents, mais
elles diffèrent significativement dans leur façon de définir l’intelligence. Quatre façons
ont été déclinées pour définir l’intelligence :
a) Agir comme des êtres humains : c’est une définition opérationnelle de l’IA, selon
laquelle une machine est considérée comme intelligente si elle peut converser de
telle manière que les interrogateurs (humains) ne peuvent la distinguer d'un être
humain (test de Turing).
b) Penser comme des êtres humains : selon cette approche, l’IA est une science
expérimentale, car il faut comprendre comment fonctionne l’esprit humain pour le
modéliser et ensuite évaluer les systèmes conçus par rapport à leurs similarités
avec le raisonnement humain.
c) Penser rationnellement : selon cette définition, les systèmes doivent raisonner
d'une manière rationnelle, c'est-à-dire en suivant les lois de la logique. Cette
approche peut être critiquée car il semble que certaines capacités (la perception,
par exemple) ne sont pas facilement exprimables en logique.
d) Agir rationnellement : cette définition concerne le développement des agents qui
agissent pour mieux satisfaire leurs objectifs. Cette définition est plus générale, car
une action rationnelle peut être une conséquence d’un raisonnement rationnel ou
non. par exemple, le réflexe de retirer sa main d'un objet brulant est rationnel mais
n'est pas le résultat d'une inférence logique
1.3 Historique
- les prédictions faites par les chercheurs en lA avaient été beaucoup trop
optimistes ;
- le cas par exemple pour traduction automatique: approche purement syntaxique
n‘étaient pas suffisante ;
- Annulation en 1966 de tout le financement du gouvernement américain pour les
projets de traduction automatique ;
- Grande déception lors de l’application d’algorithmes de l’IA aux problèmes de
grande taille ;
- 1973, l'arrêt du financement de la quasi-totalité des projets en IA en Grande
Bretagne ;
- Minsky et Papert prouvèrent dans leur livre « Perceptrons » de 1969 que les
réseaux de neurones de l‘époque ne pouvaient pas calculer certaines fonctions
pourtant très simples, ce qui mit en cause toute la recherche en apprentissage
automatique, entrainant une crise dans cette branche de l'IA.
- Dans les années 1970, beaucoup croyait que les robots seraient partout de
l’usine au domicile. Aujourd’hui quelques industries (automobile, électronique)
sont robotisées mais les robots domestiques ne sont pas encore répandus.
Aussi, des robots ont exploré Mars, ils réalisent des opérations du cerveau et du
cœur
- L'intelligence artificielle est devenue au fil du temps une matière scientifique de
plus en plus rigoureuse et formelle. La plupart des approches étudiées
aujourd'hui sont basées sur des théories mathématiques ou des études
expérimentales plutôt que sur l'intuition, et sont appliquées plus souvent aux
problèmes issus du monde réel.
L'IA s'est divisée en de nombreuses sous disciplines qui essaient chacune de traiter une
partie du problème.
A. Difficulté de modélisation :
Les problèmes ne sont pas toujours parfaitement définis ;
Certaines notions sont difficiles à exprimer : possibilité, probabilité,
préférence,…etc.
B. Difficulté de résolution :
Difficulté de conception des algorithmes ;
Espace de recherche très vaste ;
Problèmes de temps de réponse :
C. Difficultés technologique :
Toute avancée rendre des méthodes opérationnelles ;
D. Difficultés de généralisation :
Les méthodes sont souvent dédiées à un problème particulier
Des problèmes très variés.
1.7 Conclusion
L’intelligence artificielle est présente sous plusieurs formes, parfois inattendues et dans
des domaines variés mais toutes ses applications ont pour but de simplifier la vie de
l’être humain et ses travaux. La représentation des connaissances fait partie des
domaines de recherche de l’intelligence artificielle. Le prochain chapitre est consacré
aux différents formalismes de représentation des connaissances.
Chapitre 2
2.1 Introduction
Les connaissances concernent des faits, considérés vrais dans un certain monde. Pour
représenter ces faits on a recours à un formalisme ou mode de représentation. Le
langage naturel est un outil informel pour représenter les connaissances. L’arithmétique
et la logique, plus formels, sont aussi des outils de représentation.
Définition 2.2.3. Un langage formel est un langage qui utilise un ensemble de termes
et de règles syntaxiques pour permettre de communiquer sans aucune ambiguïté (par
opposition au langage naturel).
Il s’agit naturellement :
d'un alphabet, ensemble de symboles pas nécessairement réduit à des
caractères;
d’un procédé de formation des expressions, pas nécessairement la
concaténation;
d’un ensemble d'axiomes, c'est-à-dire d'expressions obéissant aux deux premiers
points ci-dessus, et dont on décide arbitrairement qu'ils appartiennent au
système ;
des règles de dérivation qui, à partir des axiomes, permettent de produire des
théorèmes (c'est-à-dire des expressions appartenant au système), et peuvent
ensuite s'appliquer aux théorèmes pour en produire d'autres.
Les formalismes logiques et surtout la logique des prédicats jouent un rôle important
dans tout ce qui relève de la représentation des connaissances. Ils sont les premiers
(chronologiquement parlant) formalismes utilisés en IA notamment pour les
applications de démonstration automatique de théorèmes. Les formalismes logiques
sont purement syntaxiques dont la sémantique est rigoureusement définie. Ils
bénéficient d’une base mathématique solide en termes de mécanismes de
raisonnement qui procèdent uniquement par manipulation symbolique.
La logique est une approche déclarative pour représenter les connaissances. Deux
principaux outils mathématiques sont utilisés :
Logique propositionnelle :
- Méthode de preuve efficace ;
- Trop restreinte car il n'y a pas de quantificateurs ;
Logique des prédicats :
- Dans le cas général, indécidable ;
- Méthodes qui s'arrêteront si c'est un théorème mais risquent de ne pas s'arrêter
si on l'applique à une formule non valide (semi-décidable).
La logique est basée sur l’utilisation des méthodes d’inférence bien connues pour
déduire de nouvelles connaissances.
Une proposition est un énoncé qui peut être vrai ou faux (les constantes). La
proposition constitue l’élément essentiel de la logique propositionnelle. Par exemple :
- Mohamed mange une pomme ;
- Le facteur vient de dimanche au jeudi ;
- Tous les nombres impairs sont des nombres premiers.
Dans le langage formel de la logique ces énoncés seront représentés par des variables
(p, q, r, etc.).
A. Connecteurs :
1) Connecteur 2) Symbol
ET
OU
NÉGATION
IMPLIQUE
ÉQUIVALENT.
Donc, une formule propositionnelle est définie { l’aide de : constantes (symbole vrai ,
symbole faux), variables et connecteurs. A ces éléments syntaxiques, des objets
mathématiques sont associés:
- Un ensemble B = {0, 1}, dont les deux états sont appelés valeurs de vérités. On
peut les notés par « 0 et 1 » ou « v et f » ;
- une fonction de l’ensemble B dans l’ensemble B appelé fonction
d’interprétation du connecteur (la négation) ;
L’ensemble des formules bien formées (fbf) est défini par induction comme suit :
- Toute constante est une fbf ;
- Toure variable est une fbf ;
- Si A et B sont des fbf alors :
{
A chaque connecteur est associée une fonction d’interprétation. Ces fonctions sont
définies par les tables de vérités suivantes :
0 1 0 0 0 0 1
1 0 0 1 0 1 1
1 0 0 1 0
1 1 1 1 1
signifie que si la proposition p est vraie, alors la proposition q est vraie également.
Alors que l’équivalence s’interprète comme étant « si et seulement si ».
A. Notion d’interprétation
Toute formule avec n variables admet 2n interprétations. La valeur de vérité associée par
une interprétation à une formule dépend des valeurs de vérité assignées par à
chacune des variables de
Exemple 2.3.1.2.2.
Interprétation
0 0 1
0 1 1
1 0 1
1 1 0
B. Modèles et satisfiabilité
Définition 2.3.1.2.2.1. Un modèle d’une formule est une interprétation telle que :
Définition 2.3.1.2.2.2. S’il existe au moins un modèle pour la formule on dit que est
satisfiable (ou vérifiable).
Définition 2.3.1.2.2.3. Une tautologie est une formule vraie dans toutes ses
interprétations.
Dans l’approche sémantique, pour démontrer que f est une conséquence logique de E
) il faut :
A. Axiome
Un axiome est une formule bien formée posée comme théorème sans démonstration et
admise a priori. Les axiomes sont obtenus { partir des schémas d’axiomes suivant :
1. ( ))
2. ( )) ( ) ))
3. ) ( ) )
B. Théorème
Un théorème est une formule bien formée démontrable { partir d’axiomes en utilisant
les règles d’inférences (la notation signifie que Q est un théorème).
C. Règles d’inférence
Notation :
Exemple 2.3.1.2.3. La règle de modus ponens nous permet de déduire à partir des deux
énoncés suivant :
Exemple 2.3.1.2.4. Prenons par exemple la proposition : S’il pleut alors il y a des
nuages.
Oui Non
Il pleut I(p) = 1 I(p) = 0
Il y a des nuages I(q) = 1 I(q) = 0
Notre but est de trouver une formule propositionnelle tel que : pour toute
interprétation I, I falsifié (I() = 0) si et seulement si elle est en contradiction avec la
proposition { modéliser. C’est le cas de la formule :
: p→q
C’est pour cette raison que l’IA, a su en tirer profit en utilisant « la logique des prédicat »
comme un formalisme de représentation des connaissances dans de nombreuses
applications où la logique propositionnelle se déclarait insuffisante.
A. Vocabulaire
B. Langage
- Les termes: variables et constantes. Si f est un foncteur d’arité n et t1, t2,…,tn sont
des termes, alors f(t1,t2,...,tn) est un terme.
- Les formules atomiques: Si P est un prédicat à n arguments (n0), et t1, t2,…,tn
sont des termes, alors P(t1,t2,...,tn) est une formule atomique. Une formule
atomique, ou sa négation est un littéral.
- Les formules bien formées: une formule atomique est une fbf. Si P et Q sont des
fbf, et x est une variable, alors:
P, (PQ), et (x) P, sont des fbf.
Exemple 2.3.1.3.1
C. Procédure d’inférence
Dans tout système formel, certaines phrases sont désignées comme étant vraies. On les
appelle des axiomes. Par exemple, tous les faits d’une base de connaissances sont des
axiomes. L’inférence est le processus permettant de dériver des conclusions à partir
Règles d’inférences :
Le logique des prédicats, ou logique du premier ordre est par nature plus expressive
que la logique des propositions, et permet de représenter les types de connaissances
relatifs à des environnements complexes. Dans cette section, nous présentons quelques
éléments utilisés dans le passage du langage naturel vers la logique du premier ordre.
La logique du premier ordre est en relation très étroite avec la théorie des ensembles.
En effet, un ensemble peut être vu comme une collection d’objets avec une certaine
propriété. Ainsi, on pourra exprimer les caractéristiques d’un individu par une formule
de la logique des prédicats. Par exemple :
) )) correspond { l’intersection des deux ensembles
Femme et Enseignante. Alors que la formule : ) )) exprime
que l’ensemble Enceinte est inclus dans l’ensemble Femme.
Femme
Enseignante
Enceinte
¬( x F) ≡ x ¬F
¬( x F) ≡ x ¬F
x F ≡ ¬ x ¬F
x F ≡ ¬ x ¬F
Exemple 2.3.1.3.2.1.
« Tout le monde déteste les brocolis » revient au même que « Il n’existe personne qui
aime les brocolis » :
x ¬Aime(x, brocolis) ≡ ¬ x Aime(x, brocolis)
« Tout le monde aime les glaces » et « Il n’y a personne qui n’aime pas les glaces » sont
équivalents :
x Aime(x, glaces) ≡ ¬ x¬Aime(x, glaces)
Par exemple, si p est une proposition, p est une nouvelle proposition (nécessaire p), de
même que K.p (sait que p) ou A.p (autorisé p).
La logique floue est une extension de la logique booléenne créée par Lotfi Zadah en
1965. La logique floue permet de représenter des connaissances imparfaitement
définies. Pour raisonner sur de telles connaissances, la logique classique ne suffit pas et
on utilise une logique floue, lorsque les connaissances sont imprécises, vagues et
éventuellement incertaines. Dans la logique floue, la valeur de vérité d’une proposition p
n’est plus booléenne (0 (faux) ou 1 (vrai)) mais réelle : p(v)[0 1], ce qui reflète
l’appartenance { un ensemble floue.
La logique de description, appelée aussi la logique descriptive (LD) est une famille de
formalismes de représentation de connaissances basés sur la logique. La logique de
description permet de représenter la connaissance terminologique d’un domaine
d’application d’une façon structurée et formelle en terme de concepts (classe), rôles
(propriétés, relations) et individus (objets). La logique de description a été introduite
Définition 2.3.2.
mange
Mohamed Pomme
Les nœuds :
les liens :
Les opérations :
Un réseau sémantique avec des nœuds concepts, des nœuds individus, des liens
d’inclusions (sorte de) et des liens d’instanciation (instance ou est un).
Mobilier
Sorte de
Possède
Dossier
Chaise
Nombre de pieds
4
est un
Couleur
Chaise de ma Marron
grande mère Matière Bois
Possède Nombre
de pieds
Bras 3
Le nœud « mobilier » représente une classe d’objet dont le nœud « chaise » est un
élément particulier.
De même pour les nœuds « chaise » et « chaise de ma grande mère ».
Cette structure hiérarchique permet aux nœuds des niveaux inférieurs d’hériter des
propriétés des nœuds de niveaux supérieurs.
Les réseaux sémantiques peuvent exprimer n’importe quelle phrase. Ils peuvent
également modéliser les quantificateurs, les implications…etc.
Cependant, toutes ces représentations ne sont opérationnelles que s’il existe des
procédures qui les manipulent. Ces procédures fonctionnent comme un algorithme
d’unification. Les variables inconnues et recherchées sont remplacées par des
constantes en comparant les requêtes et l’ensemble des prédicats.
Chaise
est un
Nombre
de pieds
Un ensemble de règle de production forme une base de connaissance qui constitue une
composante d’un système de production.
Un système de production comprend : une base de connaissances, une mémoire de
travail et un mécanisme d’inférence.
Les connaissances initiales concernant les informations connues sur le problème ou les
cas en cours sui sont fournies { la mémoire de travail. Le mécanisme d’inférence
recherche dans la base de connaissances, des règles pouvant s’associer aux
connaissances ou conditions initiales. L’exemple le plus connu d’un système de
production est un système expert.
Parmi les systèmes experts qui utilisent cette méthode de représentation de
connaissance, on peut citer : MYCIN (diagnostic médical), DENDRAL (détermination des
structures des molécules), PUFF (maladies pulmonaires), DART (pannes
d’ordinateurs),…etc.
On appelle schéma (en anglais frame) le sous-réseau sémantique identifié par un nœud
accompagné de ses attributs et de leurs valeurs (éventuellement déterminées par des
Chaque schéma représente une classe (un ensemble) ou un objet (instance d’une
classe). Comme dans les réseaux sémantiques, la relation est_un entre un schéma
représentant un objet et un schéma représentant une classe exprime l’appartenance de
l’objet { la classe. De même, la relation sorte_de entre un schéma représentant une
classe et un schéma représentant une autre classe exprime l’inclusion de la première
classe dans la seconde. Dans ce cas, on dit que la seconde classe est une superclasse de la
première et que celle-ci est une sous-classe de la seconde.
Un frame contient un certain nombre d'attributs (ou slots) qui sont les noms des
propriétés caractérisant l’objet. Ses attributs sont caractérisés par des aspects. Plusieurs
aspects peuvent être rencontrés, on peut citer :
Aspects de typage : permet de définir le type de valeur des attributs d’un frame
(les valeurs permises : entier, booléen, chaîne de caractère restriction de typage :
intervalle, liste de…etc.) ;
Aspect valeur : introduit la valeur d’un attribut ;
Aspect défaut : introduit une valeur par défaut.
PERSONNE
Attribut Aspect Données
Nom un Chaîne
âge un entier
intervalle [0 120]
A pour_père un personne
Grand_père _de liste_de personne
Date_de_naissance un date
Un script est une représentation structurée d’une suite d’événements, dans un contexte
particulier. Un script est une forme de connaissance déclarative qui peut servir à :
font les actions. Les acteurs agissent dans les lieux de la scène à travers les props. Les
situations peuvent être organisées en séquence, arbre ou réseau.
2.4 Conclusion
Dans le prochain chapitre, nous allons présenter le langage Prolog comme étant un
système inférentienl.
2.5 Exercices
Exercice N° 1
Enoncer des phrases simples qui traduisent chacun des énoncés suivants :
(1) p ; (2) pq, (3) pq, (4) qp, (5) pq, (6) p.
Exercice N° 2
Exercice N° 3
Exercice N° 4
Exercice N° 5
Exercice N° 6
Exercice N° 7
Exercice N° 8
Ken Hill est un lanceur droitier pour les Expos de Montréal. La moyenne au bâton d’un
lanceur est de .180. De façon générale, un joueur de base-ball frappe la balle selon sa
dextérité. Habituellement mesurant 1,85m, il a une moyenne sur les buts de .250. Les
joueurs de base-ball sont des adultes mâles. Les adultes mâles sont des personnes qui
mesurent, en général, 1,75m. Une personne est habituellement de dextérité droite. Les
Expos de Montréal sont des joueurs de base-ball ; ils constituent une équipe du base-ball
majeur, dont l’uniforme est blanc à rayures bleues. Le gérant des Expos est Félipe Alou. Les
équipes de base-ball majeur sont des équipes sportives. La terre comprend environ 6
milliards de personnes dont 2 milliards d’adultes mâles. Le base-ball majeur engage
environ 672 joueurs par an dont 280 lanceurs. Il existe 28 équipes de base-ball de 24
joueurs chacune. Toute équipe sportive a un gérant et un uniforme distinctif.
Questions :
2.6 Correction
Exercice N° 5
Exercice N° 6
Exercice N° 7
Chapitre 3
Les Systèmes Inférentiels : PROLOG
3.1 Introduction
La pratique de l’intelligence artificielle fait en sorte que la connaissance doit être utilisée
pour faire des inférences, effectuer des raisonnements, répondre à des questions, ou
tirer de nouvelles connaissances.
En logique, l’approche purement sémantique est basée sur la recherche des modèles,
chose qui n’est en générale pas pratique. Par exemple, pour démontrer qu’une
formule , contenant variables atomiques, est une tautologie, il faut vérifier tous les
modèles potentiels qui sont au nombre de . Le temps de vérification croit
exponentiellement avec le nombre de variables. L’approche syntaxique (déductive) a
pour objet de calculer des conséquences logiques par l’application des règles
d’inférences. Pour cela, des systèmes formels d’inférence, composés d’axiomes et de
règles d’inférences, sont construits. La règle d’inférence la plus simple est « le modus
ponens » qui permet d’affirmer { partir de la proposition « Si A alors B » et de l’assertion
A, d’en déduire B.
Dans ce module, on va voir deux systèmes inférentiels. Le premier est le PROLOG, qui
sera présenté dans ce chapitre. Le deuxième sera « les systèmes experts », qui font
l’objet du prochain chapitre.
PROLOG est un langage qui, comme son nom l’indique (PROgrammation LOGique),
utilise un mode de programmation dit « logique ». Ce mode de programmation a vu le
jour grâce à John Robinson (1930-2016) qui a posé en 1965 les bases de la logique.
Les langages procéduraux traditionnels sont de nature « impérative », c’est { dire, pour
résoudre un problème donné, le programmeur doit préciser dans un algorithme étape
par étape la méthode de résolution de ce problème. Prolog est un langage où la
programmation est de nature déclarative. Dans ce type de programmation, il revient au
programmeur « de quoi » est fait le programme, plutôt que « comment » le résoudre
(Boisard, 2014).
Un programme prolog est constitué de clauses. Celles-ci sont de trois types : faits, règles
et questions. Le programmeur doit faire la description du problème à résoudre sous
formes d’objets en spécifiant les relations entre ces objets.
Les faits sont des données élémentaires qu’on considère vraies (les hypothèses de
travail). Ce sont des affirmations qui décrivent des relations entre les objets ou des
propriétés entre les objets (voir l’exemple 3.3.1). À partir des faits, le Prolog peut
rechercher des preuves pour répondre aux requêtes des utilisateurs. Généralement, on
place toutes les déclarations de faits au début du programme même si ce n’est pas
obligatoire.
masculin (mohamed)
Ali est le père de Mohamed signifie que la relation père lie les deux objets Ali et
Mohamed.
On peut généraliser la clause père (ali, mohamed) par père (X, Y) où X et Y sont des
objets.
Un programme Prolog contient presque toujours des règles, cependant ce n’est pas une
obligation. Les règles sont des relations qui permettent, à partir des hypothèses,
d’établir de nouveaux faits par déduction (Si on a démontré F1 et F1→ F2, alors on a
démontré F2).
C :- H1, H2,…, Hn
Cette règle se lit : C si H1, H2,…, Hn avec C, H1, H2,…, Hn des prédicats. C (partie gauche de la
règle) représente la tête de la règle ou la conclusion. Elle est obligatoirement présente.
H1, H2,…, Hn (partie droite de la règle) représente le corps de la règle, c'est-à-dire les
contraintes liées par l’opérateur de conjonction. Le corps de la règle comprend 0/1 ou
plusieurs termes. Ce sont les prémisses de la règle, qui doivent être vérifiées pour que la
tête de la règle soit vraie.
Si [(H1 H2… Hn) alors C] est équivalente à [(H1 H2… Hn) → C] ce qui est équivalent
à : H1 H2… Hn C ce qui représente une clause d’Horn en logique. Donc, un
programme prolog rassemble une suite de clause d’Horn :
Exemple 3.3.2. La relation telle que si on est le père du père ou de la mère de quelqu’un
alors on est son grand-père se traduit par :
grand_pere(X,Y):-pere(X,Z), pere(Z,Y).
grand_pere(X,Y):-pere(X,Z), mere(Z,Y).
Ou:
Grand_pere(X,Y):-pere(X,Z),(pere(Z,Y); mere(Z,Y)).
A. Questions fermées :
L’intérêt de codage des informations sous forme de faits et règles dans un programme
Prolog est l’interrogation de la base de connaissance, aussi bien par des questions
fermées (dont la réponse est oui/non), que par des questions ouvertes à une ou
plusieurs inconnues (trouver les objets pour lesquels une affirmation est vraie).
1.
Ici, on interroge le système pour savoir si ce fait existe dans la base. C’est une question
fermée (aucune variable), qui a comme réponse vrai ou faux.
B. Questions ouvertes :
les variables
Exemple 3.3.3.2.
?- patron( X, emile ).
X=henry
?- patron( X, Y ).
X = henry, Y = emile ;
X = henry, Y = joseph
Pour répondre à ces questions, l'interpréteur PROLOG doit remplacer la variable X par
une des constantes apparaissant précédemment dans le programme, afin que le fait
résultant existe dans la base de faits.
Les variables peuvent aussi être utilisées pour décrire des faits.
Par exemple : patron (xavier, X) est une transcription de la phrase : « Xavier est le grand
patron. » et de la formule logique : x patron (xavier, x).
Notation : _ (underscore)
Exemple 3.3.3.3.
?- livre( 'Hugo', _, _ ).
3.5.1 Séquencement
Lorsqu'on demande un but à Prolog, celui-ci se branche sur la première clause pouvant
vérifier le but (basée sur le même prédicat du but). Si la première clause ne vérifie pas le
but, il passe à la clause suivante et ainsi de suite. Prolog ne teste que les clauses du
prédicat concerné et celles appelées par les prémisses d’une règle { exécuter.
Dans la section clause, il faut toujours commencer par les faits. Ensuite les règles les plus
particulières, puis les plus générales. En effet, si un fait est immédiatement concluant
mais placé après une règle, il ne sera testé qu’après le déclenchement de la règle.
La recherche d’une solution par Prolog ne se termine que s’il trouve une clause vérifiant
le prédicat concerné ou si toutes les clauses sont parcourues sans avoir trouvé une
solution et c’est le cas d’échec. Le raisonnement Prolog est effectué sous forme
arborescente suivant les appels aux différents prédicats. Et chaque prédicat essaye de se
valider à travers ses différentes clauses.
Répondre à une question comportant des variables consiste à déterminer les valeurs des
variables telles que la question soit déductible des faits et règles du programme.
Pour démontrer une question, une des notions les plus importantes utilisées en
programmation logique est la substitution.
Exemple 3.5.4.1.
Soit la substitution : σ = {Y1← Rima, Y2← Imene}, et soit la formule t=sœurs (X, Y).
Alors σ(t)= sœurs (Rima, Imene).
Remarque : si Y ← t σ, alors σ(Y) = t.
Définition 3.5.4.2.
) )
L’unification n’est pas possible que si le nom des termes est le même pour les deux
termes.
) )
L’unification est également impossible si les deux termes ont un nombre différent
d’arguments.
) ) ) ).
)
) ) ) ) ) ) )
Donc ici, l’unification aboutit { un échec et on doit l’arrêter pour éviter une boucle
infinie.
Pour répondre à une question (recherche des valeurs des variables d’un but),
Prolog cherche { l’unifier, soit avec un fait, soit avec la tête d’une règle ;
Si l’unification avec la tête de la règle réussit, Prolog procède une substitution
des variables de la queue (corps de la règle) par les valeurs correspondantes
dans la tête. Cette simplification des buts est appelée : la résolution SLD
(Sélection Linéaire Définie, en anglais : Selective Linear Definite) ;
Prolog continue { unifier jusqu’{ vérification de la requête initiale ;
Si l’unification échoue, Prolog répond par faux (false) ;
Si l’unification réussit, Prolog répond soit par vrai (true), soit donne les valeurs
des variables ;
A la fin, Prolog construit une liste de couples valeur-variable.
Pour résoudre une question, Prolog effectue des essais consécutifs dans l’ordre de
déclaration des prédicats. Ces essais peuvent être représentés un arbre de recherche ou
arbre de résolution. Les nœuds de cet arbre constituent ce qu’on appelle les points de
choix.
La racine de l’arbre : le but à chercher
Nœuds : points de choix ;
Quand il y a plusieurs manières d’unifier, on a un point de choix :
Différentes règles définissant le même prédicat ;
Disjonction de prédicats dans le corps de la règle ;
Plusieurs possibilités d’instanciation d’une variable ;
Passage d’un nœud vers son successeur en effectuant une unification. Les nœuds
sont démontrés de gauche { droite, dans l’ordre de déclaration des règles ;
A la fin, il y a des nœuds marqué par succès et des nœuds marqués par échec. les
nœuds de succès ne contiennent plus de prémisses { vérifiées, tout a été
démontré et les valeurs des variables du but sont trouvés en remontant vers la
racine de l’arbre. Dans un nœud d’échec, aucune règle ne permet de vérifier la
première formule du nœud.
) ) ) )
) ) ) )
)
)
)
)
)
Soit le but : ).
𝑔𝑟𝑎𝑛𝑑𝑒𝑚𝑒𝑟𝑒 𝑋 𝑌)
𝑋/𝑛𝑎𝑑𝑖𝑎 𝑋/𝑛𝑎𝑑𝑖𝑎
𝑍/𝑟𝑖𝑚𝑎 𝑍/𝑚𝑜 𝑎𝑚𝑒𝑑
𝑌/𝑎𝑚𝑖𝑛𝑒 𝑌/𝑎𝑙𝑖
Remarque : l’arbre présenté dans la figure 3.1 présente une partie de l’arbre de
résolution complet. Un arbre de résolution complet sera présenté dans l’exemple
suivant.
Dans l’arbre SLD, les nœuds de succès représentent des solutions, d’autres solutions
peuvent être cherchées. Si un nœud d’échec est atteint, Prolog remonte dans l’arbre de
résolution jusqu’{ un point de choix possédant des branches non explorées. Si un tel
point de choix n’existe pas, la démonstration est terminée, et il n’y a plus d’autres
solutions. Le parcours de l’arbre est fait de gauche { droite dans l’ordre des conditions.
Cette stratégie de recherche de solutions est appelé le Backtracking.
Exemple 3.6.2.
) ) ) )
)
)
)
)
)
)
)
)
)
Soit le but suivant : )
𝑝𝑙𝑎𝑛𝑒𝑡𝑒 𝑋)
1 4 7
10
𝑋/𝑙𝑢𝑛𝑒 𝑋/𝑡𝑒𝑟𝑟𝑒 𝑋/𝑠𝑜𝑙𝑒𝑖𝑙 𝑋/𝑣𝑒𝑛𝑢𝑠
𝑒𝑡𝑜𝑖𝑡𝑒 𝑌) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑙𝑢𝑛𝑒 𝑌) 𝑒𝑡𝑜𝑖𝑡𝑒 𝑌) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑡𝑒𝑟𝑟𝑒 𝑌) 𝑒𝑡𝑜𝑖𝑡𝑒 𝑌) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑠𝑜𝑙𝑒𝑖𝑙 𝑌) 𝑒𝑡𝑜𝑖𝑡𝑒 𝑌) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑣𝑒𝑛𝑢𝑠 𝑌)
5 6 11 12
2 3 8 9
𝑌/𝑣𝑒𝑔𝑎 𝑌/𝑠𝑜𝑙𝑒𝑖𝑙 𝑌/𝑣𝑒𝑔𝑎 𝑌/𝑠𝑜𝑙𝑒𝑖𝑙 𝑌/𝑣𝑒𝑔𝑎 𝑌/𝑠𝑜𝑙𝑒𝑖𝑙 𝑌/𝑣𝑒𝑔𝑎 𝑌/𝑠𝑜𝑙𝑒𝑖𝑙
𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑙𝑢𝑛𝑒 𝑣𝑒𝑔𝑎) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑙𝑢𝑛𝑒 𝑠𝑜𝑙𝑒𝑖𝑙) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑡𝑒𝑟𝑟𝑒 𝑣𝑒𝑔𝑎) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑡𝑒𝑟𝑟𝑒 𝑠𝑜𝑙𝑒𝑖𝑙) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑠𝑜𝑙𝑒𝑖𝑙 𝑣𝑒𝑔𝑎) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑠𝑜𝑙𝑒𝑖𝑙 𝑠𝑜𝑙𝑒𝑖𝑙) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑣𝑒𝑛𝑢𝑠 𝑣𝑒𝑔𝑎) 𝑠𝑎𝑡𝑒𝑙𝑙𝑖𝑡𝑒 𝑣𝑒𝑛𝑢𝑠 𝑠𝑜𝑙𝑒𝑖𝑙)
3.7 Conclusion
Le prochain chapitre est toujours consacré aux systèmes inférentiels. Cette fois-ci nous
allons présenter les systèmes experts.
3.8 Exercices
Exercice N°1
Exercice N°2
On considère la base de données suivante, qui décrit les employés d'une entreprise (par
exemple, pour la première clause, Antoine est dans le département des ventes, a une
fonction de secrétaire, est dans l'entreprise depuis 6 ans, gagne 10000 € par an, et a
pour chef xavier).
chef(employe(antoine,ventes,secretaire,6,10000),xavier).
chef(employe(xavier,ventes,directeur,2,15000),boss).
chef(employe(boss,direction,president,12,30000),boss).
chef(employe(lucie,achats,direction,1,14000),boss).
chef(employe(anne,achats,secretaire,11,10000),lucie).
chef(employe(jerome,achats,secretaire,11,10000),lucie).
chef(employe(etienne,achats,stagiaire,1,2000),anne).
Exercice N°3
oiseau(pigeon).
oiseau(hirondelle).
carnivore(loup).
carnivore(lion).
animal(lion).
animal(X) :-oiseau(X).
Exercice N°4
L'inspecteur Maigret veut connaître les suspects qu'il doit interroger pour un certain
nombre de faits : il tient un individu pour suspect dès qu'il était présent dans un lieu, un
jour où un vol a été commis et s'il a pu voler la victime. Un individu a pu voler, soit s'il
était sans argent, soit par jalousie. On dispose de faits sur les vols, par exemple, Marie a
été volée lundi à l'hippodrome, Jean, mardi au bar, Luc, jeudi au stade. Il sait que Max est
sans argent et qu'Eve est très jalouse de Marie. Il est attesté par ailleurs que Max au bar
mercredi, Eric au bar mardi. et qu'Eve était à l'hippodrome lundi. (On ne prend pas en
compte la présence des victimes comme possibilité qu'ils aient été aussi voleurs ce jour-
là). Ecrire le programme Prolog qui, à la question suspect(X), renverra toutes les
réponses possibles et représenter l'arbre de recherche de Prolog.
Exercice N°5
Exemple des carnivores Ecrire les clauses Prolog correspondant au fait que les animaux
sont herbivores ou carnivores, l’antilope est un herbivore, le lion est féroce et d’ailleurs
tous les animaux féroces sont des carnivores. Les carnivores mangent de la viande et des
herbivores, lesquels mangent de l’herbe. Tous boivent de l’eau. Qui consomme quoi ?
Développer l’arbre de recherche.
Suivez l’ordre de l’énoncé dans la définition des clauses.
Les deux dernières clauses sont :
Consomme(X,Y) :-mange(X,Y).
Consomme(X,Y) :-boit(X,Y).
3.9 Correction
Exercice N°1
fille(X,Y):- parent(Y,X),femme(Y).
fils(X,Y):- parent(Y,X),homme(Y).
enfant(X,Y):- parent(Y,X).
mere(X,Y):- parent(X,Y),femme(Y).
pere(X,Y):- parent(X,Y),homme(Y).
grand_mere(X,Y):- mere(X,Z),mere(Z,Y).
grand_pere(X,Y):- pere(X,Z),pere(Z,Y).
grand_parent(X,Y):- grand_pere(X,Y);grand_mere(X,Y).
soeur(X,Y):- parent(X,Z),parent(Y,Z),femme(Y),X\=Y.
frere(X,Y):- parent(X,Z),parent(Y,Z),homme(Y),X\=Y.
cousine(X,Y):- oncle(X,Z),fille(Z,Y);tante(X,Z),fille(Z,Y).
cousin(X,Y):- oncle(X,Z),fils(Z,Y);tante(X,Z),fils(Z,Y).
tante(X,Y):- parent(X,Z),soeur(Z,Y).
oncle(X,Y):- parent(X,Z),frere(Z,Y).
ancetre(X,Y):- grand_parent(X,Z),parent(Z,Y).
Exercice N°4
Chapitre 4
Systèmes Experts et Applications
4.1 Introduction
La notion de systèmes experts (SE) est une notion assez ancienne qui est apparu dans
les années 70 avec l’apparition du système expert célèbre MYCIN (Buchanan
Shortliffe., 1984). La version de base contenait 200 règles ensuite 300 règles concernant
les méningites ont été ajoutées. Un autre système expert pionnier dans le domaine est le
système DENDRAL créé par le groupe de recherche HPP (Stanford Heuristic
Programming Project) (Bauchanan Feigenbaum., 1980). Le système DENDRAL était le
premier système basé sur des heuristiques pour effectuer des analyses expérimentales
dans les sciences empiriques (Lindsay et al., 1993).
Les systèmes experts se basent sur le paradigme revendiquant la séparation entre les
connaissances et le raisonnement. Aujourd’hui, les systèmes experts constituent une
technologie bien définie faisant partie des systèmes à base de connaissances. Les
systèmes experts ont comme finalité la modélisation puis la simulation, dans un logiciel,
le savoir ou le savoir-faire d’un expert (ou d’un ensemble d’experts) dans un domaine
donné (Shu-hsien, 2005).
Les systèmes experts ont résolu certains types de problèmes comme en médecine, en droit, en
chimie, etc. Parmi les problèmes abordés par les systèmes experts, nous citons :
Le diagnostic d’une défaillance à partir d’un ensemble d’observations ;
La conception d’une configuration de composants à partir d’un ensemble de
contraintes ;
La planification d’une séquence d’actions pour l’accomplissement d’un ensemble de
buts à partir de certaines conditions de départ et en présence de certaines contraintes ;
La réparation d’un dysfonctionnement ;
Le contrôle du comportement d’un environnement complexe.
4.3 Définition
Donc, un système expert est un outil capable de mettre en œuvre des connaissances
pour imiter le comportement et/ou le raisonnement des experts humains dans des
domaines d’expertise qui sont souvent basés sur un gros volume de connaissances. Plus
c’est est un logiciel capable de répondre à des questions en effectuant un raisonnement
{ partir de faits et règles connus. Il peut servir notamment comme outil d’aide { la
décision.
1 Edward Feigenbaum (né en 1936) parmi les créateurs du premier système expert : DENDRAL
forme de règles codées avec le langage utilisé par le système. Les règles
représentent les connaissances opératoires qui permettent la déduction pour un
système expert. Ce sont des règles déductives appelées règles de production.
SI l’animal pond des œufs et l’animal vole ALORS l’animal est un oiseau
Enfin, pour qu’un système expert soit un outil efficace, il doit être capable d’interagir
avec ces utilisateurs dans le sens où il doit pouvoir (Ajith, 2005) :
Fournir une interface pour acquérir ou modifier les connaissances et aussi pour
recevoir les questions ;
Expliquer son raisonnement et les réponses qu’il donne pour les questions.
Les systèmes experts de première génération : utilisent des règles Si-Alors pour
représenter les connaissances ;
Les systèmes experts de deuxième génération : sont plus flexibles et utilisent
différentes formalismes pour représenter les connaissances.
Un système expert doit être capable de choisir les règles applicables vis-à-vis l’état
courant de la base des faits et les faits à établir.
Le processus de détection des règles applicables, à la phase suivante, fait partie du cycle
de travail d’un moteur d’inférence et particulièrement de sa phase d’évaluation. Cette
phase d’évaluation s’effectue généralement en trois étapes :
Sélection
D’un sous ensemble R1 de la
base des règles
Exécution
Des actions des règles de
l’ensemble R3
Filtrage
Pour déterminer l’ensemble de
conflit( R2 R1)
Mise à jour
De la base de connaissances
Résolution de conflit (la base des faits)
Pour déterminer
l’ensemble de conflit (R3
R2) des règles à utiliser
Non Non
2ème 1ère conditions
conditions
Oui
Oui
Arrêt du processus
L’objectif recherché par un moteur d’inférence lorsqu’il enchaîne des cycles de travail
est de trouver une solution au problème (question) posé. En effet, la manière dont cette
recherche est effectuée dépend des caractéristiques du moteur d’inférence utilisé. Les
Les moteurs d’inférence sont caractérisés par leurs modes d’invocation des règles. Selon
le mode de chaînage, En effet, on distingue trois types de moteurs d’inférence :
Un moteur d’inférence peut être caractérisé par sa conduite dans le cas où sa phase
d’exécution déboucherait sur un échec (par exemple, si R3 est vide). A ce niveau, il existe
deux types de conduite :
Les choix pris ne sont jamais remis en cause, ceci est traduit définitivement
comme un échec. On dit alors que ce type de moteur suit un régime
irrévocable ;
Lorsqu’on peut remettre en cause l'application d'une règle si ce choix débouche
sur un échec, le régime appliqué est dit par tentatives et il se base sur le
principe de retour arrière (backtracking) pour essayer une règle écartée.
Les moteurs d’inférence qui adoptent un régime par tentatives suivent généralement
des stratégies en profondeur d'abord puisque avec une stratégie en largeur le retour
arrière est, en principe, inutile.
Un moteur d’inférence peut être basé sur une théorie logique monotone ou non
monotone. Un fonctionnement monotone signifie que aucune connaissance ne peut être
retirée de la base des faits ni de la base des règles, et que l’ajout d’un fait { la base des
faits n’introduit pas de contradiction logique avec les autres faits de la base. Par contre,
un moteur d’inférence non monotone, un fait ajouté { la base des faits précédemment
peut être retiré dans le cas où des contradictions sont constatées ou en cas de
backtracking par exemple. Les faits inférés { partir d’une règle qui n’a pas abouti, sont
supprimés à cause de la remise en cause de la règle en question et le choix d’une autre
règle en faisant un retour arrière.
L’ordre d’u moteur d’inférence revient { la complexité des règles de production figurant
dans les règles. On peut distinguer les ordres suivant dans les systèmes experts :
Ordre 0 : c’est un système experts qui utilise que des faits booléens ;
Ordre 0+ :c’est un système expert qui utilise des faits booléens et des relations
(souvent sous la forme relation attribut valeur) ;
Ordre 1 : c’est un système expert dont les règles peuvent contenir des variables
(les notions de la logique du premier ordre).
Dans le mode de chainage avant (farward chaining) : (connu aussi comme le mode guidé
par les données), le moteur d'inférence procède comme suit :
R2 : Si G, D alors A
R3 : Si C, F alors A
R4 : Si B alors X
R5 : Si D alors E
R6 : Si X, A alors H
R7 : Si C alors D
R8 : Si X, C alors A
R9 : Si X, B alors D
Solution
1. Conflit = {R4, R7}, règle choisie R4 :, BF = {B, C, X} ; désactiver R4 ;
2. Conflit = {R4, R7, R8, R9}, règle choisie : R7, BF = {B, C, X, D} ;
3. Conflit = {R4, R7, R5, R8, R9, }, règle choisie : R5, BF = {B, C, X, D, E} ;
4. Conflit = {R4, R7, R5, R1, R8, R9}, règle choisie : R1, BF = {B, C, X, E, F} ;
5. Conflit = {R4, R7, R5, R1, R3, R8, R9}, règle choisie : R3, BF = {B, C, X, E, F, A} ;
6. Conflit = {R4, R7, R5, R1, R3, R6, R8, R9}, règle choisie : R6, BF = {B, C, X, E, F, A,
H} ;
Le but H est établi, donc on s’arrête.
Solution
Un moteur d'inférence qui suit un chaînage arrière (backward chaining), part du but et
essaie de ‘remonter’ aux faits pour le prouver (parcours guidé par le but).
En effet, le moteur sélectionne les règles dont la partie ‘action’ (ou conclusion)
correspond au but recherché. Les prémisses/conditions (partie ‘situation’) de
ces règles deviennent elles aussi des sous buts à prouver et ainsi de suite ;
Cet enchaînement s’arrête lorsque tous les sous buts sont prouvés- le but est
alors lui aussi prouvé - ou lorsqu’il n’est plus possible de sélectionner des règles.
R6
X A
R4 R8
R2 R3
B
vérifié
G D C F X C
vérifié vérifié
R1 R4
B
vérifié
B D E
vérifié R5
R7 R9
D
déjà vérifié
C
vérifié
X B
vérifié
R4
B
vérifié
4.8 Conclusion
Les systèmes experts font partie des systèmes à base de connaissance. L’objectif de ces
systèmes est de modéliser le savoir et le savoir-faire d’un expert (ou des experts) dans
un domaine donné. Dans ce chapitre, nous avons présenté l’architecture interne d’un
système expert, ainsi que son principe de fonctionnement et les caractéristiques du
moteur d’inférence.
Dans le prochain chapitre, nous bordons une notion liée au raisonnement des systèmes
experts qui est le traitement de l’incertitude ou le raisonnement incertain.
4.9 Exercices
Exercice N°1
Mais l’écriture usuelle de ces polynômes est parfois très éloignée de cette description.
Par exemple, si a = 1, b = −1 et c = 0, on écrira :
Et non
Nous appliquons donc des règles identiques (ou plutôt ayant des effets identiques) de
manière plus ou moins consciente. Formalisons ce problème afin qu’il puisse être traité
par un générateur de système expert simple. Les données en entrée sont des variables à
valeurs dans Z : a, b et c. Les sorties sont des variables :
Exercice N°2
Exercice N°3
Question
Un système expert veut déduire « si une ville mérite le voyage » à travers un ensemble
de questions posé { l’utilisateur. Au départ, le système ne sait pas les valeurs de vérité
des faits, pour cela il pose un ensemble de questions pertinentes { l’utilisateur. Ce
dernier peut répondre par : Oui, Non, je ne sais pas.
A chaque fois que vous posez une question, donnez les faits qui ne sont plus déductibles
et les questions qui ne sont plus pertinentes.
Quelle déduction le système peut faire concernant le fait « ville méritant le voyage » ?
4.10 Correction
Exercice N°1
Exercice N°2
2. On peut appliquer {R4, R5, R8}, R4 est désactivée car déjà appliquée. On peut
considérer que conflit = {R5, R8}, on applique R5
BDF = {A, D, E, G, C, B}
3. Conflit = {R1, R3, R8}, on applique R1
BDF = {A, D, E, G, C, B, H}
Succès
1. BDF ={A, D, E, G}, Conflit = {R4, R5, R8}, On applique R4, puis R5, ensuite R8
BDF = {A, D, E, G, C, B, T}
Succès
Chapitre 5
Le Raisonnement Incertain
5.1 Introduction
Deux grandes approches de traitement de l’incertitude sont utilisées dans les systèmes
experts. La première catégorie concerne les approches statistiques comme la théorie de
bayes, les facteurs de certitude et la théorie de Dempster-Shafer. La deuxième comprend
les approches liées aux ensembles floues.
Cette approche est basée sur les probabilités mathématiques. Les réseaux bayésiens
permettent de gérer l’incertitude dans les systèmes intelligents. Les réseaux bayésiens
sont basés sur le théorème de bayes. Pour comprendre ces notions, il faut d’abord
examiner de près la notion de probabilité conditionnelle.
) Probabilité à priori de E
) Probabilité à priori de H
) ) ) )
) )
) )
Ce qui en résulte la théorie de bayes : )
)
Supposons que :
Donc, dans le cas où on a l’observation que le patient est un fumeur, nous pouvons
calculer la probabilité d’avoir un cancer du poumon sachant qu’il est fumeur avec le
théorème de Bayes comme suit :
) )
)
)
observations. Par exemple, si nous utilisons un réseau bayésien dans le diagnostic d'un
patient et que nous connaissons ses symptômes, nous pouvons calculer la probabilité de
chacune des maladies qui en découlent.
- ) graphe orienté sans cycle dont les sommets sont associés à un ensemble de
variables aléatoires { }
- { ))}, ensemble de probabilités de chaque nœud conditionnellement à
l’état de ses parents ) dans
A B C
D E
F G
D’après le graphe de la figure 5.1, les parents de F sont D et E, les ancêtres de F sont D,
E, A, B, et C. les fils de B sont D et E. les descendants de A sont D et F. les non
descendants de A sont B, C, E et G.
Dans un réseau bayésien, tout nœud est conditionnellement indépendants de ses non-
descendants, sachant ses parents. Formellement :
) ))
) ∏ ))
A B
C D
P(A) 0.95
P(B) 0.7
P(C|A) 0.95
P(C|A) 0.1
P(D|A, B) 0.9
P(D|A, B) 0.05
P(D|A, B) 0
P(D|A, B) 0
Ces valeurs sont données arbitrairement. Par exemple, P(C|A) =0.95 signifie qu’il y a
95% de chances que la jauge soit sur "complet" quand on sait que la batterie est chargée,
et P(G | ¬B) = 0.1 signifie qu’il y a 10% de chances que la jauge soit sur "complet" quand
on est sait que la batterie est déchargée.
- Quelle est la probabilité pour que le bras du robot se déplace sachant que le bloc est
libre ?
- Quelle est la probabilité que le bloc ne soit pas libre sachant que la batterie est vide et
que le bras ne bouge pas?
Formellement, il s’agit de calculer les probabilités conditionnelles P(D|B), P(B|AD).
L’inconvénient majeur de cette approche est qu’il faut savoir les probabilités de chacune
des évidences (les observations) du réseau, ce qui est impossible dans plusieurs
domaines d’application. Les approches probabilistes se basent sur rigoureusement sur
les mathématiques. Par contre, la connaissance s’exprime sous forme de langage naturel,
où il est difficile de faire une correspondance directe en probabilités.
Cette notion est apparue la première fois avec MYCIN. Ce dernier utilisait un facteur de
confiance allant de -1 à 1. Le facteur -1 indique un manque de confiance total, alors que
le 1 indique un facteur de confiance absolue en l’affirmation ou le fait qu’elle soit vraie.
De façon générale, les facteurs de confiance permettent d’associer { un fait un degré de
confiance. Plus le facteur est élevé, plus nous croyons que l’affirmation est vraie et
inversement.
En plus d’associer des mesures de confiance aux faits, la combinaison de ces degrés est
un problème à résoudre. Si les faits A et B sont connus respectivement dans la base par
les facteurs de confiance p et q, et si la règle :
figure dans la base des règles, que peut-on déduire du facteur de certitude de C ?
Exemple 5.3.2. Supposons que nous avons la règle R1 qui possède le facteur de
confiance CFR1 (CFR1= 0.9) :
(CFR1= 0.9)
Supposons que A et B sont deux faits avec les facteurs de confaince CFA (CFA =0.8) et
CFB (CFB= 0.6) et que lorsqu’une règle de certitude CF est déclenchée par des prémisses
de certitudes ), sa conclusion prend la certitude :
La logique classique est une logique à deux valeurs, les énoncés sont vrais ou faux. Par
contre, dans la logique polyvalente (ou multivalente ou multivaluée), les énoncés
peuvent prendre une autre valeur que le vari et le faux. Dans ce type de logique, on peut
avoir un degré d’appartenance dans l’ensemble vari ou l’ensemble faux. Par exemple, on
peut trouver la logique à 3 valeurs comme les logiques de kleene, de Priest, et de
Lukasiewicz (Nault, 2012). Ces logique, consiste à ajouter une troisième valeur possible.
C'est-à-dire, qu’un énoncé peut être vrai ou faux ou indéterminé. Nous retrouvons la
logique à valeurs finies (à plus de trois valeurs), comme la logique quaternaire (4
valeurs). Finalement, il y a les logiques à valeurs infinies comme la logique floue. Dans ce
dernier type de logique, la valeur de vérité d’une information est un nombre réel entre 0
et 1 (voir chapitre 2).
5.4 Conclusion
5.5 Exercices
Exercice N°1
Une banque utilise un système expert pour accorder un prêt. Les variables suivantes
sont employées pour décrire les propositions associées :
– OK : le prêt est accordé
– CO : le conjoint se porte garant
– PA : le candidat au prêt peut payer ses traites
– RE : le dossier du candidat est bon
– AP : les revenus du conjoint sont élevés
– RA : le taux d’intérêt est faible
– IN : les revenus du candidat sont supérieurs à ses dépenses
– BA : le candidat n’a jamais de découvert sur son compte courant
– MB : le conjoint doit hériter
Les règles sont les suivantes (la colonne 3 sera utile plus tard) :
1 Si MB alors CO 0,8
2 Si AP alors CO 0,7
3 Si RA alors RE 0,8
4 Si IN alors PA 0,8
5 Si BA, RE alors OK 0,9
6 Si CO, PA, RE alors OK 1
BA RA MB AP IN
5.6 Correction
Exercice N°1
OK
ou
et et
BA RE CO PA RE
ou
RA MB AP IN RA
2. Calcul de certitude :
La certitude du nœud RE est 0.32 (0.8*0.4= 0.32)
La certitude du nœud PA est 0.64 (0.8*0.8= 0.64)
La certitude du nœud CO est 0.76 (il a deux fils OU, donc ((0.8*0.9)+(0.7*0.2))-
((0.8*0.9)*(0.7*0.2))= 0.572)
La certitude qui vient du fils gauche de OK est: 0.9*min(0.32, 0.9)= 0.288
La certitude qui vient du fils droit de OK est : 1*min(0.76, 0.64, 0.32)= 0.32
Donc :
La certitude du nœud OK est 0.516 (0.288 + 0.32 – 0.288*0.32= 0.516)
Chapitre 6
Méthodologie de Construction des Systèmes
Experts
6.1 Introduction
Pour résoudre un problème, l’être humain fait appel { ses connaissances pour faire des
raisonnements. L’expert humains acquiert et développe sa connaissance au cours de son
travail en percevant de l’information. Au fur et à mesure, ces informations se structurent
et s’organisent en connaissances sans effort de la part de l’expert.
Le champ d’application des systèmes experts est vaste : ils permettent par
exemple d’aborder des problèmes pour lesquels les données sont imprécises,
voire incomplètes ;
Le problème est de nature symbolique, faisant intervenir des heuristiques et ne
nécessitant pas des méthodes numériques classiques ;
Les connaissances mises en œuvre sont de nature qualitative que quantitative ;
Une solution algorithmique connue possible n’existe pas ;
L’utilisation du système expert doit être justifiée :
- L’évolution rapide des connaissances qui nécessite des mises à jour
fréquentes ;
- La mémorisation du savoir-faire accumulé par des personnes travaillant sur
un problème donné ;
- La grande taille et la complexité de l’information { manipulé.
6.3 Historique
Dans cette section nous présentons une liste non exhaustive de quelques systèmes
experts bien connus dans différents domaines.
Le développement des systèmes informatiques suit une démarche planifiée et fait appel
à des méthodes et des outils de travail appropriés. De même, le développement des
systèmes experts fait recours { des méthodes déj{ éprouvées dans d’autres domaines
d’informatique. Toutefois, la particularité inhérente aux systèmes experts et aux
systèmes { base de connaissances d’une manière générale nous obligent { employer des
méthodes spécifiques de l’ingénierie de connaissance2.
La figure 6.1 montre les principales tâches prises en charge par l’ingénierie des
connaissances { celles d’un système conventionnel. Cette démarche fait place { l’analyse,
{ la conception, { la programmation, aux tests et { l’implantation. Ces tâches. Ce sont des
tâches couramment exécutées lors du développement de n’importe quel système
informatique. La principale différence dans le processus de développement des
systèmes { base de connaissance réside dans l’importance accordée aux connaissances.
Elles font l’objet de trois étapes : l’identification, l’acquisition et la représentation.
Système à base de
Système conventionnel connaissances
Analyse préalable Etude d’opportunité
Acquisition
connaissances
Analyse fonctionnelle
Conceptualisation des
connaissances
Programmation
Formalisation des
Tests
Réalisation
connaissances
Implantation Prototypage
Validation
Implantation
Responsable
du projet
solutions
Décide
propositions
Elabore
Exprime ses
besoins Transmet les
connaissances
Conçoit le
modèle des
Codifie le
connaissances
modèle en
prototype
Programmeur
Les méthodes structurées (ou analytiques) : c’est une approche dirigée par les
modèles, plus structurés que l’approche empirique. Le problème est défini, puis
l’expertise recueillie est modélisée avant de concevoir le système expert. Les
méthodes analytiques d’acquisition de connaissances nécessitent la présence d’un
cogniticien.
Figure 6.4 : KADS : le cycle de vie d’un système expert (Dubus, 1995)
Extensibilité : les modèles envisagés doivent être souples pour permettre une
modification aisée du système ;
Simplicité : les concepts retenus ne doivent pas être trop complexes, de manière
à ce que la transmission du savoir au système soit facile ;
Caractère explicité : la connaissance doit être explicite, c'est le facteur
important dans la recherche des erreurs et la justification du système.
Un système expert peut être réalisé en se basant sur un langage tel que Pascal ou C, mais
on choisira plus facilement Lisp, Prolog, ou un lange orienté objet (C++, Smaltalk…etc).
En effet, ces langages sont mieux adaptés au raisonnement des systèmes experts que les
Un système expert général est obtenu par l’union d’un moteur d’inférence et d’une
interface. On l’appelle aussi coquille, shell ou encore un système expert vide. C’est un
système expert dont la base de connaissance est à remplir. Ces systèmes sont appelés
aussi : les générateurs de systèmes experts. Ce sont des environnements complets et
généraux qui intègrent un moteur d’inférence (indépendant de la base de connaissance)
ainsi que divers modules d’aide au développement tels qu’un éditeur de connaissances
pour le remplissage de la base, un tableur, un gestionnaire de base de données…etc.
Pour construire un nouveau système expert, il faut se baser sur la construction de la
base de connaissance en respectant le formalisme et la syntaxe de la représentation de
connaissances allant avec ce système. Le rajout d’une base de connaissance au système
shell est appelé : instanciation su système expert.
L’un des outils les plus utilisés est CLIPS (C Language Integrated Production System).
(CLIPS’94). Il a été développé en 1985 et fournit un environnement de développement
de système expert complet. Il permet de représenter les connaissances sous forme de
règles ou objets ou encore une représentation procédurale. Un autre outil de même
genre que CLIPS est ARTEntreprise. Ce qui le distingue de CLIPS est qu’il permet
d’utiliser le raisonnement { base de cas. De même, Jess est un environnement de
développement des systèmes experts adapté de CLIPS pour l’environnement Java.
Drools est un générateur de systèmes experts écrit en java et qui a vu le jour en 2001.
eGanges est un outil très léger (moins de 0.25 Mo) qui fournit une interface graphique
présentant les différentes règles, procédures et stratégies sous forme de carte
interactive. Aussi parmi les générateurs de systèmes experts les plus connu, le
NEXPERT. C’est un logiciel crée par Neuron Data. Les connaissances sont représentées
sous forme de règles de production et son moteur d’inférence fonctionne en chainage
mixte.
D’autres générateurs de systèmes experts existent comme : DIAGNEX, GURU, N-, PC+,
SNARC, …etc.
La convivialité et l’efficacité d’un système expert dépend fortement des modules, des
fonctions, interfaces, logiciels qui tournent autour du système. La principale difficulté
6.6 Conclusion
Les systèmes experts sont moins { la mode en 2019 qu’en 1974. L’idée de ces systèmes
est apparue au début des années 6O avec les premiers pas de l’intelligence artificielle et
le premier système experts (DENDRAL). Depuis les années 1990, nous parlons beaucoup
plus de « Systèmes Interactifs d’Aide { la Décision », une façon de réintégrer l’être
humain dans le processus de prise de décision de l’ordinateur. Enfin, nous pouvons dire
que les systèmes experts peuvent apporter un plus dans tous les domaines où la prise de
décision nécessite des connaissances volumineuses.
Conclusion générale
Les systèmes experts constituent l’un des domaines de l’intelligence artificielle qui ont
trouvé des applications dans le monde industriel. La notion des systèmes experts est
assez ancienne qui est apparue dans les années 70 avec l’apparition du système experts
célèbre MYCIN. Les systèmes experts ont comme objectif la modélisation puis la
simulation du savoir et du savoir-faire d’un expert (ou des experts) dans un domine
donné. Un système expert est composé de deux parties complémentaires : une base de
connaissance et un moteur d’inférence, et il se caractérise par la séparation entre les
connaissances et le raisonnement.
Depuis les années 90, nous ne parlons pas de systèmes experts qui peuvent remplacer
les experts humains, mais nous assistons { un nouvel essor de l’intelligence artificielle et
une redéfinition du rôle du système expert comme étant un système d’assistance et
d’aide { la décision.
Exercice N°1
Exercice N°2
10. Déduire l’ensemble de questions pertinentes posé par le système { l’utilisateur dans
l’ordre induit par une exploration en profondeur d’abord (arbre ET-OU).
11. Est-ce que le candidat est accepté ?
Exercice N°3
Corrigé type
Exercice N°1
Personne
e
e e e e
A A E A
E E E E
A A
13 ans
e : est-une
E : élève-en
A : âgé(e)-de
Réseau sémantique permettant de répondre à la question « Quelles sont les filles qui ont
6 ans ? »
Fille e
?
E
6 ans
Exercice N°2
D’abord on doit construire l’arbre ET-OU (on utilise la codification des règles donné
dans l’exercice).
L
: ou
: et R6
F J
R2 R8 R4
R3
B E G D J G H I
R1 R4
R7
G A B C H I
Exercice N°3
Bibliographie
Ajith , A., (2005), "Rule-based Expert Systems HEURISTICS," Ed: Wiley Online Library,
pp. 909-919.
Bauchanan, B. G., Shortliffe, E. H., (1984), Rule-Based Expert Systems: The MYCIN
Experiments of the Stanford Heuristic Programming Project: Addison- Wesley.
Bellman, R., (1978), An introduction to artificial intelligence: Can computers think?, Boyd
& Fraser Publishing Company.
Charbonier, M., (2008), Les systèmes experts : Etat de l’art et application possible aux
SIG, Projet bibliographique dans le cadre du Master ASIG.
Chaudet, H., Liliane Pellegrin, L., (1998), Intelligence artificielle et psychologie cognitive,
Dunod.
Chikvina, O., (2011 ), JBoss Developer Studio 4.0 Drools Tools Reference Guide.
http://www.dmi.usherb.ca/~frappier/IFT734/ref/logique/logique.pdf (Dernier
accès Octobre 2019).
McCarthy, J., Minsky, M., Rochester, N., Shannon, C., (1995), Proposal for the Darmouth
summer research project on Artificial Intelligence, Technical report, Darmouth
College.
Nault, J.G., (2012), Système intelligent d’aide au contrôle de procédé dans un four {
PARC, Mémoire de maitrise en Informatique, Université de Quebec.
Dennis, F., (2006), Intelligence artificielle : les systèmes experts, Notes de cours,
Laboratoire d’Informatique Fondamentale, Marseille.
Paquette, G., Roy, L., (1990), Système à base de connaissances, Sainte-Foy, Télé-
université et Montréal : Beauchemin.
Russell, S., Norvig, P., (1994), Artificial Intelligence: A Modern Approach, Prentice Hall.
Schalkoff, R, J., (2011), Intelligent systems: principles, paradigms and pragmatics: Jones and
Bartlett Publishers.
Shu-hsien, L., (2005), Expert system methodologies and applications - a decade review
from 1995 to 2004," Expert Systems with Applications, vol. 28, pp. 93-103,
Turing, A., (1950), Computer machinery and intelligence, Mind, vol. 59, pp.433-460.