• Aucun résultat trouvé

Exemple 2- On considère de même un graphe dont les sommets sont numérotés de 1 à 8

N/A
N/A
Protected

Academic year: 2022

Partager "Exemple 2- On considère de même un graphe dont les sommets sont numérotés de 1 à 8"

Copied!
4
0
0

Texte intégral

(1)

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

Document de travail pour le TD6

Recherches de plus court chemins dans les graphes (partie 2)

Vocabulaire vu au TD5 : graphe, graphe valué, arc réflexif, chemin, plus court chemin, cycle, cycle négatif (ou absorbant).

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-dessous, que pensez-vous du cas des graphes dont les arcs sont valués (le coût associé à chaque arc peut-être différent de 1) ?

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 ?

– des chemins redondants et des plus courts chemins ?

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].

TD6-1-

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

Introduction aux recherches de plus courts chemins (PCC)

TD6-2- 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

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

à 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 ∞ sipas 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 ∞ sipas 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 sipas 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 sipas de PCC entre i et j

(3)

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

Algorithme de Dantzig

Cet algorithme est basé sur la construction pas à pas des PCC. On considère Gk le graphe réduit aux sommets d'indices 1 à k et Dk la matrice des distances associée. A chaque étape :

Cette mise à jour de Dk consiste en trois parties, illustrées ci-dessous, qui correspondent respectivement aux rôles possibles du sommet k+1 comme source, cible ou point intermédaire dans les PCC considérés :

1) calcul des PCC entre les sommets s de Gk et le sommet k+1 (s est la source et k+1 est la cible des PCC). Il s'agit du calcul de la k+1e colonne de Dk ;

2) calcul des PCC entre le sommet k+1 et les sommets c de Gk (k+1 est la source des PCC et c en est la cible). Il s'agit du calcul de la k+1e ligne ;

3) calcul des PCC entre deux sommets s et c de Gk dans lesquels k+1 est un sommet intermédaire du PCC. Il s'agit d'une mise à jour de la partie intérieure de la matrice Gk.

Algorithme de Floyd

Cet algorithme travaille en construisant une suite de n matrices (de F1 à Fn) à partir de la matrice d'adjacence notée F0 dans laquelle on a le coût des arcs existants (0 pour la diagonale et +∞ pour l'absence d'arc).

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

Cette longueur est définie comme le minimum de Fk-1 (x,y) et de Fk-1 (x,k)+Fk-1 (k,y).

TD6-3-

Dk Dk+1

k+1 ième ligne

k+1 ième colonne

0 mise à jour

de Dk pour prendre en compte k+1

Gk

PCC de k+1 à c s

c PCC des à c

PCC de k+1 s à k+1 s

i Gk k+1

PCC de s à k+1 ?

PCC de s à i

arc de i à k+1

c

i

k+1 Gk

PCC de k+1 à c ?

PCC de i à c

arc de k+1 à i

2) ajout de la ligne k+1

1) ajout de la colonne k+1 3) mise à jour des PCC

sur les points 1 ..k

(4)

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

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.

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], on met à jour le tableau des distances et celui des prédécesseurs.

L'arrêt peut se faire après un parcours de tous les arcs du graphe sans modification du tableau des distances.

Algorithme de Dijkstra

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 (dans d[]) est connue. V est initialisé avec le point 1 (et d[1]=0) ;

A l'ensemble des sommets atteints qui 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 +∞.

A chaque étape, on choisit dans A le sommet qui a la plus petite distance estimée. Ce sommet est placé dans V avec toutes les mises à jour nécessaires. L'arrêt de l'algorithme se fait lorsque V contient tous les sommets du graphe.

TD6-4-

Références

Documents relatifs

A un moment le disque ne contiendra plus aucun point de E mais avant cette extême il y aura eu un moment où il y avait 1012 points dans le disque dont exactement trois sur le cercle

Cela peut se faire, pour tout polygone avec un point donn´ e int´ erieur, en joignant un de ces points int´ erieurs ` a un sur deux des sommets du polygone ; et pour un polygone

il faut TOUJOURS bien faire attention à respecter les règles de calcul.. 2°) Résolution d’un problème concret. Exemple : Johann aura le double de l’âge de son fils dans cinq

Un produit de facteurs est nul si et seulement si l’un des facteurs est nul. Remarque : on ne s’est pas inquiétés du facteur 2 car il ne dépend pas

On considère un graphe dont les sommets sont numérotés de 1 à N. b) Quelle sera la matrice des prédécesseurs, P, de ces graphes dans laquelle la valuation de chaque

En plus des lieux touristiques aux huit points indiqués, toutes les lignes de bus passent devant des bâtiments historiques de la ville.. Stéphanie peut-elle utiliser toutes les

Pour cela créer un dossier nommé tableur, ce sera plus simple pour le retrouver parmi tous vos fichiers. Application : Recopier et compléter le tableau suivant en utilisant les

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