33
Le probl` eme du transbordement Formulation Solution basique et solution-arbre L’algorithme graphique du simplexe Calcul de la solution primale Calcul de la solution duale Recherche d’une variable (arc) entrante Recherche d’une variable (arc) sortante Mise ` a jour des solutions Calcul d’une solution initiale admissible (phase I) Le th´ eor` eme des valeurs enti` eres J.-F. Hˆ eche, ROSO-EPFL Recherche op´ erationnelle SC 245

lecture12-13.pdf

Embed Size (px)

Citation preview

Le probleme du transbordement

• Formulation

• Solution basique et solution-arbre

• L’algorithme graphique du simplexe

! Calcul de la solution primale

! Calcul de la solution duale

! Recherche d’une variable (arc) entrante

! Recherche d’une variable (arc) sortante

! Mise a jour des solutions

! Calcul d’une solution initiale admissible (phase I)

• Le theoreme des valeurs entieres

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 245

Formulation

On considere un reseau R = (V,E, b, c) ou

• G = (V,E) est un graphe oriente simple et connexe.

• b : V ! R est une ponderation des sommets de G representant leso!res et les demandes aux sommets.

Par convention, on represente les o!res par des valeurs negatives et lesdemandes par des valeurs positives.

• c : E ! R est une ponderation des arcs de G representant les coutsunitaires d’utilisation des arcs.

On cherche un flot x : E ! R+ de quantites a transporter le long des arcsafin d’equilibrer l’o!re et la demande en chaque sommet tout en minimisantles couts totaux de transport.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 246

Soit x : E ! R+ un flot, les couts totaux de transport associes sont

z =!

(i,j)!E

cijxij.

L’equilibre aux sommets est satisfait si la di!erence entre ce qui entre dansun sommet et ce qui en sort est egale a l’o!re ou a la demande du sommet

!

j!Pred(i)

xji "!

j!Succ(i)

xij = bi # i $ V.

Si bi = 0, le sommet i est un sommet de transbordement ou de transit. Sibi < 0, le sommet i est un sommet source. Finalement si bi > 0, le sommeti est un sommet puits.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 247

Remarques

• Pour que l’equilibre soit satisfait en chaque sommet, il est necessaireque la somme des demandes soit egale a celle des o!res

!

i!V

bi = 0.

Des a present, on supposera que cette hypothese est toujours satisfaite.

• Lorsque G est un graphe biparti complet, chaque sommet source etantrelie a tous les sommets puits, on parle de problemes de transport.

• Si, dans un probleme de transport, il y a autant de sources que de puitset que toutes les o!res et les demandes sont egales a 1, on parle deproblemes d’a!ectation.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 248

Les graphes bipartis

Un graphe G = (V,E) est biparti s’il existe une partition de ses sommetsen deux ensembles V1 et V2 telle que pour toute arete {i, j} de E on aitune extremite dans V1 et l’autre dans V2.

V1

V2

Theoreme 18. Le graphe G = (V,E) est biparti si et seulement s’il necontient pas de cycles de longueur impaire.

Preuve. Exercice.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 249

Formulation lineaire

Soit R = (V,E, b, c) un reseau simple et connexe. Determiner un plan detransport equilibrant l’o!re et la demande en chaque sommet de R etminimisant les couts totaux de transport revient a resoudre le programmelineaire

Min z =!

(i,j)!E

cijxij

s.c.!

j!Pred(i)

xji "!

j!Succ(i)

xij = bi # i $ V

xij % 0 # (i, j) $ E

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 250

Probleme dual

Max w =!

i!b

biyi

s.c. yj " yi & cij # (i, j) $ E

yi $ R # i $ V

Interpretation economique.

L’entreprise desire sous-traıter ses transports. Elle demande donc a uneentreprise specialisee de lui proposer des « prix » de rachat et de reventeaux di!erents points du reseau.

Cette derniere cherche a maximiser ses benefices mais doit etreconcurrentielle par rapport aux couts de transport internes de sonmandataire.

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 d’incidence sommets-arcs du graphe G = (V,E).

Sous forme matricielle, le probleme du transbordement dans le reseau R etson dual s’ecrivent

(PLP) (PLD)

Min z = cxs.c. Ax = b

x % 0

Max w = ybs.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 matriced’incidence sommets-arcs A de G est n" p ou p est le nombre decomposantes connexes de G. En particulier si le graphe est connexe, le rangde A est n" 1.

Pour un reseau connexe, choisir une base de l’espace des colonnes de Arevient donc a choisir n" 1 colonnes lineairement independantes.

Graphiquement, ces colonnes forment un arbre recouvrant. En e!et, ellesdefinissent un graphe partiel sans cycle, comportant n" 1 aretes (il estfacile de verifier que la matrice d’incidence sommets-arcs associee a uncycle C n’est pas de rang plein).

Reciproquement, tout arbre recouvrant d’un reseau connexe sur n sommetscomporte n" 1 arcs et sa matrice d’incidence sommets-arcs a rang n" 1.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 253

Ainsi, dans un probleme de transbordement, les solutions basiques du PLsont en bijection avec les arbres maximaux du reseau.

Un tel arbre T est appele solution-arbre et, dans la solution basique qu’ildefinit, seuls les arcs de T sont utilises pour e!ectuer le transport.

Les notions d’admissible, de non admissible, d’optimal, de degenere, de nonborne, . . . definies pour les bases et les solutions basiques d’un PL classiques’appliquent egalement aux solutions-arbres. En particulier, unesolution-arbre est admissible si, dans le plan de transport associe (la solutionbasique associee), toutes les quantites transportees sont non negatives.

La matrice d’incidence A d’un reseau connexe etant de taille n'm maisde rang n" 1, une contrainte du probleme (choisie arbitrairement) peutetre supprimee sans changer l’ensemble des solutions admissibles. Pour leprobleme dual, cela signifie qu’une variable peut etre fixee a zero.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 254

L’algorithme graphique du simplexe dans les reseaux(phase II primale)

Donnees : Un reseau R = (V,E, b, c) connexe, |V | = n, |E| = m, et une solution-arbreadmissible T = (V, ET ).Resultat : Un flot x : E ! R+ de cout total minimum ou la preuve qu’un tel flot n’existepas.

(1) Calcul des solutions primale x et duale y associees a T .

(2) Recherche d’un arc entrant.

S’il n’en existe pas : STOP, les solutions actuelles sont optimales.

(3) Recherche d’un arc sortant.

S’il n’en existe pas : STOP, le reseau possede un circuit a cout negatif et le problemen’a pas d’optimum 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 associee 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 l’autre 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 probleme de transbordement defini par le reseauR = (V,E, b, c) suivant ou les nombres en regard des sommetsrepresentent, respectivement, l’o!re ou la demande du sommet et ceux enregard des arcs representent leur cout unitaire d’utilisation.

v1

v2

v3

v4 v5

!6

!1 3

4

0

2

4

5

3 7

4

1

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 257

Soit la solution-arbre ou ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.

v1

v2

v3

v4 v5

!6

!1 3

4

0

2

4

5

3 7

4

1

On calcule successivement x45 = 1, x23 = 4, x25 = 2 et x12 = 6.Cette solution basique est admissible et son cout 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 associee 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 dansW = V \ 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

ExemplePour l’arbre donne par ET = {(v1, v2), (v2, v3), (v2, v5), (v4, v5)}.

v1

v2

v3

v4 v5

!6

!1 3

4

0

2

4

5

3 7

4

1

On pose y1 = 0 et on calcule successivement y2 = 3, y3 = 10, y5 = 7 ety4 = 5. Cette solution basique a un cout egal a

w = 0'"6 + 3' 0 + 10' 4 + 7' 3 + 5'"1 = 56.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 260

Recherche d’un arc entrant

Rappelons que nous disposons d’une solution-arbre admissible T = (V,ET )ainsi que des solutions primale x et duale y associees.

La solution primale etant admissible, s’il en est de meme de la solutionduale, elles sont toutes deux optimales (dualite faible).

Par construction, les contraintes duales sont satisfaites (avec egalite) pourles arcs de ET . On passe donc en revue les arcs (i, j) hors base et on testepour chacun d’eux si la contrainte duale associee yj " yi & cij est satisfaiteou non.

Des qu’une contrainte violee est trouvee, on s’arrete : l’arc e = (i, j) enquestion va rentrer dans la base.

Si toutes les contraintes sont satisfaites, les solutions actuelles sontoptimales.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 261

ExempleReprenons l’arbre T = (V,ET ) accompagne des solutions primale et duale.

v1

v2

v3

v4 v5

5 4

0

75

10

3

1

6 4

21

Pour l’arc hors base (v1, v4) on a c14 = 5 et y4 " y1 = 5" 0 = 5. Lacontrainte y4 " y1 & c14 est satisfaite.

Pour l’arc hors base (v2, v4) on a c24 = 1 et y4 " y2 = 5" 3 = 2. Lacontrainte y4 " y2 & c24 est violee. L’arc (v2, v4) entre dans la base.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 262

Recherche d’un arc sortant

Si on ajoute a la solution-arbre actuelle l’arc entrant e = (i, j), on forme uncycle unique C. Utilisant l’orientation de (i, j) pour definir le sens deparcours de C, on divise les arcs de C en deux ensembles disjoints C+ etC", ou C+ regroupe les arcs de C de meme orientation que (i, j) et C"

ceux d’orientation opposee.

Observation. Si on change un flot le long d’un cycle C en transportant unequantite ! en plus sur les arcs de C+ et en moins sur les arcs de C", lesbilans aux sommets de C ne sont pas modifies.

Si C" = (, STOP : le circuit C est a cout negatif et le probleme n’admetpas d’optimum fini.

Sinon, soit ! = min{xkl | (k, l) $ C"} et s un arc pour lequel le minimumest atteint. L’arc s quitte la base.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 263

Exemple

L’arc entrant est e = (v2, v4).

v1

v2

v3

v4 v5

0

75

10

3

1

6 4

2

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 que sur les arcs de C :

xij =

"#$

#%

xij + ! si (i, j) $ C+

xij "! si (i, j) $ C"

xij si (i, j) /$ C

• La mise a jour de la solution basique duale peut egalement etre faiteen conservant une partie de la solution actuelle. Le procede ne sera pasexpose ici et nous supposerons simplement que la solution basique dualeest recalculee entierement.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 265

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

x24 = x24 + ! = 0 + 2 = 2,

x45 = x45 + ! = 1 + 2 = 3,

x25 = x25 "! = 2" 2 = 0.

v1

v2

v3

v4 v5

5 4

0

64

10

3

3

6 4

2 4

La solution duale ne change que pour y4, maintenant egal a 4, et y5 quipasse a 6.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 266

Degenerescence

Si la solution basique primale est degeneree, c.-a-d. s’il existe des arcs dansET le long desquels des quantites nulles sont transportees, la modification! du flot peut etre nulle et il y a risque de cyclage.

Afin d’eviter ce risque, on peut recourir, par exemple, a une versiongraphique de la regle de Bland.

• Tester les arcs hors base dans l’ordre lexicographique et faire entrer lepremier arc dont la contrainte duale associee est violee.

• Si la quantite ! (nulle en cas de degenerescence) est transportee lelong de plusieurs arcs de C" faire sortir l’arc le plus petit dans l’ordrelexicographique.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 267

Calcul d’une solution-arbre initiale admissible

Lorsque qu’une solution-arbre initiale admissible n’est pas connue ou facilea determiner, il faut recourir a une phase I.

Comme pour l’algorithme du simplexe dans les tableaux, on va recourir aune phase I primale reposant sur un probleme 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 problemede depart possede au moins une solution admissible.

De plus, il sera facile de trouver une solution-arbre admissible du problemeauxiliaire et sa solution optimale, si elle est de valeur nulle, fournira unesolution-arbre admissible pour le probleme de depart.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 268

Construction du probleme auxiliaire et d’unesolution-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,E!T ) 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

(s’il existe deja 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 (s’il existe

deja un arc de k a j dans R ne pas le rajouter).

(5) Poser E!T = {(i, k) | i sommet source} & {(k, j) | j sommet puits} et completer E !

T

jusqu’a obtenir un arbre recouvrant (si necessaire).

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 269

Exemple

Un reseau auxiliaire pour l’exemple developpe jusqu’ici est

v1

v2

v3

v4 v5

!6

3

4

0

1

1

!11

0

0 0 0

0

0

0

La solution-arbre initiale associee est formee des arcs de poids 1 ainsi qued’un des arcs incidents a v2 (afin d’obtenir un arbre recouvrant).

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 270

Le theoreme des valeurs entieres

Considerons le programme lineaire

Opt z = cxs.c. Ax = b

x % 0

Theoreme 19. Soit le probleme ci-dessus ou A est une matrice m ' nde rang m a coe!cients entiers et b un vecteur entier. Les a!rmationssuivantes sont equivalentes

(1) le determinant de toute base B de A vaut +1 ou "1 ;

(2) pour tout b entier, le polyedre P = {x | Ax = b,x % 0} est entier ;

(3) pour toute base B de A, B"1 est entiere.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 271

Preuve. (1) * (3) : Si det(B) = ±1, B"1 est entiere car

B"1 = 1/det(B) · C(B)T

ou C(B) est la matrice des cofacteurs de B (entiere car B est entiere).

(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. xsoit la solution basique associee a B. Mais cette solution basique estxB = B"1b et xN = 0. Elle est donc entiere si b et B"1 le sont.

(2) * (3) : Soit B une base de A. Si P est entier pour tout b entier, lasolution basique associee a B est entiere pour tout b entier. Il su"t deprendre successivement b = ei, i = 1, . . . ,m, pour montrer que chaquecolonne de B"1 est entiere. !J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 272

Les matrices totalement unimodulaires

Une matrice A est totalement unimodulaire si toute sous-matrice carreeque l’on peut extraire de A (en eliminant des lignes et des colonnes) a undeterminant egal a 0, 1 ou "1.

Remarque. La definition precedente implique que les termes de A valent 0,1 ou "1.Theoreme 20. Soit le programme lineaire

Opt {cx | Ax = b,x % 0}

ou A est totalement unimodulaire. Pour tout vecteur b entier, le problemeadmet une solution admissible entiere des qu’il a une solution admissible. Deplus, il admet une solution optimale entiere des qu’il a une solution optimale.

!J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 273

Le theoreme suivant fournit une condition su"sante pour qu’une matricesoit totalement unimodulaire.

Theoreme 21. Une matrice A est totalement unimodulaire si elle satisfaitles conditions suivantes

(1) chaque terme vaut 0, 1 ou "1 ;

(2) chaque colonne contient au plus deux elements non nuls ;

(3) l’ensemble I des lignes de A peut etre partitionne en deux ensemblesI1 et I2 tels que

(a) deux termes non nuls de meme signe d’une colonne sont l’un dansune ligne de I1, l’autre dans une ligne de I2,

(b) deux termes non nuls de signe oppose d’une colonne sont tous lesdeux 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 su"t de montrer que toute matrice carree satisfaisant cesconditions a un determinant egal a 0, 1 ou "1. On va proceder parinduction sur la taille n de la matrice A.

Pour les matrices 1' 1, le resultat est vrai. Supposons-le vrai pour lesmatrice de taille (n" 1)' (n" 1).Soit A : n' n verifiant les conditions.

1) Si A possede une colonne nulle, det(A) = 0.2) Si A possede une colonne avec un seul terme non nul, en developpantson determinant selon cette colonne on a det(A) = ±det(A) ou A est unesous-matrice de A de taille n" 1 satisfaisant les conditions. On a alorsdet(A) = 0, 1 ou "1.3) Si toutes les colonnes de A ont deux termes non nuls, on a

&i!I1

aij =&

i!I2aij

pour toute colonne j et det(A) = 0. !J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 275

Corollaire 22. La matrice d’incidence sommets-arcs d’un graphe est tota-lement unimodulaire.

Preuve. Il su"t de prendre I1 = I et I2 = (. !Corollaire 23. Soit le probleme de transbordement

Min z = cxs.c. Ax = b

x % 0

Pour tout vecteur b entier pour lequel le probleme a une solution admissible,il existe une solution admissible entiere. De plus, s’il existe une solutionoptimale finie, il existe une solution optimale entiere. !Remarque. Le resultat precedent reste vrai si on introduit des capacitesmaximales sur les arcs.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 276

Objectifs

• Connaıtre les definitions d’un probleme de transbordement, de transportou d’a!ectation ainsi que la classification associee des sommets.

• Pouvoir formuler un probleme de transbordement sous forme d’un pro-gramme lineaire et en expliquer les contraintes. Pouvoir en calculer le dualet l’interpreter.

• Comprendre la relation existant entre les arbres recouvrants d’un reseau etles solutions basiques du programme lineaire associe.

• Savoir appliquer l’algorithme graphique du simplexe (phase I & II).

• Connaıtre le theoreme des valeurs entieres.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC 277