Algorithmes de recherche informs heuristiques Chap 4 Plan

  • Slides: 53
Download presentation
Algorithmes de recherche informés (heuristiques) Chap. 4

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

Plan • • • Best-first search Greedy best-first search A* search Heuristics Local search

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

Rappel: Recherche dans l’arbre

Rappel: Recherche dans l’arbre

Recherche meilleur-d’abord • Idée: utiliser une fonction d’évaluation f(n) pour chaque nœud – estimer

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’espace Expansion 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é

Roumanie avec coût d’étape en km

Roumanie avec coût d’étape en km

Recherche meilleur-d’abord vorace (Greedy best-first search) • Fonction d’évaluation f(n) = h(n) (heuristique) •

Recherche meilleur-d’abord vorace (Greedy best-first search) • Fonction d’évaluation f(n) = h(n) (heuristique) • h(n) = estimation du coût de n à but • e. g. , h. SLD(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

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Recherche meilleur-d’abord glouton - Exemple

Propriétés de la recherche meilleur-d’abord glouton • Complète? Non – peut être coincé dans

Propriétés de la recherche meilleur-d’abord glouton • Complète? Non – peut être coincé dans un boucle ou sans issue • 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

Recherche A • Idée: faire une estimation du chemin complet (du nœud initial jusqu’à

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

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Exemple recherche A

Heuristiques admissibles • Une heuristique h(n) est admissible si pour chaque noeud n, h(n)

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: h. SLD(n) (ne surestime jamais la vraie distance en route) • Théorème: Si h(n) est admissible, A utilisant TREESEARCH est optimal • Un algorithme A admissible est un algorithme A*.

Optimalité de A* (preuve) • Supposons qu’un but non optimal G 2 a été

Optimalité de A* (preuve) • Supposons qu’un but non optimal G 2 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(G 2) = g(G 2) > g(G) f(G) = g(G) f(G 2) > f(G) car h(G 2) = 0 car G 2 est suboptimal car h(G) = 0 à partir de ci-dessus

Optimalité de A* (preuve) • Supposons qu’un but non optimal G 2 a été

Optimalité de A* (preuve) • Supposons qu’un but non optimal G 2 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(G 2) > 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(G 2) > f(n), et A* ne va jamais sélectionner à développer G 2 pour terminer l’algorithme

Heuristiques consistantes (monotones) • Une heuristique est consistante si pour chaque nœud n, chacun

Heuristiques consistantes (monotones) • 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') (ou h(n) - h(n’) ≤ c(n, a, 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

Optimalité de A* • A* développe les nœuds dans l’ordre croissant de f •

Optimalité de A* • A* développe les nœuds dans l’ordre croissant de f • Ajoute graduellement des "f-contours" de nœuds • fi < fi+1: f augmente • Un contour i encercle tous les nœuds avec f ≤ fi,

Propriétés de A* • Complète? Oui (à moins qu’il y a un nombre infini

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 (potentiellement) • Espace? Garde tous les nœuds en mémoire (potentiellement) • Optimal? Oui

Propriétés de A ? • Complète? Oui (à moins qu’il y a un nombre

Propriétés de A ? • Complète? Oui (à moins qu’il y a un nombre infini de nœuds) • Temps? Exponentiel (potentiellement) O(bm) • Espace? Garde tous les nœuds en mémoire (potentiellement) O(bm) • Optimal? Non

Heuristiques admissibles E. g. , Pour 8 -puzzle: • h 1(n) = nombre de

Heuristiques admissibles E. g. , Pour 8 -puzzle: • h 1(n) = nombre de tuiles mal placés • h 2(n) = distance Manhattan totale (i. e. , nb. de carrées pour arriver à la place désirée pour chaque tuile) • h 1(S) = ? • h 2(S) = ?

Heuristiques admissibles E. g. , Pour 8 -puzzle: • h 1(n) = nombre de

Heuristiques admissibles E. g. , Pour 8 -puzzle: • h 1(n) = nombre de tuiles mal placés • h 2(n) = distance Manhattan totale (i. e. , nb. de carrées pour arriver à la place désirée pour chaque tuile) • h 1(S) = ? 8 • h 2(S) = ? 3+1+2+2+2+3+3+2 = 18

Dominance • Si h 2(n) ≥ h 1(n) pour tout n (supposons que les

Dominance • Si h 2(n) ≥ h 1(n) pour tout n (supposons que les 2 sont admissibles) • Alors h 2 domine h 1 • h 2 est meilleure pour la recherche • Coûts typiques de recherche (nb. moyen de nœuds explorés) : • d=12 • d=24 IDS = 3, 644, 035 nœuds A*(h 1) = 227 nœuds A*(h 2) = 73 nœuds IDS = trop de nœuds A*(h 1) = 39, 135 nœuds A*(h 2) = 1, 641 nœuds

Problèmes relaxés • Un problème a généralement des contraintes sur les actions • Si

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 h 1(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 h 2(n) donne le chemin le plus court

Fonctions heuristiques coût optimal réel heuristique 2 heuristique 1 0 (h 0) • h

Fonctions heuristiques coût optimal réel heuristique 2 heuristique 1 0 (h 0) • h 2 domine h 1

F-contour h 2 h 1 h 0

F-contour h 2 h 1 h 0

En pratique • Tous les problèmes ne nécessitent pas toujours la solution optimale •

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 mineur 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 • Si la surestimation est <d, alors la solution trouvée sera <solution-optimale + d)

Fonctions heuristiques surestimation 2 coût optimal réel heuristique 1 0 (h 0)

Fonctions heuristiques surestimation 2 coût optimal réel heuristique 1 0 (h 0)

Des variantes • Borne de mémoire autorisée – IDA* (iterative deepening A*): augmente graduellement

Des variantes • Borne de mémoire autorisée – IDA* (iterative deepening A*): augmente graduellement f-cost et recommencer à partir du Start (similaire à Iterative deepening) – 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

SMA* function SMA*(problem) returns a solution sequence inputs: problem, a problem static: Queue, a

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

Simple Memory-bounded A* (SMA*) (Exemple avec une mémoire de 3 nœuds) Progress of SMA*.

Simple Memory-bounded A* (SMA*) (Exemple avec une mémoire de 3 nœuds) Progress of SMA*. Each node is labeled with its current f-cost. Values in parentheses show the value of the best forgotten descendant. Search space f = g+h � = goal 0+12=12 12 A 20+5=25 8+5=13 10 C D E 16+2=18 15 A 13 8 J B B G 15 13 H I A 15[15] A 15[24] A 8 K 30+0=30 24+0=24 G 15 24+5=29 I 24 18 H A 20[24] 8 15 24[ ] 30+5=35 G 16 24+0=24 10 F G 8 20+0=20 10 A 12 8 B 10 A 13 10 10+5=15 A 13[15] B G 15 24 C B 25 B 20[ ] D 20 Algorithm can tell you when best solution found within memory constraint is optimal or not.

Algorithmes de recherche locale • Dans beaucoup de problèmes d’optimisation, le chemin pour arriver

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

Exemple: n-reines • Mettre n reines dans un échiquier n × n sans que

Exemple: n-reines • Mettre n reines dans un échiquier n × n sans que les reines s’attaquent départ état suivant …

Recherche Hill-climbing • Comme grimper l’Everest dans un brouillard épais avec amnésie

Recherche Hill-climbing • Comme grimper l’Everest dans un brouillard épais avec amnésie

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

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

Hill-climbing : problème de 8 -reines • • h = nombre de paires de

Hill-climbing : problème de 8 -reines • • h = nombre de paires de reines qui s’attaquent h = 17 pour la configuration montrée • Choisir à changer verticalement une reine à une position avec le moins d’attaques

Hill-climbing : problème de 8 -reines • Un minimum local, avec h = 1

Hill-climbing : problème de 8 -reines • Un minimum local, avec h = 1

Recherche avec recuit simulé (Simulated annealing) • Idée: échapper le maximum local en permettant

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

Propriétés du recuit simulé • On peut prouver que: si T diminue suffisamment lentement,

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)

Simulated Annealing Solution Quality 20 The schedule determines the rate at 18 which the

Simulated Annealing Solution Quality 20 The schedule determines the rate at 18 which the temperature is lowered 14 If the schedule lowers T slowly enough, the algorithm will find a global optimum 10 6 High temperature T is characterized by 2 a large portion of accepted uphill moves whereas at low temperature 5 only downhill moves are accepted 10 15 T= 100 – t*5 Probability > 0. 9 => 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. 20

Recherche locale en faisceau (Beam search) • Garder k états candidats plutôt qu’un seul

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

Beam Search • Overcomes storage complexity of Best-First-Search • Maintains the k best nodes

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.

Search Performance 8 -Square Heuristic 1: Tiles out of place Heuristic 2: Manhattan distance

Search Performance 8 -Square Heuristic 1: Tiles out of place Heuristic 2: Manhattan distance 1 2 3 2 5 7 1 4 6 8 h 1 = 7 3 4 5 h 2 = 2+1+1+1+0=9 6 7 8 => Choice of heuristic is critical to heuristic search algorithm performance.

Algorithmes génétiques • Un successeur est généré en combinant les deux états parents •

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 est 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

Algorithme génétique

Algorithme génétique

Algorithmes génétiques • Fonction de Fitness : nb. de paires de reines qui ne

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

Exemple de croisement

Exemple de croisement

Résumé • Informée = heuristique pour évaluer la qualité de nœud • Qualité de

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?