algorithmes de recherche informés (heuristiques) chap. 4

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

Upload: roselle-robinet

Post on 03-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

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?