Vous êtes sur la page 1sur 20

Travaux Dirigés 3

LE PROBLEME DES FLOTS DANS LES RESEAUX

Exercice 1
Sur le graphe ci-dessous X, Y, Z et T représentent des zones de stationnement à l’intérieur
d’une agglomération et A, B, C, trois portes de sorties de l’agglomération. Les arcs
représentent des voies à sens unique. Tous les véhicules partant d’une zone de
stationnement se dirigent indifféremment vers l’une des portes de sortie à vitesse
sensiblement constante. Une fois passées les limites de l’agglomération, on suppose qu’il
n’y a plus de problème de circulation.

La capacité de chaque voie est donnée en nombre de véhicules par heure, sur les arcs
correspondants dans le graphe ci-dessous :

1000 800
X 1 A
600
500 300
400 1000
Y 2 B
200 800
900
600
Z 3
700

800
700
T C

Considérons le flux donné par le tableau suivant :

Arc (i,j) (X,1) (Y,1) (Y,2) (Z,2) (Z,3) (T,3) (T,C) (1,A) (1,B) (1,2) (2,B) (2,3) (3,B) (3,C)
Flux 1.000 500 400 500 600 700 700 800 400 300 1.000 200 800 700

1. Appliquer l’algorithme de Ford-Fulkerson pour déterminer le flot maximal, en


partant de la solution initiale donnée par le tableau ci-dessus.

Pour pouvoir appliquer l’algorithme de Ford-Fulkerson, on rajoute les nœuds S et


P respectivement source et puits et on les relie aux autres nœuds. On associe des
capacités fictives aux arcs reliant S et P en calculant à chaque fois la somme des
capacités des arcs sortant ou arrivant aux nœuds de transit. On obtient ainsi le
réseau suivant :

RO - Mai 2020 - S. BEN AICHA 1


1000 800
X 1 A 800
600
500 300
1000
400 1000 2400
900 Y 2 B

S 1500 200 800 P


900
1500 600
Z 3
700

800 1400
700
T C

On reporte la solution initiale sur le réseau :

1000/1000 800/800
X 1 A 800/800
400/600
1000/1000 500/500 300/
300
400/400 1000/1000 2200/2400
900/900 Y 2 B
800/800
1100/1500 500/900 200/ P
S
200
600/600
Z 3 1400/1400
1400/1500 700/700
700/800

700/700
T C

Itération 1 : On construit le graphe d’écart relatif à cette solution, on obtient ce


qui suit :

800
1000
X 1 A 800
200
1000 500 300 400
400 1000 200
900 Y 2 B

S 400 400 200 800 2200


P
500
1100 600
Z 3 1400
100 700
1400 100
700
700
T C

On remarque le chemin augmentant S→Z→2→1→B→P on peut augmenter le flot


de 200 sur ce chemin. On remarque qu’on passe par un arc de retour 2→1. On
diminuera donc le flot sur cet arc.

RO - Mai 2020 - S. BEN AICHA 2


Itération 2 : On construit le graphe d’écart relatif à la nouvelle solution :
800
1000
X 1 A 800

1000 500 200 100 600


400 1000
900 Y 2 B

S 200 200 200 800 2400


P
700
1300 600
Z 3 1400
100 700
1400 100
700
700
T C
On remarque qu’on ne peut plus trouver de chemin augmentant entre S et P. Il
s’agit donc de la solution optimale. La valeur maximale du flot est de 4600voitures.

1000/1000 800/800
X 1 A 800/800
600/600
1000/1000 500/500 100/
300
400/400 1000/1000 2400/2400
900/900 Y 2 B
800/800
1300/1500 700/900 200/ P
S
200
600/600
Z 3 1400/1400
1400/1500 700/700
700/800

700/700
T C

2. Donner une coupe minimale : C(NS,NP), NS ={S, X, Y, Z, T, 1, 2, 3}, NP={A, B, C, P}.


Coupe minimale de
capacité 4600

800
1000
X 1 A 800

1000 500 200 100 600


400 1000
900 Y 2 B

S 200 200 200 800 2400


P
700
1300 600
Z 3 1400
100 700
1400 100
700
700
T C

RO - Mai 2020 - S. BEN AICHA 3


Correction avec l’algorithme de marquage :

Etape 1 : Soit le graphe avec la solution initiale :


Etape 2 : A partir du sommet S, on considère tous les arcs :
• (S, X) et (S, Y) sont saturés ;
• (S, Z) n’est pas saturé et Z n’est pas marqué, on indique (+) sur l’arc et on marque
le sommet Z par (M) ;
• (S, T) n’est pas saturé et T n’est pas marqué, on indique (+) sur l’arc et on marque
le sommet T par (M).
• On barre (M) du sommet S et on passe à l’étape 3.

1000/1000 800/800
X 1 A 800/800
400/600
1000/1000 500/500 300/
300
400/400 1000/1000 2200/2400
900/900 Y 2 B
M 800/800
1100/1500 500/900 200/ P
S M
(+) 200
(+) 600/600
Z 3 1400/1400
1400/1500 700/700
700/800
M
700/700
T C

Etape 3 : Sommets marqués :


Sommet Z :
• arc (Z, 2) non saturé et 2 non marqué, on met donc (+) sur l’arc et on marque 2.
• arc (Z, 3) saturé.
• On barre le sommet Z.
Sommet T :
• arc (Z, 3) non saturé et 3 non marqué, on met donc (+) sur l’arc et on marque 3.
• arc (Z, C) saturé.
• On barre le sommet T.

1000/1000 800/800
X 1 A 800/800
400/600
1000/1000 500/500 300/
M 300
400/400 1000/1000 2200/2400
900/900 Y 2 B
M 800/800
1100/1500 500/900 200/ P
S
(+) M (+) M 200
(+) 600/600
Z 3 1400/1400
1400/1500 (+) 700/700
700/800
M
700/700
T C

RO - Mai 2020 - S. BEN AICHA 4


Sommet 2 :
• arc (2, B) saturé.
• arc (Y, 2) a un flux positif, on l’indique par (−) et on marque Y avec M.
• arc (1, 2) a un flux positif, on l’indique par (−) et on marque 1 avec M.
• On barre le sommet 2.
Sommet 3 :
• arc (3, B) saturé.
• arc (3, C) saturé.
• Les arcs (2,3), (Z,3) ont des sommets marqués.
• On barre le sommet 3.

M
1000/1000 800/800
X 1 A 800/800
400/600
1000/1000 500/500 (-) 300/
M
400/400 (-)M 300
1000/1000 2200/2400
900/900 Y 2 B
M 800/800
1100/1500 500/900 200/ P
S
(+) M (+) M 200
(+) 600/600
Z 3 1400/1400
1400/1500 (+) 700/700
700/800
M
700/700
T C
Sommet 1 :
• arc (1, A) saturé.
• arc (X, 1) a un flux positif, on l’indique par (−) et on marque X avec M.
• arc (1, B) non saturé et B non marqué, on met donc (+) sur l’arc et on marque B.
• Les arcs (1,2), (Y,1) ont des sommets marqués.
• On barre le sommet 1.

M M
1000/1000(-) 800/800
X 1 A 800/800
400/600
1000/1000 500/500 (-) 300/ (+)
M M
M 300
400/400 (-) 1000/1000 2200/2400
900/900 Y 2 B
M 800/800
1100/1500 500/900 200/ P
S
(+) M (+) M 200
(+) 600/600
Z 3 1400/1400
1400/1500 (+) 700/700
700/800
M
700/700
T C

RO - Mai 2020 - S. BEN AICHA 5


Sommet B :
• arc (B, P) non saturé et P non marqué, on met donc (+) sur l’arc et on marque P.
• Les arcs (1,B), (2,B) et (3,B) ont des sommets marqués.
• On barre le sommet B.
Il est possible d’améliorer le flot car le sommet P est marqué. Passer à l’étape 4.
On remarque le chemin augmentant S→Z→2→1→B→P on peut augmenter le flot de 200
sur ce chemin. On remarque qu’on passe par un arc de retour 2→1. On diminuera donc le
flot sur cet arc.
M M
1000/1000 (-) 800/800
X 1 A 800/800
400/600
500/500 (-) 300/ (+)
1000/1000
M 300 M
400/400 (-)M 1000/1000 2200/2400
900/900 Y 2 B (+)
M 800/800 M
1100/1500 500/900 200/ P
S
(+) M (+) M 200
(+) 600/600
Z 3 1400/1400
1400/1500 (+) 700/700
700/800
M
700/700
T C
En continuant la résolution de la même manière on finit par obtenir le réseau suivant :

Coupe minimale de
capacité 4600
M M
1000/1000 (-) 800/800
X 1 A 800/800
600/600
(-) 100/
1000/1000 M 500/500
M 300
400/400 (-) 1000/1000 2400/2400
900/900 Y 2 B
M (+) 800/800
1300/1500 700/900 200/ P
S M
(+) M 200
(+) 600/600
Z 3 1400/1400
1400/1500 (+) 700/700
700/800
M
700/700
T C

On voit qu’on ne peut plus marquer aucun sommet puisque tous les arcs sont saturés. On
ne peut donc pas marquer P. La solution actuelle est donc optimale avec un flot égal à
4600 voitures/ heure.
Une coupe minimale : C(NS,NP), NS ={S, X, Y, Z, T, 1, 2, 3}, NP={A, B, C, P}.

RO - Mai 2020 - S. BEN AICHA 6


Exercice 2
On considère un réseau d’adduction d’eau potable modélisé par le graphe orienté valué
R = (N, A, C) suivant :
9
6 6
10
12
1 3 2 5
10
6 3 8 7
5
7
4
15 20 9 6
2 4 8

Les arcs correspondent à des conduites d’eau, et les valeurs sur les arcs désignent les
capacités en m3/heure. Le nœud 1 correspond à une source limitée à 10 m3/heure, et le
nœud 2 à une station de pompage dans un fleuve, limitée à 15 m3/heure. Les nœuds 6, 7
et 8 correspondent à 3 villes dont les demandes respectives sont de 9, 10 et 6 m3/heure.

A cause de la gravité, l’écoulement entre deux nœuds se fait dans un seul sens, sauf entre
les nœuds 3 et 5 où une pompe permet, si nécessaire, de ramener de l’eau du nœud 5 au
nœud 3.

1. Déterminer un flot de débit maximal dans ce réseau en expliquant les différentes


étapes de la méthode utilisée. Le réseau suffira-t-il à satisfaire les besoins des 3
villes 6, 7 et 8 ?

Pour résoudre le problème on commence avec la solution initiale suivante :


9/9
6/6 6
10/12
1 3 2/2 3/5
10/10
5/10
3 2/8 P
2/6 7
S 5
10/15 3/7
3/4 6/6
10/20 9/9
2 4 8

Itération 1 : On construit le graphe d’écart relatif à cette solution initiale :


9
6 6
2
1 3 2 2
10 3
10 5
3 6 P
4 7
S 2 5 5
5 2
4 3 1
3 6
10 9
10 2 4 8
10

On remarque le chemin augmentant S→2→4→5→7→P on peut augmenter le flot


de 4 sur ce chemin.

RO - Mai 2020 - S. BEN AICHA 7


Itération 2 : On construit le graphe d’écart relatif à la nouvelle solution :

9
6 6
2
1 3 2 2
10 3
10 1
3 2 P
4 7
S 2 5 9
1 6
3 1
7 6
6 9
14 2 4 8
14

On remarque qu’on ne peut plus trouver de chemin augmentant entre S et P. Il


s’agit donc de la solution optimale. La valeur maximale du flot est de 24m3/h.
Les besoins cumulés des villes étant 9+10+6=25m3/h, il est clair que ce réseau ne
suffit pas à satisfaire les besoins des 3 villes.

2. Donner la coupe minimale.

Une coupe minimale est donnée par : C(NS,NP), NS ={S, 1, 2, 3, 4}, NP={5, 6, 7, 8, P}.

Coupe minimale de
capacité 24

9
6 6
2
1 3 2 2
10 3
10 1
3 2 P
4 7
S 2 5 9
1 6
3 1
7 6
6 9
14 2 4 8
14

3. Quelles sont les conduites qui doivent être élargies pour augmenter le débit ?
Justifier.

Les conduites qui doivent être élargies sont représentées par les arcs qui
appartiennent à la coupe minimale et qui se dirigent vers P, à savoir : (3,6), (3,5),
(4,5) et (4,8).

RO - Mai 2020 - S. BEN AICHA 8


Coupe minimale de
capacité 24

9/9
6/6 6
10/12
1 3 2/2 3/5
10/10
9/10
3 6/8 P
2/6 7
S 5
14/15 7/7
3/4 6/6
14/20 9/9
2 4 8

4. On crée une conduite du nœud 4 au nœud 7 de capacité 5 m3/heure. Que devient


le flot maximal ? NB : continuer le calcul à partir du flot maximal trouvé en (1.).

En créant une conduite de 4 vers 7, le réseau devient comme suit :


9/9
6/6 6
10/12
1 3 2/2 3/5
10/10
9/10
3 6/8 P
2/6 7
S 5
14/15 0/5
7/7
3/4 6/6
14/20 9/9
2 4 8

Itération 1 : On construit le graphe d’écart associé à cette configuration :

9
6 6
2
1 3 2 2
10 3
10 1
3 2 P
4 7
S 2 5 9
1 6
7 5 3 1
6
6
14 2 4 8
9
14

On remarque le nouveau chemin augmentant S→2→4→7→P on peut augmenter


le flot de 1 sur ce chemin.

RO - Mai 2020 - S. BEN AICHA 9


Itération 2 : On construit le graphe d’écart relatif à la nouvelle solution :

9
6 6
2
1 3 2 2
10 3
10
3 2 P
4 7
S 2 5 10
6
7 4 3 1
6
5 1
15 2 4 8
9
15

On remarque qu’on ne peut plus trouver de chemin augmentant entre S et P. Il


s’agit donc de la solution optimale. La valeur maximale du flot est de 25m3/h. Les
besoins des villes sont ainsi satisfaits.

9/9
6/6 6
10/12
1 3 2/2 3/5
10/10
10/10
3 6/8 P
2/6 7
S 5
15/15 1/5
7/7
3/4 6/6
15/20 9/9
2 4 8

Une nouvelle coupe minimale est donnée par : C(NS,NP), NS ={S, 1, 2, 3, 4, 5, 6, 7, 8},
NP={P}.

Coupe minimale de
capacité 25

9
6 6
2
1 3 2 2
10 3
10
3 2 P
4 7
S 2 5 10
6
7 4 3 1
6
5 1
15 2 4 8
9
15

RO - Mai 2020 - S. BEN AICHA 10


Exercice 3
Formulez le problème du flot max sous la forme d’un programme linéaire.

Variables de décision :
xij : Quantité de flot circulant de i vers j.

Fonction objectif :
Max Σj xSj

Contraintes :
Conservation de flot Σj xij - Σj xji = 0 ∀ i ∈ X\{S, T}
Capacité xij ≤ cij ∀ (i, j) ∈ X * X
xij ≥ 0 ∀ (i, j) ∈ X * X

Exercice 4
Un industriel doit transporter d’urgence 200 tonnes de matériel d’une usine à un chantier
éloigné. Les transporteurs contactés, vu l’urgence, ne peuvent lui offrir qu’une capacité de
transport limitée. Les trajets élémentaires possibles sont décrits par le tableau suivant. Le nœud
1 désigne l’usine et le nœud 6 le chantier. Chaque arc correspond à une ligne de camionnage
ou une liaison ferroviaire, avec une capacité en tonnes et un coût de transport par tonne.
De plus, le nœud 2 est un hub de capacité non limitatrice et à partir duquel partent de gros
camions, le coût de groupage des marchandises en ce nœud est de 5$/tonne. L’industriel veut
savoir quelles quantités expédier sur les différents itinéraires pour acheminer le matériel à coût
minimal.
Nœud Successeurs Mode Capacité (t) Coût ($/t)
1 2 Route 150 50
3 Rail 150 15
2 5 Route 300 20
4 Rail 50 10
3 2 Route 200 30
4 Route 100 60
4 6 Route 150 60
5 6 Route 100 40

1. Quelles simplifications peut-on faire au nœud 5 ? Comment se ramener à un coût sur un


arc au niveau du hub (nœud 2) ? Modifier le réseau en conséquence.
En exploitant les données du problème on obtient le graphe suivant :
Route 300t,
20D/t
Route 2 5 Route
150t, 50D/t 100t, 40D/t
Rail
Route 50t, 10D/t
1 200t, 30D/t 6

Rail Route
150t, 15D/t 3 4 150t, 60D/t
Route
100t, 60D/t

RO - Mai 2020 - S. BEN AICHA 11


Le noeud 5 n’a qu’un seul prédécesseur et qu’un seul successeur. On peut donc le supprimer
en remplaçant les deux arcs (2, 5) et (5, 6) par un arc équivalent (2, 6) de capacité min
(300,100) = 100 tonnes et de coût 20 + 40 = 60.

Le hub 2 peut être éclaté en deux noeuds 2 et 2’, reliés par un arc de capacité infinie (car la
capacité du hub est non limitatrice) et de coût 5. Attention, pour tenir compte du coût de
groupage 5, les arcs du réseau initial (2, 4) et (2, 5) partent désormais de 2’ et non plus de.
Voici le graphe résultant :

Hub
infini, 5D/t
Route 2 2’ Route
150t, 50D/t 100t, 60D/t

Route Rail
1 200t, 30D/t 50t, 10D/t 6

Rail Route
150t, 15D/t 3 4 150t, 60D/t
Route
100t, 60D/t

2. La capacité offerte par les transporteurs permet-elle d’acheminer les 200 tonnes (en
dehors de toute considération de coût) ?

On trouve facilement un flot de débit 200 tonnes. Pour un graphe de taille supérieure, il
faudrait appliquer l’algorithme de Ford-Fulkerson pour calculer le flot maximal et vérifier
si le flux correspondant est bien supérieur ou égal à 200 tonnes. On peut aussi arrêter
l’algorithme de Ford-Fulkerson dès qu’on atteint 200 tonnes.
Exemple de flot de 200 tonnes :

Hub
150/infini, Route
Route 2 5D/t 2’ 100/100t,
150/150t, 60D/t
50D/t
Route Rail
1 200t, 30D/t 50/50t, 6
10D/t

Rail Route
50/150t, 3 4 100/150t,
15D/t Route 60D/t
50/100t,
60D/t

3. Identifier le problème de l’industriel et le résoudre avec un algorithme du cours.

Il s’agit d’un problème de flot de débit imposé (200 tonnes) et de coût minimal.

ITERATION 1

Etape 0 : Prendre pour flot initial ϕ0 un flot nul de valeur v(ϕ0) = 0. Le graphe d’écart G0’(1)
est alors identique au graphe G, poser i = 0.

RO - Mai 2020 - S. BEN AICHA 12


Etape 1 : On applique l’algorithme de Ford pour trouver un chemin de coût minimal allant de
1 à 6 dans le graphe d’écart G0’.

Itération 1 2 3 2’ 4 6
0 0 50 15   
1 0 45 15 55 75 
2 0 45 15 50 65 115
3 0 45 15 50 60 110
4 0 45 15 50 60 110

Le chemin optimal est donc : 1 → 3 → 2 → 2’ → 6, de coût unitaire 110 D/tonne.

Etape 2 : On peut améliorer le flot dans G de la quantité maximale permise par cette chaîne,
soit 100 tonnes, d’où le flot ϕ1 de valeur 100.

Etape 3 : Le graphe d’écart G1’ associé à ce nouveau flot est le suivant :

Hub
infini, 5D/t
Route 2 2’ Route
100, -5D/t 100t, -60D/t
150t, 50D/t
Route
100t, -30D/t Rail
Route
1 Rail 50t, 10D/t 6
100t, 30D/t
100t, -15D/t

Rail Route
50t, 15D/t 3 4 150t, 60D/t
Route
100t, 60D/t

ITERATION 2

Etape 1 : On applique l’algorithme de Ford pour trouver un chemin de coût minimal allant de
1 à 6 dans le graphe d’écart G1’.

Itération 1 2 3 2’ 4 6
0 0 50 15   
1 0 45 15 55 75 
2 0 45 15 50 65 135
3 0 45 15 50 60 125
4 0 45 15 50 60 120
5 0 45 15 50 60 120

Le chemin optimal est donc : 1 → 3 → 2 → 2’ → 4 → 6, de coût unitaire 120 D/tonne.

Etape 2 : On peut améliorer le flot dans G de la quantité maximale permise par cette chaîne,
soit 50 tonnes, d’où le flot ϕ2 de valeur 150.

Etape 3 : Le graphe d’écart G2’ associé à ce nouveau flot est le suivant :

RO - Mai 2020 - S. BEN AICHA 13


Hub
infini, 5D/t
Route 2 2’ Route
150, -5D/t 100t, -60D/t
150t, 50D/t
Route
150t, -30D/t Rail
Route
1 50t, -10D/t Route 6
50t, 30D/t
50t, -60D/t
Rail Route
150t, -15D/t
3 4 100t, 60D/t
Route
100t, 60D/t

ITERATION 3

Etape 1 : On applique l’algorithme de Ford pour trouver un chemin de coût minimal allant de
1 à 6 dans le graphe d’écart G2’.

Itération 1 2 3 2’ 4 6
0 0 50    
1 0 50 20 55  
2 0 50 20 55 80 
3 0 50 20 55 80 140
4 0 50 20 55 80 140

Le chemin optimal est donc : 1 → 2 → 3 → 4 → 6, de coût unitaire 140 D/tonne.

Etape 2 : On peut améliorer le flot dans G de la quantité maximale permise par cette chaîne,
soit 100 tonnes, sauf que on n’a besoin que de 50 tonnes supplémentaires pour atteindre le
flux demandé, d’où le flot ϕ de valeur 200.

C’est la fin car on a atteint le flux imposé de 200 tonnes. La solution optimale est donc la
suivante :
ϕ(1, 2) = 50, ϕ(1, 3) = 150, ϕ(3, 2) = 100, ϕ(2, 2’) = 150, ϕ(3, 4) = 50, ϕ(2’, 4) = 50,
ϕ(2’, 6) = 100, ϕ(4, 6) = 100.
Le flux total = 200 cartons de coût = 100*110 + 50*120 + 50*140 = 24.000 DT.

4. Que faut-il faire en plus pour déterminer le tonnage maximal de marchandise qui
pourrait traverser le réseau, à coût minimal ?
Pour trouver le flot maximal de coût minimal, il suffit de poursuivre l’algorithme du
flot maximal à coût minimal.

On construit le graphe d’écart relatif à la solution précédente mais en augmentant le flot de


la quantité possible c à d 100 au lieu de 50 :

RO - Mai 2020 - S. BEN AICHA 14


Hub
infini, 5D/t
Route 2 2’ Route
150, -5D/t 100t, -60D/t
50t, 50D/t

Route Rail
Route
1 100t, -50D/t 150t, 30D/t 50t, -10D/t Route 6
Route 150t, -60D/t
50t, -30D/t
Rail
150t, -15D/t
3 4
Route
100t, -60D/t
On remarque qu’il n’y a plus de chemin de 1 vers 6. Cette solution est donc optimale.

ϕ(1, 2) = 100, ϕ(1, 3) = 150, ϕ(3, 2) = 100, ϕ(2, 2’) = 150, ϕ(3, 4) = 100, ϕ(2’, 4) = 50,
ϕ(2’, 6) = 100, ϕ(4, 6) = 150.
Le flux total = 250 cartons de coût = 100*110 + 50*120 + 100*140 = 31.000 DT.

Exercice 5
Le responsable d’un projet informatique vient de terminer l’analyse et l’implantation d’un
nouveau système. Il a divisé le travail à effectuer en 5 modules qu’il doit maintenant répartir
entre les 5 programmeurs de l’entreprise.
L’expérience a montré qu’imposer une tâche à un de ses employés ne permet pas d’avoir de
bons résultats. C’est pourquoi le responsable du projet a demandé aux programmeurs leurs
préférences par rapport aux différentes tâches comme l’indique le tableau suivant :

Programmeur Module préféré


Programmeur 1 Module 3,4 ou 5
Programmeur 2 Module 1
Programmeur 3 Module 1 ou 2
Programmeur 4 Module 1,2 ou 5
Programmeur 5 Module 2

On remarque qu’un programmeur ne peut être affecté qu’au plus à un seul module, et qu’un
module ne peut pas être partagé entre plusieurs programmeurs.

1. En modélisant ce problème par un graphe que vous précisez, déterminer l’affectation


optimale des programmeurs aux modules. Est-ce que le chef de projet parviendra à
réaliser la totalité des modules en tenant compte des préférences de ses programmeurs ?

• On associe un sommet Pi à chaque programmeur


• On associe un sommet Mi à chaque module
• Il existe un arc de capacité 1 entre Pi et Mi lorsque le programmeur Pi a une préférence
pour le module Mi
• On ajoute un sommet source S relié à tous les programmeurs avec 1 comme capacité
des arcs.

RO - Mai 2020 - S. BEN AICHA 15


• On ajoute un sommet puits T relié à tous les modules avec 1 comme capacité des arcs.

P1 M1 1
1
1 1
1
1
P2 M2

1 1
1 1
1 1
S P3 M3 T
1
1
1
1 1
P4 1 M4

1 1

P5 M5

On change l’ordre des sommets pour obtenir un graphe plus lisible :

1
P1 1 M3 1
1

M4 1

1 1
1 P4 M5
1
1 1
S 1 T
1 1
1
P2 M1
1

1
P3 1

1
1
P5 M2

En faisant la résolution du problème, on se rend compte que le flot max possible a une valeur
de 4. Il n’est donc pas possible de respecter les préférences des développeurs si on veut affecter
tous les modules.

RO - Mai 2020 - S. BEN AICHA 16


1/1 1/1
P1 1 M3

M4 1

1/1 1/1
1/1 P4 M5
1/1 1
1
S 1/1 T
1 1/1
1/1
P2 M1

1/1
1
P3 1
1/1
1/1
P5 M2

2. De plus le chef de projet a des contraintes de budget à respecter. Il doit affecter les
modules aux programmeurs en assurant un coût minimal. En considérant le salaire de
ses employés et les temps nécessaires pour la réalisation de chaque module, il définit un
coût associé à l’affectation d’un employé à chaque module comme l’indique le tableau
suivant

Coût nécessaire pour compléter le module (TND)


Employé
1 2 3 4 5
1 180 140 160
2 240
3 240 240
4 320 300 240
5 320

a) Modéliser le problème par un graphe pour lequel vous précisez ses éléments ?

• Sur le même réseau construit précédemment, on reporte les coûts


d’affectation entre les sommets programmeurs et les sommets modules
• Entre les sommet source S et les sommets programmeurs les coûts sont nuls.
• Entre les sommets modules et le sommet puits T les coûts sont nuls

RO - Mai 2020 - S. BEN AICHA 17


180
P1 M3
140
160

M4

240
P4 M5
320

S 300 T
240
P2 M1

240
P3 240

320
P5 M2

b) Déterminer la nouvelle affectation optimale des programmeurs aux modules en


tenant toujours compte des préférences des programmeurs.

Pour trouver l’affectation optimale, cela revient à trouver le flot max à coût min. La solution
est trouvée au bout de 4 itérations :

Itération 1 : PCC : S-P1-M4-T avec un coût de 140 DT et un flot de 1


180

180
P1 M3
140
160 140

M4

160
240
P4 M5 140
320

S 300 240 T
240
P2 M1

240
P3 240

240
320
P5 M2

RO - Mai 2020 - S. BEN AICHA 18


Itération 2 : PCC : S-P4-M5-T avec un coût de 240 DT et un flot de 1

180
P1 M3
140
160

M4

240
240
P4 M5 240
320

S 300 240 T
240
P2 M1

240
P3 240

240
320
P5 M2

Itération 3 : PCC : S-P2-M1-T avec un coût de 240 DT et un flot de 1

180
P1 M3
140
160

M4

240
P4 M5 240
320

S 300 240 T
240
P2 M1

240
P3 240

240
320
P5 M2

RO - Mai 2020 - S. BEN AICHA 19


Itération 4 : PCC : S-P3-M2-T avec un coût de 240 DT et un flot de 1

180
P1 M3
140
160

M4

240
P4 M5 240
320

S 300 T
240
P2 M1

240
P3 240

240
320
P5 M2

On ne pourra donc pas affecter le programmeur P5 et le module M3

180
P1 M3
140
160

M4

240
P4 M5 240
320

S 300 T
240
P2 M1

240
P3 240

240
320
P5 M2

RO - Mai 2020 - S. BEN AICHA 20

Vous aimerez peut-être aussi