Chap 2
Chap 2
Chap 2
Résolution de problème en IA
Par recherche
Introduction
? Trouver ce chemin
Situation
Finale 3
Introduction
4
Introduction
ET
ET OU
OU
Il faut définir:
•Les états du problème (abstrait) = ensemble d'états réels
•L’objectif à atteindre: solution (abstraite) = ensemble de chemins-
solutions dans le monde réel
• Les opérateurs de transformations (abstrait) = combinaison
d'actions réelles (représentation par graphe)
11
Opérateurs du jeu taquin
12
Représentation par graphes d’états
13
Problème général de recherche
k O
N
L M
G
I ?
H
Représentation
D F
par un arbre
E
A B c
14
États vs. noeuds
15
Méthodes de recherche
Stratégies d’exploration
– recherche en largeur
– recherche en profondeur
– recherche en profondeur limitée
– recherche par approfondissement itératif
16
Critères d'évaluation
Les différentes méthodes de recherche sont évaluées selon les critères suivants:
• Complétude: est-ce que la méthode garantit de trouver une solution si elle existe?
• Complexité en temps: combien de temps faut-il pour trouver la solution?
• Complexité en espace: quel espace mémoire faut-il pour effectuer la recherche?
• Optimalité: est-ce que la méthode trouve la meilleure solution s'il en existe
plusieurs?
17
Exercice 1: problème du fermier
Pb?
Comment faire pour passer les 4 acteurs à l’autre rive
18
Algorithme de recherche
Largeur d’abord
(breadth-first-search)
19
Principe de la recherche en largeur
Stratégie: étend le
noeud le moins
profond
Implémentation:
insertion des
successeurs à la fin
de la file d'attente
20
Algorithme
21
Propriétés de la recherche en largeur
22
Exercice 2 : taquin 3x3
1 2 3 1 2 3
8 6 8 4
7 5 4 7 6 5
Configuration initiale Configuration finale
Etat initial Etat final
23
Solution Exercice 2
1 2 3
8 6 Etat initial
7 5 4 (0)
1 2 1 2 3 1 2 3
(1) 8 6 3 (2) 8 6 4 (3) 8 6
7 5 4 7 5 7 5 4
1 2 1 2 2 1 3 1 2 2 1 2 2
(4) 8 6 3 (5) 8 6 4 (6) 8 2 6 (7) 8 5 6 (8) 8 6
7 5 4 7 5 7 5 4 7 4 7 5 4
1 6 2 1 2 1 2 3
profondeur d’abord
(depth-first-search)
25
Principe de recherche en profondeur
nécessité d'éliminer
les nœuds déjà
rencontrés.
26
Algorithme de recherche en profondeur
27
Propriétés de la recherche en profondeur
• Complétude : Non
échoue dans les espaces infinis ou avec cycle
Æ complet dans les espaces finis acycliques
• Complexité en temps :
O(bm) = terrible si m est beaucoup plus grand que d
• Complexité en espace: O(b * m) linéaire!
• Optimalité : Non
• discussion: besoins modestes en espace
– pour b = 10, d = 12 et 100 octets/noeud:
• recherche en profondeur a besoin de 12 Koctets
* 1010 !!!
• recherche en largeur a besoin de 111 Tera-octets
28
Algorithme de recherche
profondeur limitée
29
Principe de la recherche en profondeur
limitée
30
Principe de la recherche en
profondeur limitée
algorithme de recherche en profondeur avec une
limite de profondeur d'exploration L
Implémentation
les noeuds de profondeur L n'ont pas de successeurs
exemple avec L = 2
31
Propriétés de la recherche en profondeur
limitée
Complétude: Oui si L ≥ d
Optimalité: Non
32
Exercice 3 : taquin 3x3
33
Algorithme de recherche
approfondissement itératif
=
Itérative en profondeur
34
Principe de la recherche
itérative en profondeur
36
Propriétés de la recherche
itérative en profondeur
Complétude Oui
Complexité en temps
(d+1)b0 + db1 + (d-1)b2 + … + bd = O(bd)
37
Les méthodes heuristiques
(exploration informée)
38
Introduction aux heuristiques
39
Implémentation des méthodes heuristiques
40
Fonction d’évaluation
41
Méthode d’évaluation
Etat
I initial
g*(n)
f*(n) n Nœud
h*(n) n
Etat
B But
Estimation de g* Etat
I initial
g*(n)
g* peut être le coût du meilleur f*(n) n Nœud
n
Chemin déjà rencontré de I à n h*(n)
Etat
Soit g cette fonction du coût on a B But
g(n) ≥ g* (n)
ÆLe choix de g est très dépendant f*(n) = g*(n) + h*(n)
du domaine traité
ÆExemple pour le jeu de taquin
g(n) le nombre de jeton déplacé
(la longueur de la chaîne entre la
racine et n)
43
Méthode d’évaluation
Estimation de h* Etat
plus difficile car on connaît I initial
pas de chemin de n Æ But g*(n)
Nœud
Il faut se référer à des informations
f*(n) n n
heuristiques sur le domaine h*(n)
Etat
B But
Æ l’algorithme se fondant sur f(n)
pour ordonner les nœud est nommé
l’Algorithme A f*(n) = g*(n) + h*(n)
44
Exercice 4: Recherche heuristique avec A*
f(n)=g(n) +h(n)
avec
g : nombre de jetons déplacés
h: nombre de jetons mal placés
1 2 3 1 2 3
8 6 8 4
7 5 4 7 6 5
Configuration initiale Configuration finale
Etat initial 45 Etat final
Exercice 5: recherche avec algorithme A*
2 8 3 1 2 3
1 6 4 8 4
7 5 7 6 5
Configuration initiale Configuration finale
Etat initial Etat final
Rappel
Mouvements légaux: Déplace le <blanc> vers:
- le haut - la droite
- le bas - la gauche
Contraintes: Les mouvements en diagonal sont interdits
46
Votre tour..!
47
Votre tour..!
48
Résumé
49