Méthodes Intelligentes et Raisonnement

15
1 Méthodes Intelligentes et Raisonnement M1 E-Business Cours 4 – Recherche Heuristique ESEN Manouba 2019/ 2020 Haïfa Nakouri [email protected] MIR Trouver un chemin dans une ville 2 Haïfa Nakouri ESEN 2019/ 2020 52 e rue 51 e rue 50 e rue 10 e ave 9 e ave 8 e ave 7 e ave 6 e ave 5 e ave 4 e ave 3 e ave 2 e ave S G 53 e rue Trouver un chemin de la 9 ème ave et 50 ème rue à la 3 ème ave et 51 ème rue (Exemple de Henry Kautz, U. of Washington)

Transcript of Méthodes Intelligentes et Raisonnement

1

Méthodes Intelligentes et RaisonnementM1 E-Business

Cours 4 – Recherche Heuristique

ESEN Manouba

2019/ 2020

Haïfa Nakouri

[email protected]

MIR

Trouver un chemin dans une ville

2Haïfa Nakouri ESEN 2019/ 2020

52e rue

51e rue

50e rue

10

eave

9e

ave

8e

ave

7e

ave

6e

ave

5e

ave

4e

ave

3e

ave

2e

ave

S

G

53e rue

Trouver un chemin de la 9ème ave et 50ème rue à la 3èmeave et 51ème rue

(Exemple de Henry Kautz, U. of Washington)

2

MIR

Trouver un chemin dans une ville

3Haïfa Nakouri ESEN 2019/ 2020

Trouver un chemin de la 9ème ave et 50ème rue à la 3èmeave et 51ème rue

(Exemple de Henry Kautz, U. of Washington)

52e rue

51e rue

50e rue

10

eav

e

9e

ave

8e

ave

7e

ave

6e

ave

5e

ave

4e

ave

3eA

ve

2e

ave

S

G

53e rue

MIR

Exemple : Google Maps

4Haïfa Nakouri ESEN 2019/ 2020

3

MIR

Exemple : livrer des colis

5Haïfa Nakouri ESEN 2019/ 2020

r1 r2 r3 r4

r5 r6

r1 r2 r3 r4

r5 r6

État initial But

robot

MIR

Exemple : livrer des colis

6Haïfa Nakouri ESEN 2019/ 2020

p1 p2 p3 p4

c1 c2robot

O1 O2

O3

4

MIR

Exemple : nPuzzle

7Haïfa Nakouri ESEN 2019/ 2020

1

2 3

4

57

6

8

8

1 3

4

57 6

2?

1

2 3

4

57 6

8

1

2 3

4

57 6

8 1

2 3

4

57 6

8

1 2 3

4

57 6

8

1 2 3

4

57 6

81

2 3

4

57

6

8

Nord SudOuestNord Est

MIR

Résolution de problèmes

Étapes intuitives par un humain

1. Modéliser la situation (état) actuelle

2. Énumérer les options possibles

3. Évaluer les conséquences des options

4. Retenir la meilleure options possibles satisfaisant le but

La résolution de beaucoup de problèmes peut être faite par une recherche dans un graphe

Le graphe peut être un espace de solutions (espaces d’états, espace d’assignations, espace de plans, …)

8Haïfa Nakouri ESEN 2019/ 2020

5

MIR

Résolution par recherche heuristique dans un graphe

La recherche heuristique est à la base de beaucoup d’approches en IA

Approche générale Pour une application donnée, l’espace de solutions est

représenté à l’aide d’un graphe

Un problème particulier pour une application donnée est résolu par une recherche dans le graphe

En général Le graphe est défini récursivement

Une heuristique est utilisée pour guider la recherche

Les heuristiques exploitent les connaissances du domaine d’application

9Haïfa Nakouri ESEN 2019/ 2020

MIR

Problème de recherche dans un graphe

Algorithme de recherche dans un graphe Entrées

Un nœud initial Une fonction But(n) qui retourne vrai si le but est atteint Une fonction de transition Transitions(n) qui retourne les nœuds

successeurs de n.

Sortie Un chemin dans un graphe (séquence nœuds / arêtes)

Le coût d’un chemin est la somme des coûts des arêtes dans le graphe Il peut y avoir plusieurs nœuds qui satisfont le but

Enjeux Trouver un chemin solution Trouver un chemin optimal Trouver rapidement un chemin (optimalité pas importante)

10Haïfa Nakouri ESEN 2019/ 2020

6

MIR

Exemple : graphe d’une ville

Nœuds = intersections

Arêtes = segments de rue

11Haïfa Nakouri ESEN 2019/ 2020

52e rue

51e rue

50e rue

10

eave

9e

ave

8e

ave

7e

ave

6e

ave

5e

ave

4e

ave

3eA

ve

2e

ave

S

G

53e rue

(Illustration par Henry Kautz, U. of Washington)

MIR

Exemple : trouver un chemin dans un ville

Domaine :

Routes entre les villes

transitions(v0):((2,v3), (4,v2), (3, v1))

Problème posé (initNode, goal):

v0: ville de départ (état initial)v6: destination (but)

En d’autres termes:goal(v): vrai si v=v6

12Haïfa Nakouri ESEN 2019/ 2020

v0

v3 v2 v1

v4

v6

v5

2 3

1

1 72

44

4

7

MIR

Une heuristique

une technique heuristique (souvent appelée"heuristique") est n'importe quelle approche derésolution de problème, d'apprentissage ou dedécouverte employant une méthode pratique quin'est ni optimale ni parfaite mais se montrantefficace et suffisante pour atteindre des résultats.

13Haïfa Nakouri ESEN 2019/ 2020

MIR

Exemple de fonctions heuristiques

Chemin dans une ville

Distance Euclidienne ou distance de Manhattan pour un chemin sur une carte

Eventuellement pondéré par la qualité des routes, le prix de billet

Probabilité d’atteindre l’objectif en passant par le nœud

N-Puzzle

Nombre des tuiles mal placées

Somme des distances des tuiles

14Haïfa Nakouri ESEN 2019/ 2020

Manhattan

Euclidienne

8

MIR

Algorithmes de recherche dans des graphes

Recherche sans heuristique et coût uniforme Recherche en profondeur (depth-first search)

Pour un nœud donnée, explorer l premier enfant avant d’explorer un nouveau frère

Recherche en largeur (Breadth-First-Search) Pour un nœud donné, explorer les nœuds frères avant leurs enfants

Recherche sans heuristique et coût variable Algorithme de Dijkstra

Trouve le chemin le plus court entre un nœud source et tous les autres nœuds

Recherche avec heuristique et coût variable Recherche meilleur immédiat en premier (GreedyBest-First-

Search) Recherche en profondeur (Depth-First-Search) Recherche heuristiques (A*)

15Haïfa Nakouri ESEN 2019/ 2020

MIR

Algorithme A*

A* est une extension de l’algorithme de Dijkstrautilisé pour trouver un chemin optimal dans un graphe Par l’ajout des heuristiques.

Une heuristique est une fonction d’estimation du coût entre un nœud d’un graphe et le but (le nœud à atteindre)

Variables importantes : open et closed

Open : contient les nœuds non encore traités

Closed : contient les nœuds déjà traités

16Haïfa Nakouri ESEN 2019/ 2020

9

MIR

Insertion des nœuds dans open

Les nœuds dans open sont triés selon l’estimé de leur proximité au

but.

A chaque nœud n est associé une fonction f(n) mesurant la qualité

de la meilleure solution passant par ce nœud.

Pour chaque nœud n, f(n) est un nombre réel positif ou nul, estimant

le coût pour un chemin partant de la racine, passant par n, et arrivant

au but.

Dans open, les nœuds se suivent en ordre croissant selon les

valeurs f(n).

Le tri se fait par insertion: on s’assure que le nouveau nœud va au

bon endroit.

17Haïfa Nakouri ESEN 2019/ 2020

MIR

Définition de la fonction f

La fonction f désigne la distance entre le nœud initial et le but.

En pratique on ne connaît pas cette distance : c’est ce qu’on cherche !

Par contre on connaît la distance optimale dans la partie explorée entre la racine et un nœud déjà exploré.

Dans A*, il est pratique de séparer f(n) en deux parties:

g(n) : coût réel du chemin optimal partant de la racine à n dans la partie déjà explorée.

h(n) : coût estimé du reste du chemin partant de njusqu’au but.

h(n) est une fonction heuristique.

18Haïfa Nakouri ESEN 2019/ 2020

10

MIR

Algorithme A*Algorithme rechercheDansGraphe(noeudInitial)

1. Déclarer deux nœuds : n1, n2

2. Déclarer deux listes: open, closed // toutes les deux sont vides au départ

3. Insèrer noeudInitial dans open

4. while (1) // la condition de sortie (exit) est déterminée dans la boucle

5. si open est vide, sortir de la boucle avec échec

6. n1 = noeud au début de open;

7. Enlèver n1 de open et l’ajouter dans closed

8. si n1 est le but, sortir de la boucle avec succès en retournant le chemin;

9. Pour chaque successeur n2 de n1

10. Initialiser la valeur g de n2 à : g(n1) + le coût de la transition (n1,n2)

11. mettre le parent de n2 à n1

12. Si closed ou open contient un nœud n3 égal à n2 avec f(n2) ≤f(n3), enlèvern3 de

closed ou open et insérer n2 dans open (ordre croissant selon f(n))

13. Sinon (c-à-d., n2 n’est est ni dans open ni dans closed)

14. insèrer n2 dans open en triant les nœuds en ordre croissant selon f(n)

19Haïfa Nakouri ESEN 2019/ 2020

MIR

Exemple A* avec recherche dans ville

Contenu de open à chaque itération (état, f, parent) :

1. (v0, 9, void)

2. (v1,5,v0) (v2,6,v0), (v3,7,v0)

3. (v2,6,v0) (v3,7,v0), (v5,12,v1)

4. (v3,7,v0),(v4,9,v2),(v5,12,v1)

5. (v2,5,v3),(v4,6,v3),(v5,12,v1)

6. (v4,6,v3),(v5,12,v1)

7. (v6,7,v4), (v5,12,v1)

8. Solution: v0,v3,v4,v6

Contenu de closed à la sortie (noeud, f) :

(v4,6), (v3,7), (v2,5), (v1,5), (v0,9)

20Haïfa Nakouri ESEN 2019/ 2020

Routes entre les villes :v0: ville de départv6: destinationh: distance à vol d’oiseau h(x)C: distance réelle entre deux ville g(x)f(x) = h(x) + g(x)

v0

v3 v2 v1

v4

v6

v5

9

2

3 2

25

0

2 3

1

1 72

44

4

h(n0)

c(n0,n3)

11

MIR

Exemple A* avec recherche dans ville

21Haïfa Nakouri ESEN 2019/ 2020

Trace de l’exécution de l’algorithme v0

v3 v2 v1

v4

v6

v5

9

2

3 2

25

0

2 3

1

1 72

44

4

h(n0)

c(n0,n3)

MIR

Algorithmes de recherche

Dijsktra

Cas particulier où f(n) = g(n), c-à-d h(n)=0

Best-First-Search

Variante plus générale où f peut prendre une forme quelconque

A* est un cas spécial de Best-First-Search où f(n) = h(n) + g(n)

Greedy Best-First-Search

C’est un Best-First-Search où f(n) = h(n)

Ne garantit pas de trouver un chemin qui est optimal, mais marche parfois bien en pratique

22Haïfa Nakouri ESEN 2019/ 2020

12

MIR

A* en marche

23Haïfa Nakouri ESEN 2019/ 2020

(Illustration par Henry Kautz, U. of Washington)

52e rue

51e rue

50e rue

10

eav

e

9e

ave

8e

ave

7e

ave

6e

ave

5e

ave

4e

ave

3e

ave

2e

ave

S G

53e rue

Solution par Best-first

Solution optimale

MIR

Applications

Robots humanoïdes

24Haïfa Nakouri ESEN 2019/ 2020

S. Kagami. U of Tokyo

ASIMO Honda

S. Kagami. U of Tokyo

13

MIR

Applications

25Haïfa Nakouri ESEN 2019/ 2020

Application: jeux Application: jeux vidéos et cinémavidéos et cinéma

MIR

Applications

26Haïfa Nakouri ESEN 2019/ 2020

Personnages Personnages AnimésAnimés

14

MIR

Cadre général de résolution de problème

27Haïfa Nakouri ESEN 2019/ 2020

???

MIR

Cadre général de résolution de problème

28Haïfa Nakouri ESEN 2019/ 2020

15

MIR

Applications Décomposer la carte en grille

Noeud : case occupée par le robot + orientation du robot

Heuristiques :

Distance euclidienne, durée voyage

Consommation d’énergie ou coût du billet

Degré de danger (chemin près des escalier, des ennemis)

29Haïfa Nakouri ESEN 2019/ 2020

MIR

Conclusion

La recherche heuristique est une approchefondamentale en IA Elle est assez flexible pour être appliquée à plusieurs

problèmes

A* est l’algorithme de recherche heuristique le plusrépandu et le plus connu

Il offre des garanties théoriques potentiellementintéressantes

Mais, la performance de A* dépend de la qualité del’heuristique h(n) que l’on définit. Une mauvaise heuristique peut augmenter

considérablement les temps de calcul et l’espace mémoirenécessaire

30Haïfa Nakouri ESEN 2019/ 2020