Info H 3000
Info H 3000
I Programmation linéaire 7
1 Modélisation de problèmes 9
3 Définitions – Notations 35
4 Résultats fondamentaux 39
5 Algorithme de dénombrement 45
6 Algorithme du simplexe 47
6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Hypothèses de départ . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3 Passage d’une solution de base à une autre solution de base . . . . 47
6.4 Variation de la fonction économique lors d’un changement de base 49
6.5 Choix des indices r et k. . . . . . . . . . . . . . . . . . . . . . . . 50
6.6 Expression de la valeur de la fonction économique en un point
quelconque admissible, en fonction de sa valeur en une solution de
base admissible explicitée . . . . . . . . . . . . . . . . . . . . . . . 50
6.7 Critère d’optimabilité . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.8 Critère pour le cas où la solution est infinie . . . . . . . . . . . . . 51
6.9 Résumé de l’algorithme du Simplexe pour un problème à minimum 52
6.10 Exemple numérique et disposition pratique . . . . . . . . . . . . . 52
4 TABLE DES MATIÈRES
6.11 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.12 Méthode de la base artificielle . . . . . . . . . . . . . . . . . . . . 54
6.13 Convergence de l’algorithme du Simplexe . . . . . . . . . . . . . . 57
6.14 Annexe : démonstrations des formules du changement de base . . 61
7 La dualité 63
7.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Propriétés fondamentale de la dualité . . . . . . . . . . . . . . . . 64
7.3 Exemple numérique . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.4 Interprétation économique de quelques coefficients . . . . . . . . . 67
7.5 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . . 68
Première partie
Programmation linéaire
9
Chapitre 1
Modélisation de problèmes
Pour satisfaire aux contraintes légales, l’entreprise doit placer au moins 40%
de son capital suivant les deux premières modalités, au plus 35% suivant les deux
suivantes et au plus 35% suivant les deux dernières.
Chacun de ces produits demande, pour son usinage, des heures de fabrication
unitaires sur les machines A,B,C,D,E comme indiqué ci-dessous (tableau 1).
Les produits utilisent 3 fournitures F1 ,F2 ,F3 comme indiqué dans le tableau
2.
Quelle est la production optimale, sachant que les marges brutes des produits
sont 1.7 pour P1 et 3.2 pour P2 ?
Tableau 1 A B C D E
P1 0 1,5 2 3 3
P2 3 4 3 2 0
Disponibilité totale 39 60 57 70 57
Tableau 2 F1 F2 F3
P1 0 12 8
P2 5 36 0
3
Unités kg m m2
Stock disponible 55 432 136
13
D’autre part, la production est limitée par la capacité des unités de traitement,
les possibilités de vente et les stockages disponibles (cf. tableau).
Bénéfices/T 4 5 5
14 CHAPITRE 1. MODÉLISATION DE PROBLÈMES
Type de Disponibilités PC PC
composants mensuelles grand public professionnel
Châssis standard 60 1 0
Châssis professionnel 50 0 1
Disk drive 120 1 2
Le nombre maximum d’objets qu’on peut écouler par mois est de 4900 pour
A1 , 5400 pour A2 et 2000 pour A3 .
chute
bobineau
bobine
Projets 1 2 3 4 5 6 Capital
Périodes disponible
1 7 2 3 0 1 4 10
2 6 3 2 1 0 1 10
3 1 2 3 3 2 1 8
4 10 8 6 4 2 1 20
20 CHAPITRE 1. MODÉLISATION DE PROBLÈMES
Soient
1 si la j e opération sur le produit i nécessite la machine k
rijk =
0 sinon
tik le temps que passe le produit i sur la machine k.
Le budget global disponible est égal à M et nombre total d’hommes est égal à
H. La durée de réalisation de chaque projet est une fonction linéaire (décroissante)
donnée du budget et du nombre d’hommes affectés à ce projet.
8
x2 x4
10
9
5
SOURCE x1 PUITS
xn
12
x3 xi xj
k ij
(capacite)
25
Chapitre 2
2.1 Définitions
Un programme linéaire est un problème d’optimisation d’une fonction linéaire
sous des contraintes linéaires.
Un tel problème peut toujours s’exprimer de la façon suivante :
minimiser c 1 x1 + c 2 x2 + . . . + c n xn
a11 x1 + . . . + a1n xn ≤ b1 ,
a x + ... + a x
i1 1 in n ≤ bi ,
sous les contraintes (1)
am1 x1 + . . . + amn xn ≤ bm ,
x1 ,x2 , . . . xn ≥ 0.
Les inégalités {xi ≥ 0, ∀i} sont justifiées par le fait que dans les problèmes
concrets, les xi représentent en général des quantités économiques qui ne peuvent
pas être négatives. On peut de toute façon se ramener à ces inégalités, soit en
posant x0 i = xi − Mi (où Mi est une borne inférieure connue de xi ), soit en
remplaçant xi par yi − zi , où yi ≥ 0 et zi ≥ 0.
30 CHAPITRE 2. DIFFÉRENTS TYPES DE PROGRAMMES LINÉAIRES
Le schéma suivant résume les liens qui existent entre les différents types de P.L.
Une flèche d’un type vers un autre signifie “contient comme cas particulier”.
Nous donnons ensuite un exemple numérique à 2 variables et la représentation
graphique associée à chaque type de P.L.
Schéma récapitulatif
!() *,#+#"%* $ &*- "'" 2 $1*4365
.0// 1*$
2.1. DÉFINITIONS 31
x ≤4
1
Soit x1 + x 2 ≤6
−x1 + x2 ≤ 3
1
maximiser − x1 + x2
2
Si x1 et x2 ≥ 0 ⇒ (1) continu
Si x1 et x2 = 0 ou 1 ⇒ (2) booléen
Si x1 ≥ 0 et x2 = 0 ou 1 ⇒ (4) mixte-booléen
x x x
2 2 2
6 6 6
3 3 3
x x x
1 1 1
0 4 6 0 4 6
0 4 6
(1) (2) (3)
x x
2 2
6 6
3 3
x x
1 1
0 4 6 0 4 6
(4) (5)
32 CHAPITRE 2. DIFFÉRENTS TYPES DE PROGRAMMES LINÉAIRES
a) Pour exprimer que (x1 ,x2 , . . . ,xn ) doit satisfaire au moins k égalités parmi
les m suivantes :
on écrira
gi (x1 ,x2 , . . . ,xn ) ≥ δi g i , ∀i
Xm
δi ≤ m − k
i=1
δi = 0 ou 1, ∀i,
où g i est une borne inférieure de la fonction gi .
b) Pour exprimer que g(x1 ,x2 , . . . ,xn ) ≥ 0 chaque fois que f (x1 ,x2 , . . . ,xn ) ≥ 0,
on exprimera que (x1 ,x2 , . . . ,xn ) doit satisfaire au moins 1 inégalité parmi
2.3. EXPRESSION DE CONTRAINTES LOGIQUES 33
les 2 suivantes : (
f (x1 ,x2 , . . . ,xn ) ≤ 0
g(x1 ,x2 , . . . ,xn ) ≥ 0.
34 CHAPITRE 2. DIFFÉRENTS TYPES DE PROGRAMMES LINÉAIRES
35
Chapitre 3
Définitions – Notations
c 1 x1 + c 2 x2 + . . . + c n xn ,
où c1 ,c2 , . . . ,cn ,a11 ,a12 , . . . ,amn ,b1 ,b2 , . . . ,bm sont des nombres réels donnés.
Les notations suivantes seront également utilisées:
n
X
min c j xj ,
j=1
Xn
aij xj ≤ bi , i = 1,2, . . . ,m,
j=1
xj ≥ 0, ∀j,
ou encore
36 CHAPITRE 3. DÉFINITIONS – NOTATIONS
n
X
min c j xj ,
j=1
X n
xj P j ≤ P 0 ,
j=1
xj ≥ 0, ∀j,
a1j b1
.. ..
. .
Pj = aij , ∀j et P0 = bi ;
. .
.. ..
amj bm
ou encore
min{CX : AX ≤ b, X ≥ 0},
Variables d’écarts
Un programme linéaire peut toujours être transformé de telle sorte que les
contraintes soient des égalités, moyennant l’introduction de variables supplémentaires
appelées variables d’écarts (qui n’interviennent pas dans la fonction économique).
Ainsi, toute inégalité du type
≤
ai1 x1 + ai2 x2 + . . . + ain xn bi
≥
peut s’écrire
+
ai1 x1 + ai2 x2 + . . . + ain xn ti = bi , où ti ≥ 0.
−
Solutions de base
Etant donné un programme linéaire mis sous la forme
min{CX : AX = b, X ≥ 0},
37
Une base sera une matrice B(m × n), extraite de A, et dont le déterminant
est 6= 0 : cette notion n’a évidemment de sens que si A est de rang m.
Si
B = (Pj1 Pj2 . . . Pjm ) ,
l’ensemble I(B) = {j1 ,j2 , . . . ,jm } sera appelé l’ensemble des indices de base et
l’ensemble complémentaire, noté J(B), sera appelé l’ensemble des indices hors-
base.
La solution de base est dite explicitée lorsque B est une matrice unité.
Une solution de base est dite dégénérée si certaines variables en base sont
nulles pour cette solution.
38 CHAPITRE 3. DÉFINITIONS – NOTATIONS
39
Chapitre 4
Résultats fondamentaux
Théorème 1 :
L’ensemble P = {X : AX ≤ b, X ≥ 0} est convexe.
Démonstration :
Si X1 et X2 sont des éléments de P , alors ∀λ ∈ [0,1], λX1 + (1 − λ)X2 est aussi
un élément de P ; en effet
(
A (λX1 + (1 − λ)X2 ) = λAX1 + (1 − λ)AX2 ≤ λb + (1 − λ)b = b,
λX1 + (1 − λ)X2 ≥ 0.
Théorème 2 :
(sans démonstration)
L’ensemble P = {X : AX ≤ b,X ≥ 0} est soit vide, soit un polyèdre convexe,
soit un ensemble polyédrique convexe non borné.
Exemples :
x1 ≤ 2
−x1 + x2 ≥ 1
x − x2 ≤ 0
x1 + x 2 ≤ 3 1
x1 − x 2 ≥ 1 −2x1 + x2 ≤ 0
−x1 + x2 ≤ 1
x1 ≥ 0, x2 ≥ 0
x1 ≥ 0, x2 ≥ 0
x1 ≥ 0, x2 ≥ 0
x2 x2 x2
P
P=0 P
x1 x1 x1
40 CHAPITRE 4. RÉSULTATS FONDAMENTAUX
Théorème 3 :
Lorsque P est un polyèdre convexe, l’ensemble des solutions optimales du pro-
gramme linéaire min{CX : X ∈ P } contient au moins un sommet de P .
Rappel : un point d’un polyèdre est un sommet s’il ne peut être vu comme la
combinaison linéaire convexe de deux autres points du polyèdre; tout point d’un
polyèdre peut être vu comme une combinaison linéaire convexe des sommets du
polyèdre.
Démonstration :
soit S1 ,S2 , . . . ,Sk les sommets de P et soit cSm = mincSi . Pour tout point X du
i
polyèdre, on a
Xk
X= α i Si ,
i=1
d’où
k
X
CX = αi CSi ≥ CSm ,
i=1
P = {X : AX = b,X ≥ 0}.
41
Théorème 4 :
Si A est de rang m, alors tout sommet de P = {X : AX = b,X ≥ 0} est une
solution de base admissible.
Démonstration :
soit S = (s1 ,s2 , . . . ,sk ,0, . . . ,0) un sommet de P , où si > 0, i = 1,2, . . . ,k : on a
donc
X k
sj P j = P 0 (cf. chapitre 3).
j=1
Montrons que P1 ,P2 , . . . ,Pk sont linéairement indépendants. Si ce n’est pas le cas,
il existe α1 ,α2 , . . . ,αk non tous nuls, tels que
k
X
αi Pj = 0.
j=1
c’est-à-dire que les points X1 = (s1 + α1 , . . . ,sk + αk ,0, . . . ,0) et X2 = (s1 −
α1 , . . . ,sk − αk ,0, . . . ,0) sont des éléments de P .
Comme
1 1
S = X1 + X2 ,
2 2
on obtient une contradiction avec le fait que S est un sommet: P1 ,P2 , . . . ,Pk sont
donc bien linéairement indépendants (et par conséquent, k ≤ m).
Si k = m, alors S est la solution de base (admissible) correspondant à la base
B = (P1 · P2 . . . Pk ).
Si k < m, alors S est la solution de base (admissible) correspondant à la base
B = (P1 · P2 . . . Pk · Pi1 . . . Pim−k ) obtenue en choisissant, dans A, (m − k) colonnes
formant avec (P1 . . . Pk ) une matrice à déterminant 6= 0, ce qui est toujours pos-
sible puisque A est de rang m.
42 CHAPITRE 4. RÉSULTATS FONDAMENTAUX
Théorème 5 :
Si A est de rang m, alors toute solution de base admissible est un sommet de P
(Réciproque du théorème précédent).
Démonstration :
soit S = (s1 ,s2 , . . . ,sm , 0, . . . ,0) une solution de base admissible : cela signifie que
la matrice B = (P1 P2 . . . Pm ) a un déterminant 6= 0 et que si ≥ 0, i = 1,2, . . . ,m.
Si si = 0, ∀i, alors S ne peut pas être combinaison linéaire convexe de deux autres
points du polyèdre, et est donc un sommet. Sinon, supposons que S ne soit pas
un sommet de P : on a donc
S = λX1 + (1 − λ)X2
où
0 ≤ λ ≤ 1, X1 P, X2 P.
On en déduit
x1i = x2i = 0, ∀i > m,
d’où
BX1 = BX2 = b,
ce qui n’est possible que si X1 = X2 = S.
43
CONCLUSIONS
Il résulte des théorèmes précédents que la recherche d’une solution opti-
male d’un programme linéaire peut se limiter à la considération des sommets
du polyèdre P , c’est-à-dire des solutions de base admissibles. Bien entendu, il
peut arriver qu’il y ait plusieurs solutions optimales ou que la solution optimale
soit infinie, comme illustré dans les exemples ci-dessous. Rappelons également
que les programmes linéaires ne contenant que 2 variables peuvent aisément être
résolus graphiquement.
Chapitre 5
Algorithme de dénombrement
Il résulte des théorèmes précédents que, lorsque A est de rang m, une solution
optimale du programme linéaire opt {CX : AX = b, X ≥ 0} peut être obtenue
par application de l’algorithme suivant, appelé algorithme de dénombrement.
x1 ≤ 2,
x + x2 ≤ 3,
1
−x1 + x2 ≤ 1,
x1 ≥ 0,x2 ≥ 0,
max 1/2x1 + x2 .
0 0 2 3 1 oui oui A 0
0 0 non
0 3 2 0 −2 oui non
0 1 2 2 0 oui oui B 1
2 0 0 2 3 oui oui E 1
3 0 −1 0 4 oui non
−1 0 3 4 0 oui non
2 1 0 0 2 oui oui D 2
2 3 0 −2 0 oui non
1 2 1 0 0 oui oui C 5/2
X1
B D
A E X2
47
Chapitre 6
Algorithme du simplexe
6.1 Principe
Cet algorithme consiste à partir d’une première solution de base admissible
explicitée et à se déplacer de solution de base admissible en solution de base
admissible en améliorant toujours la fonction économique.
(
xi = bi , ∀i ∈ I(B),
xj = 0, ∀j ∈ J(B),
X
Z0 = c i bi .
i∈I(B)
Pour obtenir une autre solution de base explicitée admissible, il suffit de réécrire
le système des contraintes sous une forme A0 X = b0 où b0 ≥ 0 et où A0 contient
une matrice unité B 0 . La nouvelle solution sera
(
xi = b0i , ∀i ∈ I(B 0 ),
xj = 0, ∀j ∈ J(B 0 ),
X
Z00 = ci b0i .
i∈I(B 0 )
aik
a0ij = aij − arj , ∀i ∈ I(B) ∩ I(B 0 ),
ark
arj
a0kj = ,
ark
aik
b0i = bi − br , ∀i ∈ I(B) ∩ I(B 0 ),
ark
br
b0k = .
ark
X X
Z00 = ci b0i = ci b0i + ck b0k
i∈I(B 0 ) i∈I(B 0 )∩I(B)
X aik br
= ci bi − b r + ck
ark ark
i∈I(B 0 )∩I(B)
X aik br
= ci bi − b r + ck
ark ark
i∈I(B)
X br X
= c i bi − ci aik − ck
ark
i∈I(B) i∈I(B)
br
= Z0 − (Zk − ck ) ,
ark
où on a posé
X
Zk = ci aik .
i∈I(B)
50 CHAPITRE 6. ALGORITHME DU SIMPLEXE
ark > 0 (ark est appelé le pivot du changement de base)
bi − br aik ≥ 0, ∀i ∈ I(B) ∩ I(B 0 ).
ark
Les deux dernières conditions peuvent se résumer comme suit :
br bi
= min . (∗)
ark aik >0 aik
En pratique, on choisit, dans un problème à minimum (resp. maximum) l’indice
k correspondant à la quantité Zk − ck la plus positive (resp. négative) et on
détermine ensuite l’indice r sur base de la relation (*).
Dans la section 6.7, nous considérerons le cas où il n’existe pas d’indice k
satisfaisant la condition voulue; dans la section 6.8, nous considérerons le cas où
il n’existe pas d’indice r tel que ark > 0. L’étude de ces deux cas repose sur le
résultat établi dans la section 6.6.
Il vient
n
X
Z0 (Q) = cj xj (Q)
j=1
X X
= ci xi (Q) + cj xj (Q)
i∈I(B) j∈J(B)
X X X
= c i bi − aij xj (Q) + cj xj (Q)
i∈I(B) j∈J(B) j∈J(B)
X X X
= c i bi − ci aij − cj xj (Q)
i∈I(B) j∈J(B) i∈I(B)
X
= Z0 − (Zj − cj ) xj (Q).
j∈J(B)
de l’algorithme du Simplexe.
x1 +t1 = 2,
x1 + x 2 +t2 = 3,
−x1 + x2 +t3 = 1,
x1 ≥ 0, x2 ≥ 0, t1 ≥ 0, t2 ≥ 0, t3 ≥ 0,
max 1 x1 + x2 .
2
L’application de l’algorithme du Simplexe fournit la suite de tableaux qui suit.
1/2 1 0 0 0 → (cj )
CB Base b x1 x2 t1 t2 t3
0 t1 2 1 0 1 0 0
0 t2 3 1 1 0 1 0
0 t3 1 −1 1 0 0 1
0 −1/2 −1 0 0 0 → (Zj − cj )
0 t1 2 1 0 1 0 0
0 t2 2 2 0 0 1 −1
1 x2 1 −1 1 0 0 1
1 −3/2 0 0 0 1
0 t1 1 0 0 1 −1/2 1/2
1/2 x1 1 1 0 0 1/2 −1/2
1 x2 2 0 1 0 1/2 1/2
5/2 0 0 0 3/4 1/4
Solution optimale
6.11 Remarques
La colonne CB contient les ci des variables en base qui sont indiquées, dans
le bon ordre, dans la colonne “Base”.
54 CHAPITRE 6. ALGORITHME DU SIMPLEXE
Tout tableau Simplexe définit une solution de base admissible : les coordonnées
en base de cette solution se lisent dans la colonne b (les coordonnées hors-base
sont nulles) et la valeur de la fonction économique est le produit scalaire des
colonnes CB et b.
On démontre aisément que cette règle s’applique non seulement aux aij et aux
bi , mais aussi aux Zj − cj et à Z0 .
Ce nouveau P.L. contient une matrice unité et peut donc être résolu par l’algo-
rithme du Simplexe. Pour que ce programme soit équivalent au précédent, il faut
que, dans sa solution, toutes les variables vi (appelées variables artificielles)
soient nulles.
C’est la raison pour laquelle elles ont été introduites dans la fonction économique
avec un coefficient M supposé arbitrairement grand (dans un problème à maxi-
mum, on les introduira avec un coefficient −M ) : pour réaliser le minimum, l’al-
gorithme du Simplexe va rejeter les variables artificielles hors-base. De façon
précise :
– si, dans la solution optimale du nouveau P.L., toutes les variables artificielles
sont nulles, alors cette solution est optimale pour le P.L. initial;
2x1 + x2 ≥ 8,
x + x2 ≥ 6,
1
x1 + 5x2 ≥ 10,
x1 ,x2 ≥ 0,
min x1 + 2x2
1 2 0 0 0 M M M
Base cB P0 P1 P2 Pt1 Pt2 Pt3 P v1 P v2 P v3
v1 M 8 2 1 −1 0 0 1 0 0
v2 M 6 1 1 0 −1 0 0 1 0
v3 M 10 1 5 0 0 −1 0 0 1
0 −1 −2 0 0 0 0 0 0
24M 4M 7M −M −M −M 0 0 0
v1 M 6 9/5 0 −1 0 1/5 1 0
v2 M 4 4/5 0 0 −1 1/5 0 1
x2 2 2 1/5 1 0 0 −1/5 0 0
4 −3/5 0 0 0 −2/5 0 0
10M 13/5M 0 −M −M 2/5M 0 0
x1 1 10/3 1 0 −5/9 0 1/9 0
v2 M 4/3 0 0 4/9 −1 1/9 1
x2 2 4/3 0 1 1/9 0 −2/9 0
6 0 0 −1/3 0 −1/3 0
4/3M 0 0 4/9M −M 1/9M 0
x1 1 5 1 0 0 −5/4 1/4
t1 0 3 0 0 1 −9/4 1/4
x2 2 1 0 1 0 1/4 −1/4
7 0 0 0 −3/4 −1/4
0 0 0 0 0 0
x1 = 5, x2 = 1, t1 = 3, t2 = t3 = 0;
Ce cyclage est dû au fait qu’à certaines étapes, on peut choisir arbitraire-
ment la variable qui sort, entre plusieurs candidates (plusieurs bi /aik minimaux).
Nous présentons ensuite une technique de perturbation qui, grâce à un choix plus
systématique de la variable qui sort, évite le cyclage.
Base cB P0 P1 P2 P3 P4 P5 P6 P7
−3/4 150 −1/50 6 0 0 0
P5 0 0 1/4 −60 −1/25 9 1 0 0
P6 0 0 1/2 −90 −1/50 3 0 1 0 choix
P7 0 1 0 0 1 0 0 0 1
0 3/4 −150 1/50 −6 0 0 0
P1 −3/4 0 1 −240 −4/25 36 4 0 0
P6 0 0 0 30 3/50 −15 −2 1 0 pas choix
P7 0 1 0 0 1 0 0 0 1
0 0 30 7/50 −33 −3 0 0
P1 −3/4 0 1 0 8/25 −84 −12 8 0
P2 150 0 0 1 1/500 −1/2 −1/15 1/30 0 choix
P7 0 1 0 0 1 0 0 0 1
0 0 0 2/25 −18 −1 −1 0
P3 −1/50 0 25/8 0 1 −525/2 −75/2 25 0
P2 150 0 −1/160 1 0 1/40 1/120 −1/60 0 pas choix
P7 0 1 −25/8 0 0 525/2 72/2 −25 1
0 −1/4 0 0 3 2 −3 0
P3 −1/50 0 −125/2 10.500 1 0 50 −150 0
P4 6 0 −1/4 40 0 1 1/3 −2/3 0 choix
P7 0 1 125/2 −10.500 0 0 −50 150 1
0 1/2 −120 0 0 1 −1 0
P5 0 0 −5/4 210 1/50 0 1 −3 0
P4 6 0 1/6 −30 −1/50 1 0 1/3 0 pas choix
P7 0 1 0 0 1 0 0 0 1
0 7/4 −330 −1/50 0 0 2 0
P5 0 0 1/4 −60 −1/25 9 1 0 0
P6 0 0 1/2 −90 −1/50 3 0 1 0
P7 0 1 0 0 1 0 0 0 1
0 3/4 −150 1/50 −6 0 0 0
6.13. CONVERGENCE DE L’ALGORITHME DU SIMPLEXE 59
Technique de perturbation
n n
X X
aij xj = bi + j aij = bi ()
j=1 j=1
xj ≥ 0
X
min c j xj ,
j
bi ()
où est une quantité positive arbitrariement petite. Il est évident que les
aik
seront tous différents (puisque la matrice A contient une matrice unité) et tous
différents de 0 (ce qui assure que la fonction économique sera strictement meilleure
à chaque étape).
Dans les tableaux suivants, l’exemple numérique précédent a été traité par
cette technique de perturbation.
Base cB P0 P1 P2 P3 P4 P5 P6 P7
−3/4 150 −1/50 6 0 0 0
P5 0 0 1/4 −60 −1/25 9 1 0 0
P6 0 0 1/2 −90 −1/50 3 0 1 0
P7 0 1 0 0 1 0 0 0 1
0 3/4 −150 1/50 −6 0 0 0
P1 −3/4 0 1 −240 −4/25 36 4 0 0
P6 0 0 0 30 3/50 −15 −2 1 0
P7 0 1 0 0 1 0 0 0 1
0 0 30 7/50 −33 −3 0 0
P1 −3/4 0 1 0 8/25 −84 −12 8 0
P2 150 0 0 1 1/500 −1/2 −1/15 1/30 0
P7 0 1 0 0 1 0 0 0 1
0 0 0 2/25 −18 −1 −1 0
P1 −3/4 0 1 −160 0 −4 −4/3 8/3 0
P3 −1/50 0 0 500 1 −250 −100/3 50/3 0
P7 0 1 0 −500 0 250 100/3 −50/3 1
0 0 −40 0 2 5/3 −7/3 0
P1 −3/4 2/125 1 −168 0 0 −4/5 12/5 2/125
P3 −1/50 1 0 0 1 0 0 0 1
P4 6 1/250 0 −2 0 1 2/15 −1/15 1/250
−1/125 0 −36 0 0 7/5 −11/5 −1/125
P1 −3/4 1/25 1 −180 0 6 0 2 1/25
P3 −1/50 1 0 0 1 0 0 0 1
P5 0 3/100 0 −15 0 15/2 1 −1/2 3/100
−1/20 0 −15 0 −21/2 0 −3/2 −1/20
6.14. ANNEXE : DÉMONSTRATIONS DES FORMULES DU CHANGEMENT DE BASE61
En particulier
P
Pk = aik Pi + ark Pr ,
i∈I(B)
i6=r
d’où
1 P aik
Pr = Pk − Pi ,
ark i∈I(B) ark
i6=r
et par conséquent
P arj aik arj
Pj = aij − Pi + Pk ,
i∈I(B) ark ark
i6=r
(1)
P br aik bk p k
P = bI − Pi +
0
i∈I(B) ark ark
i6=r
Après le changement de base, les vecteurs Pi , i ∈ I(B 0 ) forment aussi une base
de Rm et nous avons
X
Pj = a0ij Pi ,
i∈I(B 0 )
(2) X
P 0 = b0i Pi .
i∈I(B 0 )
2e démonstration
Avant le changement de base, le système est sous la forme
X
xi + aij xj = bi , i ∈ I(B).
j∈J(B)
62 CHAPITRE 6. ALGORITHME DU SIMPLEXE
En remplaçant xk par cette expression dans les autres équations, nous obtenons
le système suivant :
aik P aik arj
xi − xr + aij − xj
ark j∈J(B) ark
j6=k
aik br i ∈ I(B)
(1) = bi − avec
ark i 6= r
xr P arj br
xk + + xj = .
ark j∈J(B) ark ark
j6=k
c’est-à-dire
P
xi + a0ir xr + a0ij xj = b0i i ∈ I(B), i 6= r
j∈J(B)
j6=
Pk
xk + a0kr xr + a0kj xj = b0k .
j∈J(B)
j6=k
Chapitre 7
La dualité
7.1 Définition
Etant donné un programme linéaire mis sous la forme
AX ≥ b,
X ≥ 0,
min cX,
Exemple:
x1 ≤2
1
y1 + y 2 − y 3 ≥ 2
x1 + x 2 ≤ 3,
Le dual de est y2 + y 3 ≥ 1
−x1 + x2 ≤ 1,
y1 ,y2 ,y3 ≥ 0,
x1 , x2 ≥ 0,
1
max x1 + x 2 min (2y1 + 3y2 + y3 ) .
2
Théorème
Si X et Y sont des solutions admissibles respectivement du primal et du dual,
alors la valeur de la fonction économique du primal en X est supérieure ou égale
à la valeur de la fonction économique du dual en Y .
Démonstration:
cX ≥ Y AX = Y b.
Théorème
Si X̃ et Ỹ sont des solutions admissibles respectivement du primal et du dual et
si cX̃ = Ỹ b, alors X̃ et Ỹ sont des solutions optimales respectivement du primal
et du dual.
7.2. PROPRIÉTÉS FONDAMENTALE DE LA DUALITÉ 65
Démonstration:
corollaire immédiat du théorème précédent.
Théorème
Démonstration:
Af X = b f ,
où
Af = K −1 A,
bf = K −1 b,
cf Af − c ≤ 0,
Définissons alors
Ỹ = cf K −1 .
On obtient
Ỹ A = cf K −1 A = cf Af ≤ c,
66 CHAPITRE 7. LA DUALITÉ
et
Ỹ b = cf K −1 b = cf bf .
Il résulte du deuxième théorème que Ỹ est optimale pour le dual.
b) Si la solution optimale du primal est infinie, alors il résulte du premier
théorème que le programme dual n’a pas de solution admissible.
c) Le programme suivant et son dual sont tous les deux contradictoires
x − x2 ≥ 2,
1
−x1 + x2 ≥ 1,
x1 ,x2 ≥ 0,
min(−x1 − 2x2 ).
Remarque:
Les composantes de Ỹ = cf K −1 sont en fait les quantités Zj introduites au
chapitre; par conséquent, les valeurs optimales des variables du dual se lisent
immédiatement dans le tableau Simplexe optimal du programme primal.
Solution du primal
1/2 1 0 0 0
c(B) v(B) P0 P x1 P x2 P t1 P t2 P t3
0 t1 2 1 0 1 0 0
0 t2 3 1 1 0 1 0
0 t3 1 -1 1 0 0 1
0 -1/2 -1 0 0 0
0 t1 2 1 0 1 0 0
0 t2 2 2 0 0 1 -1
1 x2 1 -1 1 0 0 1
1 -3/2 0 0 0 1
0 t1 1 0 0 1 -1/2 1/2
1/2 x1 1 1 0 0 1/2 -1/2
1 x2 2 0 1 0 1/2 1/2
5/2 0 0 0 3/4 1/4
7.4. INTERPRÉTATION ÉCONOMIQUE DE QUELQUES COEFFICIENTS67
Solution du dual
2 3 1 0 0 M
c(B) v(B) P0 P y1 P y2 P y3 P s1 P s2 Pv
2 y1 1/2 1 1 -1 -1 0 0
M v 1 0 1 1 0 -1 1
1 0 -1 -3 -2 0 0
M 0 M M 0 −M 0
3 y2 1/2 1 1 -1 -1 0 0
M v 1/2 -1 0 2 1 -1 1
3/2 1 0 -4 -3 0 0
M/2 −M 0 2M M −M 0
3 y2 3/4 1/2 1 0 -1/2 -1/2 1/2
1 y3 1/4 -1/2 0 1 1/2 -1/2 1/2
5/2 -1 0 0 -1 -2 2
0 0 0 0 0 0 −M
on obtient
Z0 (Q) = Z0 − (Zk − ck ).
Par conséquent, si B est une base optimale d’un problème à minimum (resp.
maximum), Zk − ck représente la quantité que l’on gagne (resp. que l’on perd) sur
la fonction économique lorsqu’on augmente xk (variable hors-base) d’une unité,
pour autant que le point ainsi obtenu soit admissible, c’est-à-dire que
bi − aik ≥ 0, ∀i.
68 CHAPITRE 7. LA DUALITÉ
D’autre part, il peut être intéressant, dans les applications, de connaı̂tre l’ef-
fet, sur la valeur optimale de la fonction économique. d’un accroissement (d’une
diminution) du second membre d’une contrainte.
où (
b0i = bi ∀i 6= î,
b0î = bî + 1.
En supposant que la base optimale soit la même pour les deux programmes, on
obtient
cf b0f = cf K −1 b0 = cf K −1 (b + eî ),
où eî est le vecteur dont toutes les composantes sont nulles sauf la composante î
qui vaut 1.
Par conséquent,
cf b0f = cf bf + Zî
Théorème
Soit un programme linéaire et son dual exprimés sous la forme
( (
AX − t = b, Y A + s = c,
X ≥ 0, t ≥ 0, Y ≥ 0, s ≥ 0,
Démonstration:
C.S.: cX̃ = (Ỹ A + s̃) · X̃ = Ỹ AX̃ = Ỹ · (b + t̃) = Ỹ b.
Remarque:
ces conditions peuvent encore s’écrire
s̃j · x̃j = 0, ∀j,
ỹi · t̃i = 0, ∀i.
70 CHAPITRE 7. LA DUALITÉ
71
Chapitre 8
8.1 Principe
Cet algorithme consiste à partir d’une première solution de base non admis-
sible explicitée et à se déplacer de solution de base non admissible en solution de
base non admissible en faisant des concessions sur la fonction économique.
br = min bi .
i
Des formules de changement de base, il résulte que, pour que b0k soit positif, il faut
que le pivot ark soit < 0. Si un tel pivot n’existe pas, le système des contraintes
est contradictoire, puisque ( P
j arj xj ≥ 0,
br < 0.
D’autre part, comme
arj
Zj0 − cj = Zj − cj − (Zk − ck ),
ark
on voit que k doit être choisi de telle sorte que
Zk − c k Zj − c j
ark = minarj <0 arj pour un problème à minimum
Zk − c k Zj − c j
= maxarj <0 pour un problème à maximum
ark arj
pour que le critère d’optimalité soit encore satisfait après le changement de base.
Par contre, pour appliquer l’algorithme dual Simplexe, il suffit que les Zj − cj
c’est-à-dire −cj , aient le bon signe, ce qui peut s’obtenir comme suit.
et soit
cf = min cj .
j∈N
On obtient
P
xf = M − xj − xn+1
j∈N
j6=f
et donc n
X X P
c j xj = c j xj + (cj − cf )xj − cf xn+1 + cf M.
j∈N
j=1 j∈P j6=f
min (−x3 + x4 + x5 ) ,
x3 + x 6 = M
x3 +x6 + M,
x1 +x4 −x5 −x6 = −M − 2,
x2 −x4 +x5 +x6 = M + 1,
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0,
min (−M + x4 + x5 + x6 )
0 0 0 1 1 1
v(B) c(B) P0 P1 P2 P3 P4 P5 P6
x3 0 M 0 0 1 0 0 1
x1 0 −2 − M 1 0 0 1 -1 -1
x2 0 1+M 0 1 0 -1 1 1
0 0 0 0 -1 -1 -1
x3 0 M 0 0 1 0 0 1
x5 1 2+M -1 0 0 -1 1 1
x2 0 -1 1 1 0 0 0 0
2+M -1 0 0 -2 0 0
b) min(2x1 + x2 ) min(2x1 + x2 + M v1 + M v2 + M v3 )
3x + x2 ≥ 3 3x +x2 −t1 +v1 =3
1
1
4x1 + 3x2 ≥ 6 4x1 +3x2 −t2 +v2 =6
x1 + 2x2 ≥ 2 x1 +2x2 −t3 +v3 = 2
2 1 0 0 0 M M M
v(B) c(B) P0 P1 P2 P t1 P t2 P t3 P v1 P v2 P v3
v1 M 3 3 1 -1 0 0 1 0 0
v2 M 6 4 3 0 -1 0 0 1 0
v3 M 2 1 2 0 0 -1 0 0 1
0 -2 -1 0 0 0 0 0 0
11M 8M 6M −M −M −M 0 0 0
x1 2 1 1 1/3 -1/3 0 0 0 0
v2 M 2 0 5/3 4/3 -1 0 1 0
v3 M 1 0 5/3 1/3 0 -1 0 1
2 0 -1/3 -2/3 0 0 0 0
3M 0 10/3M 5/3M −M −M 0 0
x1 2 4/5 1 0 -2/5 0 -1/5 0
v2 M 1 0 0 1 -1 1 1
x2 1 3/5 0 1 1/5 0 -3/5 0
11/5 0 0 -3/5 0 -1/5 0
M 0 0 M −M M 0
x1 2 3/5 1 0 -3/5 1/5 0
t3 0 1 0 0 1 -1 1
x2 1 6/5 0 1 4/5 -3/5 0
12/5 0 0 -2/5 -1/5 0
0 0 0 0 0 0
76 CHAPITRE 8. L’ALGORITHME DUAL SIMPLEXE
min(2x1 + x2 ) min(2x1 + x2 )
−3x1 −x2 +t1 = −3
3x1 + x2 ≥ 3
4x1 + 3x1 ≥ 6 −4x1 −3x2 +t2 = −6
x1 + 2x2 ≥ 2
−x1 −2x2 +t3 = −2
x1 ,x2 ≥ 0 x1 ,x2 ,t1 ,t2 ,t3 ≥ 0
2 1 0 0 0
v(B) c(B) P0 P x1 P x2 P t1 P t2 P t3
t1 0 -3 -3 -1 1 0 0
t2 0 -6 -4 -3 0 1 0
t3 0 -2 -1 -2 0 0 1
0 -2 -1 0 0 0
t1 0 -1 -5/3 0 1 -1/3 0
x2 1 2 4/3 1 0 -1/3 0
x3 0 2 5/3 0 0 -2/3 1
2 -2/3 0 0 -1/3 0
x1 2 3/5 1 0 -3/5 1/5 0
x2 1 6/5 0 1 4/5 -3/5 0
t3 0 1 0 0 1 -1 1
12/5 0 0 -2/5 -1/5 0
Soit n
X
am+1,j xj ≤ bm+1 ,
j=1
8.9. ADJONTION D’UNE CONTRAINTE 77
ou encore
X
a0m+1,j xj + s = b0m+1 ,
j∈J(B)
où ( P
a0m+1,j = am+1,j − i∈I(B) am+1,i aij
P
b0m+1 = bm+1 − i∈I(B) am+1,i bi .
L’adjonction de cette ligne et de la colonne s au tableau Simplexe donne un
nouveau tableau contenant une matrice unité et où les Zj − cj sont inchangés
(Zj − cs étant nul).
Deuxième partie
Chapitre 1
1.1 Définitions
– Un graphe orienté est un couple (X,U ), où X est un ensemble fini d’éléments
appelés sommets et U est un sous-ensemble de X × X, dont les éléments
sont appelés arcs.
Les sommets du graphe sont représentés par des points et les arcs par des
flèches joignant ces points. Sauf mention contraire, nous supposons qu’il
existe au plus une flèche dans chaque sens entre deux points.
Exemple
x2
x1 x3
x6
x4
x5
X = {x1 ,x2 ,x3 ,x4 ,x5 ,x6 } U = {(x1 ,x2 ),(x2 ,x1 ),(x3 ,x4 ),(x4 ,x4 ),(x5 ,x2 )}
82CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
– Un chemin dans (X,U ) est une suite de sommets telle que si xk et x` sont
deux sommets consécutifs de cette suite, alors (xk ,x` ) ∈ U . Dans l’exemple
précédent, (x5 ,x2 ,x1 ,x2 ) est un chemin.
Un circuit dans (X,U ) est un chemin dont le dernier sommet coı̈ncide avec
le premier.
Un chemin (circuit) est dit élémentaire s’il contient une et une seule fois
chacun des sommets qui le constituent (excepté le sommet initial dans le
cas du circuit).
Un chemin (circuit) est dit hamiltonien s’il contient une et une seule fois
chacun des sommets du graphe (excepté le sommet initial dans le cas du
circuit).
Un chemin (circuit) est dit eulérien s’il passe une et une seule fois par chaque
arc du graphe.
– Le sous-graphe d’un graphe (X,U ) engendré par Y ⊂ X est le graphe dont
les sommets sont les éléments de Y et dont les arcs sont les éléments de U
qui ont leurs extrémités dans Y .
– Le graphe partiel d’un graphe (X,U ) engendré par V ⊂ U , est le graphe
(X,V ).
Un sous-graphe partiel est un sous-graphe d’un graphe partiel.
– La matrice d’adjacence du graphe (X,U ) où {X = {x1 ,x2 , . . . ,xn } est la
matrice carrée A = (aij ), à n2 éléments, où
(
aij = 1 ssi (xi ,xj ) ∈ U,
aij = 0 ssi (xi ,xj ) 6= U.
La matrice d’adjacence de l’exemple ci-dessus est
x1 x2 x3 x4 x5 x6
0 1 0 0 0 0
x1
1 0 0 0 0 0
x2
x3 0 0 0 1 0 0
x4 0 0 0 1 0 0
x4
0 1 0 0 0 0
x6 0 0 0 0 0 0
1.1. DÉFINITIONS 83
– Un graphe non orienté est un couple (X,E), où X est un ensemble fini
d’éléments appelés sommets et E est un ensemble de paires de sommets
appelées arêtes. Les sommets sont représentés par des points et les arêtes
par des lignes joignant ces points. Sauf mention contraire, nous consdérons
des graphes simples, c’est-à-dire où
1) entre deux sommets, il existe au plus une arête,
2) il n’existe pas d’arête du type {x,x}
Exemple
x2
x1 x3
x6
x4
x5
X = {x1 ,x2 ,x3 ,x4 ,x5 ,x6 } E = {{x1 ,x2 },{x2 ,x4 },{x2 ,x5 },{x3 ,x4 }}
Remarque
Tout graphe orienté symétrique (i.e. où (xi ,xj ) ∈ U ⇒ (xj ,xi ) ∈ U ) et sans
boucle peut être représenté, sans perte d’information, par un graphe non
orienté, et vice-versa.
– Une chaine dans (X,E) est une suite de sommets telle que si xk et x` sont
deux sommets consécutifs de cette suite, alors {xk ,x` } ∈ E.
– Un cycle dans (X,E) est une chaı̂ne dont le dernier sommet coı̈nicide avec
le premier.
Ces notions peuvent aussi être utilisées pour les graphes orientés dans les
cas où l’orientation des arcs n’est pas prise en considération.
84CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
– Un graphe (orienté ou non) est valué si à chaque arc (ou arête) est associée
une valeur.
1.2. NIVEAUX, RANGS ET CIRCUITS DANS LES GRAPHES ORIENTÉS85
Γ(x) = {y ∈ X : (x,y) ∈ U }
L’obtention des niveaux d’un graphe est importante dans certaines applications,
notamment dans les problèmes d’ordonnancement. On peut la réaliser par l’ap-
plication de l’algorithme suivant.
2. X(k) est l’ensemble des sommets correspondant aux lignes non barrées ne
contenant que des 0 ou des 1 barrés;
si X(k) = ∅, aller en 4.;
sinon, barrer les lignes et les colonnes correspondant aux sommets de X(k),
et aller en 3.
3. Faire k = k + 1 et aller en 2.
Exemple
1 2 3 4 5 6
1 0 1 1 1 1 1
2 0 0 1 0 0 0
3 0 0 0 0 0 0
4 0 0 1 0 0 0
5 1 0 0 1 0 1
6 1 0 1 1 0 0
Conclusions :
X(0) = {3}
X(1) = {2,4}
Le graphe admet au moins un circuit.
1.2. NIVEAUX, RANGS ET CIRCUITS DANS LES GRAPHES ORIENTÉS87
2 3
1 4
6 5
i1 = 1
C = {1} i2 = 5
C = {1,5} i3 = 1 ⇒ circuit (1,5,1)
ou
i3 = 6
C = {1,5,6} i4 = 1 ⇒ circuit (1,5,6,1)
Les rangs d’un graphe s’obtiennent de manière analogue aux niveaux, mais on
considère les prédécesseurs des sommets au lieu de leurs successeurs (dans l’algo-
rithme, on travaille sur les colonnes au lieu de travailler sur les lignes).
Déterminer les niveaux (ou les rangs) d’un graphe offre un moyen pratique de
numéroter les sommets du graphe de telle sorte que si un sommet en précède un
autre, il reçoive un numéro supérieur (ou inférieur)
88CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
Exemple
1 2 3 4 5 6
1 0 1 0 0 1 0
2 0 0 1 0 0 0
3 0 0 0 1 0 0
4 0 0 0 0 0 0
5 0 0 0 1 0 0
6 0 0 0 0 0 0
Niveaux Rangs
0 {4,6} {1,6}
1 {5,3} {2,5}
2 {2} {3}
3 {1} {4}
1.3. L’ARBRE PARTIEL MINIMUM 89
Exemple
Etant donné un graphe simple valué, il s’agit de rechercher un graphe partiel qui
soit un arbre et dont la somme des valeurs des arêtes soit minimum.
Exemple
1 2 1 2
6 6
8
15 12
10
4 4
11 11
14 9
7 13 7
3 3
90CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
Applications
Résolution du problème
Théorème de base
Pour tout ensemble de sommets A ⊂ X, nous notons EA l’ensemble des arêtes
qui ont une extrémité dans A et une extrémité dans X \ A.
Si H = (X,F ) est un arbre partiel minimum dans G = (X,E) alors ∀A ⊂ X, F
contient l’arête de valeur minimum de EA .
Démonstration.
Soit A ⊂ X et soit e l’arête de valeur minimum de EA .
Supposons que e 6∈ F ; dans ce cas, F ∪{e} contient un cycle qui doit nécessairement
contenir une autre arête e0 de EA puisque e relie A à X \ A. Si on définit
F 0 = [F ∪ {e}] \ {e0 },
alors (X,F 0 ) est un arbre partiel dont la valeur est inférieure à celle de (X,F ).
En effet :
(C.Q.F.D.)
Algorithme de PRIM
Algorithme de KRUSKAL
Algorithme de SOLLIN
Exemples de bornes
n2
γ(G) ≥ ,
n2 − 2m
n
γ(G) ≥ ,
n − mini di
γ(G) ≤ max di + 1,
i
Applications
Exemple
1 2 1 2
3
3
5 4 5 4
Propriétés
Si l’on ajoute d’une manière quelconque des sommets sur les arêtes des 2 graphes
ci-dessus, on obtient les graphes de Kuratowski (qui ne sont évidemment pas pla-
naires).
Théorème
Une condition nécessaire et suffisante pour qu’un graphe soit planaire est qu’il
n’admette aucun sous-graphe partiel qui soit un graphe de Kuratowski.
On verra cependant que certains algorithmes exigent des cij ≥ 0 et ne sont donc
applicables que pour des problèmes à minimum.
– On pose λ1 = 0 et λi = +∞, ∀i 6= 1.
– On cherche un arc (xi ,xj ) tel que
λj − λi > cij
et on remplace λj par
λ0j = λi + cij .
98CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
λ n − λ p1 = c p1 n ,
Théorème
Le chemin (x1 xpk−1 xpk−2 . . . xp1 xn ) est optimal.
Démonstration : soit (x1 xq1 xq2 . . . xqr xn ) un chemin quelconque de valeur Q. Par
construction, on a
λq1 − λ1 ≤ c1q1 ,
λ q2 − λ q1 ≤ c q1 q2 ,
..
.
λ n − λ qr ≤ c qr n .
En additionnant ces égalités, on obtient, puisque λ1 = 0:
λn ≤ Q.
x2 2 x4
cij x1 x2 x3 x4 x5
3
5 x1 0 3 2 ∞ ∞
5 3
x1 x2 ∞ 0 5 2 ∞
7 x5 x3 ∞ ∞ 0 3 7
2
x4 ∞ ∞ ∞ 0 5
x3 x5 ∞ ∞ ∞ ∞ 0
λ1 = 0 et λi = +∞, ∀i;
λ2 − λ1 > 3 ⇒ λ02 = 3;
λ3 − λ1 > 2 ⇒ λ03 = 2;
λ4 − λ02 > 2 ⇒ λ04 = 5;
λ5 − λ04 > 5 ⇒ λ05 = 10;
λ05 − λ03 > 7 ⇒ λ005 = 9.
cij x1 x2 x3 x4 x5 x6 x7
x1 0 7 3 8 ∞ ∞ ∞
x2 ∞ 0 ∞ ∞ 3 ∞ ∞
x2 3 x5 x3 ∞ 3 0 ∞ 10 8 15
7 1
x1 3
10 x6
3
8
x4 ∞ ∞ 2 0 ∞ ∞ 9
6
x3 15 x5 ∞ ∞ ∞ ∞ 0 1 ∞
8 x7
2
9 x6 ∞ ∞ ∞ ∞ ∞ 0 6
x4 x7 ∞ ∞ ∞ ∞ ∞ ∞ 0
λ1 = 0 et λi = ∞, ∀i;
λ2 − λ1 > 7 ⇒ λ02 = 7;
λ3 − λ1 > 3 ⇒ λ03 = 3;
λ4 − λ1 > 8 ⇒ λ04 = 8;
λ5 − λ02 > 3 ⇒ λ05 = 10
λ6 − λ03 > 8 ⇒ λ06 = 11;
λ7 − λ03 > 15 ⇒ λ07 = 18;
λ07 − λ06 > 6 ⇒ λ007 = 17;
λ02 − λ03 > 3 ⇒ λ002 = 6;
λ05 − λ002 > 3 ⇒ λ005 = 9;
λ06 − λ005 > 1 ⇒ λ006 = 10;
λ7 ” − λ006 > 6 ⇒ λ000
7 = 16;
λ000 00
7 − λ6 = c67
00 00
λ6 − λ5 = c56
00 00
chemin optimal (x1 x3 x2 x5 x6 x7 ), ce qui donne les
λ5 − λ2 = c25 ⇒
λ002 − λ03 = c32
chemins optimaux de x1 à x2 ,x3 ,x5 ,x6 et x7 .
0
λ −λ =c
3 1
13
c’est-à-dire lorsqu’il n’est plus possible d’améliorer les valeurs des chemins
optimaux allant de x1 aux xi .
4. Remarque
76: : 7<;
>
= =
798 >
: 74=
@
7?>
λi (2) λi (1) x1 x2 x3 x4 x5
0 0 0 3 2 ∞ ∞
3 3 ∞ 0 5 2 ∞
2 2 ∞ ∞ 0 3 7
5 ∞ ∞ ∞ ∞ 0 5
9 ∞ ∞ ∞ ∞ ∞ 0
0(1) 3(1) 2(1) 5(2) 9(3) λi (2)
0(1) 3(1) 2(1) 5(2) 9(3) λi (3)
x2 3 x5
7 1
x1 3
10 x6
3
8
6
x3 15
8 x7
2
9
x4
Chemins optimaux : (x1 ,x1 ),(x1 ,x3 ,x2 ),(x1 ,x3 ),(x1 ,x4 )
(x1 ,x3 ,x2 ,x5 ),(x1 ,x3 ,x2 ,x5 ,x6 ),
(x1 ,x3 ,x2 ,x5 ,x6 ,x7 )
Notons
Etape 1:
λi (1) = c1i , ∀i 6= 1
λ1 (1) = 0 = λ̄1
n1 = 1
M (1) = {1}
Etape k + 1:
λ (k + 1) = min{λi (k), λ̄nk + cnk i }, ∀i 6∈ M (k)
i
λ̄nk+1 = mini λi (k + 1)
M (k + 1) = M (k) ∪ {nk+1 }.
3. Proposition
1) λi (k) est la valeur du chemin optimal de x1 à xi parmi ceux qui ne
passent que par des sommets de M (k − 1);
2) λ̄nk est la valeur du chemin optimal de x1 à xnk et il ne passe que par
des sommets de M (k − 1).
λj (k + 1) ≤ µ < λ̄nk+1 ,
4. Exemple numérique
Trouver les chemins de valeur minimum entre x1 et les autres sommets du
graphe suivant.
A6C C A<D
F
E E
A9B F
C A4E
G
A?F
λ̄i x1 x2 x3 x4 x5
0 0 3 2 ∞ ∞
3 ∞ 0 5 2 ∞
2 ∞ ∞ 0 3 7
5 ∞ ∞ ∞ 0 5
9 ∞ ∞ ∞ ∞ 0
0 3(1) 2(1) ∞ ∞ λi (1)
3(1) 2(1) ∞ ∞ λi (2)
3(1) 5(3) 9(3) λi (3)
5(3) 9(3) λi (4)
9(3) λi (5)
x2 3 x5
7 1
x1 3
10 x6
3
8
6
x3 15
8 x7
2
9
x4
λ̄i x1 x2 x3 x4 x5 x6 x7
0 0 7 3 8 ∞ ∞ ∞
6 ∞ 0 ∞ ∞ 3 ∞ ∞
3 ∞ 3 0 ∞ 10 8 15
8 ∞ ∞ 2 0 ∞ ∞ 9
9 ∞ ∞ ∞ ∞ 0 1 ∞
10 ∞ ∞ ∞ ∞ ∞ 0 6
16 ∞ ∞ ∞ ∞ ∞ ∞ 0
0 7(1) 3(1) 8(1) ∞ ∞ ∞ λi (1)
7(1) 3(1) 8(1) ∞ ∞ ∞ λi (2)
6(3) 8(1) 13(3) 11(3) 18(3) λi (3)
8(1) 9(2) 11(3) 18(3) λi (4)
9(2) 11(3) 17(4) λi (5)
10(5) 17(4) λi (6)
16(6) λi (7)
108CHAPITRE 1. QUELQUES PROBLÈMES DE LA THÉORIE DES GRAPHES
109
Chapitre 2
t(i) ≥ a(i).
la tâche j ne peut commencer avant que la tâche i ait atteint un degré d’avan-
cement α(i,j) suffisant :
où 0 ≤ α(i,j) ≤ 1.
pour que la tâche j puisse débuter, il faut que le temps écoulé depuis le début
de la tâche i ne soit pas supérieur à tij :
Remarque : nous ne traiterons pas ici du cas des contraintes disjonctives (liées
par la conjonction “ou”) pour lesquelles il vaut mieux, en général, adopter un
algorithme spécifique au problème traité.
2.2. LA MÉTHODE DU CHEMIN CRITIQUE 111
Exemples.
– La tâche j doit débuter au moins 5 semaines après le début des travaux :
t(j) ≥ [t0 + 0] + 5.
d(j)
t(j) ≤ t0 + 5,
112 CHAPITRE 2. LES PROBLÈMES D’ORDONNANCEMENT
ou
t0 ≥ [t(j) + d(j)] − d(j) − 5.
d(j)
-d(j)-5
d(j)
-d(j)-5
debutdestavaux
d(j)
d(i)
2.2. LA MÉTHODE DU CHEMIN CRITIQUE 113
c’est-à-dire (
t(j) ≥ [t(i) + d(i)] + 2,
t(i) ≥ [t(j) + d(j)] − d(j) − d(i) − 2.
d(j)
2
-d(j)-d(i)-2
d(i)
c’est-à-dire (
t(j) ≥ [t(i) + d(i)] − d(i) + 2,
t(i) ≥ [t(j) + d(j)] − d(j) − 2.
d(j)
-d(i)+2 -d(j)-2
d(i)
ou encore
t(j) ≥ [t(i) + d(i)] + 5 − d(j).
114 CHAPITRE 2. LES PROBLÈMES D’ORDONNANCEMENT
d(j)
5-d(j)
d(i)
– La tâche j ne peut pas débuter tant que la moitié de la tâche i n’est pas
achevée :
d(i)
- 1 d(i)
2
d(j)
0
d(i) d(j) d(i) d(j)
donne
Il faut cependant se garder d’introduire dans le graphe des contraintes qui n’y
existaient pas. Ainsi
2.2. LA MÉTHODE DU CHEMIN CRITIQUE 115
La date de fin au plus tard de la tâche i (LF (i)) est celle dont le dépassement
provoquerait un allongement de la durée totale des travaux : elle s’obtient en
retranchant de T la valeur du chemin maximum entre la fin de i et la fin des
travaux. La date de début au plus tard de i (LS(i)) est évidemment égale à sa
date de fin au plus tard moins sa durée.
On obtient donc finalement les dates de début (et de fin) au plus tôt et au
plus tard de toutes les tâches, de manière à terminer les travaux en un temps T .
La marge libre de i est le retard que l’on peut se permettre sur i sans perturber
les dates au plus tôt des tâches qui suivent : elle s’obtient en soustrayant la fin
au plus tôt de i du début au plus tôt des tâches qui la suivent et en prenant le
minimum des valeurs obtenues.
2.2.6 Exemple
En vue de l’exploitation d’une mine, on décide de construire un port sur le
canal qui passe non loin de là, une route et une voie de chemin de fer reliant la
mine au port et une cité ouvrière.
Le tableau suivant reprend les 10 tâches à effectuer, leur durée en mois et leurs
conditions de démarrage.
Mise en graphe
Graphe simplifié
IP(2)
PP(2)
R(4) C(5)
D(3) F(1)
MM(5) M(7)
MP(6) P(8)
118 CHAPITRE 2. LES PROBLÈMES D’ORDONNANCEMENT
Résolution du problème
Tâches Durées Tâches Début au Fin au Fin au Début Marge Marge Tâche
antérieures au plus plus tôt plus tard plus tard libre totale cri-
tôt E.S. E.F. L.F. L.S. tique
PP 2 - 0 2 14 12 0 12
D 3 - 0 3 12 9 0 9
MM 5 - 0 5 14 9 9 9
MP 6 - 0 6 6 0 0 0 *
IP 2 PP 2 4 16 14 3 12
R 4 D 3 7 16 12 0 9
F 1 D 3 4 14 13 10 10
P 8 MP 6 14 14 6 0 0 *
C 5 PP,D,IP,R 7 12 21 16 9 9
M 7 D,MM,MP, 14 21 21 14 0 0 *
F,P
1. la date au plus tôt à laquelle peuvent commencer les tâches dont ce sommet
représente le début (case de gauche);
2. la date au plus tard à laquelle doivent finir les tâches dont ce sommet
représente la fin (case de droite).
2.2. LA MÉTHODE DU CHEMIN CRITIQUE 119
2 14
IP(2)
PP(2)
7 16
C(5)
D(3) R(4)
0 0 3 12 21 21
F(1)
MM(5) M(7)
MP(6) 14 14
P(8)
6 6
M
C
P
F
R
IP
MP
M
D
P
2 4 6 10 20
120 CHAPITRE 2. LES PROBLÈMES D’ORDONNANCEMENT
0 a(i) i
i d(i) j
2.3. LA MÉTHODES DES POTENTIELS 121
i d(i)+f(i,j) j
i (i,j) . d(i) j
j -t ij i
-tij
d(i) + t ij -d(j)
i j
d(i) - t ij-d(j)
a(i)
0 i
-a(i)
2.3.2 Exemple
Le problème présenté au paragraphe 2.2.6 donne le graphe suivant.
au plus tôt et au plus tard ainsi que les marges libres et totales. Les résultats se
présentent évidemment comme dans la méthode précédente.
Aucun algorithme exact n’a été proposé jusqu’ici pour résoudre ce problème.
Par contre, de nombreux algorithmes heuristiques existent dans la littérature. A
titre d’illustration, montrons sur un exemple numérique le type de raisonnement
auquel on peut se livrer.
instant.
6
F
5
R
4
IP R
3
IP IP C C C C C
2
D D IP IP R R R C C C C C
1
PP PP R IP R R R C C C C C M M M M M M M
0 2 4 6 14 20
3
IP IP F C C C C C
2
D D IP IP R R R R C C C C C
1
PP PP D IP IP R R R R C C C C C M M M M M M M
0 2 4 6 14 20
Algorithme
1. Ranger les tâches par ordre croissant de leur date de début au plus tard
(les premières de la liste sont donc celles qu’on peut reculer le moins). En
cas d’ex-aequo, prendre d’abord la tâche qui a la plus petite marge libre.
2. Considérer les tâches dans l’ordre obtenu et les placer au plus tôt, compte
tenu de leur date de début au plus tôt et des contraintes cumulatives.
Numéro 1 2 3 4 5 6 7 8 9 10
Tâche MP P D MM R PP F M IP C
Début au plus tard 0 6 9 9 12 12 13 14 14 16
Marge libre 0 0 0 9 0 0 10 0 3 9
Début au plus tôt 0 6 0 0 3 0 3 14 2 7
Deuxième étape
MP : pas d’ouvrier
P: pas d’ouvrier
D: commence en 0, durée 3, 1 équipe
MM : pas d’ouvrier
R: commence en 3, durée 4, 2 équipes
PP : commence en 0, durée 2, 1 équipe
F: commence en 3, durée 1, 1 équipe
M: commence en 14, durée 7, 1 équipe
IP : ne peut pas commencer avant 7, à cause de la contrainte cumulative;
il y a donc un recul de 5 semaines par rapport à la date de début plus tôt;
comme la marge libre est de 3, il faut reculer les tâches qui suivent IP
de 2 semaines ⇒ C peut commencer au plus tôt en 9. et sa marge libre diminue de 2.
C: commence en 9, durée 5, 3 équipes.
Solution
126 CHAPITRE 2. LES PROBLÈMES D’ORDONNANCEMENT
3
F IP IP C C C C C
2
PP PP R R R R IP IP C C C C C
1
D D D R R R R IP IP C C C C C M M M M M M M
0 2 4 6 14 20
Remarque
S’il avait été impossible de caser la tâche C entre 9 et 14, on aurait dû, en
appliquant l’algorithme, la placer après M et allonger ainsi la durée totale des
travaux de 5 semaines, alors que le recul d’une semaine de M aurait permis de
placer C entre 10 et 15 (algorithme heuristique).
0 x < a,
f (x) = (x − a)α (b − x)γ
, a ≤ x ≤ b,
(b − a)α+γ+1 · β(α + 1,γ + 1)
0 x > b,
où
Z 1
β(m,n) = um−1 (1 − u)n−1 du.
0
f(x)
x
a c b
αγ + βα
c=
α+γ
a,b,c correspondent aux ai ,bi ,ci définis dans le paragraphe précédent; “adapter”
une distribution β à ces valeurs signifie choisir α et γ de manière à satisfaire la
relation ci-dessus.
129
Chapitre 3
3.1 Définitions
1. Réseau de transport : graphe orienté simple G(X,U ) où à chaque arc (xi ,xj )
est associé un nombre cij ≥ 0, éventuellement infini, et où il existe un
sommet x1 tel que Γ−1 (x1 ) = ∅ et un sommet xn tel que Γ(xn ) = ∅;
cij est la capacité de l’arc (xi ,xj ); x1 est l’entrée (ou source) du réseau et xn
est la sortie (ou puits).
Exemple
x2 3 x6
3 5
7 x4 3
2
2
6 x9
x1 4 5 x8
1 3
6 x5 8
1 x7
4
x3
ϕij peut être vue comme une quantité de matière parcourant l’arc (xi ,xj );
elle est non-négative et inférieure ou égale à la capacité cij (contraintes (1)
et (2)); la contrainte (3), appelée loi de conservation, exprime que la quantité
totale de matière entrant en un sommet doit être égale à la quantité totale
de matière qui en sort (pour autant que ce sommet ne soit ni l’entrée, ni la
sortie). Elle implique que
n
X n
X
(∗) ϕ1j = ϕjn ,
j=1 j=1
Démonstration de (*)
n
X n
X
(3) ⇒ ϕij = ϕji , ∀i 6= 1,n
j=1 j=1
XX X X XX X X
⇒ ϕij − ϕ1j − ϕnj = ϕji − ϕj1 − ϕjn
i j j j i j j j
| {z } | {z }
0 0
X X
⇒ ϕ1j = ϕjn
j j
Les arcs (xi ,xj ) tels que xi ∈ M et xj ∈ M̄ seront appelés les arcs de la
coupe.
n
X n
X
max ϕ1j ( ou max ϕjn )
j=1 j=1
Théorème
Dans tout réseau, la valeur de tout flot est inférieure ou égale à la valeur de toute
coupe.
n
XX
= (ϕij − ϕji )
xi ∈M j=1
X X X X
= (ϕij − ϕji ) + (ϕij − ϕji )
xi ∈M xj ∈M xi ∈M xj ∈M̄
| {z }
0
X X
≤ ϕij
xi ∈M xj ∈M̄
X X
≤ cij .
xi ∈M xj ∈M̄
C.Q.F.D.
Corollaire
Si un flot et une coupe ont même valeur, alors il s’agit d’un flot maximum et
d’une coupe minimum.
3.3. RÉSOLUTION DU PROBLÈME DE FLOT MAXIMUM 133
Algorithme
Dans le second cas, la marque de xj sera (−i,α), où α = ϕ0ji : elle indique
que xj pourrait diminuer de α la quantité de matière qu’il envoie à xi .
c. Supposons que l’on puisse marquer ainsi une suite S = {x1 , . . . ,xn } de
sommets de telle sorte que chacun d’entre eux soit marqué avec l’indice du
sommet précédent et soit amin le plus petit α dans les marques des éléments
de S. Il est facile de vérifier que les quantités ϕ1ij telles que
1
ϕij = ϕ0ij + αmin si xi et xj sont deux sommets consécutifs de S
et si la marque de xj contient +i,
ϕ1ji = ϕ0ji − αmin si xi et xj sont deux sommets consécutifs de S
et si la marque de xj contient −i,
1
ϕij = ϕ0ij dans les autres cas,
134 CHAPITRE 3. THÉORIE DES RÉSEAUX DE TRANSPORT
x2 8 x4
3
15
2
7 7
4
x1 6 x6
9
10 30
x3 14 x5
Remarque : lorsque plusieurs sommets peuvent être marqués à partir d’un sommet
xi , nous choisissons de marquer celui dont l’indice est le plus grand; ce choix est
purement arbitraire (on pourrait aussi choisir celui qui donnera lieu à la plus
grande quantité α).
1ère étape
x2 8,0 x4
3,0
15,0
2,0
7,0 7,0
4,0
x1 6,0 x6
9,0
30,10
10,10
x3 14,10 x5
A chaque arc (xi ,xj ), nous associons deux nombres : le premier représente
sa capacité cij et le deuxième la quantité ϕ1ij obtenue à la fin de la 1ère
étape.
2ème étape
x2 8,3 x4
3,3
15,3
2,0
7,0 7,0
4,0
x1 6,0 x6
9,0
30,10
10,10
x3 14,10 x5
3.3. RÉSOLUTION DU PROBLÈME DE FLOT MAXIMUM 137
3ème étape
x2 8,8 x4
3,3
15,8
2,0
7,0 7,0
4,0
x1 6,0 x6
9,5
30,15
10,10
x3 14,10 x5
4ème étape
x2 8,8 x4
3,3
15,12
2,0
7,0 7,0
4,4
x1 6,0 x6
9,5
30,19
10,10
x3 14,14 x5
138 CHAPITRE 3. THÉORIE DES RÉSEAUX DE TRANSPORT
5ème étape
M = {1,2}
M̄ = {3,4,5,6}
x2
18 13
12
x6
15 x3 30 40
x1
x5
13 6
6
x4
Remarque : le choix des sommets marqués, dans cet exemple, a été fait de manière
à illustrer le cas des marques négatives; il ne répond donc pas à une règle
préétablie.
1ère étape
3.3. RÉSOLUTION DU PROBLÈME DE FLOT MAXIMUM 139
x1 étant marqué, on marque x2 par (+1,18), puis x6 par (+2,2) ce qui donne
le flot ϕ112 = ϕ126 = 2, les autres ϕ1ij étant nuls.
2ème étape
2,2
x2
18,8 13,0
12,6
x6
15,15 x3 30,15 40,21
x1
x5
13,0 6,6
6,6
x4
4ème étape
6ème étape
Le flot maximum est donc celui qui a été obtenu à la 5ème étape; il est
représenté ci-dessous. Sa valeur est 35.
2,2
x2
18,14 13,0
12,12
x6
15,15 x3 30,27 40,33
x1
x5
13,6 6,0
6,6
x4
x x x x x x 1) 2) 3) 4)
1 2 3 4 5 6
x 15 10
1 8 12 10
8
x 4
(+1,15) (+1,15)x (+1,7)x (+1,3)
2 4 8
x 7 2 14
(+1,10)X (+2,4) (+2,4)x
3 10 14
6
x 9 3
(+2,8) (+2,8)x (+3,2)
4 8
x 7 30
(+3,14)X (+4,9)X (+3,4)X
5 10
18
22
min 10 8 4
22
La règle de marquage est ici la suivante : lorsqu’un sommet peut être marqué à
partir de plusieurs autres, on choisit celui qui donne le plus grand α.
Comme on peut le voir, la solution trouvée est différente de celle obtenue précédemment
(la valeur du flot maximum étant évidemment la même).
142 CHAPITRE 3. THÉORIE DES RÉSEAUX DE TRANSPORT
x x2 x3 x4 x
5
x 6 1) 2) 3) 4)
1
x 18 15 13
1 12 14 15 6
x2 12 2
(+1,18) (+1,18)X (+1,6) (+1,6)X
12 2
x3 6 30
(+1,15)X (+2,12)X
15 27
x 6
(+1,13)X (+3,15) (+1,13)X (+1,7)
4 6
13
x 40
(+3,30)X (+3,15)X (+4,6)X
5 15
27
33
min 15 12 6 2
35
Chaque sommet xi est remplacé par deux sommets x0i , x”i joints par un arc
de capacité ai . Les arcs (xi ,xj ) et (xj ,xi ) sont remplacés respectivement par des
3.4. CAS PARTICULIERS ET VARIANTES DU PROBLÈME DE FLOT MAXIMUM143
Soit G(X,U ) un graphe orienté quelconque où à chaque arc (xi ,xj ) est associé
un nombre cij ≥ 0. La recherche d’un flot maximum enter x1 et xn se ramène
à celle d’un flot maximum dans un réseau de transport : il suffit d’ajouter les 2
sommets x0 ,xn+1 et les 2 arcs (x0 ,x1 ), (xn ,xn+1 ) auxquels on donne des capacités
infinies.
Si plusieurs arcs vont de xi à xj (si le graphe n’est pas simple), on les remplace
par un seul auquel on attribue une capacité égale à la somme de leurs capacités.
La recherche d’un flot maximum dans un réseau de transport aux arcs duquel
sont associées, non seulement des capacités, mais aussi des bornes inférieures
positives pour les ϕij peut également se résoudre à l’aide d’un algorithme de
marquage du type FORD-FULKERSON.
144 CHAPITRE 3. THÉORIE DES RÉSEAUX DE TRANSPORT
On remplace chaque arête par deux arcs de sens opposés auxquels on donne
la capacité de cette arête; si {ϕij } est le flot maximum dans le graphe orienté
ainsi obtenu, alors {ϕ0ij } défini par
et on recommence la procédure.
Soit un graphe (X,U ) tel que X puisse être partitionné en deux sous-ensembles
X1 et X2 tels que :
(
−∀x ∈ X1 , Γ−1 (x) = ∅,
−∀x ∈ X2 , Γ(x) = ∅.
Un couplage est un ensemble d’arcs du graphe tels que deux quelconques d’entre
eux n’aient pas de sommet commun.
– on inverse le sens des arcs du graphe initial et on leur donne une capacité
infinie;
Le lecteur vérifiera aisément que le flot maximum dans ce réseau fournit la solu-
146 CHAPITRE 3. THÉORIE DES RÉSEAUX DE TRANSPORT
tion du problème.
Chapitre 4
Le problème de Hitchcock
On peut supposer que la somme des demandes est égale à la somme des
disponibilités, c’est-à-dire que
m
X n
X
ai = dj .
i=1 j=1
En effet, si la demande dépasse l’offre, on introduit une source fictive xm+1 et des
coûts fm+1,j très grands. Si c’est l’offre qui dépasse la demande, on introduit un
puits fictif yn+1 et des coûts fi,n+1 nuls.
Il résulte des contraintes (1) et (2) que cette relation peut encore s’écrire
m X
X n
(fij − α̃i − δ̃j )ϕ̃ij = 0. (6)
i=1 j=1
4.4. ALGORITHME 151
D’après les contraintes (3) et (4), cette somme ne peut être nulle que si chacun de
ses termes est nul; autrement dit, une condition nécessaire d’optimalité de {ϕ̃ij }
et {α̃i ,δ̃j } est :
α̃i + δ̃j < fij ⇒ ϕ̃ij = 0, ∀i,j. (7)
Réciproquement, soti {ϕ̃ij } et {α̃i ,δ̃j } des solutions admissibles de (I) et (II)
satisfaisant les relations (7). Il résulte de (4) et (7) que la relation (6) est vérifiée.
Celle-ci, combinée avec (1) et (2) entraı̂ne la relation (5) c’est-à-dire l’égalité des
fonctions économiques du primal (I) et du dual (II). Il découle de la théorie de la
dualité que {ϕ̃ij } et {α̃i ,δ̃j } sont optimales. Nous avons donc le théorème suivant,
Théorème
Une condition nécessaire et suffisante pour que les solutions admissibles {ϕ̃ ij } et
{α̃i ,δ̃j } des programmes (I) et (II) soient optimales est qu’elles satisfassent les
relations (7).
4.4 Algorithme
a) On définit une première solution admissible pour le progamme (II) de la
façon suivante : (
ᾱi = min` fi` , ∀i,
δ̄j = mink (fkj − ᾱk ), ∀j.
b) On recherche un flot maximum passant dans le réseau R1 obtenu à partir
de R (défini au §4.1) en donnant une capacité nulle aux arcs (xi ,yj ) tels que
et une capacité infinie aux autres. Cette recherche se fait par l’algorithme
de FORD-FULKERSON.
Si ce flot {ϕ̄ij } épuise toute la marchandise à transporter, alors c’est la
solution optimale puisque {ϕ̄ij } et {ᾱi ,δ̄j } sont admissibles pour les pro-
grammes (I) et (II) et satisfont la C.N.S. d’optimalité grâce au choix de R 1 .
Sinon, on passe en c).
c) Soit I et I¯ respectivement les ensembles de sources marquées et non marquées
à la fin de l’étape b), et J et J¯ respectivement les ensembles de puits
152 CHAPITRE 4. LE PROBLÈME DE HITCHCOCK
4.6 ¯ i,δ̄¯j }
Démonstrations des propriétés de {ᾱ
¯ i ,δ̄¯j } est admissible pour (II). En effet :
1) {ᾱ
– si xi ∈ I¯ et yj ∈ J, ¯ i + δ̄¯j = ᾱi + δ̄j ≤ fij ;
¯ alors ᾱ
– si xi ∈ I et yj ∈ J, alors ᾱ ¯ i + δ̄¯j = ᾱi + µ + δ̄j − µ ≤ fij ;
4.7. REMARQUE IMPORTANTE 153
Théorème
{ϕ̄ij } est un flot admissible dans R2 .
Démonstration : il suffit de montrer que ϕ̄ij = 0 pour les arcs (xi ,yj ) qui ont une
capacité nulle dans R2 , c’est-à-dire pour les couples (i,j) tels que
Si xi ∈ I et yj ∈ J ou si xi ∈ I¯ et yj ∈ J,
¯ alors
¯ nous avons vu que la capacité de (xi ,yj ) doit être nulle dans
Si xi ∈ I et yj ∈ J,
R1 et donc ϕ̄ij = 0.
Si xi ∈ I¯ et yj ∈ J, alors xi n’est pas marqué et yj l’est; ϕ̄ij doit donc être nul,
sinon on pourrait marquer xi à partir de yj .
b) Pour chaque ligne i marquée, on repère les colonnes j non marquées telles
que les cases (i,j) ne soient pas hachurées et on leur affecte la marque (i,δj ),
où δj = i (cela indique que xi pourrait envoyer une quantité δj à yj ).
c) Pour chaque colonne j marquée, on repère les lignes i non marquées telles
que ϕ0ij > 0 et on leur affecte la marque (j,i ), où i = min{ϕ0ij ,δj }. Puisque
la colonne j est marquée, elle peut recevoir une quantité δj d’un certain xk ;
par conséquent, xi peut diminuer de i la quantité qu’il envoie à yj au profit
éventuel d’un autre y` : c’est ce qu’indique la marque (j,i ).
d) On continue à marquer les lignes et les colonnes alternativement. Dès qu’est
X
marquée une colonne j telle que ϕ0ij < dj , on calcule
i
X
ε = min{δj ,dj − ϕ0ij }
i
dj 4 8 15 5 8
ai y y2 y3 y4 y5 1 3 5 7 9 11
1
15 x1 0 0
8
0
3
(0,15) (0,11) (0,3)
4
9 x2 0
9 0 (0,9) (0,9) (0,9) (0,9)
2 (0,15)
4 (1,11) (1,11)
8 (2,9)
10 (3,7)
12 (3,2)
4.9. EXEMPLE NUMÉRIQUE 157
y1 y2 y3 y5 ᾱi
x3 6 4 5 3 1
⇒µ=1
x4 6 7 8 9 4
δ̄j 1 0 0 1
¯ 1 = 1 ᾱ
ᾱ ¯ 2 = 1 ᾱ
¯ 3 = 2 ᾱ
¯4 = 5
dj 4 8 15 5 8
ai y1 y2 y3 y4 y5 1 3 5 7
15 x 41
0
8 36 (1,4) (1,1)
1 7
9 x2 9
8
0
1 (3,1)
7 x3 5 02
(0,2) (4,5) (4,5) (4,5)
0 7
9 x4 03 0
5
(0,9) (0,9) (0,6) (0,5)
4
Chapitre 5
Le problème d’affectation
5.1 Généralités
Dans le cas où tous les fij finis valent 1, le coût total de l’affectation vaut m et
le seul problème consiste à trouver une bijection entre les employés et les tâches,
sachant que certaines affectations sont exclues (fij = ∞). Cela revient à trouver
un flot maximum dans le réseau suivant, où seules les affectations possibles sont
représentées.
162 CHAPITRE 5. LE PROBLÈME D’AFFECTATION
1 1
1 1
1 1
1 1
HJILK4MNO és tâches
¯ i − δ̄¯j , ∀i,j.
= fij − ᾱ
5.4 Remarque
On peut parfois obtenir le couplage maximal de l’étape b) sans passer par
un algorithme de marquage. Une méthode heuristique consiste par exemple à
encadrer un zéro dans la ligne qui en contient le moins, à barrer les zéros qui se
trouvent dans la même ligne ou la même colonne que le zéro encadré et à recom-
mencer l’opération successivement. Les zéros encadrés déterminent un couplage
qui est parfois maximal.
Supposons que l’on ait ainsi obtenu un couplage maximal sans passer par un
algorithme de marquage. L’étape c) nécessite que l’on retrouve les employés et
les tâches marqués correspondants. On procèdera comme suit :
1 0 4 5 3 1 0 4 5 3
0 ∞ ∞ 6 0 0 ∞ ∞ 6 0
0 2 0 3 ∞ → 0 2 0 3 ∞
5 1 ∞ 9 8 4 0 ∞ 8 7
∞ 1 4 0 3 ∞ 1 4 0 3
¯ J et J¯
Détermination des ensembles I, I,