Théorie des Graphes - Travaux dirigés n 1

publicité
Théorie des Graphes - Travaux dirigés n◦ 1
Didier MAQUIN
Problèmes de cheminement
L’objectif est d’implémenter “à la main”, un algorithme de cheminement (en particulier l’algorithme de Ford) pour la recherche de chemins de longueur minimale ou maximale,
ou pour déterminer les niveaux d’un graphe.
Rappelons rapidement l’algorithme de Ford. On se donne un graphe G dont les arcs
sont valués positivement par une fonction d (ce graphe peut éventuellement comporter des
circuits). On se fixe un sommet a qui sera le sommet de départ et on cherche, pour tout
sommet x, un chemin de longueur minimale joignant a à x.
Pour effectuer cette recherche, on définit, sur tous les sommets du graphe, une fonction
p (le “potentiel”), telle que p(x) représente la longueur du plus court chemin reliant a à
x. De façon assez intuitive, on peut alors écrire :
1. p(a) = 0
2. pour tout sommet x possédant des antécédents, p(x) = min(p(y) + d(y, x)) où y est
un antécédent de x.
L’algorithme de Ford constitue une illustration, dans un contexte discret, du théorème
du point fixe. Si f est une application continue d’un espace F dans lui-même et si la suite
définie par la connaissance de X0 et par Xn+1 = f (Xn ) est convergente, alors on démontre
que sa limite X est solution de l’équation X = f (X). Ceci constitue le “théorème du point
fixe”.
Pour résoudre le problème précédent, il suffit donc de construire la suite définie par :
1. p0 (a) = 0
2. p0 (x) = ∞ pour x 6= a
3. pour tout sommet x possédant des antécédents, p n+1 (x) = min(pn (y) + d(y, x)) où
y est un antécédent de x.
A titre d’exemple, considérons le graphe G décrit par la table de listes d’antécédents
ci-dessous. On a également fait figurer dans cette table les différentes valeurs de potentiel
pour une recherche des chemins minimaux issus de a.
a
b
a5
0
0
0
0
+∞
5
5
5
Γ−1
P0
P1
P2
P3
c
b4
d1
e2
+∞
9
8
8
d
e3
e
a6
b2
f
c4
d4
+∞
+∞
9
9
+∞
6
6
6
+∞
13
12
12
La suite est stationnaire à partir du rang 3 et l’on obtient ainsi les longueurs des
chemins minimaux issus du sommet a.
1
Exercice n◦ 1 : Recherche de chemins optimaux
Considérons le graphe G décrit par la table des antécédents de chaque sommet :
a
Γ−1
b
a2
f 1
c
b3
a6
d
c2
h4
e
d3
i3
f
g
f 3
h
g3
b1
i
h3
g5
Toutes les questions seront résolues par une méthode de “point fixe” ; on donnera clairement les équations et l’initialisation mises en œuvre.
Question 1
Donner la longueur des chemins minimaux (de longueur minimale) reliant le sommet
a aux autres sommets du graphe ; tous les sommets sont-ils reliés à a ?
Question 2
Même question si f est le sommet de départ.
Question 3
Donner la longueur des chemins maximaux reliant le sommet b aux autres sommets
du graphe.
Exercice n◦ 2 : Détermination des niveaux d’un graphe
Considérons le graphe G décrit par la table des antécédents de chaque sommet :
a
Γ−1
b
c2
d4
f 5
c
e3
h5
d
e2
f 1
e
g5
h3
f
h4
g3
g
i1
h
i2
a1
i
Question 1
Donner la longueur des chemins minimaux reliant le sommet a aux autres sommets du
graphe.
Question 2
Déterminer les niveaux de ce graphe. On rappelle que les sommets sans prédécesseurs
sont situés au niveau 0 (racines) et que le niveau des autres sommets est défini par la longueur, comptée en nombre d’arcs, du chemin maximum entre une racine et ces sommets.
On proposera une initialisation permettant de répondre à la question posée.
Question 3
Reprendre la question n◦ 1 en examinant maintenant les sommets non pas par ordre
alphabétique, mais selon l’ordre défini par leur niveau. Que constate-t-on ?
Exercice n◦ 3 : Capacité d’un réseau routier
Avant d’établir un projet de construction d’autoroute, on désire étudier la capacité
d’un réseau routier, représenté par le graphe 1, reliant la ville E à la ville S.
2
7
a
10
8
5
7
g
4
10
E
c
2
b
1
8
e
6
d
2
2
4
10
S
6
f
Fig. 1 – Réseau routier
Pour cela, on a évalué le nombre maximal de véhicules que chaque route peut écouler
par heure, compte tenu des ralentissements aux traversées des villes et villages, des arrêts
aux feux, etc. Ces évaluations sont indiquées en centaines de véhicules par heure sur les
arcs du graphe. Les temps de parcours entre villes sont tels que les automobilistes n’emprunteront que les chemins représentés par le graphe.
Question 1
Quel est le débit horaire total maximal de véhicules susceptibles de s’écouler entre les
villes E et S ? (Il s’agit bien sûr d’un problème de recherche de flot maximal que l’on
pourra résoudre en utilisant la méthode de Ford et Fulkerson).
Question 2
Quels sont les arcs constituant des “goulets d’étranglement”, c’est-à-dire limitant le
plus le flot horaire de véhicules ?
3
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
e
S
f
Figures permettant de “dérouler manuellement l’algorithme”.
4
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
e
S
f
Figures permettant de “dérouler manuellement l’algorithme”.
5
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
S
e
f
a
c
g
E
b
d
e
S
f
Figures permettant de “dérouler manuellement l’algorithme”.
6
Téléchargement