Vous êtes sur la page 1sur 28

Algorithmes de recherche

non-informés (Aveugles)
RECHERCHE EN PROFONDEUR D’ABORD (DEPTH FIRST
SEARCH)

En profondeur : développement d’une branche entière avant de parcourir le


reste de l’arbre :

La solution est trouvée : arrêt ou continuer àchercher les autres solutions


(backtracking).

La solution n’est pas trouvée (état d’échec), poursuivre la recherche


(backtracking).

Une branche infinie est àexplorer : un test d’arrêt à une profondeur maximale
sera appliqué.
RECHERCHE EN PROFONDEUR D’ABORD
RECHERCHE EN PROFONDEUR D’ABORD
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 0, développés : 0

Nœud développé Liste des nœuds


{S}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 1, développés : 1

Nœud développé Liste des nœuds


{S}
S (non but) {A, B, C}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 2, développés : 2

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A (non but) {D, E, B, C}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 3, développés : 3

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A {D, E, B, C}
D (non but) {H, E, B, C}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 4, développés : 4

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A {D, E, B, C}
D {H, E, B, C}
H (non but) {E, B, C}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 5, développés : 5

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A {D, E, B, C}
D {H, E, B, C}
H {E, B, C}
E (non but) {G, B, C}
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 6, développés : 5

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A {D, E, B, C}
D {H, E, B, C}
H {E, B, C}
E {G, B, C}
G (but) {B, C} non développé
RECHERCHE EN PROFONDEUR D’ABORD

Nb nœuds testés : 6, développés : 5

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A {D, E, B, C}
D {H, E, B, C}
H {E, B, C}
E {G, B, C}
G {B, C}
PROPRIETES DE LA RECHERCHE EN PROFONDEUR D’ABORD

✓ L’algorithme peut dans certain cas parcourir tout l’espace d’état avant de trouver
une solution.

✓ Utilise moins de mémoire que l’algorithme BFS et plus performant dans un


environnement de mémoire limitée.

✓ Plus rapide dans le cas oùil y a beaucoup de chemins vers la solution, et


surtout s’ils sont relativement longs.
LA RECHERCHE EN PROFONDEUR D’ABORD
SATISFACTION DES CRITERES D’EVALUATION

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 = ∞
1. Complétude :
✓ Oui : si on evite les étapes répétés ou si l’espace de recherche est fini
✓ Non : si la profondeur est infini, s’il y a des cycles
2. 2- Compléxitéen temps : l’algorithme explore tous les nœuds

1 + b + b2+ b3 +…+ bd =O(bd) : exponentielle en d.

3. Compléxitéen espace : nombre de nœuds conservés


✓ A chaque profondeur p<d on a (b-1) nœuds, A la profondeur d on a b nœuds
✓ Totale = (d-1)* (b-1) + b = O(bd) : linéaire en d
4. Optimalité: NON
RECHERCHE EN LARGEUR (BREADTH-‐FIRST SEARCH)

✓ En largeur : Chercher le but souhaitéparmi tous les nœuds d’un niveau

(i) donné avant d’aller consulter leurs fils (niveau i+1)

✓ Continuer, niveau par niveau jusqu’au but


RECHERCHE EN LARGEUR
RECHERCHE EN LARGEUR
RECHERCHE EN LARGEUR

Nb nœuds testés : 0, développés : 0

Nœud développé Liste des nœuds


{S}
RECHERCHE EN LARGEUR

Nb nœuds testés : 1, développés : 1

Nœud développé Liste des nœuds


{S}
S (non but) {A, B, C}
RECHERCHE EN LARGEUR

Nb nœuds testés : 2, développés : 2

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A (non but) { B, C, D, E}
RECHERCHE EN LARGEUR
Nb nœuds testés : 3, développés : 3

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B (non but) {C, D, E, G}
RECHERCHE EN LARGEUR
Nb nœuds testés : 4, développés : 4

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B {D, E, G}
C (non but) {D, E, G, F}
RECHERCHE EN LARGEUR
Nb nœuds testés : 5, développés : 5

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B {D, E, G}
C {D, E, G, F}
D (non but) { E, G, F, H}
RECHERCHE EN LARGEUR
Nb nœuds testés : 6, développés : 6

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B {D, E, G}
C {D, E, G, F}
D { E, G, F, H}
E (non but) {G, F, H, G}
RECHERCHE EN LARGEUR

Nb nœuds testés : 7, développés : 6

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B {D, E, G}
C {D, E, G, F}
D { E, G, F, H}
E {G, F, H, G}
G (but) {F, H, G} non développé
RECHERCHE EN LARGEUR
Nb nœuds testés : 7, développés : 6

Nœud développé Liste des nœuds


{S}
S {A, B, C}
A { B, C, D, E}
B {D, E, G}
C {D, E, G, F}
D { E, G, F, H}
E {G, F, H, G}
G {F, H, G}
PROPRIETES DE LA RECHERCHE EN LARGEUR D’ABORD

✓ La solution trouvée est la moins profonde, garantie de trouver une solution


même s’il existe un cycle.
✓ Couteux lorsque plusieurs branches mènent aux but, àdes profondeurs
pratiquement identique.
✓ DFS descend directement au fond de l’arbre de recherche, BFS descend
uniformément dans l’arbre.

✓ BFS effectue plus rapidement une recherche qui tente de déterminer le chemin
le plus court àla solution, alors que DFS visitera tous les enfants de chaque
nœud de la pile.
LA RECHERCHE EN LARGEUR D’ABORD
SATISFACTION DES CRITERES D’EVALUATION

1. Complétude :
✓ Oui : si b est fini
2. 2- Compléxitéen temps : l’algorithme explore tous les nœuds
1 + b + b2+ B3 +…+ bd =O(bd) : exponentielle en d.
3. Compléxitéen espace : nombre de nœuds conservés
✓ Combien de nœuds peuvent être dans la liste
✓ A profondeur d-1 on a bd nœuds inexplorés dans la liste : O(bd)
4. Optimalité: NON

Vous aimerez peut-être aussi