Vous êtes sur la page 1sur 12

ESSHTS- Département de Mathématiques 2023 2024

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(2) = min(d(2); d(3) + V (3; 2)) = min(7; 1 + 5) = 6;

d(6) prend la nouvelle valeur

min(d (6) ; d(3) + V (3; 6)) = min (1; 1 + 7) = 8;

d(5) prend la nouvelle valeur

min(d (5) ; d(3) + V (3; 5)) = min (1; 1 + 2) = 3;

d’où le nouveau vecteur

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(2) = min(d(2); d(5) + V (5; 2)) = min(6; 3 + 2) = 5;

alors que d(4) prend la nouvelle valeur

d(4) = min(d(4); d(5) + V (5; 4)) = min(+1; 3 + 5) = 8;

d’où le nouveau vecteur

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(4) = min(d(4); d(2) + V (2; 4)) = min(8; 5 + 4) = 8;

alors que d(6) prend la nouvelle valeur

d(6) = min(d(6); d(2) + V (2; 6)) = min(8; 5 + 1) = 6;

d’où le nouveau vecteur

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.

1. Quel est l’itinéraire le plus rapide de v1 à v6 ?


2. S’il y a une escale obligatoire de respectivement 2; 3; 1; 1; 4; 5 heures aux villes v1 ; v2 ; : : : ; v6 ;
quel est alors l’itinéraire le plus rapide de v1 à v6 ?

Exercice 3(co)

1. Appliquons l’algorithme de Dijkstra pour déterminer la valeur d’un chemin minimal


de de v1 à v6 :

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

2. On applique le même algorithme à la nouvelle matrice des durées, obtenue en ajoutant


au vol de vi à vj la durée de l’escale en vj ; c’est-à-dire au graphe de matrice des coûts
0 1
0 6 1 6 1 1
B 5 0 6 3 8 1 C
B C
B 1 7 0 1 8 3 C
B C
B 8 5 1 0 8 4 C
B C
@ 1 7 5 6 0 2 A
1 1 6 5 7 0

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:

2. Appliquer l’algorithme de Floyd au 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é :

exc (x) = max (ppdistance (y; x))


y2S fxg

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

2. Trouver le centre de gravité du graphe.

3. Proposer un algorithme permettant de trouver le centre de gravité d’un graphe.

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 :

exc (1) = max (ppdistance (y; 1))


y2S f1g

= max (ppdistance (y; 1))


y2f2;3;4;5;6g

= max (5; 1; 2; 4; 3) = 5

de même

exc (2) = max (8; 9; 10; 11; 12) = 12


exc (3) = max (4; 4; 1; 2; 3) = 4
exc (4) = max (3; 3; 4; 2; 2) = 4
exc (5) = max (1; 6; 2; 3) = 6
exc (6) = +1

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 :

Appliquer l’algorithme de Floyd.

Calculer l’excentricité de chaque sommet.

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.

1. Traduire ce problème en terme de théorie des graphes.

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.

2. On raisonne par l’absurde, et on suppose que la suppression de l’arête AB entraîne


le fait que le graphe n’est plus connexe. Alors A et B sont dans deux composantes
connexes disjointes (si on peut encore aller de A à B sans l’arête AB, c’est que celle-
ci ne servait à rien...). Soit G1 la composante connexe contenant A. Alors tous les
sommets de G1 sont de degré pair, sauf A qui est de degré impair. Cela signi…e que la
somme des degrés des éléments de G1 est un nombre impair, ce qui est impossible !

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.

3. Donner le chemin de longueur maximale du sommet 1 vers le sommet 5.

4. Peut-on utiliser l’agorithme de Dijkstra?

7
Exercice 7(co)

1. L’algorithme de Floyed fait l’a¤aire.

2. En utilisant l’algorithme de Ford-Bellman, qui consiste à


A: d(i) = 1 pour 2 i 5
B : d (i) = max (d(i) ; maxj21 i (d(j) + V (j; i))
on obtient
P (1) P (2) P (3) P (4) P (5) d (1) d (2) d (3) d (4) d (5)
Initi 1 1 1 1 1 0 1 1 1 1
1ere ité 1 1 1 2 3 0 4 8 7 13
2eme ité 1 3 1 2 4 0 12 8 15 17
3eme ité 1 3 1 2 4 0 12 8 15 17

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)

4. Non; à cause d’un circuit absorbant (circuit de longueur négative).

Exercice 8

Appliquer l’algorithme de Dijkstra au graphe suivant :

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(2) = min(d(2); d(4) + V (4; 2)) = min(5; 1 + 2) = 3;

d(3) prend la nouvelle valeur

min(d (3) ; d(4) + V (4; 3)) = min (1; 1 + 3) = 4;

d(5) prend la nouvelle valeur

min(d (5) ; d(4) + V (4; 5)) = min (1; 1 + 5) = 6;

d’où le nouveau vecteur

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(3) = min(d(3); d(2) + V (2; 3)) = min(4; 3 + 1) = 4;

alors que d(5) prend la nouvelle valeur

d(5) = min(1; d(2) + V (2; 5)) = min(1; 3 + 2) = 5;

d’où le nouveau vecteur

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(5) = min(d(5); d(3) + V (3; 5)) = min(5; 4 + 1) = 5;

alors que d(6) prend la nouvelle valeur

d(6) = min(d(6); d(3) + V (3; 6)) = min(8; 4 + 4) = 8;

d’où le nouveau vecteur

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(6) = min(8; d(5) + V (5; 6)) = min(8; 5 + 2) = 7;

d’où le nouveau vecteur

d = (0; 3; 4; 1; 5; 7):

Exercice 9
1. Appliquer l’algorithme de Dijkstra au graphe ci-dessus à partir du sommet XO

2 Déterminer la composition du chemin de valeur minimale allant de X0 à X9.

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

V (1; 4) = V (1; 2) + V (2; 3) + V (3; 4)


= 3 + 4 6 = 1:

12

Vous aimerez peut-être aussi