45
ALGORITHMES INFORMÉS MÉTHODES DE RECHERCHE HEURISTIQUES MOHAMED HENY SELMI 1

R echerche heuristiques

Embed Size (px)

Citation preview

Page 1: R echerche heuristiques

ALGORITHMES

INFORMÉS

MÉTHODES DE

RECHERCHE

HEURISTIQUES

MOHAMED HENY SELMI

1

Page 2: R echerche heuristiques

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

Page 3: R echerche heuristiques

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

Page 4: R echerche heuristiques

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

Page 5: R echerche heuristiques

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

Page 6: R echerche heuristiques

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

Page 7: R echerche heuristiques

Recherche du meilleur

premier

7

Page 8: R echerche heuristiques

EXEMPLE

Closed list Open list

S

8

Page 9: R echerche heuristiques

EXEMPLE Closed list Open list

S S

B, S, 2

C, S, 4

A, S, 5

9

Page 10: R echerche heuristiques

EXEMPLE Closed list Open list

S S

B, S, 2 B, S, 2

C, S, 4

A, S, 5

G, B, 8

10

Page 11: R echerche heuristiques

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

Page 12: R echerche heuristiques

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

Page 13: R echerche heuristiques

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

Page 14: R echerche heuristiques

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

Page 15: R echerche heuristiques

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

Page 16: R echerche heuristiques

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

Page 17: R echerche heuristiques

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

Page 18: R echerche heuristiques

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

Page 19: R echerche heuristiques

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)

Page 20: R echerche heuristiques

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

Page 21: R echerche heuristiques

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

Page 22: R echerche heuristiques

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

Page 23: R echerche heuristiques

BEST-FIRST EFFICACITÉ

23

f(N) = h(N) = distance “à vol d’oiseau” au but

Problème du minimum local

Page 24: R echerche heuristiques

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

Page 25: R echerche heuristiques

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

Page 26: R echerche heuristiques

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

Page 27: R echerche heuristiques

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

Page 28: R echerche heuristiques

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

Page 29: R echerche heuristiques

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

Page 30: R echerche heuristiques

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

Page 31: R echerche heuristiques

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

Page 32: R echerche heuristiques

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

Page 33: R echerche heuristiques

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

Page 34: R echerche heuristiques

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

Page 35: R echerche heuristiques

ROBOT NAVIGATION

35

Page 36: R echerche heuristiques

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*)

Page 37: R echerche heuristiques

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

Page 38: R echerche heuristiques

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

Page 39: R echerche heuristiques

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

Page 40: R echerche heuristiques

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

Page 41: R echerche heuristiques

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 ?

Page 42: R echerche heuristiques

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 ?

Page 43: R echerche heuristiques

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

Page 44: R echerche heuristiques

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

Page 45: R echerche heuristiques

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)