Académique Documents
Professionnel Documents
Culture Documents
Graphes et RO LMI2
Corrigé série 4
Exercice 1
Un Logicien , sa femme jalouse et sa maîtresse souhaitent traverser une rivière. Mais la
barque du passeur est trop petite, et il ne peut transporter que deux personnes a la fois.
Comment faire, sachant que la femme jalouse ne veut pas que son mari ( le Logicien) et
la maîtresse soient seuls sur une rive, et que le logicien ne veut pas que sa femme et sa
maitresse soient seules sur une rive ?
N.B. Toute ressemblance avec des faits existants ou ayant existés ne saurait être que fortuite.
Exercice 1(co)
On va modéliser la situation par un graphe dont les sommets sont toutes les situations
possibles. On désigne par P le passeur, par L le Logicien , par F la femme et par M
la maitresse. Le sommet (P M=LF ) signi…e que sur la première rive on a le passeur et la
maîtresse, et sur la rive d’arrivée, on a l’homme et sa femme. On n’inscrit pas les sommets
prohibés, comme (P F=HM ) et (P F=F M ). Il y a une arête entre deux sommets si on peut
passer d’une situation à l’autre par une traversée de barque. Le problème est de savoir s’il
y a un chemin entre le sommet (P HF M= ) et le sommet ( =P HF M ).
1er cas : la barque peut trasporter 3 personnes ( passeur compris) : C immédiat. Rappeler
vous le dessin de Eya
2ème cas : la barque ne peut trasporter que 2 personnes ( passeur compris) : Le graphe
que l’on obtient est :
(P HF M ) ! (HF P M ) ! (P HF M ) ! (F M P H) ! (P F M H)
! (M P HF ) ! (P M HF ) ! ( P HF M )
Exercice 2
Appliquer l’algorithme de Dijkstra au graphe suivant :
x4
4% -5
2
x2 x5
7% & %2
x1 5" &1 "3
1& % &
x3 !7 x6
Exercice 2(co)
Initialisation
1
S = f1g ; S = f2; 3; 4; 5; 6g; d = (0; 7; 1; 1; 1; 1); p = (N IL; 1; 1; N IL; N IL; N IL)
1ere itération : i = 3 car d(3) = min(7; 1; 1; 1; 1) = 1
S = f1; 3g ; S = f2; 4; 5; 6g; les successeurs de 3 dans S sont 2; 5 et 6, ç-à-d S \ (3) =
f2; 5; 6g : On a d(2) prend la nouvelle valeur
d = (0; 6; 1; +1; 3; 8)
et
d (x) = min d(y) = min (6; 1; 3; 8) =) x = 5
y2f2;4;5;6g
2e itération : i = 4; d(4) = 9
S = f1; 3; 5g ; S = f2; 4; 6g et S \ (5) = f2; 4g ; On a d(2) prend la nouvelle valeur
d = (0; 5; 1; 8; 3; 8)
3e itération : i = 2; d(2) = 5
S = f1; 2; 3; 5g ; S = f4; 6g ; d = (0; 5; 1; 8; 3; 8): On a d(2) prend la nouvelle valeur
d = (0; 5; 1; 8; 3; 6)
4e itération : i = 2; d(2) = 12
S = f1; 3; 5; 2; 6g ; S = f4g ; S \ (5) = ; et d = (0; 5; 1; 8; 3; 6)
Le chemin minimal de 1 à 4 par exemple est de coût 9, c’est le chemin 1; 5; 4.
2
Exercice 3
La matrice qui suit donne en heures les durées des vols entre certaines villes v1 ; v2 ; : : : ; v6 :
0 1
0 3 1 5 1 1
B 3 0 5 2 4 1 C
B C
B 1 4 0 1 4 3 C
B C
B 6 2 1 0 4 4 C
B C
@ 1 4 4 5 0 2 A
1 1 5 4 3 0
le terme (i; j) de cette matrice est égal à 1 lorque le vol au départ de la ville vi à destination
de vj n’existe pas.
Exercice 3(co)
Initialisation
S = f1g ; S = f2; 3; 4; 5; 6g; d = (0; 3; 1; 5; 1; 1)
1re itération :i = 2
S = f1; 2g ; S = f3; 4; 5; 6g ; d = (0; 3; 8; 5; 7; 1)
2e itération : i = 4;
S = f1; 2; 4g ; S = f3; 5; 6g ; d = (0; 3; 8; 5; 7; 9)
3e itération :i = 5;
S = f1; 2; 4; 5g ; S = f3; 6g ; d = (0; 3; 8; 5; 7; 9)
4e itération :i = 3;
S = f1; 5; 4; 3; 2g ; S = f6g ; d = (0; 3; 8; 5; 7; 9)
4e itération :i = 3;
S = f1; 5; 4; 3; 2; 6g ; S = ;; d = (0; 3; 8; 5; 7; 9)
L’itinéraire le plus rapide nécessite donc 9 heures pour aller de la ville v1 à la ville v6 .
L’itinéraire v1 ; v4 ; v6 est un itinéraire minimum. (Il y en a deux autres...)
3
on trouve à nouveau v1 ; v4 ; v6 comme itinéraire minimal (en terme de durée), de durée 10
heures.
Exercice 4
Soit le graphe valué G dont la matrice correspondante est
0 1
0 +1 4 8 +1
B +1 0 +1 2 2 C
B C
B +1 3 0 4 +1 C
B C
@ +1 +1 6 0 1 A
+1 +1 +1 +1 0
1. Dessiner le graphe G:
Exercice 4(co)
On a .
0 1 0 1
0 +1 4 8 +1 0 +1 4 8 +1
B +1 0 +1 2 2 C B 2 C
B C 1 B +1 0 +1 2 C
D 0
= B
B +1 3 0 4 +1 C B
C ; D = B +1 3 0 4 +1 CC
@ +1 +1 6 0 1 A @ +1 +1 6 0 1 A
+1 +1 +1 +1 0 +1 +1 +1 +1 0
0 1 0 1
0 +1 4 8 +1 0 7 4 8 9
B +1 0 +1 2 2 C B 2 C
B C 3 B +1 0 +1 2 C
D 2
= B
B +1 3 0 4 C B
5 C ; D = B +1 3 0 4 5 CC
@ +1 +1 6 0 1 A @ +1 9 6 0 1 A
+1 +1 +1 +1 0 +1 +1 +1 +1 0
0 1 0 1
0 7 4 8 9 0 7 4 8 9
B +1 0 8 2 2 C B 2 C
B C 5 B +1 0 8 2 C
D 4
= B
B +1 3 0 C B
4 +1 C ; D = B +1 3 0 4 +1 CC
@ +1 9 6 0 1 A @ +1 9 6 0 1 A
+1 +1 +1 +1 0 +1 +1 +1 +1 0
Exercice 5
Dans certains problèmes de communications on a besoin de connaîre le point (les points) le
moins éloigné de tous les autres points d’un réseau. C’est le centre de gravité du graphe.
D’autre part, on appelle excentricité d’un sommet x, dans un graphe orienté G = (S; A) et
valué par les coûts positifs, la quantité :
En d’autres termes, c’est la distance maximale nécessaire pour atteindre x depuis chaque
sommet.
4
On appelle centre de gravité du graphe G, un sommet d’excentricité minimale. C’est donc
un sommet tel que :
exc (centre de gravité) = min (exc (x))
x2S
1. Appliquer l’algorithme de Floyd pour trouver les plus courts chemins entre tout couple
de sommets du graphe G suivant
x1 ! 8 x2
%3 # &5
x6 &4 3 x3 et x3 !1 x1
&0 # %1
x5 ! 2 x4
Exercice 5 (co)
Notons V = D0 la matrice d’adjacence de G:
0 1
0 8 +1 4 1 +1
B +1 0 5 3 +1 +1 C
B C
B 1 +1 0 +1 +1 +1 C
V =D =B
0
B
C
C
B +1 +1 1 0 +1 +1 C
@ +1 +1 +1 2 0 +1 A
3 +1 +1 +1 0 0
Rappelons l’algorithme de Floyed
Implémentation ascendante
V = (vij ) est la matrice d’adjacence
Floyd-Warshall
D0 := V
for k := 1 to n
Let D(k) = dkij be a new n n matrix
for i := 1 to n
for j := 1 to n
dkij = min dkij 1 ; dik
k 1
+ dkkj 1
Return D(n)
5
Ainsi
0 1 0 1
0 8 +1 4 1 +1 0 8 13 4 1 +1
B +1 0 5 3 +1 +1 C B +1 0 5 3 +1 +1 C
B C B C
B 1 9 0 5 2 +1 C B 0 5 2 +1 C
D1 = B C ; D2 = B 1 9 C
B +1 +1 1 0 +1 +1 C B +1 +1 1 0 +1 +1 C
B C B C
@ +1 +1 +1 2 0 +1 A @ +1 +1 +1 2 0 +1 A
3 11 +1 7 0 0 3 11 16 7 0 0
0 1 0 1
0 8 13 4 1 +1 0 8 13 4 1 +1
B 5 3 1 +1 C C B 5 3 7 +1 C
B +1 0 B 6 0 C
B 1 9 0 5 2 +1 C B 0 5 2 +1 C
D3 = B C ; D4 = B 1 9 C;
B 2 10 1 0 3 +1 C B 2 10 1 0 3 +1 C
B C B C
@ +1 +1 +1 2 0 +1 A @ 1 1 1 2 0 +1 A
3 11 16 7 0 0 3 11 16 7 0 0
0 1 0 1
0 8 5 4 1 +1 0 8 4 3 1 +1
B 5 0 4 3 6 +1 C C B 6 +1 C
B B 5 0 4 3 C
B 1 9 0 5 2 +1 C B 2 +1 C
D5 = B C ; D6 = B 1 9 0 4 C
B 2 10 1 0 +1 +1 C B 2 10 1 0 3 +1 C
B C B C
@ 4 12 3 2 0 +1 A @ 4 12 3 2 0 +1 A
3 11 8 7 0 0 3 11 3 2 0 0
Par dé…nition on a :
= max (5; 1; 2; 4; 3) = 5
de même
Ainsi
exc (centre de gravité) = min (exc (x)) = min (5; 12; 4; 4; 6; +1)
x2S
Par conséquent,
centre gravité =sommet 3 ou sommet 4.
Principe de l’algorithme :
6
Sélectionner le sommet d’excentricité minimale.
liste
123456
exc 5 12 4 4 +1
Exercice 6
On a construit des ponts entre les îles d’un archipel de sorte de pouvoir aller (directement
ou indirectement) de toute île à une autre. De plus, de chaque île part un nombre pair de
ponts. On a remarqué que, lorsqu’un pont est inaccessible pour cause de travaux, on peut
encore aller de toute île à une autre.
2. Prouver le résultat.
Exercice 6(co)
1. La propriété que l’on cherche à prouver est la suivante : dans un graphe simple con-
nexe dont tout sommet est de degré pair, la suppression d’une arête ne détruit pas la
connexité du graphe.
Exercice 7
On donne le graphe suivant dont la matrice de valuation est
0 1
0 4 8 1 1
B 1 0 6 3 4 C
B C
B
M =B 1 4 0 1 5 C C
@ 1 1 1 0 2 A
1 1 1 1 0
1. Trouver le chemin de longueur minimale allant du sommet 1 vers les autres som-
mets du graphe. Résumer les di¤érentes étapes de calcul dans un tableau.
2. Trouver le chemin de longueur maximale allant du sommet 1 vers les autres som-
mets du graphe. Résumer les di¤érentes étapes de calcul dans un tableau.
7
Exercice 7(co)
trouver le chemin de longueur maximale allant du sommet 1 vers les autres som-
mets du graphe. Résumer les di¤érentes étapes de calcul dans un tableau.
3. On a
P (5) = 4; P (4) = 2; P (2) = 3; ; P (3) = 1;
donc
d(5) = V (1; 3) + V (3; 2) + V (4; 5)
et le plus long chemin du sommet 1 vers le sommet 5 est
= (1; 3; 2; 4; 5)
Exercice 8
8
Exercice 8 (co)
Initialisation Notons (s; a; b; c; d; e) = (1; 2; 3; 4; 5; 6)
S = f1g ; S = f2; 3; 4; 5; 6g; d = (0; 5; 1; 1; 1; 1); p = (N IL; 1; 1; N IL; N IL; N IL)
1ere itération : i = 4 car d(4) = min(5; 1; 1; 1; 1) = 1
S = f1; 4g ; S = f2; 3; 5; 6g; les successeurs de 4 dans S sont 2; 3 et 5, ç-à-d S \ (4) =
f2; 3; 5g : On a d(2) prend la nouvelle valeur
d = (0; 3; 4; 1; 6; 1)
9
et
d (x) = min d(y) = min (6; 1; 3; 4) =) x = 2
y2f2;4;5;6g
2e itération : i = 2; d(2) = 3
S = f1; 4; 2g ; S = f3; 5; 6g et S \ (5) = f3; 5g ; On a d(3) prend la nouvelle valeur
d = (0; 3; 4; 1; 5; 8)
et
d (x) = min d(y) = min (4; 5) =) x = 3
y2f3;5g
3e itération : i = 3; d(3) = 4
S = f1; 4; 2; 3g ; S = f5; 6g ; d = (0; 3; 4; 1; 5; 8): On a d(5) prend la nouvelle valeur
d = (0; 3; 4; 1; 5; 8)
4e itération : i = 5; d(5) = 5
S = f1; 4; 2; 3; 5g ; S = f6g ; S \ (5) f6g et d(6) prend la nouvelle valeur
d = (0; 3; 4; 1; 5; 7):
Exercice 9
1. Appliquer l’algorithme de Dijkstra au graphe ci-dessus à partir du sommet XO
3 Montrer à l’aide d’un contre-exemple que cet algorithme n’est pas applicable lorsque
certaines valuations sont strictement négatives.
10
Exercice 9(co)
On applique l’algorithme de Dijkstra. On obtient
d = (0; 4; 1; 2; 7; 4; 5; 4; 8; 6)
On a
d (9) = 6; p (9) = 7; p (7) = 3; p (3) = 2; p (2) = 0
Ainsi
d (9) = V (0; 2) + V (2; 3) + V (3; 7) + V (7; 9)
= 1 + 1 + 2 + 2:
par suite le chemin minimal est
= (0; 2; 3; 7; 9) :
Soit le graphe valué suivant :
2
%3 &4
1 3
&2 . 6
4
On obtient alors le tableau de Dijkstra suivant
sommet d(1) d(2) d(3) d(4)
1 f1g 0 3 +1 2
4 f1; 4g 0 3 + 2
2 f1; 4; 2g 0 3 7 2
3 f1; 4; 2; 3g 0 3 7 2
11
A la dernière itération 4 2 S d’où d(4) = 2 mais
12