Académique Documents
Professionnel Documents
Culture Documents
1 2
3 4
1
Agent basé sur les buts : Exemple de formulation de problèmes :
Agent de résolution de problèmes Planification de route
5 6
7 8
2
Exemple de formulation de problèmes : Exemple de formulation de problèmes :
8-puzzle 8-reines
5 7 3
États : États
1
Une configuration de 0 à 8 reines sur
Positions des huit tuiles dans les cases. 8
l’échiquier.
État initial : État initial
4 2 6
Les huit tuiles dans n’importe quelle case.
Aucune reine sur l’échiquier.
Actions : État initial Actions
Déplacement du trou
Ajouter une reine sur une case vide.
droite, gauche, haut, bas.
1 2 3 Test de but
Test de but :
Les 8 reines sont placés sur
Un état qui correspond à l’état final. 4 5 6 l’échiquier sans attaque.
Coût : Coût
Chaque action coûte 1. 7 8
Chaque action coûte 1 (sans intérêt!).
État but
9 10
11 12
3
Exemple d’exploration dans un arbre Exemple d’exploration dans un arbre
13 14
15 16
4
Stratégies d’exploration Évaluation des stratégies
Détermine l’ordre de développement des nœuds. Complétude:
Explorations non informées
Est-ce que l’algorithme garantit de trouver une
Aucune information additionnelle. solution s’il y en a une?
Elles ne peuvent pas dire si un nœud est meilleur qu’un autre.
Elles peuvent seulement dire si l’état est un but ou non.
Optimalité:
Est-ce que la stratégie trouve la solution optimale?
Explorations informées (heuristiques):
Elles peuvent estimer si un nœud est plus prometteur qu’un Complexité en temps:
autre.
Combien de temps pour trouver une solution?
Complexité en espace:
Quelle quantité de mémoire a-t-on besoin?
17 18
Elle est exprimée en utilisant les quantités suivantes Largeur d’abord (Breath-first - BFS)
B : le facteur de branchement
c.-à-d. le nombre maximum de successeurs à un nœud. Coût uniforme (Uniform-cost - UFS)
D : la profondeur du nœud but le moins éloigné.
M : la longueur maximale d’un chemin dans l’espace d’états. Profondeur d’abord (Depth-first - DFS)
Complexité en temps Profondeur limitée (Depth-limited - DLS)
le nombre de nœuds générés pendant la recherche.
Complexité en espace Itérative en profondeur (Iterative deepening - IDS)
le nombre maximum de nœud en mémoire. Bidirectionnelle (Bidirectional search)
19 20
5
Largeur d’abord (BFS) Exemple largeur d’abord
Approche A
File:
Développer tous les noeuds au niveau i
Développer par la suite tous les nœuds au niveau i+1 B C B C D E F G
Et ainsi de suite…
Ordre de visite: A – B – C – D – E – F - G
21 22
23 24
6
Coût uniforme Profondeur d’abord (DFS)
Complète : oui, si le coût > ε Développe le nœud le plus profond.
Complexité en temps :
nombre de nœuds avec g(n) ≤ coût(solution optimale) Implémenté à l’aide d’un pile.
Les nouveaux nœuds générés vont sur le
où C* est le coût de la solution optimale.
dessus.
Complexité en espace : même que celle en temps
Optimal : oui
Les nœuds sont développés en ordre de g(n).
25 26
7
Profondeur limitée (DLS) Exemple profondeur limité
Limite l = 2
L’algorithme de profondeur d’abord, mais avec A
Pile:
une limite de l sur la profondeur.
Les nœuds de profondeur l n’ont pas de successeurs. B C
Complétude : Seulement si l > d
Complexité en temps : O(bl)
D E
Complexité en espace : O(bl), linéaire D
Optimal : Non! H I J K B
E
Ordre de visite: A – B – D – E - C C
29 30
Ordre de visite: A – A – B – C – A – B – D – E – C – F – G – A – B – D – H – I – E – J –
K–C–F–L–M–G–N–O
31 32
8
Comparaison:
Propriétés itérative en profondeur
Itérative en profondeur et largeur d’abord
Complétude: Oui Comparaison pour b = 10 et d = 5, avec la solution
Complexité en temps: à l’extré
extrémité
mité droite
(d+1)b0 + db1+ (d-1)b2 + bd = O(bd)
N(IDS) = 6 + 50 + 400 + 3000 + 20 000 + 100 000
Complexité en espace: O(bd)
= 132 456 nœ
nœuds
Optimal?
Oui, si le coût de chaque action est de 1. N(BFS) = 1 + 10 + 1000 + 10 000 + 100 000 + 999 990
Peut être modifiée pour une stratégie de coût = 1 111 101 noeuds
uniforme.
33 34
35 36
9
Répétition d’états :
Répétition d’états Exploration de type Graph-Search
La répétition d’états fait perdre du temps
Dans le pire cas, la recherche tourne en rond dans
les cycles créés.
Détection de répétitions
Normalementfaite en comparant les nouveaux
nœuds aux nœuds déjà développés.
Avant d’éliminer le nouveau nœud
On doit vérifier s’il est meilleur que le nœud que l’on a
déjà.
37 38
10