Formation I.S.N.

Le parcours en largeur

Principe de l'algorithme

Un site web peut être modélisé par un graphe dans lequel les sommets représentent les pages du site et les arêtes représentent les liens hypertextes permettant d'aller d'une page à une autre.

On suppose que ce graphe est connexe, c'est-à-dire qu'à partir d'une page donnée, toute autre page est accessible par une série de liens (une chaîne).

On cherche à tester toutes les pages de ce site, c'est-à-dire à parcourir ce graphe en passant par tous ses sommets.



On va procéder à un parcours en largeur du graphe en mettant les sommets successifs dans une file (structure FIFO).

Voici la description intuitive de l'algorithme :

  1. On enfile le sommet de départ (on visite la page d'accueil du site).
  2. On enfile les sommets adjacents à la tête de file (on visite les pages ciblées par la page d'accueil) s'ils ne sont pas déjà présents dans la file.
  3. On défile(c'est-à-dire on supprime la tête de file).
  4. Tant que la file n'est pas vide, on ré-itère les points 2 et 3.

En d'autres termes, on défile toujours prioritairement les sommets (les pages) les plus tôt découverts.

Illustration avec un arbre

Dans l'illustration ci-dessous, un sommet grisé est enfilé et un sommet noirci est défilé.

On numérote chaque sommet au moment de son apparition dans la file. A tout moment, la tête de file est donc le sommet portant le plus petit numéro parmi ceux de la file (c'est à dire parmi les gris).

Parcours en largeur
Etape 0 Étape 0 : on part du sommet S
Etape 1 Étape 1 : on enfile le sommet S et on le numérote 1
Etape 2 Étape 2 : on enfile les sommets 2, 3 et 4 (adjacents au sommet 1) et on défile le sommet 1.
Remarque : l'ordre de numérotation (c'est à dire d'enfilade) des voisins du sommet tête de file est choisi au hasard.
Etape 3 Étape 3 : on enfile les sommets 5 et 6 (adjacents au sommet 2) et on défile le sommet 2
Etape 4 Étape 4 : on enfile les sommets 7, 8 et 9 (adjacents au sommet 3) et on défile le sommet 3
Etape 5 Étape 5 : on enfile le sommet 10 (adjacent au sommet 4) et on défile le sommet 4
Etape 6 Étape 6 : on défile le sommet 5
Etape 7 Étape 7 : on enfile les sommets 11 et 12 (adjacents au sommet 6) et on défile le sommet 6
Etape 8 Étape 8 : on défile le sommet 7
Etape 9 Étape 9 : on défile le sommet 8
Etape 10 Étape 10 : on défile le sommet 9
Etape 11 Étape 11 : on enfile les sommets 13 et 14 (adjacents au sommet 10) et on défile le sommet 10
Etape 12 Étape 12 : on défile le sommet 11
Etape 13 Étape 13 : on défile le sommet 12
Etape 14 Étape 14 : on défile le sommet 13
Etape 15 Étape 15 : on défile le sommet 14


On donne le nom de parcours en largeur d'un graphe car cet algorithme va visiter tous les sommets à distance 1 du sommet de départ puis tous les sommets à distance 2 du sommet de départ puis tous les sommets à distance 3 du sommet de départ etc...

Un sommet à distance n du sommet de départ S est un sommet dont le plus court chemin qui le sépare de S contient n arêtes.