r echerche heuristiques
TRANSCRIPT
![Page 1: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/1.jpg)
ALGORITHMES
INFORMÉS
MÉTHODES DE
RECHERCHE
HEURISTIQUES
MOHAMED HENY SELMI
1
![Page 2: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/2.jpg)
INTRODUCTION
Largeur tout d’abord :
Chemin : S, B, G
Coût : 8
Profondeur tout d’abord :
Chemin : S, A, E, G
Coût : 15
À propos ?
Chemin : S, C, F, G
Coût : 7
2
![Page 3: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/3.jpg)
PROPRIÉTÉS
DE LA RECHERCHE HEURISTIQUE
Utilise des algorithmes informés
Critères de choix liés au problème (recherche guidée)
Prend en compte le non-déterminisme lors du choix de l'alternative
Employée lorsque le coût est primordial
Elle peut estimer si un nœud est plus prometteur qu’un autre
3
![Page 4: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/4.jpg)
LE CHOIX D’UN NŒUD
NÉCESSITE UNE
HEURISTIQUE
Une stratégie d’organisation de recherche ne permet pas de prendre en compte des connaissances supplémentaires sur la manière de trouver l’état but depuis un état quelconque de l’Espace des Etats.
Un algorithme de recherche efficace doit guider la recherche du chemin solution en faisant des choix et en gérant la révision de ces choix pour éviter l’explosion combinatoire
On utilise des Heuristiques pour guider ces choix en ordonnant dynamiquement la liste des successeurs selon leur "promesse de rapprocher d’un but"
4
![Page 5: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/5.jpg)
HEURISTIQUE ?
Connaissance spécifique au Pb à résoudre, indépendante de l’algorithme de recherche, et non généralisable
Une règle d'estimation, une stratégie, une astuce, une simplification ou autre règle permettant de guider les choix non-déterministes
Permet de détecter grâce à une fonction d'évaluation le nœud qui semble potentiellement meilleurs que les autres et de se concentrer sur ce nœud par la suite en ordonnant la liste de successeurs d'un état.
Une recherche exhaustive n’est pas réalisable pour des problèmes complexes (échec, etc.). La notion de complexité conduit naturellement à la notion d'heuristique
5
![Page 6: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/6.jpg)
UTILITÉ DE
L’HEURISTIQUE
Dans la résolution de problèmes, l’homme utilise des heuristiques:
Si la température de la voiture est élevée; le thermostat peut être défectueux.
Dans un jeu d'échec on peut sacrifier une pièce contre une autre moins importante, pour assurer son bon positionnement P/P aux autres
Si l'heuristique est bien choisie, la complexité moyenne de l'algorithme peut être ramener dans une classe inférieure (par exemple, polynômiale au lieu d’exponentielle)
6
![Page 7: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/7.jpg)
Recherche du meilleur
premier
7
![Page 8: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/8.jpg)
EXEMPLE
Closed list Open list
S
8
![Page 9: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/9.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2
C, S, 4
A, S, 5
9
![Page 10: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/10.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4
A, S, 5
G, B, 8
10
![Page 11: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/11.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5
F, C, 6
G, B, 8
11
![Page 12: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/12.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6
G, B, 8
E, A, 9
D, A, 14
12
![Page 13: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/13.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6 F, C, 6
G, F, 7
G, B, 8
E, A, 9
D, A, 14
13
![Page 14: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/14.jpg)
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6 F, C, 6
G, F, 7 G, F, 7
G, B, 8
E, A, 9
D, A, 14
14
Chemin : S, C, F, G
Coût : 7
![Page 15: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/15.jpg)
RECHERCHE
DU MEILLEUR-PREMIER
Il exploite la description d'état pour évaluer comment est-il
promettant chaque nœud de recherche
Une fonction d'évaluation f dresse la carte de chaque
nœud de recherche N au nombre(numéro) réel(vrai) positif
f (N)
La fonction f sera mise à l’ordre décroissant
15
Le terme “best” refère à la valeur de f, Et non pas à la qualité du chemin actuel traversé. L’algorithme “Best-first search” ne génère pas nécessairement le chemin optimal
![Page 16: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/16.jpg)
COMMENT CONSTRUIRE
LA FONCTION
D’EVALUATION?
Il n'y a aucune limitation sur f. N'importe quelle fonction de
votre choix est acceptable.
Mais aidera-t-il l'algorithme de recherche ?
L'approche classique est de construire f (N) comme étant une
estimation du chemin de la solution à partir du nœud N
16
![Page 17: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/17.jpg)
FONCTION
D’HEURISTIQUE
La fonction d’heuristique h(N) estime la distance de ETAT(N) à l’état BUT.
Sa valeur est indépendante de l’Arbre de recherche actuel, elle dépend
uniquement de l’état ETAT(N) et l’état BUT à tester.
Exemple:
• h1(N) = nombre des pièces mal placées = 6
17
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
![Page 18: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/18.jpg)
AUTRES PROPOSITIONS
DE H(N)
• h1(N) = nombre des pièces mal placées = 6
• h2(N) = somme des distances de Manhattan
= 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1 = 13
18
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
![Page 19: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/19.jpg)
AUTRES EXEMPLES
(ROBOT NAVIGATION)
19
xN
yN N
xg
yg
2 2g g1 N Nh (N) = (x -x ) +(y -y ) (Euclidean distance)
h2(N) = |xN-xg| + |yN-yg| (Manhattan distance)
![Page 20: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/20.jpg)
8-PUZZLE
20
4
5
5
3
3
4
3 4
4
2 1
2
0
3
4
3
f(N) = h(N) = nombre des pièces mal placées
![Page 21: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/21.jpg)
8-PUZZLE
21
5
6
6
4
4
2 1
2
0
5
5
3
f(N) = h(N) = somme des mouvements nécessaires pour rejoindre son emplacement exact
![Page 22: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/22.jpg)
NOUS POUVONS
CONCLURE ???
Si l’espace d’états est fini et il n’y a pas de redondance des
états visités : la recherche est complète, mais n'est pas en
général optimale
Si l’espace d’états est fini et il y’a possibilité de redondance
des états visités : la recherche est non complète
Si l’espace d’états est infini, la recherche est non complète
22
![Page 23: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/23.jpg)
BEST-FIRST EFFICACITÉ
23
f(N) = h(N) = distance “à vol d’oiseau” au but
Problème du minimum local
![Page 24: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/24.jpg)
FONCTION D’EVALUATION
CLASSIQUE
h(N): fonction heuristique
[Independante de l’arbre de recherche]
g(N): Coût du meilleur chemin trouvé jusqu'ici entre le nœud
initial et N le nœud courant
[Dependante de l’arbre de recherche]
f(N) = g(N) + h(N)
24
![Page 25: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/25.jpg)
8-PUZZLE
25
0+4
1+5
1+5
1+3
3+3
3+4
3+4
3+2 4+1
5+2
5+0
2+3
2+4
2+3
f(N) = g(N) + h(N)
où h(N) = nombre des pièces mal placées
![Page 26: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/26.jpg)
ALGORITHME DE RECHERCHE A (ALGORITHM A SEARCH)
L’ [open-list] sera ordonnéé selon la fonction d’évaluation :
F(n) = G(n) + H(n)
C’est un algorithme “best-first search” utilisant la fonction d’évaluation F
Si j arrrive à un nœud avec une chemin ayant un coût a
et après d’autres exécutions j’arrive à redécouvrir le même nœud avec un chemin ayant un
coût < a, je dois éliminer le premier chemin et ne considérer que le 2ème
Le cas idéal est de travailler avec une heuristique h consistante
26
![Page 27: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/27.jpg)
HEURISTIQUE ADMISSIBLE
soit h*(N) le coût du chemin de N vers le noeud but
la fonction heuristique h(N) est admissible si:
0 h(N) h*(N)
une fonction heuristique admissible est toujours optimal !
27
G est le noeud BUT h(G) = 0
![Page 28: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/28.jpg)
ALGORITHM A*
C’est un algorithme de recherche A où on peut prouver
que la fonction heuristique h est admissible.
Cette méthode de recherche garantit l’obtention de la
solution optimale, si une solution existe !
28
![Page 29: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/29.jpg)
8-PUZZLE
FONCTION HEURISTIQUE
h1(N) = nombre des pièces mal placées = 6 est admissible
h2(N) = somme des distances de Manhattan distances de chaque pièce vers sa positon BUT = 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1 = 13 est admissible
29
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
![Page 30: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/30.jpg)
FONCTION HEURISTIQUE
DU PROBLÈME ROBOT NAVIGATION
30
Coût de chaque pas horizontal ou vertical = 1
2 2g g1 N Nh (N) = (x -x ) +(y -y )
h2(N) = |xN-xg| + |yN-yg| Sont toutes les deux ADMISSIBLES
![Page 31: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/31.jpg)
ALGORITHME DE RECHERCHE A*
(L’ALGORITHME LE PLUS POPULAIRE EN IA)
f(N) = g(N) + h(N), où: • g(N) = Coût du meilleur chemin trouvé jusqu'ici à N
• h(N) = fonction heuristique admissible
Pour tout arc : 0 < c(N,N’)
Du point de vue programmation :
on utilise souvent cet algorithme
“modifié” Best-first search est un A* search
31
![Page 32: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/32.jpg)
IMPORTANT
A* est complet et optimal
[Ce résultat se tient si les nœuds qu’on désire visiter ne sont pas renoncés]
32
![Page 33: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/33.jpg)
PROBLÈME DU DÉLAI
Si on travaille sur un arbre infini et il n’y a pas de
solution : A* rentre dans une boucle infinie
Lorsq’il s’agit d’un arbre fini mais « enorme »,
A* peut trouver une solution mais avec un temps
d’exécution très remarquable
Pour remédier à ce problème, les programmeurs
proposent toujours un temps d’exécution MAXIMAL
33
![Page 34: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/34.jpg)
8-PUZZLE
34
0+4
1+5
1+5
1+3
3+3
3+4
3+4
3+2 4+1
5+2
5+0
2+3
2+4
2+3
f(N) = g(N) + h(N)
avec h(N) = nombre de pièces mal placées
![Page 35: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/35.jpg)
ROBOT NAVIGATION
35
![Page 36: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/36.jpg)
ROBOT NAVIGATION
36
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5
f(N) = h(N), avec h(N) = distance de Manhattan (non A*)
![Page 37: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/37.jpg)
ROBOT NAVIGATION
37
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5
f(N) = h(N), with h(N) = Manhattan distance to the goal (not A*)
7
0
![Page 38: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/38.jpg)
ROBOT NAVIGATION
38
f(N) = g(N)+h(N), with h(N) = distance de Manhattan (A*)
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5 7+0
6+1
6+1
8+1
7+0
7+2
6+1
7+2
6+1
8+1
7+2
8+3
7+2 6+3 6+3 5+4 5+4 4+5 4+5 3+6 3+6 2+7
8+3 7+4 7+4 6+5
5+6
6+3 5+6
2+7 3+8
4+7
5+6 4+7
3+8
4+7 3+8 3+8 2+9 2+9 3+10
2+9
3+8
2+9 1+10 1+10 0+11 0+11
![Page 39: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/39.jpg)
COMMENT CONSTRUIRE
UNE FONCTION H ADMISSIBLE ?
une heuristique admissible peut être considérée comme le coût d'une solution optimale d'un problème détendu (obtenu en enlevant des contraintes)
pour le cas du robot navigation:
• La distance du Manhattan correspond à l'enlèvement des obstacles
• La distance Euclidienne correspond à l’enlèvement d’autant d’obstacles et de contraintes rencontrées par le robot sur la grille.
39
![Page 40: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/40.jpg)
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
la fonction heuristique h est clairement admissible
40
c = 1
100
2 1
2
h = 100
0
90
1
![Page 41: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/41.jpg)
41
c = 1
100
2 1
2
h = 100
0
90
1
104
4+90
f = 1+100 2+1
?
i. On a obtenu le nœud vert avec un coût 104 non
optimal car sur l’open-list, on a Ngreen et Nbrown
mais Nbrown ayant un coût inférieur donc on doit la
traiter avant le Ngreen
ii. Le problème qui se pose est ce qu on doit
réexécuter le Npurple ou pas :
Si on exécute : redondance
Si on n’exécute pas : pas de solution optimale
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
![Page 42: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/42.jpg)
42
1
100
2 1
2
100
0
90
1
104
4+90
1+100 2+1
2+90
102
Au lieu de cela, si nous ne renonçons pas à la revisite de nœuds, la recherche se termine avec une solution optimale
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
![Page 43: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/43.jpg)
MAIS...
Si on revisite le même nœud, on risque d’augmenter le nombre total
des nœuds exécutés de façon exponentielle
43
1
2
1 1
1
2
1
1
1+1 1+1
2+1 2+1 2+1 2+1
4 4 4 4 4 4 4 4
![Page 44: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/44.jpg)
UNE SOLUTION !
Si on revisite un nœud avec un coût plus grand que celui déjà
retrouvé, on n’a pas intérêt à mettre à jour le coût : on doit l’ignorer
A* reste toujours « optimal », mais la taille de la liste ordonnée peut
être exponentielle dans des cas « mauvais » : on procède par les
fonctions heuristiques consistantes
44
![Page 45: R echerche heuristiques](https://reader034.vdocuments.mx/reader034/viewer/2022052307/5582f5a6d8b42a38168b4d56/html5/thumbnails/45.jpg)
FONCTION HEURISTIQUE
CONSISTANTE
Une heuristique h est consistante si
1. Pour tout nœud N et tout nœud successeur N’ de N :
h(N) c(N,N’) + h(N’)
2. Pour tout nœud BUT G:
h(G) = 0
l’heuristique est dite monotone
45
N
N’ h(N)
h(N’)
c(N,N’)
(triangle inequality)