Académique Documents
Professionnel Documents
Culture Documents
UNIVERSITE De La Manouba
Ecole Supérieure de Commerce de Tunis
Plan du cours
Introduction à l’IA
Raisonnement probabiliste
Dr. Inès BENJAAFAR
ines.benjaafar@gmail.com Raisonnement à partir de Cas
Apprentissage automatique
Sources
Les transparents de ce cours sont basés sur les transparents
des cours suivants :
Belaid. A, Cours Algorithmes de recherche Heuristique,
Université Nancy 2
M1 IDIAG
http://jul.andre.free.fr/Cavaliers/cours3_RechHeuristique.
Année Académique 2018-2019 pdf
Kabanza. F, Cours recherche heuristique, Département
d’informatique, Université de Sherbrooke,
planiart.usherbrooke.ca/kabanza/cours/ift615
Dr. Inès BENJAAFAR
ines.benjaafar@gmail.com
3 4
9e ave
8e ave
3e ave
7e ave
6e ave
5e ave
4e ave
2e ave
5 6
30/11/2019
9e ave
8e ave
3e ave
7e ave
6e ave
5e ave
4e ave
2e ave
7 8
O3
O1 O2
c1 robot c2
9 10
11 12
30/11/2019
13 14
Méthodes de recherche
heuristique Fonction heuristique
Les algorithmes de recherche heuristique Une fonction heuristique : h : E → R
– utilisent l'information disponible pour rendre le processus de – fait correspondre à un état s ∈ E (espace d'états) un nombre h(s) ∈ R
recherche plus efficace qui est (généralement) une estimation du rapport coût/bénéfice de
suivre un chemin vers la solution qui passe par l’état s dans E
– une information heuristique est une règle ou une méthode qui – Propriété : h(solution) = 0
permet d’évaluer la probabilité qu’un chemin allant du nœud courant
au nœud solution soit meilleur que les autres
Exemple :
Le nœud A a 3 successeurs pour lesquels:
h(s1) = 0.8 h(s2) = 2.0 h(s3) = 1.6
la poursuite de la recherche par s1
est heuristiquement la meilleure
15 16
17 18
30/11/2019
– Dans cette théorie, il est prouvé que pour pouvoir faire le tour en utilisant
tous les arcs (ponts) une seule fois, il faut que chaque nœud possède un
nombre pair d'arcs (Euler)
27 28
29 30
30/11/2019
33 34
35 36
30/11/2019
37 38
Algorithme A* Algorithme A*
Soit la fonction d'évaluation – L’ heuristique dans A* estime le coût total du chemin entre
f(n) = g(n) + h(n) l’état initial et l’état solution qui passe par n : = f(n)
avec: – On remarque qu’il s’agit d’une estimation f(n) obtenue par
g(n) = coût du meilleur chemin jusqu'à n la somme :
h(n) = une fonction heuristique admissible • d’une valeur exacte g(n) issue du chemin parcouru de l’état initial
h(n) ≤ h*(n) où h*(n) est le vrai coût pour aller de n jusqu’au noeud n
vers un état final • et d’une estimation h(n) du coût du chemin optimal qui lie le nœud
n avec le nœud solution
L'algorithme "greedy search" avec la fonction f(n) est appelé : – Pour chaque nœud exploré n, on va étendre le successeur x
algorithme de recherche A* qui minimise la fonction heuristique f()
• f(x) = min {f(s) / s dans Successeurs( n )}
39 40
Algorithme A* Algorithme A*
Exemple : recherche d'un chemin entre deux villes Exemple : recherche d'un chemin entre deux villes
Considérons le problème suivant : Développement
nous devons nous rendre de la ville s à la – Initialement, l'unique chemin pouvant
ville t en passant par le plus court chemin être développé est constitué du nœud
– Nombres associés aux divers racine s
segments = distances physiques séparant – Nous avons le choix entre les
les villes adjacentes nœuds a et e
– Nombres encadrés = estimations h(n) – On obtient :
du chemin qu'il reste à parcourir • f(a) = 2 + 5 = 7
à partir de chaque ville • f(e) = 2 + 7 = 9
– Nous choisissons le nœud a car
• f(a) < f(e)
– L'ensemble des chemins candidats est maintenant composé de
• [s] et [s; a]
41 42
30/11/2019
Algorithme A* Algorithme A*
Exemple : recherche d'un chemin entre deux villes Exemple : Voyage en Roumanie
Arbre de recherche
– Nous pouvons maintenant
développer soit [s; a] vers b,
soit [s] vers e
• f(b) = 4 + 4 = 8
• f(e) = 2 + 7 = 9
– C'est b qui a la plus petite
valeur, c'est donc vers ce
nœud que nous nous dirigeons
– L'exécution se poursuit ainsi
jusqu'a obtention de la solution optimale
• [s; e; f; g; t]
43 44
Algorithme A* Algorithme A*
Exemple : puzzle-8
– f(n) = g(n) + h(n)
– h(n) = nombre de
plaquettes mal placées
– g(n) = longueur du
chemin parcouru (+1 à
chaque niveau)
45 46
Algorithme A* Algorithme A*
Exemple : navigation robotique Exemple : navigation robotique
– Conduire le robot de la case de départ (verte) à la case d’arrivée (rouge) en Premier cas :
utilisant uniquement les cases blanches et en se déplaçant de case en case – f(n) = h(n), avec h(n) = distance de Manhattan = somme des déplacements
unitaires verticaux et horizontaux
• Si on s’éloigne de l’origine, on ajoute 1
• Si on se rapproche de l’origine, on enlève 1
47 48
30/11/2019
49 50
Optimalité Oui
51 52
Comparaison d'algorithmes de
recherche Dominance
Soient 2 fonctions heuristiques admissibles h1(n) et h2(n)
53 54
30/11/2019
55 56
57 58
59 60
30/11/2019
61 62
65 66
30/11/2019
67 68
69 70
Idée :
– On utilise une fonction h(n) qu'il faut minimiser
On calcule h(n') pour tous les nœuds n’ successeurs du nœud courant n
On choisit le nœud n' qui minimise h(n') et tel que h(n')< h(n)
71 72
30/11/2019
1 2 3 4 5 6 7 8
73 74
75 76