• Aucun résultat trouvé

Document de travail pour le TD7PCC – plus courts chemins dans les graphes-Question initiale

N/A
N/A
Protected

Academic year: 2022

Partager "Document de travail pour le TD7PCC – plus courts chemins dans les graphes-Question initiale"

Copied!
2
0
0

Texte intégral

(1)

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

Document de travail pour le TD7 PCC – plus courts chemins dans les graphes-

Question initiale

Quel est l'intérêt des plus courts chemins dans les graphes (donnez des exemples d'utilisation) ? Question 1- graphes et multiplication de matrices

Exemple 1- On considère un graphe dont les sommets sont numérotés de 1 à 4. Ce graphe est représenté par une matrice N lignes-N colonnes dans laquelle la valeur 1 placée en ligne i et colonne j indique l'existence d'un arc permettant de passer du point i au point j. Le graphe ainsi que les puissances de sa matrice de valuation1 sont indiqués ci-dessous. Que remarquez-vous ?

A partir de l'exemple ci-dessus, que pensez-vous du cas des graphes dont les arcs sont valués ?

Exemple 2- On considère de même un graphe dont les sommets sont numérotés de 1 à 8. Ce graphe, sans cycle, et les puissances de sa matrice sont décrits ci-dessous. Que pensez-vous des chemins existants dans ce graphe ?

1 La matrice de valuation ou d'adjacence, G, est telle que l'existence d'un arc entre un point source s et un point cible c est indiquée en G[s][c].

TD7-1-

DIJKSTRA

(valuation ≥ 0)

FORD-BELLMAN

(valuation quelconque)

FLOYD

(valuation quelconque)

DANTZIG

(valuation quelconque)

d'un sommet à tous les autres entre tous les couples de sommets

recherche de plus court chemin (PCC)

à partir du sommet 1

M matrice d'adjacence avec dans M[i][j] le coût de l'arc ij ∞ si aucun arc entre i et j 0 si i=j

d tableau des distances avec

dans d[i] distance entre 1 et i sur un PCC partant de1 ∞ si pas de PCC entre1 et i 0 si i=j

D matrice des distances avec dans D[i][j] distance entre i et j sur sur un PCC partant de i ∞ si pas de PCC entre1 et i 0 si i=j

p tableau de prédécesseurs avec

dans p[i] prédécesseur de i sur un PCC partant de1 0 si pas de PCC entre1 et i

P matrice de prédécesseurs avec dans P[i][j] prédécesseur de j sur un PCC partant de i 0 si pas de PCC entre i et j

3 1

4

2 0 0 1 0

0 0 0 0 1 0 0 1 0 1 0 0

G= G2=

G3= G4=

1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0

0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0

1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0

3 1

4

2 G= G2=

0 0 1 0 0 0 0 0 3 0 0 7 0 5 0 0

3 0 0 7 0 0 0 0 0 35 3 0 0 0 0 0 1

3

5 7

(2)

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

Question 2- version matricielle : algorithme de Floyd

Cet algorithme travaille en construisant une suite de n matrices (de F0 à Fn). La matrice F0 est une matrice d'adjacence. Elle indique les coûts des arcs existants (0 pour la diagonale et +∞ pour l'absence d'arc).

La matrice Fk est telle que Fk (x,y) est la longueur d'un PCC de x à y dont tous les sommets sont dans 1..k (+∞ pour l'absence de PCC) :

Fk (x,y) est le minimum de Fk-1 (x,y) et de Fk-1 (x,k)+Fk-1 (k,y)

Question 3- Algorithme de Ford-Bellman

Cet algorithme consiste à minimiser aussi longtemps que possible le tableau des distances entre 1 et les autres sommets. Tant qu'il existe un arc tel que : d[j] > d[i]+M[i][j], le tableau des distances et celui des prédécesseurs sont mis à jour.

Arrêt : après un parcours de tous les arcs du graphe sans modification du tableau des distances.

Question 4- Algorithme de Dijkstra

Recherche des PCC par sélection des sommets proches de 1

Cet algorithme ne peut être utilisé que si les valuations sont positives ou nulles Il consiste à répartir les sommets en trois ensembles :

V

l'ensemble des sommets visités pour lesquels la distance à 1 est connue (dans d[]). V est initialisé avec le point 1 (et d[1]=0) ;

A

l'ensemble des sommets atteints. Cet ensemble contient les successeurs immédiats non encore visités des éléments de V. Leur distance à 1 est estimée ;

– les autres sommets dont la distance à 1 est inconnue (initialisée à +∞).

A chaque étape, on choisit dans A le sommet dont l'estimation de distance à 1 est minimum. Ce sommet est placé dans V avec toutes les mises à jour nécessaires.

Lorsque V contient tous les sommets du graphe, l'algorithme s'arrête.

Les points et les arcs du graphe seront conservés dans des tableaux et vous utiliserez les algorithmes déjà écrits sur les listes :

- liste d'entiers pour les sommets restants à visiter, cette liste devra être triée ; - liste de points pour les sommets du graphe ;

- tableau de listes d'arcs pour le graphe.

TD7-2-

Il faut vérifier à chaque étape l'existence d'une valeur Fk (x,x)

négative qui révèle un cycle négatif et doit déclencher l'arrêt

de l'algorihme.

4 1

3

2

8 6

5

7 G

G2 G3 G4

0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Références

Documents relatifs

Nous présentons ensuite les résultats d'une étude comparant des implémentations efficaces sur PC, appliquées à des graphes de grande taille modélisant des réseaux routiers. Sur

Soit (G , c ) le r´eseau potentiel-tˆ aches d’un probl`eme

Donner un r´eseau sans circuit absorbant avec une racine s pour lequel l’algorithme de Dijkstra ne trouve pas les chemins de coˆ ut minimum issus de s...

Le même graphe est ce coup ci représenté par un tableau de liste des arcs : T [s] est une liste d’arcs sortant de s; un arc contient les champs : t un sommet voisin de s, et d

Les petits génies en maths, non je blague, ceux qui observent les choses tout simplement, auront remarqué que la transposition d’une matrice revient à faire

Exercice 1 Calculer le plus court chemin depuis tous les sommets jusqu’` a un mˆ eme sommet destination?. Exercice 2 Que se passe-t-il s’il y a des distances

Si on désigne par x=OH, y=DH et z=FK (voir le parcours n°1), on calcule pour chacun des parcours la longueur de la ligne brisée passant par les 7 points en fonction de x,y et z..

En conséquence, dans un graphe simple non orienté, le nombre de sommets de degré impair est pair En effet, s'il existait un nombre impair de sommets de degré impair,