![Page 1: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/1.jpg)
Algorithmes de recherche informés
(heuristiques)
Chap. 4
![Page 2: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/2.jpg)
Plan• Best-first search• Greedy best-first search• A* search• Heuristics• Local search algorithms• Hill-climbing search• Simulated annealing search• Local beam search• Genetic algorithms
![Page 3: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/3.jpg)
Rappel: Recherche dans l’arbre
•• Une stratégie de recherche est définie par
l’ordre d’expansions de noeuds choisi••
![Page 4: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/4.jpg)
Recherche meilleur-d’abord• Idée: utiliser une fonction d’évaluation f(n) pour chaque
nœud– estimer la « désirabilité »– selon les caractéristiques du nœud (état), et non seulement la
topologie de l’espaceExpansion du nœud non exploré le plus désirable
• Implantation:Ordonner les nœuds dans la frange dans l’ordre décroissant de désirabilité
• Cas spéciaux:– Recherche meilleur d’abord glouton– Recherche A*
![Page 5: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/5.jpg)
Roumanie avec coût d’étape en km
![Page 6: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/6.jpg)
Recherche meilleur-d’abord vorace(Greedy best-first search)
• Fonction d’évaluation f(n) = h(n) (heuristique)• = estimation du coût de n à but• e.g., hSLD(n) = distance en ligne droite de n à
Bucharest• Recherche meilleur-d’abord vorace développe le
nœud qui paraît le plus proche du but• Algorithme:
– Tant que current ≠goal & il y a des nœuds suivants:Sélectionner h(best_next),Aller à best_next
![Page 7: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/7.jpg)
Recherche meilleur-d’abord glouton - Exemple
![Page 8: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/8.jpg)
Recherche meilleur-d’abord glouton - Exemple
![Page 9: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/9.jpg)
Recherche meilleur-d’abord glouton - Exemple
![Page 10: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/10.jpg)
Recherche meilleur-d’abord glouton - Exemple
![Page 11: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/11.jpg)
Propriétés de la recherche meilleur-d’abord glouton
• Complète? Non – peut être coincé dans un boucle, e.g., Iasi Neamt Iasi Neamt
• Temps? O(bm), mais une bonne heuristique peut beaucoup améliorer ça
• Espace? O(bm) – garde tous les nœuds en mémoire (potentiellement)
• Optimal? Non•
![Page 12: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/12.jpg)
Recherche A
Idée: faire une estimation du chemin complet (du nœud initial jusqu’à un but)•
• Fonction d’évaluation f(n) = g(n) + h(n)– g(n) = coût jusqu’à présent pour atteindre n– h(n) = coût estimé de n à un but– f(n) = coût total du chemin passant par n à un but
• C’est une fonction plus complète que celle utilisé dans Meilleur-d’abord glouton
![Page 13: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/13.jpg)
Exemple rechrche A
![Page 14: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/14.jpg)
Exemple rechrche A
![Page 15: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/15.jpg)
Exemple rechrche A
![Page 16: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/16.jpg)
Exemple rechrche A
![Page 17: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/17.jpg)
Exemple rechrche A
![Page 18: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/18.jpg)
Exemple rechrche A
![Page 19: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/19.jpg)
Heuristiques admissibles• Une heuristique h(n) est admissible si pour chaque
noeud n, h(n) ≤ h*(n),
où h*(n) est le vrai coût pour atteindre un but à partir de n.• Une heuristique admissible ne surestime jamais le coût
pour atteindre au but, i.e., elle est optimiste• Exemple: hSLD(n) (ne surestime jamais la vraie distance
en route)• Théorème: Si h(n) est admissible, A utilisant TREE-SEARCH est optimal
• Un algorithme A admissible est un algorithme A*.•
![Page 20: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/20.jpg)
Optimalité de A* (proof)Supposons qu’un but non optimal G2 a été généré et inséré dans la frange. Soit n un noeud non exploré dans la frange qui fait partie du chemin le plus court (optimal) menant au but optimal G.•
• f(G2) = g(G2) car h(G2) = 0 • g(G2) > g(G) car G2 est suboptimal • f(G) = g(G) car h(G) = 0 • f(G2) > f(G) à partir de ci-dessus
![Page 21: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/21.jpg)
Optimalité de A* (proof)• Supposons qu’un but non optimal G2 a été généré et inséré dans la
frange. Soit n un nœud non exploré dans la frange qui fait partie du chemin le plus court (optimal) menant au but optimal G.
• f(G2) > f(G) à partir de ci-dessus • h(n) ≤ h*(n) puisque h est admissible• g(n) + h(n) ≤ g(n) + h*(n) • f(n) ≤ f(G)Donc f(G2) > f(n), et A* ne va jamais sélectionner à développer G2 pour
terminer l’algorithme
![Page 22: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/22.jpg)
Heuristiques consistantes• Une heuristique est consistante si pour chaque nœud n, chacun de
ses successeurs n' générés par une action,
h(n) ≤ c(n,a,n') + h(n')
• Si h est consistante, nous avons
f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n)
• i.e., f(n) est non-décroissante en suivant un chemin quelconque.
• Théorème: si h(n) est consistante, A* utilisant GRAPH-SEARCH est optimal
![Page 23: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/23.jpg)
Optimalité de A*
• A* développe les noeuds dans l’ordre croissant de f
• Ajoute graduellement des "f-contours" de noeud • fi < fi+1: f augmente• Un contour i encercle tous les noeuds avec f ≤ fi, •
![Page 24: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/24.jpg)
Propriétés de A*• Complète? Oui (à moins qu’il y a un nombre
infini de nœuds avec f ≤ f(G) )
• Temps? Exponentiel
• Espace? Garde tous les nœuds en mémoire
• Optimal? Oui
![Page 25: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/25.jpg)
Heuristiques admissiblesE.g., Pour 8-puzzle:• h1(n) = nombre de tuiles mal placés• h2(n) = distance Manhattan totale• (i.e., nb. de carrées pour arriver à la place désirée pour chaque
tuile)
• h1(S) = ? • h2(S) = ? •
![Page 26: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/26.jpg)
Heuristiques admissiblesE.g., Pour 8-puzzle:• h1(n) = nombre de tuiles mal placés• h2(n) = distance Manhattan totale• (i.e., nb. de carrées pour arriver à la place désirée pour chaque
tuile)
• h1(S) = ? 8• h2(S) = ? 3+1+2+2+2+3+3+2 = 18
![Page 27: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/27.jpg)
Dominance• Si h2(n) ≥ h1(n) pour tout n (supposons que les 2 sont
admissibles)• Alors h2 domine h1 • h2 est meilleure pour la recherche
• Coûts typiques de recherche (nb. moyen de nœuds explorés) :
• d=12 IDS = 3,644,035 nodesA*(h1) = 227 nœuds A*(h2) = 73 nœuds
• d=24 IDS = trop de nœuds A*(h1) = 39,135 nœuds A*(h2) = 1,641 nœuds
•
![Page 28: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/28.jpg)
Problèmes relaxés• Un problème a généralement des contraintes sur les
actions• Si on enlève une ou plusieurs de ces contraintes, on a
un problème relaxé• Le coût pour une solution optimale du problème relaxé
est admissible pour le problème original• Si les règles du jeu de 8-puzzle sont relaxées pour qu’on
puisse placer un tuile n’importe où, alors h1(n) donne la solution du chemin le plus court
• Si les règles sont relaxées pour qu’un tuile puisse bouger vers un carré adjacent, alors h2(n) donne le chemin le plus court
![Page 29: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/29.jpg)
Fonctions heuristiquescôut optimal réel
heuristique 2
heuristique 1
0 (h0)
• h2 domine h1
![Page 30: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/30.jpg)
F-contourh2 h1 h0
![Page 31: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/31.jpg)
En pratique• Tous les problèmes ne nécessitent pas toujours la
solution optimale• On se contente souvent d’une solution « acceptable »
– Difficulté de trouver une heuristique admissible « tractable » (temps, espace)
– Le problème est assez petit et on n’a pas à le faire très souvent– …
• On utilise souvent un algorithme non optimal• On peut aussi surestimer le coût parfois (non
admissible), mais l’estimation reste assez proche du réel
![Page 32: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/32.jpg)
Fonctions heuristiquessurestimation 2
coût optimal réel
heuristique 1
0 (h0)
![Page 33: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/33.jpg)
Des variantes
• Borne de mémoire autorisée– IDA* (iterative deepning A*): augmente
graduellement f-cost et recommencer à partir du Start
– SMA* (Simple Memory-bounded A*): s’il n’y a plus assez de mémoire pour insérer de nouveaux candidats, retirer les nœuds les moins intéressants et remplacer par leur parents si nécessaire
![Page 34: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/34.jpg)
SMA*function SMA*(problem) returns a solution sequence inputs: problem, a problem static: Queue, a queue of nodes ordered by f-cost
Queue MAKE-QUEUE({MAKE-NODE(INITIAL-STATE[problem])}) loop do if Queue is empty then return failure n deepest least-f-cost node in Queue if GOAL-TEST(n) then return success s NEXT-SUCCESSOR(n) if s is not a goal and is at maximum depth then f(s) else f(s) MAX(f(n),g(s)+h(s)) if all of n’s successors have been generated then update n’s f-cost and those of its ancestors if necessary if SUCCESSORS(n) all in memory then remove n from Queue if memory is full then delete shallowest, highest-f-cost node in Queue remove it from its parent’s successor list insert its parent on Queue if necessary insert s in Queue end
![Page 35: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/35.jpg)
Simple Memory-bounded A* (SMA*)
24+0=24
A
B G
C D
E F
H
J
I
K
0+12=12
10+5=15
20+5=25
30+5=35
20+0=20
30+0=30
8+5=13
16+2=18
24+0=24 24+5=29
10 8
10 10
10 10
8 16
8 8
A12
A
B
12
15
A
B G
13
15 13 H
13
A
G
18
13[15]
A
G24[]
I
15[15]
24
A
B G
15
15 24
A
B
C
15[24]
15
25
f = g+h
(Exemple avec une mémoire de 3 nœuds)
A
B
D
8
20
20[24]
20[]
Progress of SMA*. Each node is labeled with its current f-cost. Values in parentheses show the value of the best forgotten descendant.
Algorithm can tell you when best solution found within memory constraint is optimal or not.
= goal
Search space
![Page 36: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/36.jpg)
Algorithmes de recherche locale• Dans beaucoup de problèmes d’optimisation, le chemin
pour arriver au but n’est pas pertinente. Tout ce qui importe est l’état solution lui-même.
• Espace d’états = ensemble complet de configurations• Trouver une configuration qui satisfait les contraintes
e.g., n-reines
• Dans ce cas, on utilise des algorithmes de recherche locale
• Principe: Garder un seul état, et tenter de l’améliorer•
![Page 37: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/37.jpg)
Exemple: n-reines
• Mettre n reines dans un échiquier n × n sans que les reines s’attaquent
départ état suivant …
![Page 38: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/38.jpg)
Recherche Hill-climbing
Comme grimper l’Everest dans un brouillard épais avec amnésie•
![Page 39: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/39.jpg)
Hill-climbing
Problème: Selon le point de départ, peut être coincé à un maximum local•
![Page 40: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/40.jpg)
Hill-climbing : problème de 8-reines
• h = nombre de paires de reines qui s’attaquent• h = 17 pour la configuration montrée•
![Page 41: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/41.jpg)
Hill-climbing : problème de 8-reines
• Un minimum local, avec h = 1
![Page 42: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/42.jpg)
Recherche avec recuit simulé (Simulated annealing)
• Idée: échapper le maximum local en permettant d’aller à une moins bonne place, mais graduellement diminuer la probabilité (fréquence) de faire ceci
![Page 43: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/43.jpg)
Propriétés du recuit simulé• On peut prouver que: si T diminue suffisamment
lentement, alors le recuit simulé va trouver l’optimum global avec une probabilité proche de 1– Plus T diminue lentement, plus c’est probable de
trouver la solution optimale– Et si T ne diminue pas?
• Largement utilisé pour corriger le problème de recherche locale (VLSI layout, airline scheduling, etc)
![Page 44: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/44.jpg)
Simulated Annealing
5 10 15 20
26
20
1418
10
T= 100 – t*5Probability > 0.9
Solution Quality
The schedule determines the rate at which the temperature is lowered If the schedule lowers T slowly enough, the algorithm will find a global optimum High temperature T is characterized by a large portion of accepted uphill moves whereas at low temperature only downhill moves are accepted
=> If a suitable annealing schedule is chosen, simulated annealing has been found capable of finding a good solution, though this is not guaranteed to be the absolute minimum.
![Page 45: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/45.jpg)
Recherche locale en faisceau (Beam search)
• Garder k états candidats plutôt qu’un seul
• Commencer avec k états aléatoires
• À chaque itération, tous les successeurs de k états sont générés
• Si un d’eux est un état but, arrêt; • sinon sélectionner k meilleurs successeurs à
partir de la liste et répéter le processus
![Page 46: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/46.jpg)
Beam Search
• Overcomes storage complexity of Best-First-Search• Maintains the k best nodes in the fringe of the search
tree (sorted by the heuristic function)• When k = 1, Beam search is equivalent to Hill-
Climbing• When k is infinite, Beam search is equivalent to Best-
First-Search• If you add a check to avoid repeated states, memory
requirement remains high• Incomplete, search may delete the path to the
solution.
![Page 47: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/47.jpg)
Search Performance
Search Algorithm expanded solution length expanded solution lengthIterative Deepening 1105 9hill-climbing 2 no solution found 10 9best-first 495 24 9 9
Heuristic 1:Tiles out of place
Heuristic 2:Manhattan distance
=> Choice of heuristic is critical to heuristic search algorithm performance.
h1 = 7
h2 = 2+1+1+2+1+1+1+0=9
3 2 57 1
4 6 8
1 23 4 56 7 8
8-Square
![Page 48: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/48.jpg)
Algorithmes génétiques• Un successeur est généré en combinant les deux états parents
• Commencer avec k états générés aléatoirement (population)
• Un état esr représenté comme une chaîne sur un alphabet infini (souvent une chaîne de 0 et 1)
• Fonction d’évaluation (fitness function). Valeur plus grande pour de meilleurs états
• Produire la prochaine génération d’états avec les opérations de sélection, croisement et mutation– Sélection: choisir entre les 2 parent– Croisement: combiner les caractéristiques des parents– Mutation: modifier certaine caractéristique–
![Page 49: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/49.jpg)
Algorithme génétique
![Page 50: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/50.jpg)
Algorithmes génétiques
• Fonction de Fitness : nb. de paires de reines qui ne s’attaquent pas (min = 0, max = 8 × 7/2 = 28)
• Probabilité de sélection– 24/(24+23+20+11) = 31%– 23/(24+23+20+11) = 29% etc
![Page 51: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/51.jpg)
Exemple de croisement
![Page 52: Algorithmes de recherche informés (heuristiques)](https://reader035.vdocuments.pub/reader035/viewer/2022062411/568156a3550346895dc44410/html5/thumbnails/52.jpg)
Résumé• Informée = heuristique pour évaluer la qualité de nœud• Qualité de l’heuristique
– Admissible optimale– Proche du coût réel
• Imaginer des heuristiques par relaxation du problème• Définir des heuristiques selon l’expérience (pas
nécessairement admissibles)• 2 classes de problèmes
– Trouver le chemin– Trouver la configuration finale (recherche locale)
• Recherche offline– Question: recherche online?