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)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Méthodes Intelligentes et RaisonnementM1 E-Business
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.