Informed search algorithms - Département d`informatique et de

Download Report

Transcript Informed search algorithms - Département d`informatique et de

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
Rappel: Recherche dans l’arbre
•
•
• Une stratégie de recherche est définie par
l’ordre d’expansions de noeuds choisi
•
•
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é
• Cas spéciaux:
– Recherche meilleur d’abord glouton
– Recherche A*
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)
• = 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
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
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
•
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 rechrche A
Exemple rechrche A
Exemple rechrche A
Exemple rechrche A
Exemple rechrche A
Exemple rechrche A
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 TREESEARCH est optimal
• Un algorithme A admissible est un algorithme A*.
•
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)
g(G2) > g(G)
f(G) = g(G)
f(G2) > f(G)
car h(G2) = 0
car G2 est suboptimal
car h(G) = 0
à partir de ci-dessus
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
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
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,
•
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
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) = ?
•
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
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 nodes
A*(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
•
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
Fonctions heuristiques
côut optimal réel
heuristique 2
heuristique 1
0 (h0)
• h2 domine h1
F-contour
h2
h1
h0
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
Fonctions heuristiques
surestimation 2
coût optimal réel
heuristique 1
0 (h0)
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
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*. Each node is labeled with its current f-cost.
Values in parentheses show the value of the best forgotten descendant.
Search space
A
13[15]
 = goal
f = g+h
A
A
12
A
A
12
13
G
0+12=12
13
10
8
B
G
10+5=15
10
10
C
H
I
24+0=24
10
F
8
J
B
G
15
13
16
16+2=18
20+0=20
E
15
8
D
20+5=25
10
B
8+5=13
A
15[15]
A
15[24]
A
8
K
30+0=30
24+0=24

A
20[24]
8
15
B
G
15
24[]
30+5=35
18 H
B
20[]
24+5=29
I
24
B
G
15
24
C
25

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 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 les reines s’attaquent
départ
état suivant
…
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 local
•
Hill-climbing : problème de 8-reines
•
•
•
h = nombre de paires de reines qui s’attaquent
h = 17 pour la configuration montrée
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 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, 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 temperature is lowered
14
If the schedule lowers T slowly enough,
the algorithm will find a global optimum 10
High temperature T is characterized by 6
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
• 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 in the fringe of the search
tree (sorted by the heuristic function)
• When k = 1, Beam search is equivalent to HillClimbing
• When k is infinite, Beam search is equivalent to BestFirst-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 Algorithm expanded solution length expanded solution length
Iterative Deepening
1105
9
hill-climbing
2 no solution found
10
9
best-first
495
24
9
9
1 2
3 2 5
7 1
4 6 8
h1 = 7
3 4 5
h2 = 2+1+1+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
• 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
Algorithme génétique
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
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?