Vous êtes sur la page 1sur 33

Le probl`

eme du transbordement
Formulation

Solution basique et solution-arbre

Lalgorithme graphique du simplexe


! Calcul de la solution primale
! Calcul de la solution duale
! Recherche dune variable (arc) entrante
! Recherche dune variable (arc) sortante
! Mise `
a jour des solutions
! Calcul dune solution initiale admissible (phase I)

Le theor`eme des valeurs enti`eres


J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

245

Formulation
On consid`ere un reseau R = (V, E, b, c) o`
u
G = (V, E) est un graphe oriente simple et connexe.

b : V R est une ponderation des sommets de G representant les


offres et les demandes aux sommets.
Par convention, on represente les offres par des valeurs negatives et les
demandes par des valeurs positives.
uts
c : E R est une ponderation des arcs de G representant les co
unitaires dutilisation des arcs.

On cherche un flot x : E R+ de quantites `a transporter le long des arcs


afin dequilibrer loffre et la demande en chaque sommet tout en minimisant
les co
uts totaux de transport.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

246

Soit x : E R+ un flot, les co


uts totaux de transport associes sont
z=

cij xij .

(i,j)E

Lequilibre aux sommets est satisfait si la difference entre ce qui entre dans
un sommet et ce qui en sort est egale `a loffre ou `a la demande du sommet
!

jP red(i)

xji

xij = bi

jSucc(i)

i V.

Si bi = 0, le sommet i est un sommet de transbordement ou de transit. Si


bi < 0, le sommet i est un sommet source. Finalement si bi > 0, le sommet
i est un sommet puits.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

247

Remarques
Pour que lequilibre soit satisfait en chaque sommet, il est necessaire
que la somme des demandes soit egale `a celle des offres
!

bi = 0.

iV

D`es `a present, on supposera que cette hypoth`ese est toujours satisfaite.


Lorsque G est un graphe biparti complet, chaque sommet source etant
relie `a tous les sommets puits, on parle de probl`emes de transport.
Si, dans un probl`eme de transport, il y a autant de sources que de puits
et que toutes les offres et les demandes sont egales `a 1, on parle de
probl`emes daffectation.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

248

Les graphes bipartis


Un graphe G = (V, E) est biparti sil existe une partition de ses sommets
en deux ensembles V1 et V2 telle que pour toute arete {i, j} de E on ait
une extremite dans V1 et lautre dans V2.
V1
V2

Th
eor`
eme 18. Le graphe G = (V, E) est biparti si et seulement sil ne
contient pas de cycles de longueur impaire.
Preuve. Exercice.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

249

Formulation lin
eaire
Soit R = (V, E, b, c) un reseau simple et connexe. Determiner un plan de
transport equilibrant loffre et la demande en chaque sommet de R et
minimisant les co
uts totaux de transport revient `a resoudre le programme
lineaire
!
cij xij
Min z =
(i,j)E

s.c.

jP red(i)

J.-F. Heche, ROSO-EPFL

xji

xij = bi

i V

xij 0

(i, j) E

jSucc(i)

Recherche operationnelle SC

250

Probl`
eme dual
Max w =

biyi

ib

s.c.

yj yi cij
yi R

(i, j) E
iV

Interpretation economique.
Lentreprise desire sous-trater ses transports. Elle demande donc `a une
entreprise specialisee de lui proposer des prix de rachat et de revente
aux differents points du reseau.
Cette derni`ere cherche `a maximiser ses benefices mais doit etre
concurrentielle par rapport aux co
uts de transport internes de son
mandataire.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

251

Formulations matricielles
Soit R = (V, E, b, c) un reseau simple et connexe avec |V | = n et |E| = m.
Soit, encore, A la matrice dincidence sommets-arcs du graphe G = (V, E).
Sous forme matricielle, le probl`eme du transbordement dans le reseau R et
son dual secrivent
(PLP)

(PLD)

Min z = cx
s.c.
Ax = b
x 0

Max w = yb
s.c.
yA c
y Rn

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

252

Solution basique et solution-arbre


Soit G = (V, E) un graphe oriente sur n sommets. Le rang de la matrice
dincidence sommets-arcs A de G est n p o`
u p est le nombre de
composantes connexes de G. En particulier si le graphe est connexe, le rang
de A est n 1.
Pour un reseau connexe, choisir une base de lespace des colonnes de A
revient donc `a choisir n 1 colonnes lineairement independantes.
Graphiquement, ces colonnes forment un arbre recouvrant. En effet, elles
definissent un graphe partiel sans cycle, comportant n 1 aretes (il est
facile de verifier que la matrice dincidence sommets-arcs associee `a un
cycle C nest pas de rang plein).
Reciproquement, tout arbre recouvrant dun reseau connexe sur n sommets
comporte n 1 arcs et sa matrice dincidence sommets-arcs `a rang n 1.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

253

Ainsi, dans un probl`eme de transbordement, les solutions basiques du PL


sont en bijection avec les arbres maximaux du reseau.
Un tel arbre T est appele solution-arbre et, dans la solution basique quil
definit, seuls les arcs de T sont utilises pour effectuer le transport.
Les notions dadmissible, de non admissible, doptimal, de degenere, de non
borne, . . . definies pour les bases et les solutions basiques dun PL classique
sappliquent egalement aux solutions-arbres. En particulier, une
solution-arbre est admissible si, dans le plan de transport associe (la solution
basique associee), toutes les quantites transportees sont non negatives.
La matrice dincidence A dun reseau connexe etant de taille n m mais
de rang n 1, une contrainte du probl`eme (choisie arbitrairement) peut
etre supprimee sans changer lensemble des solutions admissibles. Pour le
probl`eme dual, cela signifie quune variable peut etre fixee `a zero.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

254

Lalgorithme graphique du simplexe dans les r


eseaux
(phase II primale)
Donnees : Un reseau R = (V, E, b, c) connexe, |V | = n, |E| = m, et une solution-arbre
admissible T = (V, ET ).
Resultat : Un flot x : E R+ de co
ut total minimum ou la preuve quun tel flot nexiste
pas.
(1) Calcul des solutions primale x et duale y associees `a T .
(2) Recherche dun arc entrant.
Sil nen existe pas : STOP, les solutions actuelles sont optimales.
(3) Recherche dun arc sortant.
Sil nen existe pas : STOP, le reseau poss`ede un circuit `a co
ut negatif et le probl`eme
na pas doptimum fini.
(4) Mise `a jour de la solution-arbre et retour au point (1).

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

255

Calcul de la solution primale associ


ee `
a T = (V, ET )
Donnees : Un reseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Resultat : Le flot x : E R+ associe `a T .
(1) Tant que |ET | > 1 faire
(1.1) Trouver un sommet pendant j de T .
Soit e le seul arc incident avec j dans T et i lautre extremite de e.
(1.2) Si e = (i, j) poser xij = bj
Sinon (e = (j, i)) poser xji = bj .
(1.3) Poser bi = bi + bj .
(1.4) Retirer e de ET : ET = ET \ {e}.
(2) Il reste un seul arc dans ET , disons (i, j), poser xij = bj .
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

256

Exemple
Considerons le probl`eme de transbordement defini par le reseau
R = (V, E, b, c) suivant o`
u les nombres en regard des sommets
representent, respectivement, loffre ou la demande du sommet et ceux en
regard des arcs representent leur co
ut unitaire dutilisation.
0
3
6

v2

v1

7
v3

1
5
1
J.-F. Heche, ROSO-EPFL

4
v4

Recherche operationnelle SC

v5 3
257

Soit la solution-arbre o`
u ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.
0
3
6

v2

v1

7
v3

1
5
1

4
v4

v5 3

On calcule successivement x45 = 1, x23 = 4, x25 = 2 et x12 = 6.


Cette solution basique est admissible et son co
ut est egal `a
z = 1 2 + 4 7 + 2 4 + 6 3 = 56.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

258

Calcul de la solution duale associ


ee `
a T = (V, ET )
Donnees : Un reseau R = (V, E, b, c) connexe et une solution-arbre T = (V, ET ).
Resultat : Les prix duaux y : V R associes `a T .
(1) Choisir arbitrairement i V et poser yi = 0.
Poser W = V \ {i}.
(2) Tant que W $= faire
(2.1) Trouver un arc e ET avec une extremite j dans W et une extremite i dans
= V \ W.
W
(2.2) Si e = (i, j) poser yj = yi + cij
Sinon (e = (j, i)) poser yj = yi cji.
(2.3) Retirer j de W : W = W \ {j}.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

259

Exemple
Pour larbre donne par ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.
0

3
6

v2

v1

7
v3

1
5
1

4
v4

v5 3

On pose y1 = 0 et on calcule successivement y2 = 3, y3 = 10, y5 = 7 et


ut egal `a
y4 = 5. Cette solution basique a un co
w = 0 6 + 3 0 + 10 4 + 7 3 + 5 1 = 56.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

260

Recherche dun arc entrant


Rappelons que nous disposons dune solution-arbre admissible T = (V, ET )
ainsi que des solutions primale x et duale y associees.
La solution primale etant admissible, sil en est de meme de la solution
duale, elles sont toutes deux optimales (dualite faible).
Par construction, les contraintes duales sont satisfaites (avec egalite) pour
les arcs de ET . On passe donc en revue les arcs (i, j) hors base et on teste
pour chacun deux si la contrainte duale associee yj yi cij est satisfaite
ou non.
D`es quune contrainte violee est trouvee, on sarrete : larc e = (i, j) en
question va rentrer dans la base.
Si toutes les contraintes sont satisfaites, les solutions actuelles sont
optimales.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

261

Exemple
Reprenons larbre T = (V, ET ) accompagne des solutions primale et duale.
v2

v1
0

10

5
v4

v3

4
v5

Pour larc hors base (v1, v4) on a c14 = 5 et y4 y1 = 5 0 = 5. La


contrainte y4 y1 c14 est satisfaite.
Pour larc hors base (v2, v4) on a c24 = 1 et y4 y2 = 5 3 = 2. La
contrainte y4 y2 c24 est violee. Larc (v2, v4) entre dans la base.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

262

Recherche dun arc sortant


Si on ajoute `a la solution-arbre actuelle larc entrant e = (i, j), on forme un
cycle unique C. Utilisant lorientation de (i, j) pour definir le sens de
parcours de C, on divise les arcs de C en deux ensembles disjoints C + et
u C + regroupe les arcs de C de meme orientation que (i, j) et C
C , o`
ceux dorientation opposee.
Observation. Si on change un flot le long dun cycle C en transportant une
quantite en plus sur les arcs de C + et en moins sur les arcs de C , les
bilans aux sommets de C ne sont pas modifies.
ut negatif et le probl`eme nadmet
Si C = , STOP : le circuit C est `a co
pas doptimum fini.
Sinon, soit = min{xkl | (k, l) C } et s un arc pour lequel le minimum
est atteint. Larc s quitte la base.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

263

Exemple
Larc entrant est e = (v2, v4).
v2
v1

3
4

v3
10

v4

v5

Le cycle C est forme des arcs (v2, v4), (v4, v5) et (v2, v5).
C + = {(v2, v4), (v4, v5)} et C = {(v2, v5)}.
Ainsi = min{xkl | (k, l) C } = x25 = 2 et s = (v2, v5).
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

264

Mise `
a jour des solutions
La nouvelle solution-arbre est donnee par ET = ET {e} \ {s}.
La solution basique primale ne change

xij +
xij =
xij

xij

que sur les arcs de C :


si (i, j) C +
si (i, j) C
si (i, j)
/C

La mise `a jour de la solution basique duale peut egalement etre faite


en conservant une partie de la solution actuelle. Le procede ne sera pas
expose ici et nous supposerons simplement que la solution basique duale
est recalculee enti`erement.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

265

Exemple
La nouvelle solution-arbre est ET = ET {(v2, v4)} \ {(v2, v5)}.
La solution basique primale ne change que pour les arcs de C.
v2

x24 = x24 + = 0 + 2 = 2,
x45 = x45 + = 1 + 2 = 3,
x25 = x25 = 2 2 = 0.

3
4

v1
0

v3
10

2
5

4
4

v4

v5

La solution duale ne change que pour y4, maintenant egal `a 4, et y5 qui


passe `a 6.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

266

D
eg
en
erescence
Si la solution basique primale est degeneree, c.-`a-d. sil existe des arcs dans
ET le long desquels des quantites nulles sont transportees, la modification
du flot peut etre nulle et il y a risque de cyclage.
Afin deviter ce risque, on peut recourir, par exemple, `a une version
graphique de la r`egle de Bland.
Tester les arcs hors base dans lordre lexicographique et faire entrer le
premier arc dont la contrainte duale associee est violee.
Si la quantite (nulle en cas de degenerescence) est transportee le
long de plusieurs arcs de C faire sortir larc le plus petit dans lordre
lexicographique.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

267

Calcul dune solution-arbre initiale admissible


Lorsque quune solution-arbre initiale admissible nest pas connue ou facile
`a determiner, il faut recourir `a une phase I.
Comme pour lalgorithme du simplexe dans les tableaux, on va recourir `a
une phase I primale reposant sur un probl`eme de transbordement auxiliaire
possedant toujours des solutions admissibles ;
possedant toujours un optimum fini ;
possedant un optimum fini de valeur nulle si et seulement si le probl`eme
de depart poss`ede au moins une solution admissible.
De plus, il sera facile de trouver une solution-arbre admissible du probl`eme
auxiliaire et sa solution optimale, si elle est de valeur nulle, fournira une
solution-arbre admissible pour le probl`eme de depart.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

268

Construction du probl`
eme auxiliaire et dune
solution-arbre initiale admissible
Donnees : Un reseau R = (V, E, b, c) connexe.
Resultat : Un reseau R! = (V, E !, b, c!) et une solution-arbre T ! = (V, ET! ) admissible pour
R! .
(1) Poser c!ij = 0 pour tout (i, j) E.
(2) Choisir un sommet source, disons k.
(3) Relier chaque sommet source i ($= k) `a k par un arc artificiel (i, k) de poids c!ik = 1
(sil existe dej`a un arc de i `a k dans R ne pas le rajouter).
(4) Relier k `a chaque sommet puits j par un arc artificiel (k, j) de poids c!kj = 1 (sil existe
dej`a un arc de k `a j dans R ne pas le rajouter).
(5) Poser ET! = {(i, k) | i sommet source} {(k, j) | j sommet puits} et completer ET!
jusqu`a obtenir un arbre recouvrant (si necessaire).
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

269

Exemple
Un reseau auxiliaire pour lexemple developpe jusquici est
1
6

0 v2
0

v1

v3

0
4

0
v4

v5 3

La solution-arbre initiale associee est formee des arcs de poids 1 ainsi que
dun des arcs incidents `a v2 (afin dobtenir un arbre recouvrant).
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

270

Le th
eor`
eme des valeurs enti`
eres
Considerons le programme lineaire
Opt z = cx
s.c.
Ax = b
x 0
Th
eor`
eme 19. Soit le probl`eme ci-dessus o`
u A est une matrice m n
de rang m `a coefficients entiers et b un vecteur entier. Les affirmations
suivantes sont equivalentes
(1) le determinant de toute base B de A vaut +1 ou 1 ;

(2) pour tout b entier, le poly`edre P = {x | Ax = b, x 0} est entier ;


(3) pour toute base B de A, B 1 est enti`ere.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

271

Preuve. (1) (3) : Si det(B) = 1, B 1 est enti`ere car


B 1 = 1/det(B) C(B)T
o`
u C(B) est la matrice des cofacteurs de B (enti`ere car B est enti`ere).
(3) (1) : On a det(B) det(B 1) = 1 et det(B) et det(B 1) entiers.
Ainsi
det(B) = det(B 1) = 1.

(3) (2) : Soit x un point extreme de P , il existe une base B de A t.q. x


soit la solution basique associee `a B. Mais cette solution basique est
xB = B 1b et xN = 0. Elle est donc enti`ere si b et B 1 le sont.
(2) (3) : Soit B une base de A. Si P est entier pour tout b entier, la
solution basique associee `a B est enti`ere pour tout b entier. Il suffit de
prendre successivement b = ei, i = 1, . . . , m, pour montrer que chaque
!
colonne de B 1 est enti`ere.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

272

Les matrices totalement unimodulaires


Une matrice A est totalement unimodulaire si toute sous-matrice carree
que lon peut extraire de A (en eliminant des lignes et des colonnes) a un
determinant egal `a 0, 1 ou 1.

Remarque. La definition precedente implique que les termes de A valent 0,


1 ou 1.
Th
eor`
eme 20. Soit le programme lineaire

Opt {cx | Ax = b, x 0}
o`
u A est totalement unimodulaire. Pour tout vecteur b entier, le probl`eme
admet une solution admissible enti`ere d`es quil a une solution admissible. De
plus, il admet une solution optimale enti`ere d`es quil a une solution optimale.
!
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

273

Le theor`eme suivant fournit une condition suffisante pour quune matrice


soit totalement unimodulaire.
Th
eor`
eme 21. Une matrice A est totalement unimodulaire si elle satisfait
les conditions suivantes
(1) chaque terme vaut 0, 1 ou 1 ;
(2) chaque colonne contient au plus deux elements non nuls ;
(3) lensemble I des lignes de A peut etre partitionne en deux ensembles
I1 et I2 tels que
(a) deux termes non nuls de meme signe dune colonne sont lun dans
une ligne de I1, lautre dans une ligne de I2,
(b) deux termes non nuls de signe oppose dune colonne sont tous les
deux dans des lignes de I1 ou tous les deux dans des lignes de I2.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

274

Preuve. Il suffit de montrer que toute matrice carree satisfaisant ces


conditions a un determinant egal `a 0, 1 ou 1. On va proceder par
induction sur la taille n de la matrice A.
Pour les matrices 1 1, le resultat est vrai. Supposons-le vrai pour les
matrice de taille (n 1) (n 1).
Soit A : n n verifiant les conditions.
1) Si A poss`ede une colonne nulle, det(A) = 0.
2) Si A poss`ede une colonne avec un seul terme non nul, en developpant
o`
est une
son determinant selon cette colonne on a det(A) = det(A)
uA
sous-matrice de A de taille n 1 satisfaisant les conditions. On a alors
det(A) = 0, 1 ou 1.
3) Si toutes les colonnes de A ont deux termes non nuls, on a
&
&
iI1 aij =
iI2 aij
pour toute colonne j et det(A) = 0.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

275

Corollaire 22. La matrice dincidence sommets-arcs dun graphe est totalement unimodulaire.
Preuve. Il suffit de prendre I1 = I et I2 = .

Corollaire 23. Soit le probl`eme de transbordement


Min z = cx
s.c.
Ax = b
x 0
Pour tout vecteur b entier pour lequel le probl`eme a une solution admissible,
il existe une solution admissible enti`ere. De plus, sil existe une solution
optimale finie, il existe une solution optimale enti`ere.
!
Remarque. Le resultat precedent reste vrai si on introduit des capacites
maximales sur les arcs.
J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

276

Objectifs
Connatre les definitions dun probl`eme de transbordement, de transport
ou daffectation ainsi que la classification associee des sommets.
Pouvoir formuler un probl`eme de transbordement sous forme dun programme lineaire et en expliquer les contraintes. Pouvoir en calculer le dual
et linterpreter.
Comprendre la relation existant entre les arbres recouvrants dun reseau et
les solutions basiques du programme lineaire associe.
Savoir appliquer lalgorithme graphique du simplexe (phase I & II).
Connatre le theor`eme des valeurs enti`eres.

J.-F. Heche, ROSO-EPFL

Recherche operationnelle SC

277