r echerche heuristiques

Post on 18-Jun-2015

662 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

top related