Chapitre 5
Chapitre 5
Chapitre 5
chapitre 2
Résolution de problèmes
Résolution de problèmes
• Introduction
La résolution de problèmes est le processus qui consiste à
sélectionner et ordonnancer des actions élémentaires en
séquences afin d'atteindre des buts donnés en respectant les
contraintes d'un environnement donné.
Composition du processus :
– un état initial (le problème à résoudre),
– un état final (la solution au problème),
– un ensemble d'actions élémentaires permettant de passer
d'un état à un autre,
Objectif du processus :
– Trouver une séquence d'actions à exécuter pour passer de
l'état initial à l'état final
Résolution de problèmes
• Introduction
Complexité du processus :
– A partir d'un état donné, on peut effectuer plusieurs actions
élémentaires différentes qui débouchent sur des états différents.
La méthode qui consiste à essayer successivement toutes les
possibilités jusqu'à trouver une solution est une méthode de
recherche fortement combinatoire
– On est souvent amené à choisir entre plusieurs choix ou à choisir la
meilleur solution : problème d’optimisation combinatoire
Apport de l’IA :
– L’IA apporte une solution à ce problème : les “ heuristiques ” :
méthodes permettant de choisir en premier les actions ayant le plus
de chance d'aboutir
Résolution de problèmes
• Types de domaines
La démonstration de théorèmes
Les jeux de stratégies (échec, dame)
La planification :
robotique
allocations de ressources
emploi du temps
Résolution de problèmes
• Exemple de problème
- Planification de chaîne de production
Chaîne de
production Atelier A Atelier B Atelier C Atelier D
Capacité de
production 5v/h/h 3v/h/h 2v/h/h 3v/h/h
Ville L
180 Ville D
140 70
Ville C 211
97 220
Ville E 101
Ville F
Résolution de problèmes
• Exemple de problème
- Le Taquin n n+1 carreaux numérotés et un carreau
"vide" sont disposés sur un damier dans une
configuration donnée. L'objectif du taquin est
de modifier la position des carreaux pour
arriver à une configuration finale donnée.
On autorise les changements de position seulement
par glissement d'un des carreaux sur le carreau vide
à partir d'une position adjacente orthogonale.
Le but du jeu est de trouver la séquence la plus courte
amenant à la configuration finale.
Initial Final
Résolution de problèmes
• Complexité
– Espace d’états
Un problème est défini par un espace d’états qui est l'ensemble des états
possibles de ce problèmes
Exemples d ’états :
* une configuration de pièces dans un jeu d ’échecs
* un calendrier partiel ou complet des matches de tennis
* une partie de preuve ou une preuve complète d'un démonstrateur de
théorèmes
– Opérateurs
Les états d’un problème sont reliés les uns aux autres par des opérateurs
qui transforment un état dans un autre
Résolution de problèmes
• Représentation des problèmes
– But
Exemples de buts :
– Méthodes aveugles :
• Recherche en profondeur
• Recherche en largeur
• Recherche en profondeur limitée
• Recherche en approfondissement itératif
– Méthodes heuristiques :
• Recherche en profondeur ordonné
• Recherche du meilleur d ’abord
• Algorithme A*
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 13
– Profondeur d ’abord 7
(LIFO) :
– Principe : la priorité est donné
E1 E2 E3
aux nœuds de niveaux les plus 14
profonds du graphe de
recherche 2 5 6 8 9 12
E4 E5 E6 E7 E8 E9 E10
Exemple 3 4 10 11
Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à droite au plus à gauche
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but
3 la recherche aboutit si lenœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 3
– Largeur d’abord 2
(FIFO) :
– Principe : la priorité est donné
E1 E2 E3
aux nœuds de niveaux les 10
moins profonds du graphe
de recherche 4 5 6 7 8 9
E4 E5 E6 E7 E8 E9 E10
10 situations explorées
Exemple
Résolution de problèmes
• Méthodes de recherche aveugle
– Largeur d ’abord :
– Algorithme :
Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à gauche au plus à droite
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but
3 la recherche aboutit si lenœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1 9
– Profondeur limitée : 5
– Principe : idem que profondeur
d ’abord avec une limite de E1 E2 E3
profondeur d ’exploration L
10
2 3 4 6 7 8
E4 E5 E6 E7 E8 E9 E10
Exemple avec
une profondeur
limitée L=2
Résolution de problèmes
• Méthodes de recherche aveugle
– Profondeur Limitée :
– Algorithme :
Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a du plus à droite au plus à gauche
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile =nœud but ou
limite profondeur atteinte
3 la recherche aboutit si le nœud but a été atteint.
Fin
Résolution de problèmes
• Méthodes de recherche E0
aveugle 1,4
2,8
3,12
– Approfondissement
itératif : E1 E2 E3
– Principe : recherche en
profondeur, limitée à la 13
profondeur 1, puis 2, ... 5 6 7 9 10 11
jusqu'à l'obtention d'une
solution (ou l'échec de la
recherche) E4 E5 E6 E7 E8 E9 E10
Exemple
Résolution de problèmes
• Méthodes de recherche heuristique
– Fonction heuristique
• h:E
- un état e E (espace d'états) --> un nombre h(e)
- h(e) est (généralement) une estimation du rapport
coût/bénéfice qu'il y a à étendre le chemin courant en passant
par e.
- contrainte : h(solution) = 0
A
h(e1) = 0.8
h(e2) = 2
h(e3) = 1.6 e1 e2 e3
Résolution de problèmes
• Méthodes de
recherche
heuristique
– Exemples de fonction
heuristique
– Problème du taquin
3x3
heuristique 329
374 250
– Profondeur ordonnée :
– Principe : Approfondissement des
branches jusqu'a leur extrémité, VK VB VL
dans l'ordre inverse de leur
distance au but
366 380 190
178
VA VM VC VD
50
Heuristique : distance à vol d’oiseau
152 VE
Meilleur chemin : VA>VB>VC>VF
VF 70
0
Résolution de problèmes
• Méthodes de recherche heuristique
– Profondeur ordonnée :
– Algorithme :
Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a dans l ’ordre inverse de leur distance au
but
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile = nœud but
3 la recherche aboutit si le nœud but a été atteint
Fin
Résolution de problèmes
• Méthodes de
recherche
heuristique
– Meilleur premier :
– Principe : Dès que l'on
rencontre
un chemin meilleur
qu'auparavant,
c'est celui là que l ’on
approfondit
Début
1 empiler la racine
2 répéter
Si sommet de pile <>nœud but alors
- dépiler le premier élément
- empiler ses fils s'il en a dans la file et trier la pile entière par
ordre croissant des distances calculées au but
Sinon ne rien faire
Jusqu'à ce que la pile soit vide ou sommet pile = nœud but
3 la recherche aboutit si le nœud but a été atteint
Fin
Résolution de problèmes
• Méthodes de recherche
heuristique
– Algorithme A* :
– Principe : améliorer l’algorithme du “ Meilleur
premier ” en calculant le plus court chemin pour
passer d'un état initial à un état final
Soient :
* n0 : la racine du graphe
* G : le nœud solution
* c(ni,nj) : le coût pour aller du nœud ni au nœud nj
On définit
- g (n) = c(n0,n) : le coût pour aller du nœud racine n0 au
nœud n
- h (n) = c(n,G) : l ’estimation heuristique du coût pour
aller du nœud n au nœud solution G
- Heuristique consistante :
Pour tout x, pour tout y descendant de x :
h (x) <= h (y) + c (x,y)
- Heuristique admissible :
Pour tout x, h (x) <= h* (x)
où h* (x) est la valeur optimale de x à G
Résolution de problèmes
• Méthodes de recherche heuristique
– Algorithme A* :
– Algorithme :
Début
Initialement, la file des chemins partiels contient le chemin d'ordre zéro,
de longueur nulle et reliant la racine à nulle part
2. Repeter
si le premier chemin de la file n'aboutit pas au but alors
le supprimer de la file
former les nouveaux chemins obtenus en prolongeant d'un niveau le chemin
supprimé
insérer ces nouveaux chemins dans la file
le coût de chaque chemin étant la somme de la distance déjà parcourue et
d'une estimation minorante de la distance restant à parcourir.
trier la file par coûts croissants
si deux chemins ou plus atteignent le même noeud ne conserver
que celui ayant la longueur minimale
finsi
Jusqu'à ce que la file soit vide ou que le noeud but soit atteint
Résolution de problèmes
• Programmes de jeux de stratégie
Exemple de jeu : les échecs
Situation courante
? ?
Quel coup choisir ?
Résolution de problèmes
• Programmes de jeux de stratégie
Arbre de jeu :