Download - Méthodes Intelligentes et Raisonnement
1
Méthodes Intelligentes et RaisonnementM1 E-Business
Cours 4 – Recherche Heuristique
ESEN Manouba
2019/ 2020
Haïfa Nakouri
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