Vous êtes sur la page 1sur 21

Intelligence Artificielle Page 1 Introduction

1. INTRODUCTION
1.1 Définition
L’IA s’est donnée pour objectif d’analyser le comportement humain dans les domaines
des raisonnements et des actions intelligentes dans le but éventuel de le reproduire ensuite sur
ordinateur.

Les principaux sujets d’étude de l’IA sont :


♦ l’acquisition et représentation des connaissances
♦ l’exploitation des connaissances ou raisonnement.

En informatique traditionnel, le raisonnement est fait par l’être humain qui fait
appel à l’ ordinateur pour sa rapidité de calcul.
Exemple: Au jeu d’échec, on ne connaît pas des méthodes conduisant au meilleur
coup à jouer quelque soit la situation.

Comme en informatique traditionnel, on a la dualité

2. CONNAISANCE 1. RAISONNEMENT

Ces deux aspects sont étroitement liés.


Mais selon E. A. FEIGENBAUM :
“ The power of AI systems resides in the knowledge ”.

L’IA est une science pluridisciplinaire qui tire ses sources d’inspiration et certaines
de ces techniques de domaines variés : informatique, Logique, Sciences cognitives,
Linguistique, Philosophie, Neuroscience, etc.

1.2 Domaine de l’IA


Tout problème pour lequel aucune solution algorithmique n’est connue relève à priori
de l’IA.
Ces problèmes concernent des informations symboliques1: lettes, mots, signes,
dessins, etc.; et impliquent des choix i.e. à un certain moment, il faut choisir sans certitude
entre plusieurs possibilités2.
Exemples :
Perception et reconnaissance de forme
Compréhension et raisonnement (Démonstration automatique de théorème, jeux,
compréhension du langage naturel, etc.)

1.
1
Hypothèse de l’ IA symbolique (Knowledge Representation Hypothesis)
L’Intelligence peut être décrite comme une suite d’opérations sur des structures symboliques, interprétables
de façon propositionnelle.
2
Ce non déterminisme fondamental, cette liberté d’action est une composante essentielle de l’intelligence.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 2 Introduction

1.3 Les connaissances


On définit la connaissance comme ce que l’on a appris par étude ou par la pratique.
Elle recouvre les différentes formes du savoir :
♦ Les éléments de base du monde réel : Ils sont liés à la perception immédiate
que nous ne remettons en cause donc considérés comme vrai (Une chaise, une
maison, etc.)
♦ Les assertions et définitions : Elles portent sur les objets de bases. Elles sont
à priori considérées comme vraies (La neige est blanche, Le terre est ronde,
etc.)
♦ Les concepts : Ce sont des regroupements ou généralisations des objets de
base que chacun forme à sa façon. Ils sont lés à des exemples, à des contre-
exemples, à des cas particuliers, à des concepts plus généraux ou analogues.
♦ Les relations : Elles traduisent aussi bien des propriétés élémentaires des
éléments de base, que des relations de cause à effet entre concepts.
♦ Les théorèmes et règles de réécritures
♦ Les algorithmes
♦ Les stratégies et les heuristiques
♦ La meta-connaissance ou la connaissance sur la connaissance

Les connaissances peuvent être :


♦ permanente
♦ temporaire
♦ précis
♦ incertain
♦ flou
1.4 Représentation des connaissances

Pour représenter des connaissances, il faut utiliser des formalismes, qui


comprendront quatre parties fondamentales :
♦ Lexicale : décrit les symboles autorisés pour représenter les objets et les
relations
♦ Structurelle : qui décrit les contraintes d’arrangement des symboles
♦ Procédurale : décrit les méthodes de création et de modification de
connaissance
♦ Sémantique : qui permet d’associer un sens aux descriptions formelles

Un mode de représentation doit:


♦ être transparent,
♦ être concise,
♦ être complète,
♦ permettre un accès rapide à la connaissance.
Un mode de représentation de connaissance peut être :
♦ déclarative : Les connaissances sont décrites indépendamment de leur
exploitation ultérieure.
♦ procédurale : Elle contient la façon dont les connaissances codées doivent
être utilisées

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 3 Introduction

Voici la liste des représentations de connaissances fondamentales du plus


procédurale au plus déclarative.
♦ Automate fini
♦ Programme
♦ Scripte
♦ Réseau sémantique
♦ Frame
♦ Graphe et réseau
♦ Spécification fonctionnelle
♦ Théorème et règle de réécriture
♦ Règle de production
♦ Phrase en langage naturel
1.5 Les raisonnements
Le raisonnement peut être défini comme un enchaînement d’énoncés ou de
représentation symbolique conduit en fonction d’un but. Ce but peut prendre des formes
variées : démontrer, convaincre, élucider, interpréter, décider, justifier, expliquer, etc.
L’enchaînement est une caractéristique importante d’un raisonnement. Il est en général
non linéaire et nécessite des retours en arrière. Le raisonnement est une activité intentionnelle.
Dans un système à base de connaissance, le raisonnement peut être schématisé comme
un enchaînement de découvertes d’éléments de connaissances s’appuyant sur les informations
connues, menant au but recherché.

Il existe une grande diversité de mode de raisonnement en IA :


♦ Le raisonnement formel fondé sur la manipulation syntaxique de structures
symboliques à l’aide de règles, dans le cadre d’une certaine sémantique
(Raisonnement logique)
♦ Le raisonnement procédural dans lequel toutes les connaissances, la façon de
les utiliser et la conduite de raisonnement sont entièrement figées sous formes
dé algorithmes ou d’automates finis.
♦ Le raisonnement par analogie qui est très naturel et efficace chez l’être
humain mais difficile à mettre en œuvre en pratique.
♦ Le raisonnement par généralisation et abstraction qui est lié à l’apprentissage
par induction; Il permet de mettre en œuvre le mécanisme d’ inférence par
héritage. Il est aussi lié au raisonnement par classification.
♦ Le raisonnement géométrique.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 4 Techniques de résolution de problèmes

2. TECHNIQUES DE RESOLUTION DE PROBLEMES


Pour résoudre un problème dans sa généralité, il est nécessaire de suivre une
démarche assurant que la solution fonctionne dans tous les cas envisageables du problème.
La démarche de construction d'un système capable de résoudre un problème
consiste à franchir 4 étapes principales:
1. Définir le problème précisément: cette définition doit comprendre des
spécifications précises de ce que sont les situations initiales, de même que les
situations finales qui constituent des solutions acceptables pour le problème.;
2. Analyser le problème: certaines caractéristiques du problème peuvent avoir
un impact important sur le choix des diverses techniques possibles pour
résoudre le problème.;
3. Isoler et représenter la connaissance nécessaire pour résoudre le problème;
4. Choisir les meilleurs techniques et les appliquer au problème considéré.
Il y a deux approches pour résoudre un problème en IA:
5. La recherche dans un espace d'états;
6. la recherche heuristique.
2.1 Définir le problème comme recherche d'espace d'états.
Pour ce faire, il faut procéder de la façon suivante:
1. définir un espace d'état qui contienne toutes les configurations possibles des
objets pertinents. Il est possible de définir cet espace sans avoir énumérer
explicitement tous les états qu'il peut contenir.
2. spécifier un ou plusieurs états à l'intérieur de cet espace qui décrivent des
situations possibles et à partir desquels le processus de résolution du
problème puisse commencer. Ces états sont appelés des états initiaux.
3. spécifier un ou plusieurs états qui représentent des solutions acceptables du
problème. On appellera ces états les états finaux.
4. spécifier un ensemble de règles qui décrivent les opérations disponibles. Pour
réaliser ceci, on devra répondre aux questions suivantes:
♦ Quelles hypothèses implicites figurent dans la description informelle du
problème?
♦ Quel degré de généralité les règles doivent elles présenter?
♦ Quelle quantité de travail requis pour résoudre le problème doit être pré
calculée et représentée dans les règles.
Le problème peut alors être résolu en utilisant les règles et une stratégie appropriée
pour se déplacer dans l'espace du problème jusqu'à ce qu'on trouve un trajet de l'état initial
à l'état final.
Exemple de problème:
♦ jouer aux échecs
♦ problème de cruches d'eau

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 5 Techniques de résolution de problèmes

2.2 La recherche heuristique


Pour pouvoir résoudre beaucoup de problèmes difficiles de manière efficace, il est
souvent nécessaire d'avoir un compromis entre les exigences de mobilité et de
systématicité et de construire une structure de contrôle qui ne nous assure plus de trouver
la meilleure réponse, mais qui trouvera presque toujours une très bonne réponse D'où la
notion d'heuristique. Une heuristique est une technique qui améliore l'efficacité d'un
processus de recherche, en sacrifiant éventuellement la prétention d'être complet. Une
fonction heuristique est une fonction qui, à partir de description d'état du problème, mesure
à l'aide de valeurs numériques, si ces états sont souhaitables.
Dans certains algorithmes, il est possible de trouver une limite supérieure à l'erreur
qu'elle encourt. Dans beaucoup de problèmes d'IA, cependant il n'est pas plossible de
produire une telles bornes rassurantes. Ceci est vrai pour deux raisons:
1. Pour des raisons réel, il est souvent difficile de mesurer avec précision la
valeur d'une solution particulière.
2. Pour des raisons réelles, il est souvent utile d'introduire des heuristiques
basées sur des connaissances relativement non structurées
Sans les heuristiques, nous serions irrémédiablement pris au piège de l'explosion
combinatoire. Mais il y a d'autres arguments:
1. Nous n'avons que rarement besoin de la solution optimale; une bonne
approximation ira généralement très bien. En fait, les gens, lorsqu'ils
résolvent des problèmes, ne sont pas des optimiseurs, pais plutôt des
satisfaiseurs. En d'autres termes, ils recherchent toutes solution qui satisfait
un ensemble d'exigences, et aussitôt qu'ils en trouvent une ils arrêtent. Un bon
exemple de ceci est la recherche d'une place de parking.
2. Bien que les approximations produites par les heuristiques puissent ne pas
être très bonnes dans le pire des cas, le pire de cas survient rarement dans la
réalité.
L'heuristique permet donc de rendre possible la solution de problèmes difficiles. Ce
qui nous amène à une autre manière de définir l'intelligence artificielle.
L'intelligence artificielle est l'étude des techniques utilisées pour résoudre des
problèmes exponentiellement durs dans un temps polynomial en exploitant la connaissance
du domaine du problème considéré.
Pour appliquer la recherche heuristique, il faut répondre aux questions suivantes:
1. Quels aspects de l'état du problème sont considérés?
2. Comment ces aspects sont évalués?
3. Quels poids sont donnés à ces aspects?
Les réponses sont choisies de telles sortes que la valeur des fonctions heuristiques,
en un nœud donné dans l'espace de recherche puisse fournir un estimé aussi bon que
possible permettant de savoir si le nœud est sur le trajet d'une solution. Le but d'une
fonction heuristique est donc de guider le processus de recherche dans la direction la plus
profitable quand il y en a plusieurs possibles.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 6 Techniques de résolution de problèmes

Pour pouvoir choisir la méthode (ou combinaison de méthodes) la plus appropriée


pour un problème particulier, il est nécessaire d'analyser le problème suivant plusieurs
dimensions:
1. Le problème est il décomposable en un ensemble de sous problèmes
indépendants plus petits ou plus faciles?
2. Certains pas vers les solutions peuvent ils être ignorés ou au moins annulés,
s'ils s'avèrent maladroits?
3. L'univers du problème est il prévisible?
4. Une bonne solution du problème est elle évidente, sans avoir à composer avec
toutes les autres solutions possibles?
5. La base de connaissances nécessaires pour résoudre le problème a-t-elle une
cohérence interne?
6. A-t-on absolument besoin d'une grande quantité de connaissance pour
résoudre le problème, ou bien ces connaissances ne sont elles importantes
que pour pousser à la recherche?
7. Peut on simplement donner le problème à un ordinateur et en obtenir la
solution, ou bien la solution du problème va-t-elle nécessiter une interaction
entre l'ordinateur et une personne?

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 7 Système de production

3. SYSTEME DE PRODUCTION
3.1 Définition
C'est un système capable de résoudre un problème d'Intelligence Artificielle.
Les éléments de base d'un système de production en Intelligence Artificielle sont :
⇒ La base de données globale est la structure de données centrale utilisée par
un système de production d'Intelligence Artificielle.
⇒ Les règles de production agissent sur la base de données globale. Chaque
règle a des pré conditions qui sont ou ne sont pas satisfaites par la base de
données globale. Si les pré conditions sont satisfaites, la règle peut être
appliquée. Cette application change la base de données globale.
⇒ La stratégie de contrôle choisit la règle applicable qui doit être appliquée et
le processus se termine dès qu'une condition d'arrêt pour la base de données
est satisfaite.
Toutes les règles peuvent accéder à la base de données.
Aucune partie de cette base de données n'est liée à une règle particulière. Les règles
n’appellent pas d'autres règles ; la communication entre les règles se fait uniquement par
l’intermédiaire de la base de données globale.
Pour résoudre un problème en utilisant un système de production, il faut spécifier la
base de données globale, les règles et la stratégie de contrôle. La transformation de l'énoncé
d'un problème en ces 3 composants est souvent appelée le problème de la représentation en
Intelligence Artificielle.
3.2 Procédure de base dans un système de production

Procédure PRODUCTION
1 DONNEES ← base de données globale initiale
2 jusqu'à ce que DONNEES satisfasse la condition d'arrêt faire
3 début
4 sélectionner une règle dans l'ensemble des règles qui peuvent être appliquée
à DONNEES
5 DONNEES ← résultat de l'application de R à DONNEES
6 fin

Cette procédure est non déterministe parce que nous n'avons pas spécifié comment
nous allons sélectionner une règle applicable à l'étape 4. La sélection des règles et
l'enregistrement des séquences des règles déjà essayées et des bases de données qu'elles
produisent constituent ce qu'on appelle la stratégie de contrôle pour les systèmes de
production.
3.3 Stratégie de contrôle
On distingue 2 types majeurs de stratégies de contrôle :
♦ irrévocable
♦ par essais successifs ou encore par tentative
Avec la stratégie irrévocable, une règle applicable est sélectionnée et appliquée sans
qu'on puisse la remettre en question ultérieurement.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 8 Système de production

Dans une stratégie de contrôle par essais successifs, une règle applicable est
sélectionnée (soit arbitrairement, soit pour une bonne raison ) pour être appliquée, mais on
prévoit la possibilité de revenir sur ce choix par la suite.
On distingue 2 types de stratégies de contrôle par essais successifs :
♦ retour arrière chronologique
♦ recherche avec graphe
Pour le premier, un point de retour arrière est établi lorsqu'une règle est sélectionnée.
Dans le second, des dispositions sont prises pour explorer les effets de plusieurs
séquences de règles simultanément. On utilise divers type de structures de graphes et de
procédures de recherche dans des graphes.
3.4 Systèmes de production en chaînage arrière et systèmes de
production bidirectionnels
Un système de production en chaînage avant part de l'état initial jusqu'à l'état but.
Un système de production en chaînage arrière commence par l'état but pour progresser
vers l'état initial en appliquant le déplacement inverse. Chaque déplacement inverse produirait
un état sous-but à partir duquel l'état suivant pourrait être atteint en un seul coup.
Bien qu'il n'y ait pas de différence formelle entre les 2, il est souvent commode de
faire la distinction de façon explicite. Lorsqu'un problème a des états des buts intuitivement
clairs et lorsque nous décidons d'employer de descriptions de ces états comme base de
données globale, nous disons que le système est en chaînage avant. Des règles sont appliquées
aux descriptions d'états pour produire de nouvelles descriptions d'états. Celles-ci sont appelées
règles-avant.
Si à la place, nous choisissons d'employer les descriptions des buts du problème
comme base de données globale, nous dirons que le système est en chaînage arrière. Des
règles sont appliquées aux descriptions de buts pour produire des descriptions de sous-buts.
Celles-ci sont appelées règles-arrière.
Il est souvent opportun de résoudre un problème en utilisant une recherche
bidirectionnelle. On peut obtenir cet effet avec les systèmes de production qu'on appelle
systèmes de production bidirectionnels.
Pour ce faire, il faut incorporer à la fois les descriptions d'états et les descriptions de
buts dans la base de données globale. Les règles-avant sont appliquées à la partie description
d'état, tandis que les règles-arrière sont appliquées à la partie description de but. La condition
d'arrêt doit être formulée comme une condition d'unification de la partie description de but et
la partie description d'état de la base de données globale. Le mécanisme de contrôle doit
également décider à chaque étape s'il vaut mieux déclencher une règle-avant applicable ou
une règle-arrière applicable.
3.5 Systèmes de production commutatifs
Sous certaines conditions, l'ordre dans lequel un ensemble de règles applicables est
appliqué à une base de données globale est sans importance. Lorsque ces conditions sont
satisfaites, un système de production améliore son efficacité en évitant d'explorer inutilement
des chemins solutions redondants qui sont équivalents à l'ordre des règles près.
Nous disons qu'un système de production est commutatif s'il possède les propriétés
suivantes concernant une base de données globale B :
a ) Chaque règle de l'ensemble des règles applicables à B est également applicable à
toute base de données globale résultant de l'application d'une règle applicable à B.
b ) Si la condition de but est satisfaite par B, alors elle est aussi satisfaite par une base
de données produite par l'application de toute règle applicable à B.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 9 Système de production

c ) la base de données obtenue en appliquant à B toute séquence composée de règles


qui sont appliquées à B ne varie pas, quelles que soient les permutations de la séquence.
3.6 Systèmes de production décomposable
Pour un mécanisme de contrôle, l'exploration des chemins redondants et l'exploration
des chemins qui n'aboutissent pas à la solution entraînent des pertes d'efficacité. Une façon
d'éviter l'exploration des chemins redondants est de reconnaître que la base de données
globale initiale peut être décomposée ou découpée en composantes distinctes qui peuvent être
traitées séparément.
Pour décomposer une base de données, nous devons également être capables de
décomposer la condition d'arrêt. Cela signifie que, si nous devons travailler sur chaque
composante séparément, nous devons être à même d'exprimer la condition d'arrêt globale en
utilisant les conditions d'arrêt de chacune des composantes.
Le cas le plus important est celui où la condition d'arrêt globale peut être exprimée
comme conjonction de la même condition d'arrêt pour chaque base de données composantes.
Les systèmes de production pour lesquels on peut décomposer la base de données et la
condition d'arrêt globale sont appelés décomposables.
3.7 Procédure de base pour un système décomposable

Procédure PARTAGE
1 DONNEES ←base de données initiale
2 { Di } ←décomposition de données DONNEES
3 jusqu'à ce que tous les { Di } satisfassent la condition d'arrêt, faire
4 début
5 sélectionner D* parmi les { Di } qui ne satisfont pas la condition d'arrêt
6 enlever D* de { Di }
7 sélectionner une règle R dans l'ensemble des règles qui sont applicables à D*
8 D ←résultat de l'application de R à D*
9 { di } ← décomposition de D
10 ajouter { di } à { Di }
11 fin

La stratégie de contrôle pour PARTAGE doit sélectionner une base de données


composante D* à l'étape 5 et une règle à appliquer à l'étape 7.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 10 Stratégies de recherche

4. STRATEGIES DE RECHERCHE
4.1 Stratégies de retour arrière :
Le mécanisme de contrôle avec retour arrière est souvent tout à fait adéquat et
efficace pour les problèmes demandant peu de recherche. Une simple procédure récursive
montre la base de fonctionnement d'un système de production soumis au contrôle avec
retour arrière. Cette procédure que nous appelons RETOUR-ARRIERE admet un seul
argument DONNEES ayant la base de données globale du système de production comme
valeur initiale. Une fois terminée, la procédure renvoie une liste des données initiales,
produisent une base de données satisfaisant la condition d'arrêt. Si la procédure s'arrête
sans trouver une telle liste de règles, elle renvoie ECHEC.
Procédure récursive RETOUR-ARRIERE (DONNEES)

1. SI TERMINE (DONNEES), renvoyer NIL ;


2. SI IMPASSE (DONNEES), renvoyer ECHEC ;
3. REGLES ← APPREGLES (DONNEES)
4. BOUCLE :Si vide(REGLES), renvoyer ECHEC
5. R← PREMIERE(REGLES)
6. REGLES ← QUEUE(REGLES)
7. RDONNEES ← R(DONNEES)
8. CHEMIN ← RETOUR ARRIERE(RDONNEES)
9. Si CHEMIN = ECHEC, aller à BOUCLE /*pour essayer une autre
10. renvoyer CONS(R,CHEMIN)

Cette procédure peut ne jamais se terminer. Pour éviter, on peut imposer une limite
arbitraire pour la profondeur de la récursivité. On peut aussi modifier l'algorithme RETOUR-
ARRIERE en vérifiant que l'on ne repasse pas par une base de données se trouvant déjà sur le
chemin qui part de la base de données initiale. Afin d'implémenter cette stratégie de retour-
arrière comme une procédure récursive, toute la chaîne de base de données visitée doit être un
argument de la procédure.
Appelons RETOUR-ARRIERE1 notre nouveau algorithme qui évite les cycles. Il
prend comme argument une liste de base de données. Lorsqu'elle est appelée pour la première
fois, cette liste contient comme seul élément la base de données initiale. Lorsque la procédure
se termine avec succès, RETOUR-ARRIERE1 renvoie une séquence de règles qui peuvent
être appliquées à la base de données initiale pour en produire une qui satisfait la condition
d'arrêt.

Procédure récursive RETOUR-ARRIERE1(LISTE-B)


1. BD ← PREMIERE (LISTE-BD)
2. Si membre (BD, QUEUE (LISTE-BD)), renvoyer ECHEC,
3. Si TERMINE (BD), renvoyer NIL
4. Si IMPASSE(BD), renvoyer ECHEC
5. Si LONGUEUR (LISTE-BD) > LIMITE, renvoyer ECHEC
6. REGLES ← APPREGLES(BD)
7. BOUCLES : Si NULLE(REGLES), renvoyer ECHEC
8. R ← PREMIERE (REGLES)
9. REGLES ← QUEUE (REGLES)
10. RBD ← R(BD)

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 11 Stratégies de recherche

11. RLISTE-BD ← CONS(RBD, LISTE-BD)


12. CHEMIN ← RETOUR-ARRIERE1(RLISTE-BD)
13. Si CHEMIN = ECHEC, aller à BOUCLE
14. renvoyer CONS(R, CHEMIN)
4.2 Procédure générale de recherche avec graphe :
Procédure ERCHERCHE-AVEC-GRAPHE
1. Créer un graphe de recherche G qui consiste uniquement en un nœud de
départ d.
Mettre d sur liste appelée OUVERT.
2. Créer une liste appelée FERME qui est initialement vide
3. BOUCLE: Si OUVERT est vide, échec
4. Sélectionner le premier nœud d'OUVERT,
l'enlever d'OUVERT et le mettre dans FERME
Appeler ce nœud n
5. Si n est un nœud but, terminer la procédure avec succès
Renvoyer la solution obtenue en traçant le chemin le long des pointeurs de n
jusqu'à G.
6. Développer le nœud n, produisant l'ensemble M de ses successeurs et les
mémoriser comme successeurs de n dans G
7. Mémoriser un pointeur vers n à partir des éléments de M qui n'étaient pas
déjà dans G (c'est-à-dire pas déjà dans OUVERT ou FERME).
Ajouter ces éléments de M à OUVERT
Pour chaque élément de M qui était déjà dans OUVERT ou FERME,
décider si l'on redirige ou non le pointeur vers n(voir ci-dessous)
8. Réordonner la liste OUVERT, soit arbitrairement, soit selon des
heuristiques (voir ci-dessous)

Cette procédure est suffisamment générale pour englober une grande variété
d'algorithmes particuliers avec graphe. La produit un graphe explicite G, appelé graphe de
recherche et un sous-ensemble T de G appelé arbre de recherche. L’arbre de recherche est
défini par ses pointeurs qui sont définis en phase 7.
Chaque nœud (sauf d) dans G a un pointeur orienté vers un seul de ses parents dans
G, qui définit son parent unique dans T. Chaque chemin possible vers un nœud redécouvert
par l'algorithme est préservé explicitement dans G, un seul chemin distinct.
En gros, les nœuds dans OUVERT sont les feuilles de l'arbre T et les nœuds dans
FERME sont les autres nœuds.
Plus précisément, en phase 3 de la procédure, les nœuds dans OUVERT sont ces
feuilles de l'arbre de recherche qui n'ont pas encore été sélectionnés pour être développés.
Les nœuds dans FERME, soit des feuilles sélectionnées pour être développées qui n'ont pas
produit de successeurs dans le graphe de recherche, sont des de l'arbre de recherche qui ne
sont pas des feuilles. La procédure ordonne les noeuds dans OUVERT en phase 8 de sorte
que les meilleurs soient sélectionnés pour être développés en phase 4. Ce classement peut
être fondé sur diverses heuristiques ou sur divers critères arbitraires.
Chaque fois que le nœud sélectionné pour être développé est un nœud but, le
processus se termine avec succès. Le chemin qui réussit à relier le nœud de départ au nœud
but peut être re-parcouru (en sens) inverse en suivant la trace des pointeurs depuis le nœud
but vers d.
Le processus échoue lorsque toutes les feuilles ont été sélectionnées pour être
développées. (Certains nœuds peuvent ne pas avoir de successeurs du tout, il est donc

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 12 Stratégies de recherche

possible que OUVERT devienne vide). Un échec signifie que le but est inaccessible à
partir du départ.
La phase 7 nécessite un supplément d'explications. Si le graphe implicite dans
lequel on mène une recherche était un arbre, on pourrait être sur qu'aucun des successeurs
engendrés en phase 6 n'a été engendré précédemment.
Lorsque la procédure de recherche produit un nœud qu'elle a déjà engendré
auparavant, elle trouve un chemin différent de celui déjà enregistré dans l'arbre de
recherche. Nous désirons que l'arbre de recherche préserve le chemin de moindre coût
trouvé jusqu'à présent de d à n'importe lequel de ces nœuds. Lorsque le dernier chemin à
être découvert a un coût moins élevé que le chemin précédent, l'arbre de recherche est
ajusté en remplaçant le parentage du nœud réengendré par son parent dans le dernier
chemin. Si le parent dans T d'un nœud n dans FERME est modifié, c'est qu'un chemin
moins cher a été trouvé vers n. Celui-ci peut faire partie de chemins moins chers vers
certains des successeurs de n dans le graphe de recherche G; dans ce cas, un changement
du parentage dans T des successeurs de n dans G peut s’imposer.
4.3 Procédures aveugles de recherche avec graphe :
Si aucune information heuristique sur le domaine n'est utilisé dans le classement
des nœuds dans OUVERT, un plan arbitraire doit être utilisé à la phase 8 de l'algorithme
La procédure de recherche résultante est dite non informée ou aveugle.
Le premier type de recherche aveugle ordonne les nœuds dans OUVERT en ordre
décroissant suivant leur profondeur dans l'arbre de recherche. Les nœuds les plus profonds
sont placés en premier sur la liste. Les nœuds de profondeur égale sont ordonnés
arbitrairement. La recherche résultante de ce classement est appelée recherche en
profondeur d'abord. Pour empêcher que le processus de recherche ne s'égare sur des
chemins infructueux à l'infini, on impose une limite en profondeur. Aucun nœud dont la
profondeur dans l'arbre dépasse cette limite n'est engendré. Le second type de recherche
aveugle ordonne les nœuds dans OUVERT dans l'ordre croissant de leur profondeur dans
l'arbre de recherche. La recherche qui résulte d'un tel classement est appelée recherche en
largeur d'abord parce que le développement des nœuds dans l'arbre suit des contours de
profondeur égale.
4.4 Procédures de recherche heuristiques avec graphe :
Pour de nombreuses taches, il est possible d'utiliser des informations qui dépendent
du domaine d'application pour réduire du domaine d'application pour réduire la recherche.
Ce type d'information est généralement appelé information heuristique et les procédures de
recherche l'utilisant sont appelées méthodes heuristiques de recherche.
4.5 Utilisation des fonctions d'évaluation.
L'information heuristique peut être utilisée pour ordonner les nœuds dans OUVERT
à l'étape 8 de sorte que cette recherche s'étende vers les nœuds qui paraissent les plus
prometteurs. Pour pouvoir appliquer une telle procédure de classement, il nous faut une
méthode pour calculer la "promesse" d'un nœud appelée fonction d'évaluation.
Les fonctions d’évaluation reposent sur plusieurs idées :
♦ on a tenté de définir la probabilité qu'un nœud se trouve sur le meilleur chemin;
♦ on a proposé des mesures de distance ou de différence entre un nœud arbitraire
et l'ensemble des buts;

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 13 Stratégies de recherche

♦ dans les feux de société et problèmes employant un tableau, une configuration


marque souvent des points sur la base des caractéristiques qu’elle possède et qui censées
constituer un progrès en direction du but.

Désignons par f la fonction d'évaluation, f(n) la valeur de la fonction au niveau


du nœud n. Par convention, les nœuds dans OUVERT sont ordonnés suivant un ordre
croissant de leurs valeurs. Donc, un nœud ayant une évaluation basse a plus de chance
d'être sur un chemin optimal.
Nœud de départ
2 8 3 2 8 3 2 3
1 6 4 1 4 1 8 4
7 5 7 6 5 7 6 5
4 4 5

Nœud but
1 2 3 1 2 3 2 3
8 4 8 4 1 8 4
7 6 5 7 6 5 7 6 5
5 5 5

♦ Pour la recherche en « profondeur d’abord », la procédure crée 35 nœuds.


♦ Pour la recherche en « largeur d’abord », la procéduere crée 47 nœuds.
♦ Pour la recherche heuristique utilisant la fonction d’évaluation suivante :
f(n)=p(n)+w(n)
où p(n) est la profondeur du nœud dans l’arbre et w(n) est le nombre de case
mal placées ;
la procédure crée 13 nœuds seulement.

L'algorithme A
Définissons la fonction d'évaluation f pour que f(n), à n'importe quel nœud n,
estime la somme du coût du chemin optimal depuis le nœud de départ d au nœud n, plus le
coût du chemin optimal du nœud n au nœud but. Cela signifie que f(n) est une estimation
du coût du chemin optimal contraint de passer par le nœud n.
k(ni,nj) = coût réel du chemin entre ni et nj,
h*(n) = min{k(n,ti)} ti nœuds buts,
k n'est pas défini pour deux nœuds non reliés.
g*(n) = k(d,n)
f*(n) = g*(n) + h*(n)

f*(n) est donc le coût d’un chemin optimal commençant à d et contraint de passer
par n.
La fonction d'évaluation f est une estimation de f*. Notre estimation peut être
donnée par f(n) = g(n) + h(n)
g(n) est le coût des arcs traversés en suivant les pointeurs de n à d
h(n) est obtenue à partir de l'information heuristique.

L'algorithme de RECHERCHE-AVEC-GRAPHE utilisant cette fonction


d'évaluation pour ordonner les nœuds s'appelle algorithme A. Lorsque l'algorithme A
utilise une fonction h minorant de h* nous l’appellerons algorithme A*.
L'algorithme A* est admissible, c'est-à-dire pour tout graphe, il se termine
toujours par un chemin optimal de d à un nœud but lorsqu'un tel chemin existe.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 14 Stratégies de recherche

Soient deux versions de A*, A1 et A2, on dit que l'algorithme A2 est plus
informé que A1 si pour tous les nœuds non but, h2(n) > h1(n). A1 développe toujours au
moins autant de nœuds que A2.
Une fonction heuristique h est monotone si pour tous les nœuds ni et nj, tq nj
est successeur de ni,
h(ni) - h(nj) <= c(ni, nj) avec h(t)=0
En écrivant cette condition sous la forme suivante
h(ni) <= h(nj) + c(ni, nj)
On constate qu'elle est similaire à l'intégralité triangulaire . Elle spécifie que
l'estimation du coût optimal vers un but à partir du nœud nj ne doit pas dépasser le coût de
l'arc de ni à nj plus l'estimation du coût optimal de nj jusqu'au but.
Pour le taquin à 9 cases, h(n)=w(n) est monotone.
Donc si la condition de monotonie est respectée, alors A* a déjà trouvé un
chemin optimal jusqu’au nœud sélectionné pour être développé. Autrement dit, si A*
sélectionne n pour le développer et si la condition de monotonie est respectée, g(n)=g*(n).
En plus si la condition de monotonie est respectée, les valeurs f de la séquence
de noeuds développes par A* sont croissantes.

4.6 Puissance heuristique des fonctions d'évaluation :

Trois facteurs influencent la puissance heuristique de l'algorithme A :


- le coût du chemin
- le nombre de nœuds développés pour la découverte du chemin
- l’effort de calcul nécessaire pour calculer h.
Si h=0 l’admissibilité est assuré mais revient à effectuer une recherche en largeur
d'abord donc trop long et inefficace.
Si h est la borne inférieur de h*, on ne développe que les quelques nœuds
compatibles avec le maintien de l'admissibilité.
Souvent on peut augmenter la puissance heuristique aux dépens de
l’admissibilité en utilisant h qui n'est pas minorant de h*.
En général on prend f=g + wh, où w est un nombre positif. Des valeurs très
élevées de w mettent trop en valeur la composante heuristique, tandis que des valeurs très
petites de w confèrent à la recherche un caractère prédominant de la recherche en largeur.
Les résultats expérimentaux montrent que l'efficacité de la recherche est souvent accrue
lorsqu'on permet à la valeur de w de varier inversement à la profondeur d'un nœud dans
l'arbre de recherche. Dans les petites profondeurs, la recherche repose principalement sur la
composante heuristique, alors que dans les grandes profondeurs la recherche se fait de plus
en plus en profondeur (largeur) pour assurer qu'un chemin menant à un but finira par être
trouvé.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 15 Système de génération de plan

5. REPRESENTATION DES CONNAISSANCES EN LOGIQUE


DE PREDICATS
5.1 Généralité :
5.1.1 Définition
Le calcul du premier ordre est un langage formel permettant de formuler diverses expressions. Ses
composantes élémentaires sont : les variables, les prédicats, les fonctions et les constantes.
Exemple
Pour représenter :"Rossy a écrit Lera", on peut utiliser le prédicat A-ECRIT de la façon suivante :
A-ECRIT(Rossy, Lera) Rossy et Lera sont des constantes. Ces constantes peuvent être remplacées par des
variables si on veut rester indéfini.
Pour représenter la phrase "La mère de Jean est mariée au père de Jean", nous pouvons utiliser
deux fonctions :
père pour exprimer une correspondance entre un individu et son parent masculin
mère pour exprimer une correspondance entre un individu et son parent féminin.
et les prédicats MARIES
MARIES(père(Jean), mère(Jean))
Un prédicat peut être unaire, binaire ou même ternaire.
Exemple
La maison est jaune/
→JAUNE(Maison)
→COULEUR(Maison, Jaune)
→VALEUR(couleur, maison, jaune)
5.1.2 La sémantique du langage
Les expressions valides du calcul des prédicats sont appelés formules bien formulées (fbf). Une
fbf est interprétée en définissant une correspondance entre les éléments du langage et les relations, entités
et fonction du contexte. C'est-à-dire prédicat ~ relation, constante ~entité et fonction ~ fonction
contextuelle. Ces associations définissent la sémantique du langage de calcul des prédicats. Une fbf est
vraie(V) si son interprétation dans un contexte est vraie. Donc, l'autre cas, elle est fausse (F)
Exemple . A-ECRIT (Rossy, Lera) est vraie
A-ECRIT (Rossy, cours d'IA) est fausse
5.1.3 Les connecteurs
Les connecteurs sont utilisés pour combiner des formules atomiques pour former des fbf plus
complexes.
Exemple ∧ HABITE(Jean, Maison-1) ∧COULEUR(Maison-1, jaune)
La nouvelle formule obtenue est appelée conjonction et chaque terme s'appelle
terme de le conjonction.
∨ pour représenter le OU inclusif. La nouvelle formule obtenue est appelée
disjonction et chaque terme s'appelle terme de le disjonction.
⇒La formule obtenue par ⇒ s'appelle implication. Le terme à gauche s'appelle
l'antécédent et celui à droite la conséquence.
⎤ utilisé pour nier la valeur de vérité d'une formule .
Toute formule obtenue par connexions des fbf est aussi une fbf.
5.1.4 La quantification
Si une formule P(x) est vraie quelle que soit l'affectation de la variable x alors on utilise le
quantificateur universel ∀ de la façon suivante. (∀ x) P(x)

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 16 Système de génération de plan

Par contre si une formule P(x) est vraie pour au moins une valeur de x, alors on utilise le
quantificateur existentiel ∃ de la façon suivante. (∃x) P(x)
Toute expression obtenue en qualifiant une variable dans une fbf est aussi une fbf.
Une variable quantifiée est dite liée, dans l'autre cas elle est libre.
5.1.5 Propriétés des FBF
( ⎤X1) ~ X1
X1∨X2 ~ ⎤X1 ⇒ X2
(X1∧X2) ~ ⎤X1∨⎤X2
(X1∨X2) ~⎤ X1∧⎤X2 Loi de Morgan
X1∧ (X2 ∨ X3) ~ (X1∧ X2)∨(X1∧ X3)
X1∨ (X2∧ X3) ~ (X1∨X2) ∧ (X1 ∨X3) Distributivité
X1 ⇒ X2 ~ ⎤X2 ⇒ ⎤X1 Contraposition
(∃ x) P(x) ~ (∀x) [⎤P(x)]
(∀ x) P(x) ~ (∃x) [⎤P(x)]
(∀x) P(x) ~ (∀y) P(y)
(∃ x) P(x) ~ (∃ y) P(y)
Donc de ces 2 équivalences, on peut dire que la variable quantifiée est une variable muette.
C'est à dire qu'elle peut être remplacée par une autre variable qui n'est pas encore apparue dans
l'expression.
5.1.6 Règles d'inférence, Théorème et Démonstrations
L'inférence est le processus permettant de donner des conclusions à partir d'hypothèses. Une règle
d'inférence appliquée à un fbf produit une nouvelle fbf qu'on appelle Théorème. Une séquence
d'application de règles d'inférence utilisées dans la dérivation d'une fbf constitue la démonstration du
théorème.
Le calcul des prédicats donne lieu à beaucoup de règles d'inférence.
Modus Ponen : P, P⇒ Q dérive Q
Modus Tollen : ⎤Q, P⇒ Q dérive ⎤P
Transitivité : P⇒ Q, Q⇒ R dérive P⇒ R
Simplification : P ∧Q dérive P
Conjonction : P,Q dérive P ∧Q
Spécification Universelle : (∀x) P(x) dérive P(y)
Spécification Existentielle : ( ∃x) P(x) dérive P(x)

Exemple
On a les constantes suivantes : Jeannot et Sauteur
On a aussi les prédicats :
♦ Unaire : CHEVAL, CHIEN, LEVRIER, LAPIN
♦ Binaire :PLUS_VITE
On a aussi les fbf suivantes :
♦ ∆1 : (∀ x), (∀y) [ CHEVAL(x) CHIEN(y) PLUS_VITE(x,y) ]
♦ ∆2 : (∃y) [ LEVRIER(y) ( ∀z) [ LAPIN(z) PLUS_VITE(y,z) ]]
♦ ∆3 : ( ∀y) [ LEVRIER(y) CHIEN(y)]
♦ ∆4 : ( ∀x)( ∀y)( ∀z)[ PLUS_VITE(x,y) PLUS_VITE(y,z) PLUS_VITE(x,z)]
♦ ∆5 : CHEVAL( sauteur)
♦ ∆6 : LAPIN(Jeannot)
On peut démontrer que : PLUS_VITE (sauteur, Jeannot)

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 17 Système de génération de plan

5.2 L'Unification
L'unification est un processus extrêmement important en IA. .Elle consiste à découvrir pour un
ensemble de phrases donné une substitution σ telle que toutes les phrases de l'ensemble sont identiques
après substitution; σ est appelé SUBSTITUTION UNIFICATRICE OU UNIFICATEUR .
Une substitution est représentée par σ ={t1/v1,t2v2,........,tn/vn} avec ti/vi signifie que le terme ti est
substitué par la variable vi.
Pour indiquer l'instance de substitution d'une expression E en utilisant une substitution σ nons
écrivons Eσ
La composition de deux substitutions σ1 et σ2 est notée σ 1 σ 2(σ 2o σ 1) qui est la
substitution obtenue en appliquant σ2 aux termes de σ 1 et en ajoutant ensuite toute paire de σ 2 ayant
des variables qui n'apparaissent pas parmi les variables de σ 1. On peut démontrer qu'appliquer σ 1 et σ
2 successivement à une expression L revient à appliquer σ 1 σ 2 à L. Ce qui signifie que (L σ 1) σ
2=L(σ 1 σ 2). On peut démontrer également que la composition de substitution est associative. Par
contre, elle n'est pas commutative.
Un ensemble d'expression {E1}unifiable peut avoir plusieurs unificateurs .Parmi ces unificateurs,
il existe un noté w tel que :
si σ est un unificateur de {Ei} alors il existe une substitution τ telle que {Ei} σ = {Ei}ωτ, ω est
l'unificateur le plus simple ou le plus général de {Ei} noté upg.
Il y a de nombreux algorithmes qui peuvent être utilisés pour unifier un ensemble fini
d'expressions unifiables et renvoient ECHEC lorsque l'ensemble ne peut être unifié. La procédure
récursive UNIFIER décrite de façon informelle ci-dessous donne une idée générale sur la manière
d'unifier un ensemble de deux expressions qui ont une structure de liste.
Procédure récursive UNIFIER (E1,E2)

Si E1 ou E2 est un atome ( c'est à dire un prédicat, une fonction, une constante, une négation ou
une variable) échanger les arguments E1 et E2 (si nécessaire), de sorte que E1 soit un atome , et faire:
DEBUT
Si E1 et E2 sont identiques , renvoyer NIL
Si E1 est une variable , faire:
DEBUT
Si E1 apparait dans E2 , renvoyer {E1/E2}
renvoyer ECHEC
FIN
Si E2 est une variable, renvoyer {E1/E2}
envoyer ECHEC
FIN
F1 ← le premier élément de E1, T1 ← le reste de E1
F2 ← le premier élément de E2, T2 ← le reste de E2
Z1 ← UNIFIER (F1,F2)
Si Z1 = ECHEC , renvoyer ECHEC
G1 ← résultat de l' application de Z1 à T1
G2 ← résultat de l' application de Z1 à T2
Z2 ← UNIFIER (G1,G2)
SI Z2 = ECHEC , renvoyer ECHEC

Renvoyer la composition de Z1 et Z2 .
5.3 Resolution
5.3.1 Clauses

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 18 Système de génération de plan

La résolution est une règle d'inférence importante qui peut être appliquée à une certaine classe de
fbf appelées clauses.
Une clause est définie comme une fbf formée d'une disjonction de littéraux.
Toute fbf du calcul des prédicats peut être transformée en un ensemble de clauses de la façon
suivante:

1. Eliminer les implications : x1 ⇒ x2 est substitué par ⎤x1 ∨x2


2. Réduire la portée des négations. Nous voulons que chaque négation s'applique à une formule au
plus.
3. Standardiser les variables, c'est à dire renommer les variables muettes pour faire en sorte que
chaque quantificateur ait sa propre variable muette unique. Une variable liée par un quantificateur est un
variable muette. Elle peut être remplacée par toute autre variable n'apparaissant pas dans la portée du
quantificateur sans changer la valeur de vérité de la fbf concernée.
4. Eliminer les quantificateur existentiels en remplaçant les occurrences de la variable quantifiée
existentiellement par une fonction de Skolern dont les arguments sont les variables liées à des
quantificateurs universels dont la portée inclut la portée du quantificateur existentiel que l'on élimine.
Exemple : (∀y) [ (∃x) P(x,y)] ici le quantificateur existentiel est situé dans la portée du
quantificateur universel, donc le x qui existe peut dépendre de la valeur y. La dépendance explicite
entre x et y peut être définie au moyen d'une fonction appelée fonction de Stokern telle que x= g(y).
donc, on aura (∀y) P(g(y),y). Les fonctions de Stokern doivent être nouvelles dans le sens qu'elles ne
peuvent pas être déjà apparues dans la fbf. Si le quantificateur existentiel ne se situe pas dans la portée
d'un quantificateur universel , nous utilisons une fonction de Stokern sans arguments
Exemple (∃x)P(x) devient P(A) où A est une constante
5. Mettre sous forme prénexe. C’est-à-dire déplacer toutes les quantifications universelles au début
de la fbf et inclure dans la portée de chaque quantification la totalité de la fbf qui suit. La fbf résultante se
trouve sous forme prénexe. Une fbf sous forme prénexe est constituée d'une chaîne de quantificateurs
appelée préfixe suivie d'une formule sans quantification appelée matrice.
6. Mettre la matrice sous forme normale conjonctive . C'est-à-dire une conjonction d'un ensemble
fini de disjonction.
7. Eliminer les quantificateurs universels
8. Eliminer les symboles ∧ remplaçant les expressions de la forme x1∧x2 par l'ensemble des fbf
{x1, x2}
9. renommer les variables de façon à ce qu'aucune variable n'apparaisse dans plus d'une clause
5.3.2 Résolution pour les clauses sans variable (calcul propositionnel)
Si A et B sont deux clauses contenant respectivement P et ⎤P, alors ont peut déduire la clause C
dite résolvante obtenue en réunissant toutes les littéraux de A et B sauf P et ⎤P.

5.3.3 Résolution pour le calcul des prédicats (résolution générale)


Soit {∆}un ensemble de clauses et ω la proposition à démontrer
Alors : Mettre ω sous forme clausale et l'ajouter à{∆}
Répéter jusqu'à l'obtention de la clause vide
choisir deux clauses A et B qui s'unirent en C
Si c’est vide , la proposition est démontrée
Sinon ajouter C à {∆}

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 19 Système de génération de plan

6. SYSTEME DE REFUTATION PAR RESOLUTION


6.1 Principe
Dans le problème du type démonstration de théorèmes, nous avons un ensemble S de fbf à partir
duquel nous voulons démontrer une fbf W. Certains systèmes reposant sur la résolution sont conçus pour
produire des démonstrations par l’absurde ou réfutations. Dans une réfutation par résolution, la fbf but est
d’abord niée, puis ajoutée à S. Cet ensemble ainsi enrichi est alors transformé en un ensemble de clauses
et la résolution est utilisée dans l’espoir de dériver une contradiction, représentée par la clause vide NIL.
En effet, si W découle logiquement de S, alors par définition, chaque interprétation satisfaisant S
satisfait aussi W. Donc aucune des interprétations satisfaisant S ne peut satisfaire ¬W, par conséquent
aucune interprétation ne peut satisfaire l’union de S et { ¬W}. Donc si W découle logiquement de S,
l’ensemble S U { ¬W } est insatisfaisable, donc la résolution finira par produire la clause vide.
6.2 Systèmes de production pour les réfutations par résolution
On peut considérer qu’un système de réfutation par résolution est un système de production. La
base de données globale est un ensemble de clauses, et le schéma d’application des règles est la
résolution. Les instances de ce schéma sont appliquées à des paires de clauses dans la base de données en
vue de produire une clause dérivée. La nouvelle base de données est alors l’ancien ensemble de clauses
plus la clause dérivée. La condition d’arrêt pour ce système de production est un test pour voir si la base
de données contient la clause vide.
On peut démontrer qu’un tel système de production est commutatif.
L’algorithme de base pour un système de production de réfutation est décrit ci-après .

Procédure RESOLUTION
CLAUSES ← S
Jusqu’à ce que NIL soit dans CLAUSES, faire
début
sélectionner dans CLAUSES deux clausses distinctes ci et cj qui peuvent être
résolues
calculer une résolvante rij de ci et cj
ajouter rij dans CLAUSES
fin

6.3 Stratégies de contrôle pour les méthodes de résolution


Puisque le système est commutatif, on peut utiliser une stratégie de contrôle irrévocable. La
stratégie de contrôle utilise une structure appelée graphe de dérivation. Les nœuds dans untel graphe sont
associés à des clauses. Lorsque deux clauses ci et cj produisent une résolvante rij, nous créons un nouveau
noeud associé à rij avec des arêtes le reliant aux deux nœuds ci et cj. Nous appelons ci et cj les parents de
rij et que rij est un descendant de rij.
Une réfutation par résolution peut être représentée comme un sous-arbre du graphe de dérivation
qui a une racine associée à NIL. Cet arbre s’appelle arbre de réfutation.
La stratégie de contrôle recherche donc une réfutation en construisant un graphe de dérivation
jusqu’à ce que soit produit un arbre ayant une racine associée à la clause NIL.
On dit qu’une stratégie de contrôle pour un système de réfutation est complète, si son utilisation
aboutit à une procédure qui découvre systématiquement toute contradiction. Plusieurs stratégies de
contrôle ont été développée pour la résolution, en voici quelques exemples :

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 20 Système de génération de plan

6.4 La stratégie en largeur d’abord


Dans la stratégie en largeur d’abord, toutes les résolvantes de premier niveau sont calculées
d’abord, ensuite les résolvantes de deuxième niveau, etc. Une résolvante de premier niveau est une
résolvante issue de deux clauses dans l’ensemble initial ; une résolvante de niveau n est une résolvante
dont le parent le plus profond est résolvante de niveau n-1. La stratégie en largeur d’abord est complète.

6.5 La stratégie de l’ensemble support


Une réfutation avec la stratégie avec la stratégie de l’ensemble support est une réfutation dans
laquelle au moins un parent de chaque résolvante est sélectionné parmi les clauses résultant de la négation
de la fbf but ou parmi leurs descendants qu’on appelle ensemble support.
En général, les stratégies de l’ensemble support sont plus efficaces que les stratégies en largeur
d’abord non contraintes. Chaque résolution a un caractère de raisonnement en chaînage arrière, car elle
utilise une clause qui vient d’une fbf but ou l’un de ses descendants. Chacune des résolvantes pourrait
donc correspondre à un sous-but dans un système de production en chaînage arrière. Un avantage du
système de réfutation est qu’il permet des étapes de raisonnement en chaînage avant et d’autre en
chaînage arrière dans le même système de production. Les étapes en chaînage avant correspondent à des
résolutions entre clauses qui ne descendent pas de théorème à démontrer.

6.5.1 La stratégie des unités


La stratégie des unités est une modification de la stratégie de l’ ensemble support dans laquelle, au
lieu de remplir chaque niveau comme dans la recherche en largeur d’abord, nous essayons de sélectionner
une clause à littéral unique(appelée unité) comme parent au cours de la résolution, les résolvantes ont
moins de littéraux que leurs autres parents. Ce processus aide à faire converger la recherche pour produire
la clause vide et accroît ainsi généralement l’efficacité.

6.5.2 La stratégie de résolution par rapport aux données


Une réfutation par rapport aux données est une réfutation dans laquelle chaque résolvante a au
moins un parent appartenant à l’ensemble des clauses initiales. Ce type de stratégie n’est pas complet.
Exemple : {Q(µ)∨P(A),¬Q(w)∨P(w),¬Q(x)∨¬P(x),Q(y)∨¬P(y)}

6.5.3 La stratégie linéaire


Une réfutation utilisant la stratégie linéaire est une réfutation dans laquelle chaque résolvante a un
parent qui, soit se trouve dans la base initiale, soit est un ancêtre de l’autre parent. Cette stratégie
ressemble à la stratégie de résolution par rapport aux données.

6.5.4 Stratégies de simplification


On peut parfois simplifier un ensemble de clauses en éliminant certaines clauses ou certains
littéraux dans ces clauses. Ces simplifications sont telles que l’ensemble simplifié de clauses est
insatisfaisable si et seulement si l’ensemble original est insatisfaisable. L’utilisation de ces stratégies de
simplification permet donc de réduire la vitesse de production de clauses nouvelles.
- Elimination des tautologies : toute clause contenant un littéral et sa négation peut être éliminée.

6.6 Système de questions-réponses utilisant la réfutation par résolution


De nombreuses applications des systèmes de démonstration de théorèmes reposant sur le calcul
des prédicats nécessitent la démonstration de formules qui contiennent des variables quantifiées

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011


Intelligence Artificielle Page 21 Système de génération de plan

existentiellement et la découverte de valeurs ou instances, pour ces variables. Dès lors, il se pourrait que
nous voulions savoir si une fbf telle que (∃x) W(x) découle logiquement de S, et si c’est le cas; nous
voulions une instance de x qui existe. Trouver une démonstration de (∃x) W(x) à partir de S est un
problème courant de théorèmes en calcul des prédicats, mais produire une instance satisfaisante pour x
requiert une méthode de démonstration constructive.
Exemple
Soit le problème suivant : Si Fido va partout où Jean va et si Jean est à l’école, où est Fido?
Ce problème contient deux faits et une question dont la réponse peut être déduite de ces faits.
Les faits peuvent être traduits par un ensemble S de fbf
(∀x) [ A(Jean, x) ⇒ A(Fido, x)] et A(Jean, ECOLE)
On peut répondre à la question “ Où est Fido ” ? si on démontre d’abord que la fbf (∃x) A(Fido, x)
découle logiquement de S et qu’on trouve ensuite une instance de x qui existe .
Donc, pour répondre” à la question il faut franchir deux étapes.
1ère étape Transformer la question en une fbf but contenant un quantificateur existentiel tel que la
variable à la question. Si la question peut être résolue à partir des faits donnés, la fbf but créée de cette
manière découlera logiquement de S. La réfutation par résolution est obtenue de la façon habituelle.

2ème étape Cette étape consiste à extraire l’arbre de réfutation obtenue à l’étape 1 une réponse à la
question. Extraire une réponse implique la conversion d’un arbre de démonstration avec une formulation
à la racine qui peut être utilisée comme réponse.
Pour cela :
- Ajouter à chaque clause découlant de la négation de la fbf but, sa propre négation
- Suivant la structure de l’arbre de réfutation, accomplir les mêmes résolutions
qu’auparavant jusqu’à ce qu’une clause soit obtenue à la racine.
- Utiliser la clause à la racine comme réponse

Cette méthode est très simple, mais elle pose quelques problèmes pour certain cas, en particulier si
la fbf but contient des quantificateurs universels. Voici le processus d’extraction le plus général :
- Pendant la phase (ou étape) 1, marquer les sous-ensembles d’unification ie les littéraux
qui sont unifiés dans chaque résolution.
- Substituer toute fonction de Skolem apparaissant dans les clauses qui résultent de la
négation de la fbf but par des nouvelles variables.
- Transformer les clauses qui résultent de la négation de la fbf but en tautologies.
- Un arbre de démonstration modifié modélisant la structure de l’arbre de réfutation
originale est produit. Chaque résolution dans l’arbre modifié utilise un ensemble d’unification déterminée
par l’ensemble d’unification utilisé par la résolution correspondante dans l’arbre de réfutation.
- La clause à la racine de l’arbre modifié est la formule réponse extraite par ce processus.

Master 1 Génie Logiciel et Base de Données - E.N.I. - 2011

Vous aimerez peut-être aussi