Vous êtes sur la page 1sur 36

Programmes lineaires avec bornes sur les contraintes

Preprocessing
Probl`eme de transport
Programmation Lineaire 2 - Cours 2
P. Pesneau
pierre.pesneau@math.u-bordeaux1.fr
Universite Bordeaux 1
Bat A33 - Bur 256
Dapr`es Linear Programming, Vasek Chvatal - McGraw-Hill, 1983
et les notes de cours de L.A. Wolsey, F. Vanderbeck et P. Morel
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
PL avec bornes sur les contraintes
Considerons le programme lineaire suivant :
max

n
j =1
c
j
x
j
s.c. b
i

n
j =1
a
i ,j
x
j
b
i
i = 1, . . . , m
l
j
x
j
u
j
j = 1, . . . , n
Le mettre sous la forme :
max

n
j =1
c
j
x
j
s.c.

n
j =1
a
i ,j
x
j
= x
n+i
i = 1, . . . , m
l
j
x
j
u
j
j = 1, . . . , n
b
i
x
n+i
b
i
i = 1, . . . , m
Les x
n+i
representent des variables de valeur des contraintes.
Il sut maintenant dappliquer le simplex avec variables bornees.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
PL avec variables et contraintes bornees / Dualite
Primal :
max cx
s.c. b Ax b
l x u
On le met sous la forme
max cx
s.c. Ax b (y
+
)
Ax b (y

)
x u (z
+
)
x l (z

)
On obtient le dual :
min b
t
y
+
b
t
y

+ u
t
z
+
l
t
z

s.c. A
t
(y
+
y

) + (z
+
z

) = c
t
y
+
, y

, z
+
, z

0
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
PL avec variables et contraintes bornees / Dualite
P : max cx
s.c. b Ax b
l x u
D : min b
t
y
+
b
t
y

+ u
t
z
+
l
t
z

s.c. A
t
(y
+
y

) + (z
+
z

) = c
t
y
+
, y

, z
+
, z

0
A loptimum on a y
+
y

= 0 et z
+
z

= 0.
Theor`eme
Soient x

une solution primale realisable et (y


+
, y

, z
+
, z

)
une solution duale realisable. x

et (y
+
, y

, z
+
, z

) sont
respectivement primale et duale optimale si et seulement si :
1
b
i
< A
i ,.
x

< b
i
y
+
i
= y

i
= 0,
2
l
j
< x

j
< u
j
z
+
j
= z

j
= 0,
3
y
+
i
> 0 A
i ,.
x

= b
i
,
4
y

i
> 0 A
i ,.
x

= b
i
,
5
z
+
j
> 0 x

j
= u
j
,
6
z

j
> 0 x

j
= l
j
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Preprocessing : Ameliorer la formulation
Pour faciliter la resolution dun programme lineaire, il est naturel
de chercher `a nettoyer, simplier et ameliorer sa formulation :
ajuster les bornes sur les variables,
eliminer les contraintes redondantes,
xer les variables qui peuvent letre,
tenter de detecter a priori son irrealisabilite eventuelle.
Ce nettoyage permet daccelerer la resolution dun programme
lineaire (moins de variables, moins de contraintes, bornes plus
serrees), et eventuellement, deviter des dicultes numeriques.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
0 x
1
3 (4)
0 x
2
1 (5)
1 x
3
(6)
Ajustement de bornes :
(1) 5x
1
15 + 2x
2
8x
3
+2 (5) 15 + 2 8x
3
+8 (6) 15 + 2 8 = 9 x
1

9
5
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
0 x
1

9
5
(4)
0 x
2
1 (5)
1 x
3
(6)
Ajustement de bornes :
(1) 2x
2
15 + 5x
1
+ 8x
3
+5 (4) 15 + 0 + 8x
3
+8 (6) 15 + 0 + 8 = 7 x
2

7
2
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
0 x
1

9
5
(4)
0 x
2
1 (5)
1 x
3
(6)
Ajustement de bornes :
(1) 8x
3
15 5x
1
+ 2x
2
+5 (4) 15 0 + 2x
2
+2 (5) 15 0 + 2 = 17 x
3

17
8
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
0 x
1

9
5
(4)
0 x
2
1 (5)
1 x
3

17
8
(6)
Ajustement de bornes :
(2) 8x
1
9 3x
2
+ x
3
+3 (5) 9 3 + x
3
+(6) 9 3 + 1 = 7 x
1

7
8
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
7
8
x
1

9
5
(4)
0 x
2
1 (5)
1 x
3

17
8
(6)
Ajustement de bornes :
On nobtient plus damelioration `a partir de (2) et de (3).
Cependant, comme trois bornes ont ete ameliorees, on repasse en
revue les contraintes (1) `a (3).
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
7
8
x
1

9
5
(4)
0 x
2
1 (5)
1 x
3

17
8
(6)
Ajustement de bornes :
(1) 8x
3
15 5x
1
+ 2x
2
+5 (4) 15 5
7
8
+ 2x
2
+2 (5) 15 5
7
8
+ 2 =
101
8
x
3
101
64
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
1x
1
+ 1x
2
+ 1x
3
6 (3)
7
8
x
1

9
5
(4)
0 x
2
1 (5)
1 x
3

101
64
(6)
Elimination de contraintes redondantes :
(4) + (5) + (6) x
1
+ x
2
+ x
3

9
5
+ 1 +
101
64
< 6
la contrainte (3) est redondante et peut etre retiree du
programme lineaire.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
+ 1x
2
1x
3
s.c. 5x
1
2x
2
+ 8x
3
15 (1)
8x
1
+ 3x
2
1x
3
9 (2)
7
8
x
1

9
5
(4)
0 x
2
1 (5)
1 x
3

101
64
(6)
Fixer les variables qui peuvent letre :
c
2
> 0, il est interessant daugmenter la valeur de x
2
.
a
1,2
< 0, laugmentation de x
2
ne sera pas limitee par (1).
a
2,2
> 0, laugmentation de x
2
ne sera pas limitee par (2).
On peut donc augmenter x
2
jusqu`a sa valeur maximale et xer la
variable `a cette valeur.
x
2
= 1
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
1x
3
+ 1
s.c. 5x
1
+ 8x
3
17 (1)
8x
1
1x
3
6 (2)
7
8
x
1

9
5
(4)
1 x
3

101
64
(6)
Fixer les variables qui peuvent letre :
c
3
< 0, il est interessant de diminuer la valeur de x
3
.
a
1,3
> 0, la diminution de x
3
ne sera pas limitee par (1).
a
2,3
< 0, la diminution de x
3
ne sera pas limitee par (2).
On peut donc diminuer x
3
jusqu`a sa valeur minimale et xer la
variable `a cette valeur.
x
3
= 1
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Exemple
Considerons le programme lineaire suivant :
max 2x
1
s.c. 5x
1
9 (1)
8x
1
7 (2)
7
8
x
1

9
5
(4)
Le programme lineaire restant poss`ede une seule variable et est
plus facile `a resoudre.
Solution optimale :
x

=
_
_
9
5
1
1
_
_
z(x

) =
18
5
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Preprocessing en general
Ajustement de bornes :
Considerons la variable x
0
et la contrainte a
0
x
0
+

n
j =1
a
j
x
j
b
avec l
j
x
j
u
j
pour j = 1, . . . , n.
Si a
0
> 0, alors
x
0

(b

n
j =1:a
j
>0
a
j
l
j

n
j =1:a
j
<0
a
j
u
j
)
a
0
Si a
0
< 0, alors
x
0

(b

n
j =1:a
j
>0
a
j
l
j

n
j =1:a
j
<0
a
j
u
j
)
a
0
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Preprocessing en general
Elimination de contraintes redondantes :
La contrainte

n
j =1
a
j
x
j
b est redondante si

n
j =1:a
j
>0
a
j
u
j
+

n
j =1:a
j
<0
a
j
l
j
b.
Irrealisabilite :
La contrainte

n
j =1
a
j
x
j
b est irrealisable si

n
j =1:a
j
>0
a
j
l
j
+

n
j =1:a
j
<0
a
j
u
j
> b.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Preprocessing en general
Fixation de variables :
Pour le probl`eme
max cx
s.c. Ax b
l x u
on peut
xer x
j
= l
j
si A
.,j
0 et c
j
< 0,
xer x
j
= u
j
si A
.,j
0 et c
j
> 0.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Probl`eme de transport
Approvisionner au moindre co ut les clients `a partir des usines.
Usines (i = 1, . . . , m) Bordeaux Biarritz Toulouse
Productions (a
i
) 25 15 20
Clients (j = 1, . . . , n) Pau Bayonne Libourne
Demandes (b
j
) 20 15 25
Prix/unite (c
i ,j
) Pau Bayonne Libourne
Bordeaux 26 19 4
Biarritz 12 2 24
Toulouse 19 30 28
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Modelisation :
Variables :
x
i ,j
: quantite transportee de i `a j
Objectif :
Minimiser

m
i =1

n
j =1
c
i ,j
x
i ,j
Contraintes :

n
j =1
x
i ,j
a
i
, i = 1, . . . , m

m
i =1
x
i ,j
b
j
, j = 1, . . . , n
x
i ,j
0, i = 1, . . . , m, j = 1, . . . , n
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Remarques
Min

m
i =1

n
j =1
c
i ,j
x
i ,j
s.c.

n
j =1
x
i ,j
a
i
, i = 1, . . . , m

m
i =1
x
i ,j
b
j
, j = 1, . . . , n
x
i ,j
0, i = 1, . . . , m, j = 1, . . . , n
Cest un programme lineaire avec m n variables et m + n
contraintes.
Pour que le probl`eme ait une solution, il faut que

m
i =1
a
i

n
j =1
b
j
.
Si

m
i =1
a
i
>

n
j =1
b
j
, on peut toujours ramener le probl`eme
`a un probl`eme avec

m
i =1
a
i
=

n
j =1
b
j
en ajoutant un client
ctif.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Probl`eme de transport
On appelle probl`eme de transport le programme lineaire suivant
Min

m
i =1

n
j =1
c
i ,j
x
i ,j
s.c.

n
j =1
x
i ,j
= a
i
, i = 1, . . . , m

m
i =1
x
i ,j
= b
j
, j = 1, . . . , n
x
i ,j
0, i = 1, . . . , m, j = 1, . . . , n
avec
a
i
> 0, i = 1, . . . , m,
b
j
> 0, j = 1, . . . , n,

m
i =1
a
i
=

n
j =1
b
j
.
Si a
k
< 0, le probl`eme est irrealisable,
Si a
k
= 0, on a x
k,j
= 0, j = 1, . . . , n,
Si on fait la somme des m premi`eres contraintes dune part, et
des n derni`eres dautre part, on obtient

m
i =1
a
i
=

m
i =1

n
j =1
x
i ,j
=

n
j =1
b
j
.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Forme de la matrice A
Supposons que m = n = 3. La matrice A est de la forme :
_
_
_
_
_
_
_
_
1 1 1 . . . . . .
. . . 1 1 1 . . .
. . . . . . 1 1 1
1 . . 1 . . 1 . .
. 1 . . 1 . . 1 .
. . 1 . . 1 . . 1
_
_
_
_
_
_
_
_
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Proprietes
Propriete
Le rang de A est m + n 1.
Preuve :
On multiplie par 1 les m premi`eres lignes et par +1 les n
derni`eres lignes. En sommant le tout, on forme une ligne nulle.
On a donc que le rang de A < m + n.
On va extraire de A une matrice de taille m + n 1 dont le
determinant nest pas nul. On prend les colonnes associees aux
variables
x
1,n
, x
2,n
, . . . , x
m,n
, x
1,1
, x
1,2
, . . . , x
1,n1
et les lignes associees aux m + n 1`emes premi`eres contraintes :
_
I
m
F
0 I
n1
_
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Proprietes
Propriete
Pour toute matrice B carree issue de A, on a det B {1, 0, 1}.
La matrice A est dite totalement unimodulaire.
Propriete
Soit B une matrice carree de taille et de rang m +n 1 extraite de
A. Alors B
1
est `a coecients entiers.
Corollaire
Si dans le probl`eme de transport le second membre b est `a
coecients entiers, alors, les solutions de base realisables sont `a
composantes enti`eres.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Dualite
Primal :
Min

m
i =1

n
j =1
c
i ,j
x
i ,j
s.c.

n
j =1
x
i ,j
= a
i
, i = 1, . . . , m (u
i
)

m
i =1
x
i ,j
= b
j
, j = 1, . . . , n (v
j
)
x
i ,j
0, i = 1, . . . , m, j = 1, . . . , n
Dual :
Max

m
i =1
a
i
u
i
+

n
j =1
b
j
v
j
s.c. u
i
+ v
j
c
i ,j
i = 1, . . . , m, j = 1, . . . , n
u
i
non restreint i = 1, . . . , m
v
j
non restreint j = 1, . . . , n
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Dualite
Noter que
c
i ,j
= c
i ,j
c
B
B
1
N
c
i ,j
(u, v)N
c
i ,j
u
i
v
j
Propriete
Une condition necessaire et susante pour quune solution de base
realisable x du probl`eme de transport soit optimale est quon
puisse trouver u
1
, . . . , u
m
et v
1
, . . . , v
n
tels que
c
i ,j
u
i
v
j
0 pour i = 1, . . . , m et j = 1, . . . , n et
c
i ,j
u
i
v
j
> 0 x
i ,j
= 0.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Representations du probl`eme
Representation simplex
Forme habituel du programme lineaire.
Representation graphique :
U C
Graphe G = (U C, L) avec
U representant lensemble des
usines, C lensemble des clients
et L = U C toutes les liaisons
entre une usine et un client.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Representations du probl`eme
Tableau du transport :
x
1,1
/ c
1,1
x
1,2
/ c
1,2
x
1,3
/ c
1,3
a
1
/ u
1
x
2,1
/ c
2,1
x
2,2
/ c
2,2
x
2,3
/ c
2,3
a
2
/ u
2
x
3,1
/ c
3,1
x
3,2
/ c
3,2
x
3,3
/ c
3,3
a
3
/ u
3
b
1
/ v
1
b
2
/ v
2
b
3
/ v
3
Case = colonne du simplex, arc du graphe G.
Ligne = une usine.
Colonne = client.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Solution de base / Arbre
Propriete
Une solution x du probl`eme de transport est une solution de base si
et seulement si le graphe induit par les variables > 0 est un arbre.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Algorithme : calcul des co uts reduits
Reprenons lexemple du debut et considerons la solution de base :
20 / 26 5 / 19 0 / 4
0 / 12 10 / 2 5 / 24
0 / 19 0 / 30 20 / 28
U C
5
20
10
5
20
et de valeur 1315.
Determiner la solution duale en resolvant :
_

_
c
1,1
= 26 = u
1
+ v
1
c
1,2
= 19 = u
1
+ v
2
c
2,2
= 2 = u
2
+ v
2
c
2,3
= 24 = u
2
+ v
3
c
3,3
= 28 = u
3
+ v
3

u
1
= 0
v
1
= 26
v
2
= 19
u
2
= 17
v
3
= 41
u
3
= 13
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Algorithme : calcul des co uts reduits
On calcule les co uts reduits avec la formule
c
i ,j
= c
i ,j
u
i
v
j
.
Tableau des co uts reduits :
0 0 37
3 0 0
6 24 0
On voit quon peut faire augmenter le transport sur larc (1, 3) pour
une diminution du co ut de transport de 34 par unite transportee.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Algorithme : changement de base
Augmenter le transport sur un arc va creer un cycle (avec des arcs
pris en sens inverse)
U C
20
5
20
10 +

5
20 / 26 5 / 19 0 + / 4
0 / 12 10 + / 2 5 / 24
0 / 19 0 / 30 20 / 28
On cherche le la valeur maximale de tout en gardant les variables
> 0. Ici, = 5 et deux variables sont candidates pour sortir de la
base.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Algorithme
1
Obtenir une solution de base x.
2
Calculer la solution duale (u, v) `a partir du syst`eme donne par
c
i ,j
= 0 = c
i ,j
u
i
v
j
pour tout (i , j ) B.
3
Calculer les autres co uts reduits c
i ,j
= c
i ,j
u
i
v
j
.
4
Si c
i ,j
0 pour tout (i , j ), la solution est optimale, STOP.
Sinon, choisir (i
k
, j
k
) tel que c
i
k
,j
k
< 0 et determiner lunique
cycle contenant (i
k
, j
k
).
5
Faire transporter par (i
k
, j
k
) le maximum possible (le plus
petit ot circulant sur un arc inverse du cycle). Mettre `a jour
la solution de base et retourner en 2.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Trouver une solution de base initiale
. / 26 . / 19 . / 4
. / 12 . / 2 . / 24
. / 19 . / 30 . / 28
Methode du coin Nord-Ouest :
On appelle coin Nord-Ouest la premi`ere case du tableau forme par
les lignes et colonnes non saturees.
1
Aecter au coin Nord-Ouest (i , j ) la valeur min(a
i
, b
j
) = .
2
Modier les stocks et demandes en consequence : a
i
a
i

et b
j
b . Lun des deux passe `a 0 et la ligne ou colonne
est saturee.
3
Si toutes les lignes et colonnes sont saturees, STOP
Sinon, retourner en 1.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2
Programmes lineaires avec bornes sur les contraintes
Preprocessing
Probl`eme de transport
Trouver une solution de base initiale
. / 26 . / 19 . / 4
. / 12 . / 2 . / 24
. / 19 . / 30 . / 28
Methode du co ut minimum :
Au lieu de considerer le coin Nord-Ouest, on va chercher dans les
lignes et colonnes non saturees, la case de plus petit co ut.
1
Trouver la case (i , j ) non-saturee de plus petit co ut.
2
Aecter `a cette case la valeur min(a
i
, b
j
) = .
3
Modier les stocks et demandes en consequence : a
i
a
i

et b
j
b . Lun des deux passe `a 0 et la ligne ou colonne
est saturee.
4
Si toutes les lignes et colonnes sont saturees, STOP
Sinon, retourner en 1.
P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Programmation Lineaire 2 - Cours 2

Vous aimerez peut-être aussi