Diaporama n°27¶

Parcours de Graphes¶

Parcourir le graphe à partir du sommet A¶

image.png

Parcours "libre"¶

image.png

on part de A:

image.png

on traite "A" (on n'a pas le choix ...)

image.png

on découvre "B" et "C" (opened)

on traite "C", (par exemple)

image.png

on traite "B" (pas le choix)

image.png

on traite "E" (par exemple)

image.png

on traite "D" (par exemple)

image.png

on traite "F" (pas le choix)

image.png

on traire "G" (pas le choix)

image.png

Il n'y a plus de sommets "opened" : c'est fini

NB : H n'a pas été traité (non accessible depuis A)

Arbre de parcours¶

Chaque sommet nouvellement traité peut être rattaché à un sommet déjà traité : on obtient un arbre de parcours

image.png

Parcours "en profondeur (d'abord)"¶

Principe :¶

"On avance dans le graphe tant qu'on peut. On revient en arrière si on bloque"

NB : cela revient à empiler les sommets ouverts qui ne sont pas traités

image.png

ici, si l'on a plusieurs possibilités, on prend le plus petit sommet (dans l'ordre alphabétique)

on va vers "B"

image-3.png

puis vers "D"

image-2.png

on est bloqué sur "D" ("A" déjà traité)

on revient sur "B" et on va en "E"

image-2.png

on va en "F"

image-2.png

puis en "G" "C"

image-2.png

on bloque en "C", on revient sur "F", on va en "G"

image.png

C'est fini ?

NON :

on revient sur "F", on revient sur "E", puis sur "B", puis sur "A" (et maintenant c'est fini !)

Parcours "en profondeur (d'abord)"¶

pour un autre graphe, à partir de "A" :

image.png

image.png

image.png

image.png

Un autre parcours en profondeur :

image.png

Parcours "en largeur (d'abord)"¶

On avance en cercles concentrique autour de $s_0$ :

  • $s_0$ (distance 0)
  • les voisins de $s_0$ (distance 1)
  • les voisins des voisins qui n'ont pas été traités (distance 2)
  • ...

NB : distance entre $s_0$ et $s$ : la longueur du plus court chemin

distance 0

image.png

distance 1 image.png

NB : peu importe l'odre de traitement des sommets à la même distance de $s_0$

distance 2 image.png

distance 3 image.png

distance 4 image.png

distance 5 image.png

distance 6 image.png

...

Parcours "au meilleur choix"¶

On peut disposer d'un critère précis pour choisir le prochain sommet à traiter

exemple : on traite en priorité le sommet le plus proche du sommet B (en distance euclidienne)

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

ainsi de suite ...

Peut permettre de trouver rapidement un chemin vers un sommet cible (cf algorithme A* (MPI))