Resolution
Resolution
Résolution de Problèmes
Emmanuel ADAM
UPHF/INSA HdF
8 Recherche Aléatoire
9 Recherche Exhaustive
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Introduction
Résolution de Problèmes
Définir les problèmes
Nature
Représentation des problèmes
Logique
Arbres et Graphes d’états
Algorithmes de résolution
Exemple de problème
Se rendre de son domicile (Onnaing) à un lieu précis (Arrivée)
d’une autre ville (Théâtre Lille), le plus rapidement possible, avant
une date donnée (obligation de passer par une ville étape B).
(exemple : de Onnaing au Théâtre L’antre 2 de Lille 2 avant 20h)
Définitions
Espace d’états : description (abstraction) du monde réel
définissant le problème
Exemple : réseau des bus, trams, metro . . .
Buts : sous ensemble de l’espace d’états
Exemple : Lille-Théâtre19h50
Action (opérateurs) : déplacement dans l’espace d’états
Définitions
Solution du problème : la séquence d’action menant de l’état
initial à l’état objectif
Algorithme de Recherche : procédure qui calcule une (ou
plusieurs) solution à partir d’un problème (état
initial, actions, états objectifs).
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Types de problèmes
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
Toys Problems
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
8
0ZQZ0Z0Z
7
Z0Z0ZQZ0
6
0Z0L0Z0Z
5
ZQZ0Z0Z0
4
0Z0Z0Z0L
3
Z0Z0L0Z0
2
0Z0Z0ZQZ
1
L0Z0Z0Z0
a b c d e f g h
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Le taquin-8
4 3 5 1 2 3
1 6 2 → 4 5 6
7 8 . 7 8 .
Le problème du taquin 8
But : agencer les pièces en ordre croissant en un coût
minimum
état initial grille de 8 pièces désordonnées, plus une case vide
Actions/opérateurs : déplacer la case vide à gauche (L), à
droite (R), en haut (U), en bas (D)
coût : 1 point par déplacement
Résoudre par solutions partielles
complexité : NP (polynomial non-déterministe)
Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final
Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final
Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final
Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final
Graphe d’états
Représentation par graphe des états du problème :
Les nœuds représentent les états
Un arc (i,j) représentent l’opération/l’action permettant de
l’état i à l’état j
Solution = chemin entre l’état initial et l’état final
Recherche de Solution = Recherche du/d’un chemin entre
l’état initial et l’état final
8
0Z0Z0Z0Z 8
0Z0Z0Z0Z 8
0Z0Z0Z0Z
7
Z0Z0Z0Z0 7
Z0Z0Z0Z0 7
Z0Z0Z0Zq
6
0Z0Z0Z0Z 6
0Z0Z0Z0Z 6
0Z0Z0Z0Z
5
Z0Z0Z0Z0 5
Z0Z0Z0Z0 5
Z0Z0Z0Z0
4
0Z0Z0Z0Z 4
qZ0Z0Z0Z 4
qZ0Z0Z0Z
3
Z0Z0Z0Z0 3
Z0Z0Z0Z0 3
Z0Z0Z0Z0
2
0l0Z0Z0Z 2
0l0Z0Z0Z 2
0l0Z0Z0Z
1
Z0Z0Z0Z0 1
Z0Z0Z0Z0 1
Z0Z0Z0Z0
a b c d e f g h a b c d e f g h a b c d e f g h
8
0Z0Z0Z0Z 8
0Z0Z0Z0Z 8
0Z0Z0Z0Z
7
Z0Z0Z0Z0 7
Z0Z0Z0Z0 7
Z0Z0Z0Z0
6
0Z0Z0Z0Z 6
0Z0Z0Z0Z 6
0Z0Z0Z0Z
5
Z0Z0Z0Z0 5
Z0Z0Z0Z0 5
Z0Z0Z0Z0
4
0Z0Z0Z0Z 4
0Z0Z0Z0Z 4
0Z0Z0Z0Z
3
Z0Z0Z0Z0 3
Z0Z0Z0Z0 3
Z0l0Z0Z0
2
0Z0Z0Z0Z 2
0l0Z0Z0Z 2
0l0Z0Z0Z
1
l0Z0Z0Z0 1
l0Z0Z0Z0 1
l0Z0Z0Z0
a b c d e f g h a b c d e f g h a b c d e f g h
Choix de l’action
Sur le problèmes des 8 reines sur un échiquier 8 × 8
Avec 1 état = 1 position dans une ligne
Action/Opérateur : placerReineDansLigneLibre(reinei , lignej )
Test : placementImpossible(reinei ), toutesReinesPlacees()
8
0Z0Z0Z0Z
7
Z0Z0Z0Z0
6
0Z0Z0Z0Z
5
Z0l0Z0Z0
4
0Z0Z0Z0Z
3
ZqZ0Z0Z0
2
0Z0l0Z0Z
1
l0Z0Z0Z0
a b c d e f g h
Evaluation de la recherche
Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure
Evaluation de la recherche
Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure
Evaluation de la recherche
Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure
Evaluation de la recherche
Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure
Evaluation de la recherche
Critères d’évaluation
Complétude : si une solution existe, la méthode de recherche la
trouve toujours
Complexité en temps : temps nécessaire pour trouver la solution
Complexité en espace : espace mémoire nécessaire pour effectuer
la recherche
Optimalité : la solution retenue est la meilleure
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Complexité
Les complexités en temps et en espace dépendent de :
b = facteur de branchement maximum de l’arbre de recherche,
d = profondeur à laquelle se trouve le (meilleur) nœud-solution,
m = profondeur maximum de l’espace de recherche.
Remarque : il est possible d’avoir m = ∞
e0
e1 e2 e3 e4 Ici, b = 4,
d = 2 et
m=3
sol
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
Evaluation de la recherche
T (n)|n 10 20 30 40 50 60
n 10µs 20µs 30µs 40µs 50µs 60µs
log n 2.3µs 3µs 3.4µs 3.7µs 3.9µs 4.1µs
log2 n 3.3µs 4.3µs 4.9µs 5.3µs 5.6µs 5.9µs
n log n 23µs 60µs 102µs 147µs 195µs 245µs
n2 100µs 400µs 900µs 1.6 ms 2.5 ms 3.6 ms
n3 1 ms 8 ms 27 ms 64 ms 125 ms 216 ms
2n 1 ms 1s 18 mn 13 jours 36 ans 366 siècles
Pour un algo de complexité 2n , comme celui résolvant les “Tours de Hanoï”,
si le déplacement d’un disque coûte 1µs,
cela nécessite 13 jours pour déplacer la pile de 40 disques !
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Type de recherches
Type de recherches
Méthodes de recherche aveugles, sans utilisation de
connaissances sur le problème :
recherche en largeur
recherche en profondeur
recherche en profondeur limitée
recherche par approfondissement itératif
Méthodes de recherche informées (heuristiques)
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
Principe de la résolution
La trame générale de résolution repose sur
des nœuds libres : nœuds à partir desquels des actions sont
réalisables
nœuds dont on peut générer des nœuds fils potentiels
des nœuds clos : nœuds déjà visités et dont on ne peut plus
générer de descendance
Le principe est simple,
1 placer le nœud initial dans la liste des nœuds libres
2 Tant qu’il existe un nœud dans nœuds libres ou que le but
n’est pas atteint
3 retirer le 1er nœud de nœuds libres
4 le placer dans la liste nœuds clos
5 générer ses descendants et ajouter aux nœuds libres ceux qui
sont nouveaux (ni déjà présents en libres ou en clos)
L’ajout se fait en fin de liste ou en début de liste selon la méthode choisie
procedure Recherche
noeudsLibres ← etatInitial
noeudsClos ← ∅
succes ← faux
while noeudsLibres 6= ∅ ∧ (non(succes)) do
n ← prendrePremier(noeudsLibres)
if estFinal(n) then
succes ← vrai
else
noeudsLibres ← noeudsLibres − {n}
noeudsClos ← noeudsClos ∪ {n}
for all s ∈ [Link] do
if s ∈/ noeudsLibres ∨ s ∈
/ noeudsClos then
ajouterNoeudLibre(noeudsLibres, s)
[Link] ← n
end if
end for
end if
end while
if succes then
afficherChemin(n)
end if
end procedure
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
Recherche en largeur
Recherche en largeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en fin de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue niveau par niveau
Complétude : Oui (si b (branchement) est fini)
Complexité : 1 + b + b × b + · · · + b d → en O(b d )
Optimalité : Oui le chemin trouvé de l’état initial à l’état final
est le plus court
1 e0
2 3 4
6 7 8 9
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
Recherche en profondeur
Recherche en profondeur
Stratégie :
prendre un nœud, en générer les fils et les ajouter en tête de la
liste des nœuds libres
ainsi le parcours de l’arbre s’effectue en profondeur jusqu’au
bout de l’arbre
Complétude : Oui (si espaces d’états finis et acycliques)
Complexité : en O(b m )
Optimalité : non
1 e0
2 8 10
11 13
5
3 4 6 7
9 12
1 e0
2 4 5
6 7
3
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Heuristiques
Notion d’heuristiques
Méthodes en aveugle trop gourmandes en mémoire et/ou en
temps
Une solution : orienter la recherche par une information
heuristique
Une heuristique doit guider le choix des états à tester et les
ordonner selon leurs ‘promesses de rapprocher d’un but’.
Une heuristique dépend fortement du problème à traiter
Une heuristique pauvre basée sur des propriétés trop simples
du problème sera peu efficace,
Une heuristique riche basée sur des propriétés approfondies du
problème sera efficace, mais est difficile à établir.
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Fractions égyptiennes
P 1
Objectif : n = a
=
b i di
P
Objectif transformé : n − i
1
di =0
Algorithme glouton :
meilleur choix = plus grande fraction unitaire ≤ n
retirer de n cette fraction,
répéter jusqu’à n = 0
Exemple : transformer n = 14
15
15 , on note 2 et n ← 15 − 2 = 30
1
≤ 14 1 14 1
13
2
30 , on note 3 et n ← 30 − 3 = 10
1
3 ≤ 13 1 13 1 1
15 = 2 + 3 + 10
Au final, il est écrit que 14 1 1 1
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Maximiser le nb d’actes
Objectif : A partir d’une liste d’actes de dates et de durées
variables,
maximiser le nb d’actes réalisables sans chevauchement
Algorithme glouton :
trier les actes par date de départ
meilleur choix = prendre le plus court réalisable au plus tôt
Exemple : à partir de l’ensemble d’actes initial, 3 actes sont
réalisables sans chevauchement
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Algorithme glouton : s − i pi = 0
P
Exemple d’algorithme A* I
procedure RechercheA*
neudsLibres ← etatInitial
noeudsClos ← ∅
succes ← faux
while noeudsLibres 6= ∅ ∧ (non(succes)) do
. Choisir n dans les noeudsLibres tel que f(n) est minimum
n ← choisirnœudHeuristique(noeudsLibres)
if estFinal(n) then
succes ← vrai
else
noeudsLibres ← noeudsLibres − {n}
noeudsClos ← noeudsClos ∪ {n}
for all s ∈ [Link] do
if s ∈/ noeudsLibres ∨ s ∈
/ noeudsClos then
noeudsLibres ← noeudsLibres ∪ {s}
[Link] ← n
g(s) ← g(n) + cout(n, s)
else
Exemple d’algorithme A* II
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Particularités et propriétés de la recherche par heuristique
Propriétés
h est dite minorante si ∀n, h(n) ≤ h∗ (n)
h est dite monotone si
∀n, ∀s ∈ successeur (n), h(n) − h(s) ≤ cout(n, s)
si h est minorante, alors A* est admissible
si h est monotone alors la première rencontre d’un nœud fournit le
meilleur chemin pour y arriver (on est dispensé des mises à jour
dans l’algorithme).
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 42 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Analyse du problème
Définir l’espace d’états
Décomposition de la zone en grille, l’espace est constitué des
cellules
Etat initial = cellule verte A en c(1,2)
Etat but/final = cellule rouge B en c(5,2)
Branchement = 8 :chaque cellule est liée à ses 8 cellules
voisines
Action = se déplacer d’une case (H, B, D, G, HG, HD, BD,
BG) si possible
Valeurs de f , g, h autour de A
valeur de f dans le coin gauche-haut, valeur de g dans le coin gauche-bas et
valeur de h dans le coin bas-droite
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Déroulement de l’algorithme A*
d’après "A* Pathfinding for Beginners" (Patrick Lester)
Déroulement de l’algorithme A*
Les nœuds libres sont les cases voisines de A
Choix du meilleur nœud, D, à droite de A ( f = 40, avec g = 10 et
h = 30)
on la retire des nœuds libres et la place dans les nœuds clos
Analyse des cases voisines à la case retenue D
seules 5 cases accessibles ( par Haut, Bas, HautGauche,
BasGauche, Gauche) ;
ces cases sont déjà dans la liste des cases libres ou closes
on teste alors si l’accès par la nouvelle case est plus intéressant
que l’accès déjà calculé à partir de A
ex. la case au Sud possède déjà g(S) = 14 (coût de A vers
celle-ci), en passant par D on a g(D) + cout(D, S) = 20 :
plus coûteux donc n’est pas retenu
Aucune voisine à D ne convient, choix alors d’un autre meilleur
nœud ( ici un des nœuds avec f = 54)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 47 / 57
Méthodes de recherche heuristiques Exemple de résolution par A*
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Application de A*
Résolution du Taquin (N-Puzzle) :
1 état = grille de cases,
action = déplacer la case vide,
heuristique = distance de manhatan des cases mal placées
Résolution des N-Reines :
1 état = placement des N reines,
action = échanger deux reines en conflit
heuristique = nb de conflits
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
Recherche Locale
Concept de Recherche Locale, ou Tabou
Cet algorithme se base sur une proposition de solution
imparfaite
Tant que le but n’est pas atteint
recherche de la variable permettant de corriger le plus l’erreur
recherche d’une meilleure valeur (6= de la précédente) pour
cette variable
si pas de meilleure valeur et pas d’autre variable aussi
problématique,
recherche de la moins pire des autres valeurs possibles
évite de retomber sur une situation rencontrée et non oubliée
(perte de nœud clos pour libérer la mémoire)
non complet, possibilité de minima local (correction possible
par mémorisation)
non optimal
très rapide pour large problème (≈ 5s pour 1000 reines)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 52 / 57
Recherche Tabou, Locale
5
Z0l0l
4
0Z0Z0
3
l0Z0Z
2
0l0Z0
Placement de 5 reines au hasard 1
Z0ZqZ
a b c d e
Comptage des contraintes non respectées :
Qa = 2 ; Qb = 2 ; Qc = 2 ; Qd = 0 ; Qe = 2 ;
Meilleurs gains possibles aux autres positions pour Qa , Qb , Qc , Qe , :
Qa = 1 ; Qb = 0 ; Qc = 2 ; Qe = 1 ;
Qc prend une meilleure valeur
5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0l0Z0
1
Z0ZqZ
a b c d e
5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0Z0Z0
1
ZqZqZ
a b c d e
Comptage des contraintes non respectées : Qb = 1 ; Qd = 1 ;
Meilleurs gains possibles : Qb = 0, Qd = 1 : Qd est choisie
5
Z0Z0l
4
0ZqZ0
3
l0Z0Z
2
0Z0l0
1
ZqZ0Z FIN !
a b c d e
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Concept de Recherche Aléatoire
Pour certains problèmes, l’heuristique est inconnue ou trop complexe
L’espace d’états est trop important pour balayer le tout
La stratégie consiste alors à tenter des solutions au hasard
Exemple : Le compte est bon
l’espace d’état est : +ℵ
à partir d’une liste L de 6 nombres
nbi ∈ values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100}
du choix de deux nombres (a, b) ∈ L2
et de 4 actions : action ∈ {a + b, a − b, a × b, a ÷ b}
chaque nombre généré par une action est ajouté à L
chaque nombre utilisé par une action est retiré de L
une action peut être utilisée plusieurs fois
il s’agit d’obtenir ou de se rapprocher au mieux d’un nombre
de 3 chiffres
(nb états potentiels = 88 473 600
= 6 × 4 × 5 × 5 × 4 × 4 × 4 × 4 × 3 × 3 × 4 × 2 × 2 × 4 × 1)
E. ADAM UPHF/INSA HdF Intelligence Artificielle UPHF/INSA HdF 55 / 57
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Aléatoire
Recherche Exhaustive
Recherche Exhaustive
Recherche Exhaustive
Recherche Exhaustive