Upload
mohamed-heny-selmi
View
664
Download
0
Embed Size (px)
Citation preview
ALGORITHMES
INFORMÉS
MÉTHODES DE
RECHERCHE
HEURISTIQUES
MOHAMED HENY SELMI
1
INTRODUCTION
Largeur tout d’abord :
Chemin : S, B, G
Coût : 8
Profondeur tout d’abord :
Chemin : S, A, E, G
Coût : 15
À propos ?
Chemin : S, C, F, G
Coût : 7
2
PROPRIÉTÉS
DE LA RECHERCHE HEURISTIQUE
Utilise des algorithmes informés
Critères de choix liés au problème (recherche guidée)
Prend en compte le non-déterminisme lors du choix de l'alternative
Employée lorsque le coût est primordial
Elle peut estimer si un nœud est plus prometteur qu’un autre
3
LE CHOIX D’UN NŒUD
NÉCESSITE UNE
HEURISTIQUE
Une stratégie d’organisation de recherche ne permet pas de prendre en compte des connaissances supplémentaires sur la manière de trouver l’état but depuis un état quelconque de l’Espace des Etats.
Un algorithme de recherche efficace doit guider la recherche du chemin solution en faisant des choix et en gérant la révision de ces choix pour éviter l’explosion combinatoire
On utilise des Heuristiques pour guider ces choix en ordonnant dynamiquement la liste des successeurs selon leur "promesse de rapprocher d’un but"
4
HEURISTIQUE ?
Connaissance spécifique au Pb à résoudre, indépendante de l’algorithme de recherche, et non généralisable
Une règle d'estimation, une stratégie, une astuce, une simplification ou autre règle permettant de guider les choix non-déterministes
Permet de détecter grâce à une fonction d'évaluation le nœud qui semble potentiellement meilleurs que les autres et de se concentrer sur ce nœud par la suite en ordonnant la liste de successeurs d'un état.
Une recherche exhaustive n’est pas réalisable pour des problèmes complexes (échec, etc.). La notion de complexité conduit naturellement à la notion d'heuristique
5
UTILITÉ DE
L’HEURISTIQUE
Dans la résolution de problèmes, l’homme utilise des heuristiques:
Si la température de la voiture est élevée; le thermostat peut être défectueux.
Dans un jeu d'échec on peut sacrifier une pièce contre une autre moins importante, pour assurer son bon positionnement P/P aux autres
Si l'heuristique est bien choisie, la complexité moyenne de l'algorithme peut être ramener dans une classe inférieure (par exemple, polynômiale au lieu d’exponentielle)
6
Recherche du meilleur
premier
7
EXEMPLE
Closed list Open list
S
8
EXEMPLE Closed list Open list
S S
B, S, 2
C, S, 4
A, S, 5
9
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4
A, S, 5
G, B, 8
10
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5
F, C, 6
G, B, 8
11
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6
G, B, 8
E, A, 9
D, A, 14
12
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6 F, C, 6
G, F, 7
G, B, 8
E, A, 9
D, A, 14
13
EXEMPLE Closed list Open list
S S
B, S, 2 B, S, 2
C, S, 4 C, S, 4
A, S, 5 A, S, 5
F, C, 6 F, C, 6
G, F, 7 G, F, 7
G, B, 8
E, A, 9
D, A, 14
14
Chemin : S, C, F, G
Coût : 7
RECHERCHE
DU MEILLEUR-PREMIER
Il exploite la description d'état pour évaluer comment est-il
promettant chaque nœud de recherche
Une fonction d'évaluation f dresse la carte de chaque
nœud de recherche N au nombre(numéro) réel(vrai) positif
f (N)
La fonction f sera mise à l’ordre décroissant
15
Le terme “best” refère à la valeur de f, Et non pas à la qualité du chemin actuel traversé. L’algorithme “Best-first search” ne génère pas nécessairement le chemin optimal
COMMENT CONSTRUIRE
LA FONCTION
D’EVALUATION?
Il n'y a aucune limitation sur f. N'importe quelle fonction de
votre choix est acceptable.
Mais aidera-t-il l'algorithme de recherche ?
L'approche classique est de construire f (N) comme étant une
estimation du chemin de la solution à partir du nœud N
16
FONCTION
D’HEURISTIQUE
La fonction d’heuristique h(N) estime la distance de ETAT(N) à l’état BUT.
Sa valeur est indépendante de l’Arbre de recherche actuel, elle dépend
uniquement de l’état ETAT(N) et l’état BUT à tester.
Exemple:
• h1(N) = nombre des pièces mal placées = 6
17
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
AUTRES PROPOSITIONS
DE H(N)
• h1(N) = nombre des pièces mal placées = 6
• h2(N) = somme des distances de Manhattan
= 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1 = 13
18
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
AUTRES EXEMPLES
(ROBOT NAVIGATION)
19
xN
yN N
xg
yg
2 2g g1 N Nh (N) = (x -x ) +(y -y ) (Euclidean distance)
h2(N) = |xN-xg| + |yN-yg| (Manhattan distance)
8-PUZZLE
20
4
5
5
3
3
4
3 4
4
2 1
2
0
3
4
3
f(N) = h(N) = nombre des pièces mal placées
8-PUZZLE
21
5
6
6
4
4
2 1
2
0
5
5
3
f(N) = h(N) = somme des mouvements nécessaires pour rejoindre son emplacement exact
NOUS POUVONS
CONCLURE ???
Si l’espace d’états est fini et il n’y a pas de redondance des
états visités : la recherche est complète, mais n'est pas en
général optimale
Si l’espace d’états est fini et il y’a possibilité de redondance
des états visités : la recherche est non complète
Si l’espace d’états est infini, la recherche est non complète
22
BEST-FIRST EFFICACITÉ
23
f(N) = h(N) = distance “à vol d’oiseau” au but
Problème du minimum local
FONCTION D’EVALUATION
CLASSIQUE
h(N): fonction heuristique
[Independante de l’arbre de recherche]
g(N): Coût du meilleur chemin trouvé jusqu'ici entre le nœud
initial et N le nœud courant
[Dependante de l’arbre de recherche]
f(N) = g(N) + h(N)
24
8-PUZZLE
25
0+4
1+5
1+5
1+3
3+3
3+4
3+4
3+2 4+1
5+2
5+0
2+3
2+4
2+3
f(N) = g(N) + h(N)
où h(N) = nombre des pièces mal placées
ALGORITHME DE RECHERCHE A (ALGORITHM A SEARCH)
L’ [open-list] sera ordonnéé selon la fonction d’évaluation :
F(n) = G(n) + H(n)
C’est un algorithme “best-first search” utilisant la fonction d’évaluation F
Si j arrrive à un nœud avec une chemin ayant un coût a
et après d’autres exécutions j’arrive à redécouvrir le même nœud avec un chemin ayant un
coût < a, je dois éliminer le premier chemin et ne considérer que le 2ème
Le cas idéal est de travailler avec une heuristique h consistante
26
HEURISTIQUE ADMISSIBLE
soit h*(N) le coût du chemin de N vers le noeud but
la fonction heuristique h(N) est admissible si:
0 h(N) h*(N)
une fonction heuristique admissible est toujours optimal !
27
G est le noeud BUT h(G) = 0
ALGORITHM A*
C’est un algorithme de recherche A où on peut prouver
que la fonction heuristique h est admissible.
Cette méthode de recherche garantit l’obtention de la
solution optimale, si une solution existe !
28
8-PUZZLE
FONCTION HEURISTIQUE
h1(N) = nombre des pièces mal placées = 6 est admissible
h2(N) = somme des distances de Manhattan distances de chaque pièce vers sa positon BUT = 2 + 3 + 0 + 1 + 3 + 0 + 3 + 1 = 13 est admissible
29
1 4
7
5
2
6 3
8
STATE(N)
6 4
7
1
5
2
8
3
Goal state
FONCTION HEURISTIQUE
DU PROBLÈME ROBOT NAVIGATION
30
Coût de chaque pas horizontal ou vertical = 1
2 2g g1 N Nh (N) = (x -x ) +(y -y )
h2(N) = |xN-xg| + |yN-yg| Sont toutes les deux ADMISSIBLES
ALGORITHME DE RECHERCHE A*
(L’ALGORITHME LE PLUS POPULAIRE EN IA)
f(N) = g(N) + h(N), où: • g(N) = Coût du meilleur chemin trouvé jusqu'ici à N
• h(N) = fonction heuristique admissible
Pour tout arc : 0 < c(N,N’)
Du point de vue programmation :
on utilise souvent cet algorithme
“modifié” Best-first search est un A* search
31
IMPORTANT
A* est complet et optimal
[Ce résultat se tient si les nœuds qu’on désire visiter ne sont pas renoncés]
32
PROBLÈME DU DÉLAI
Si on travaille sur un arbre infini et il n’y a pas de
solution : A* rentre dans une boucle infinie
Lorsq’il s’agit d’un arbre fini mais « enorme »,
A* peut trouver une solution mais avec un temps
d’exécution très remarquable
Pour remédier à ce problème, les programmeurs
proposent toujours un temps d’exécution MAXIMAL
33
8-PUZZLE
34
0+4
1+5
1+5
1+3
3+3
3+4
3+4
3+2 4+1
5+2
5+0
2+3
2+4
2+3
f(N) = g(N) + h(N)
avec h(N) = nombre de pièces mal placées
ROBOT NAVIGATION
35
ROBOT NAVIGATION
36
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5
f(N) = h(N), avec h(N) = distance de Manhattan (non A*)
ROBOT NAVIGATION
37
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5
f(N) = h(N), with h(N) = Manhattan distance to the goal (not A*)
7
0
ROBOT NAVIGATION
38
f(N) = g(N)+h(N), with h(N) = distance de Manhattan (A*)
0 2 1 1
5 8 7
7
3
4
7
6
7
6 3 2
8
6
4 5
2 3 3
3 6 5 2 4 4 3 5
5 4 6
5
6
4
5 7+0
6+1
6+1
8+1
7+0
7+2
6+1
7+2
6+1
8+1
7+2
8+3
7+2 6+3 6+3 5+4 5+4 4+5 4+5 3+6 3+6 2+7
8+3 7+4 7+4 6+5
5+6
6+3 5+6
2+7 3+8
4+7
5+6 4+7
3+8
4+7 3+8 3+8 2+9 2+9 3+10
2+9
3+8
2+9 1+10 1+10 0+11 0+11
COMMENT CONSTRUIRE
UNE FONCTION H ADMISSIBLE ?
une heuristique admissible peut être considérée comme le coût d'une solution optimale d'un problème détendu (obtenu en enlevant des contraintes)
pour le cas du robot navigation:
• La distance du Manhattan correspond à l'enlèvement des obstacles
• La distance Euclidienne correspond à l’enlèvement d’autant d’obstacles et de contraintes rencontrées par le robot sur la grille.
39
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
la fonction heuristique h est clairement admissible
40
c = 1
100
2 1
2
h = 100
0
90
1
41
c = 1
100
2 1
2
h = 100
0
90
1
104
4+90
f = 1+100 2+1
?
i. On a obtenu le nœud vert avec un coût 104 non
optimal car sur l’open-list, on a Ngreen et Nbrown
mais Nbrown ayant un coût inférieur donc on doit la
traiter avant le Ngreen
ii. Le problème qui se pose est ce qu on doit
réexécuter le Npurple ou pas :
Si on exécute : redondance
Si on n’exécute pas : pas de solution optimale
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
42
1
100
2 1
2
100
0
90
1
104
4+90
1+100 2+1
2+90
102
Au lieu de cela, si nous ne renonçons pas à la revisite de nœuds, la recherche se termine avec une solution optimale
QUE FAIRE AVEC DES ÉTATS
REVISITÉS ?
MAIS...
Si on revisite le même nœud, on risque d’augmenter le nombre total
des nœuds exécutés de façon exponentielle
43
1
2
1 1
1
2
1
1
1+1 1+1
2+1 2+1 2+1 2+1
4 4 4 4 4 4 4 4
UNE SOLUTION !
Si on revisite un nœud avec un coût plus grand que celui déjà
retrouvé, on n’a pas intérêt à mettre à jour le coût : on doit l’ignorer
A* reste toujours « optimal », mais la taille de la liste ordonnée peut
être exponentielle dans des cas « mauvais » : on procède par les
fonctions heuristiques consistantes
44
FONCTION HEURISTIQUE
CONSISTANTE
Une heuristique h est consistante si
1. Pour tout nœud N et tout nœud successeur N’ de N :
h(N) c(N,N’) + h(N’)
2. Pour tout nœud BUT G:
h(G) = 0
l’heuristique est dite monotone
45
N
N’ h(N)
h(N’)
c(N,N’)
(triangle inequality)