• Aucun résultat trouvé

Structure de grapheVocabulaire- graphe, sommet, arc, arc valué, matrice de valuation, matrice des prédécesseurs.Représentation matricielle des graphesOn considère un graphe dont les sommets sont numérotés de

N/A
N/A
Protected

Academic year: 2022

Partager "Structure de grapheVocabulaire- graphe, sommet, arc, arc valué, matrice de valuation, matrice des prédécesseurs.Représentation matricielle des graphesOn considère un graphe dont les sommets sont numérotés de"

Copied!
2
0
0

Texte intégral

(1)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

Document de travail pour le TD5

Structure de graphe

Vocabulaire- graphe, sommet, arc, arc valué, matrice de valuation, matrice des prédécesseurs.

Représentation matricielle des graphes

On considère un graphe dont les sommets sont numérotés de 1 à N. Ce graphe est représenté par une matrice N lignes-N colonnes dans laquelle la valeur (positive ou nulle) placée en ligne i et colonne j indique la valuation associée à l'arc1

permettant de passer du point i au point j.

a) Quelle sera la matrice de valuation, G, des graphes ci- dessous, la valuation de chaque arc entre un point source s et un point cible c étant indiquée en G[s][c].

b) Quelle sera la matrice des prédécesseurs, P, de ces graphes dans laquelle la valuation de chaque arc entre

un point source s et un point cible c est donnée en P[c][s].

Représentation d'un graphe par un tableau de listes

On considère un graphe dont les sommets sont numérotés de 1 à N. Ce graphe est représenté par un tableau de N listes. Chaque élément de la liste placée à l'indice i du tableau contient :

– un sommet (qui est un des successeurs immédiats du sommet i), – la valuation de l'arc entre i et ce sommet,

– et un accès à l'élément suivant de la liste.

Quelle sera la représentation des graphes ci-dessus ? Parcours en profondeur d'un graphe

Un algorithme récursif de parcours en profondeur d'un graphe (avec numération de l'ordre de parcours des sommets) est donné ci-dessous.

Le parcours en profondeur d'un graphe peut être géré à l'aide d'une pile dans laquelle chaque nœud sera empilé, le sommet de pile étant utilisé pour accéder à ses voisins.

a) Indiquez l'ordre de visite des noeuds des deux graphes fournis en exemple ci-contre (le sommet de départ est a).

b) Ecrivez cet algorithme de parcours en profondeur.

Parcours en largeur d'un graphe

Le parcours en largeur d'un graphe peut être géré à l'aide d'une file dans laquelle chaque nœud sera enfilé, la tête de la file étant utilisée pour accéder à ses voisins.

a) Ecrivez l'algorithme du parcours en largeur.

b) Indiquez l'ordre de visite des noeuds des deux graphes fournis en exemple ci-contre (le sommet de départ est a).

1 Aux arcs sont associées des valeurs numériques appelées : valuation, coût, longueur, etc...

TD5-1- 5

3 1

4

2

4 9 2 3 7

5 3

1

4

2 8

3 9 6

7 5 4

8 5

exemple 1 exemple 2

a

b e f

c

d g

h

a b

e f

i j

c d g

h

(2)

Module Info31 – L2 Sciences & Techniques Université de Bourgogne Dominique Michelucci

Parcours en profondeur d'un graphe : algorithme récursif G est le graphe

pour chaque sommet on met à jour :

- une couleur blanc, gris, noir (dans un tableau couleur[ ])

blanc pour non visité, gris pour encours de visite, noir pour terminé - une date de début de traitement (dans un tableau deb[ ])

- une date de fin de traitement (dans un tableau fin[ ])

- un prédécesseur, dans l'ordre de visite (dans un tableau prec[ ]) parcoursP(depart) :

// depart est le sommet de départ, donnée // le graphe est modifié

// initialisation

pour chaque sommet u de G faire couleur[u] "blanc"

prec[u] ← null fpour

// parcours date ← 0

pour chaque sommet u de G faire si couleur[u] == "blanc"

alors visiterP (u, date)

fsi

fpour // fin de parcoursP

visiterP(depart, dateCC) :

// depart est le sommet de départ, donnée

// la date, dateCC, est une donnée entière, elle est renvoyée comme résultat // le graphe est modifié

couleur[u] ← "gris"

dateCC++

deb[u] ← dateCC

pour chaque sommet v, successeur de u dans G faire si couleur[v] == "blanc"

prec[v] ←u

visiterP (v, dateCC) fpour

couleur[u] == "noir"

dateCC++

fin[u] ← dateCC // fin de visiterP

TD5-2-

Références

Documents relatifs

Définition: Un sous-graphe d'un graphe G est un graphe G' composé de certains sommets du graphe G, ainsi que de toutes les arêtes qui relient

La matrice associée à un graphe orienté d'ordre n est une matrice carrée 1 2 de dimension n x n , où le terme de la i ième ligne et la j ième colonne est égal à 1. s'il existe

[r]

De plus, le nouveau graphe possède le même nombre de sommets, une arête et une face en moins.. Pour démontrer la formule d'Euler dans le cas général, on peut raisonner par

Si on l'observe pendant 1 minute, on a 70% de chance d'y voir passer au moins une voiture.. On observe cette route pendant

– La distance entre deux sommets est la longueur de la plus petite chaîne les reliant.. – Le diamètre d’un graphe est la plus grande distance existante dans le graphe On décrit

Définition La matrice de transition d’un graphe probabiliste d’ordre n est la matrice carrée d’ordre n dont les coefficients sont donnés par les poids des arcs (et non seulement

Définition La matrice de transition d’un graphe probabiliste d’ordre n est la matrice carrée d’ordre n dont les coefficients sont donnés par les poids des arcs (et non seulement