Algorithmes de recherche informés (heuristiques) Chap. 4.

52
Algorithmes de recherche informés (heuristiques) Chap. 4

Transcript of Algorithmes de recherche informés (heuristiques) Chap. 4.

Page 1: Algorithmes de recherche informés (heuristiques) Chap. 4.

Algorithmes de recherche informés

(heuristiques)

Chap. 4

Page 2: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

Roumanie avec coût d’étape en km

Page 6: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

Recherche meilleur-d’abord glouton - Exemple

Page 8: Algorithmes de recherche informés (heuristiques) Chap. 4.

Recherche meilleur-d’abord glouton - Exemple

Page 9: Algorithmes de recherche informés (heuristiques) Chap. 4.

Recherche meilleur-d’abord glouton - Exemple

Page 10: Algorithmes de recherche informés (heuristiques) Chap. 4.

Recherche meilleur-d’abord glouton - Exemple

Page 11: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

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) Chap. 4.

Exemple rechrche A

Page 14: Algorithmes de recherche informés (heuristiques) Chap. 4.

Exemple rechrche A

Page 15: Algorithmes de recherche informés (heuristiques) Chap. 4.

Exemple rechrche A

Page 16: Algorithmes de recherche informés (heuristiques) Chap. 4.

Exemple rechrche A

Page 17: Algorithmes de recherche informés (heuristiques) Chap. 4.

Exemple rechrche A

Page 18: Algorithmes de recherche informés (heuristiques) Chap. 4.

Exemple rechrche A

Page 19: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

Heuristiques admissibles

E.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) Chap. 4.

Heuristiques admissibles

E.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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

Fonctions heuristiquescôut optimal réel

heuristique 2

heuristique 1

0 (h0)

• h2 domine h1

Page 30: Algorithmes de recherche informés (heuristiques) Chap. 4.

F-contourh2 h1 h0

Page 31: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

Fonctions heuristiquessurestimation 2

coût optimal réel

heuristique 1

0 (h0)

Page 33: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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 13H

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

Recherche Hill-climbing

Comme grimper l’Everest dans un brouillard épais avec amnésie•

Page 39: Algorithmes de recherche informés (heuristiques) Chap. 4.

Hill-climbing

Problème: Selon le point de départ, peut être coincé à un maximum local•

Page 40: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

Hill-climbing : problème de 8-reines

• Un minimum local, avec h = 1

Page 42: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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) Chap. 4.

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 5

7 1

4 6 8

1 2

3 4 5

6 7 8

8-Square

Page 48: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

Algorithme génétique

Page 50: Algorithmes de recherche informés (heuristiques) Chap. 4.

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) Chap. 4.

Exemple de croisement

Page 52: Algorithmes de recherche informés (heuristiques) Chap. 4.

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?