Programmation linéaire - usthb-etud.comusthb.orgfree.com/R.Op/program_lineaire.pdf · Exercice 1 ....

download Programmation linéaire - usthb-etud.comusthb.orgfree.com/R.Op/program_lineaire.pdf · Exercice 1 . Peut-on mettre sous forme standard les exemples précédents? ... ALGORITHME DU

If you can't read please download the document

Transcript of Programmation linéaire - usthb-etud.comusthb.orgfree.com/R.Op/program_lineaire.pdf · Exercice 1 ....

  • CHAPTER 1

    Programmation linaire

    1.1. Qu'est-ce que la programmation linaire

    1.1.1. Exemple : le problme du rgime de Polly [1, p.3]. Besoins journaliers :

    nergie: 2000 kcal

    Protines: 55g

    Calcium: 800 mg

    Nourriture disponiblePortion nergie (kcal) Protines (g) Calcium (mg) Prix/portion

    Crales 28g 110 4 2 3Poulet 100g 205 32 12 24Oeufs 2 gros 160 13 54 13

    Lait entier 237cc 160 8 285 9Tarte 170g 420 4 22 20

    Porc et haricots 260g 260 14 80 19Quels choix pour Polly ? Contraintes :

    Crales: au plus 4 portions par jour

    Poulet: au plus 3 portions par jour

    Oeufs: au plus 2 portions par jour

    Lait: au plus 8 portions par jour

    Tarte: au plus 2 portions par jour

    Porc et haricots: au plus 2 portions par jour

    Problem 1.1.1. Polly peut-elle trouver une solution ?Comment formaliser le problme ? (modlisation)Qu'est-ce qui fait la spcicit du problme ?Savez-vous rsoudre des problmes similaires ?

    1

  • 2 1. PROGRAMMATION LINAIRE

    1.1.2. Forme standard d'un problme de programmation linaire.

    Problme. [1, p. 5]Dfinition. Problme de programmation linaire sous forme standard :Maximiser :

    z :=n

    j=1

    cjxj

    Sous les contraintes :

    nj=1

    aijxj bi, pour i = 1, . . . ,m

    xj 0, pour j = 1, . . . , nUn choix des variables (x1, . . . , xn) est appel solution du problme.Une solution est faisable si elle vrie les contraintes.z est appel fonction objective. chaque solution elle associe une valeur.Une solution est optimale si elle est faisable et maximize la fonction objective.Exercice 1. Peut-on mettre sous forme standard les exemples prcdents ?

    1.1.3. Existence de solutions optimales ?

    Problem 1.1.2. [1, p. 7]On considre les trois problmes de programmation linaire standard suivants, crits avec lasyntaxe du systme de calcul formel MuPAD :

    Chvatal7a := [ [ x1

  • 1.2. ALGORITHME DU SIMPLEXE 3

    Premier cas : une solution optimale unique Deuxime cas : pas de solution faisable Troisime cas : pas de solution optimale, car on peut faire tendre la fonction objective versl'inni avec des solutions faisables.

    Quatrime cas : une innit de solutions optimales.

    1.2. Algorithme du simplexe

    1.2.1. Premier problme.

    Problem 1.2.1. [1, p. 13]Chvatal13 := [{2*x1 + 3*x2 + x3

  • 4 1. PROGRAMMATION LINAIRE

    1.2.3. Tableaux.

    Problem 1.2.3. [1, p. 19]

    Chvatal19 := [[ x1 + 3*x2 + x3

  • 1.2. ALGORITHME DU SIMPLEXE 5

    Remarque 1.2.5. Terminologie : on utilise dans ce cours les tableaux, plutt que les dictionnairesutiliss par exemple dans [1]. La dirence est minime : on fait juste passer les variables nonbasiques d'un ct ou de l'autre des quations. D'autre part, on utilise s1, s2, s3, s4 plutt quex4, x5, x6, x7 comme noms pour les variables d'carts.Voici le dictionnaire correspondant au tableau prcdent :

    x1 = 1 - 3/2 x2 + 1/2 x3 - 1/2 x7

    x4 = 2 - 3/2 x2 - 3/2 x3 + 1/2 x7

    x5 = 3 - 3/2 x2 - 5/2 x3 - 1/2 x7

    x6 = 2 + 4 x2 - 3 x3 + x7

    ---------------------------------

    z = 5 - 5/2 x2 + 11/2 x3 - 5/2 x7

    Remarque 1.2.6. La caractristique essentielle d'un tableau est que, connaissant les variablesnon-basiques, on peut immdiatement calculer les variables basiques et la fonction objective (d'ole terme de dictionnaire). Le calcul devient mme immdiat si toutes les variables non-basiquessont nulles.Les quations d'un tableau dcrivent un sous-espace ane de Rn+m.Un point p de cet espace est caractris par ses coordonnes dans les variables non-basiques.

    Exercice 2. Calculer directement le tableau correspondant aux variables non-basiques x1, s2, s3du programme linaire Chvatal13.

    Exercice 3. Soit t1 et t2 deux tableaux correspondant au mme programme linaire.Que peut-on dire des deux sous-espaces ane de Rn+m qu'ils dnissent ?

    Dfinition 1.2.7. Le point de coordonnes (0, . . . , 0) dans les variables non-basiques est appellsolution basique du tableau.Un tableau est faisable si la solution basique (0, . . . , 0) est une solution faisable.De manire quivalente, un tableau est faisable si les constantes dans les quations du haut sonttoutes positives ou nulles.

    Revenons l'exemple [1, p. 19] :

    read("tableaux.mu") :

    t :=linopt : :Transparent(Chvatal19) ;

    t :=linopt : :Transparent : :userstep(t, slk[3], x3) ;

    Exercice 4. [1, 2.1 p. 26]Utilisez l'algorithme du simplexe pour rsoudre les programmes linaires suivants :

    Chvatal26_21a :=

    [[ x1 +x2+2*x3

  • 6 1. PROGRAMMATION LINAIRE

    1.3. Piges et comment les viter

    1.3.1. Bilan des pisodes prcdents. On a un algorithme qui marche sur quelquesexemples.Il faut vrier trois points pour savoir s'il marche en gnral :

    (1) Initialisation(2) Itration(3) Terminaison

    1.3.2. Itration.

    Proposition. tant donn un tableau faisable, on peut toujours eectuer l'une des oprationssuivantes :

    (1) Conclure que le systme a une solution optimale unique, la calculer et la certier ;(2) Conclure que le systme a une innit de solutions optimales, les calculer et les certier ;(3) Conclure que le systme est non born, et le certier en dcrivant une demi-droite de

    solutions sur laquelle z prend des valeurs aussi grandes que voulu.(4) Trouver une variable entrante, une variable sortante, et eectuer un pivot. Par construc-

    tion, le tableau obtenu est quivalent au tableau prcdent, et est encore faisable. Deplus, z a augment au sens large (i.e. la constante z dans la nouvelle expression de zest suprieure ou gale l'ancienne).

    Proof. Il sut d'analyser le tableau faisable. Notons S1, . . . , Sm les variables basiques,X1, . . . , Xn les variables non-basiques, et C1, . . . , Cn, z les coecients tels que z = z +

    CiXi.

    Par exemple, dans le tableau nal du problme1.2.1, on a X1 = x2, X2 = s1, X3 = s2, S1 = x1,S2 = x3, S3 = s3, C1 = 3, C2 = 1, C3 = 1 et z = 13.

    (1) Si Ci < 0, pour tout i, alors la solution basique du tableau, de coordonnes X1 = =Xn = 0 est l'unique solution optimale. Vriez le en prouvant qu'une toute solutionfaisable quelconque de coordonnes X1, . . . , Xn donnant la mme valeur z = z lafonction objective est gale la solution basique du tableau.

    (2) Si Ci 0 pour tout i, la solution basique du tableau est optimale, et l'ensemble dessolutions optimales est dcrit par les inquations linaires du systme et l'annulation desvariables non-basiques Xi pour lesquelles on a Ci < 0. Les dtails sont similaires au 1.

    (3) Sinon, on peut prendre Xi, variable non-basique avec un coecient Ci > 0. Si les qua-tions du tableau n'imposent pas de limite sur Xi, le systme est non born : la demi-droite dcrite par (0, . . . , 0, Xi, 0, . . . , 0) pour Xi 0 est compose de solutions faisablesqui donnent des valeurs aussi grandes que voulu z.

    (4) Autrement, une des variables basiques Sj tombe zro, et on peut faire un pivot entrela variable entrante Xi et la variable sortante Sj . Par construction, la nouvelle solutionbasique correspond une solution faisable (0, . . . , 0, Xi, 0, . . . , 0) pour un Xi 0. Enparticulier le nouveau tableau est faisable, et comme Ci 0, la constante z a augmentau sens large.

    Exemple. [1, p. 29] Systme o z n'augmente pas strictement lors du pivot :

    Chvatal29 := [[ 2*x3

  • 1.3. PIGES ET COMMENT LES VITER 7

    t1 := linopt : :Transparent : :userstep(t0, slk[1], x3) ;

    t2 := linopt : :Transparent : :userstep(t1, slk[3], x1) ;

    t3 := linopt : :Transparent : :userstep(t2, slk[2], x2) ;

    t4 := linopt : :Transparent : :userstep(t3, x3, slk[1]) ;

    Remarque. Lorsque z n'augmente pas, on est forcment dans une situation de dgnrescence :le pivot change le tableau, mais pas la solution basique dcrite par le tableau.

    1.3.3. Terminaison.

    Problem 1.3.1. Peut-on garantir que l'algorithme va nir par s'arrter ?

    Thorme. Si l'algorithme du simplexe ne cycle pas, il termine en au plus C(n+m,m) itrations.

    Proof. (Rsum)Chaque itration correspond un tableau faisable.Un tableau faisable est entirement caractris par le choix des variables basiques.Il n'y a que C(n + m,m) choix possibles de variables basiques.

    Remarque. L'algorithme ne peut cycler qu'en prsence de dgnrescence.

    Avec une stratgie incorrecte, l'algorithme du simplexe peut cycler ternellement :

    Exemple. [1, p. 31] Systme cyclant en 6 itrations avec la stratgie : Choix de la variable entrante avec le coecient dans l'expression de z le plus fort Choix de la variable sortante avec le plus petit index

    Chvatal31 := [[0.5*x1 - 5.5*x2 - 2.5*x3 + 9*x4

  • 8 1. PROGRAMMATION LINAIRE

    Ide : supprimer les dgnrescences en perturbant lgrement le systme !

    Exemple. [1, p. 34,35]

    On introduit des constantes 1 >> >> n.Inconvnient : solution approche, ou introduction de calcul symbolique

    1.3.3.2. La mthode du plus petit index.

    Thorme. L'algorithme du simplexe termine si, lorsqu'il y a ambigut sur le choix de la variableentrante ou sortante, on choisit toujours la variable de plus petit index.

    Cette mthode est simple et lgante.Par contre, elle empche toute stratgie pour faire converger l'algorithme plus vite.

    1.3.3.3. Mthodes intermdiaires. Stratgie au choix, mais si z n'augmente pas pendant plusd'un certain nombre d'itrations, on bascule sur la stratgie du plus petit index jusqu' ce quel'on soit sorti de la dgnrescence.

    1.3.4. Initialisation. Pour le moment, l'algorithme du simplexe ncessite de partir d'untableau faisable.

    Problme. Dans le cas gnral, comment se ramener un tableau faisable ?Le systme pourrait mme ne pas avoir de solution !

    Exemple. [1, p. 39] Systme P1 :Maximiser : x1 x2 + x3Sous les contraintes :2x1 x2 + 2x3 42x1 3x2 + x3 5x1 + x2 2x3 1x1, x2, x3 0

    Exemple. Introduction d'un systme auxiliaire P0 pour dterminer si P est faisable :Maximiser : x0Sous les contraintes :2x1 x2 + 2x3 x0 4

  • 1.3. PIGES ET COMMENT LES VITER 9

    2x1 3x2 + x3 x0 5x1 + x2 2x3 x0 1x0, x1, x2, x3 0Remarques : P0 est faisable (prendre x0 susamment grand) ; Les solutions faisables de P correspondent aux solutions faisables de P0 avec x0 = 0 ; P est faisable si et seulement si P0 a une solution faisable avec x0 = 0.tudions ce nouveau systme :

    Chvatal40 := [[ -x1 + x2 - 2*x3 - x0

  • 10 1. PROGRAMMATION LINAIRE

    t0 :=linopt : :Transparent(Chvatal44_39a0)

    t1 :=linopt : :Transparent : :userstep(t0, slk[2], x0)

    t2 :=linopt : :Transparent : :userstep(t1, slk[1], x1)

    t3 :=linopt : :Transparent : :userstep(t2, x0, x2)

    t0 :=linopt : :Transparent(Chvatal44_39a)

    t1 :=linopt : :Transparent : :userstep(t0, slk[1], x1)

    t2 :=linopt : :Transparent : :userstep(t1, slk[2], x2)

    t3 :=linopt : :Transparent : :userstep(t2, slk[3], slk[2])

    1.3.5. Le thorme fondamental de la programmation linaire.

    Thorme. Tout programme linaire P sous forme standard a l'une des proprits suivantes :

    (1) Si P n'a pas de solutions optimales, alors P est infaisable ou non born ;(2) Si P a une solutions faisable, alors P a une solution basique faisable ;(3) Si P a une solution optimale, alors P a une solution basique optimale.

    1.4. Ecacit de l'algorithme du simplexe

    Pour une discussion complte sur ce thme, nous renvoyons au livre de rfrence [1, 4. How fast isthe simplex method], ainsi qu' l'excellente Foire Aux Questions http://rutcor.rutgers.edu/~mnk/lp-faq.html pour les volutions rcentes.

    Exercice. [1, 4.2 et 4.3, p. 53]

    1.5. Le thorme de dualit

    1.5.1. Motivation : estimer la valeur optimale de la fonction objective.

    Exemple. Maximiser : z = 4x1 + x2 + 5x3 + 3x4Sous les contraintes :x1 x2 x3 + 3x4 15x1 + x2 + 3x3 + 8x4 55x1 + 2x2 + 3x3 5x4 3x1, x2, x3, x4 0

    Problme. Borne infrieure sur la valeur optimale z ?Borne suprieure sur la valeur optimale z ?

    D'aprs la seconde contrainte :

    z 4x1 + x2 + 5x3 + 3x4 253

    x1 +53x2 + 5x3 +

    403

    x4 2753

    En utilisant la somme de la deuxime et troisime contrainte :

    z 4x1 + 3x2 + 6x3 + 3x4 58

    http://rutcor.rutgers.edu/~mnk/lp-faq.htmlhttp://rutcor.rutgers.edu/~mnk/lp-faq.html

  • 1.5. LE THORME DE DUALIT 11

    Problme. Comment faire cela de manire systmatique ?

    On recherche des combinaisons linaires des contraintes : y1 fois la premire contrainte : x1 x2 x3 + 3x4 1 y2 fois la seconde contrainte : 5x1 + x2 + 3x3 + 8x4 55 y3 fois la troisime contrainte : x1 + 2x2 + 3x3 5x4 3Ce qui donne :

    (y1 + 5y2 y3)x1 + (y1 + y2 + 2y3)x2 + (y1 + 3y2 + 3y3)x3 + (3y1 + 8y2 5y3)x4

    y1 + 55y2 + 3y3Quelles sont les contraintes pour obtenir une borne sur z ?

    Pour garder le sens des ingalits : y1, y2, y3 0Pour obtenir une majoration de z = 4x1 + x2 + 5x3 + 3x4 :y1 + 5y2 y3 4y1 + y2 + 2y3 1y1 + 3y2 + 3y3 53y1 + 8y2 5y3 3Si y1, y2, y3 satisfont ces conditions, on obtient la borne z y1 + 55y2 + 3y3.On veut donc minimiser y1 + 55y2 + 3y3 !Par exemple, en prenant y1 = 0 et y2 = y3 = 1, on retrouve l'ingalit z 58.

    1.5.2. Le problme dual.

    Dfinition. Soit P un programme linaire sous forme standard :Maximiser :

    z =n

    j=1

    cj xj

    Sous les contraintes :

    nj=1

    aij xj bi, pour i = 1, . . . ,m

  • 12 1. PROGRAMMATION LINAIRE

    xj 0, pour j = 1, . . . , nLe dual de P est le problme :Minimiser :

    w =m

    i=1

    bi yi

    Sous les contraintes :

    mi=1

    aij yi cj , pour j = 1, . . . , n

    yi 0, pour i = 1, . . . ,mP est appel problme primal.Proposition. Si x1, . . . , xn est une solution faisable du problme primal et y1, . . . , ym une solutionfaisable du problme dual, alors z w, i.e.

    nj=1

    cj xj m

    i=1

    bi yi

    Dmonstration. Il sut d'appliquer les ingalits qui dnissent les solutions faisables :

    z =n

    j=1

    cj xj n

    j=1

    (m

    i=1

    aij yi

    )xj =

    mi=1

    nj=1

    aij xj

    yi mi=1

    bi yi = w

    En particulier : Si, comme dans l'exemple prcdent, on connat une solution faisable du problme dual, onobtient une borne sur le problme primal et rciproquement !

    Si on connat une solution faisable du problme primal et une solution faisable du problmedual telles que z = w, i.e.

    nj=1

    cj xj =m

    i=1

    bi yi,

    alors on sait que ces deux solutions sont optimales !Exercice. Prouver que les solutions faisables x1 = 0 , x2 = 14, x3 = 0, x4 = 5 et y1 = 11, y2 = 0,y3 = 6 du problme original et de son dual sont optimales.

    La donne de (y1, y2, y3) donne un certicat de l'optimalit de la solution (x1, x2, x3, x4) :Quelqu'un qui veut faire une vrication peut le faire quasiment sans calcul :il sut de tester que les solutions sont faisables et que que z = w.Problme. Est-il toujours possible de trouver un tel certicat ?

    La rponse est oui, et c'est le thorme central de la programmation linaire.

  • 1.5. LE THORME DE DUALIT 13

    1.5.3. Le thorme de dualit.

    Thorme. Si le problme primal a une solution optimale (x1, . . . , xn), alors le problme dual a

    une solution optimale (y1 , . . . , ym) telle que w

    = z, i.e.n

    j=1

    cj xj =

    mi=1

    bi yi .

    Ce thorme nous assure de l'existence d'un certicat.Mais y-a-t'il une technique pour le calculer ?Oui, car la preuve va tre constructive : son principe va prcisment tre de construire une solutionoptimale, en utilisant le tableau nal obtenu par l'algorithme du simplexe.

    Exemple. Faisons un peu de magie sur notre exemple.Le tableau initial est :

    Chvatal54 :=

    [[ x1 - x2 - x3 + 3*x4

  • 14 1. PROGRAMMATION LINAIRE

    Pour une solution quelconque (x1, . . . , xn), on a par dnition :

    z =n

    j=1

    cj xj

    si = bi n

    j=1

    aij xj

    En remplaant dans l'expression ci-dessus, on obtientn

    j=1

    cj xj = z +n

    j=1

    cj xj m

    i=1

    yi (bi n

    j=1

    aijxj)

    nj=1

    cj xj = z m

    i=1

    bi yi +

    nj=1

    (cj +m

    i=1

    aij yi ) xj

    Cette galit tant vrie quel que soit le choix de (x1, . . . , xn), il doit y avoir galit des coe-cients des xj de part et d'autre. On en dduit d'une part que

    z =n

    j=1

    bi yi = w

    ,

    comme voulu, et d'autre part quem

    i=1

    aij yi = cj cj cj ,

    c'est--dire que (y1 , . . . , ym) est une solution faisable du problme dual.

    1.5.4. Relations entre un problme et son dual.

    Proposition. Le dual du dual d'un problme P est le problme P lui-mme.

    Exercice. Vriez-le sur un exemple.

    Il s'ensuit :

    Thorme. On a les relations suivantes entre un problme P et son dual Q :P admet une solution optimale si et seulement si Q en admet une.Si P est faisable, alors Q est born ; si Q est faisable, alors P est born.

    Remarque. Un problme et son dual peuvent tre simultanment infaisables !Maximiser : 2x1 x2Sous les contraintes :x1 x2 1x1 + x2 2x1, x2 0

    Le tableau suivant rsume les possibilits (nb : un problme non born est faisable !)

    primal\dual optimal infaisable non bornoptimal possible impossible impossibleinfaisable impossible possible possiblenon born impossible possible impossible

    1.5.5. Notations matricielles.

    Exercice 6. TODO !Introduire les notations matricielles. Vrier que prendre le dual revient transposer et multiplier par 1. En dduire que le dual du dual de P est P . Redmontrer laproposition et le thorme en utilisant les notations matricielles.

  • 1.5. LE THORME DE DUALIT 15

    1.5.6. Conditions de complmentarit des variables d'cart.

    Problme. Supposons que l'on connaisse la solution optimale (x1, . . . , xn) du problme, mais pasle tableau nal dans l'algorithme du simplexe. Peut-on retrouver la solution optimale (y1 , . . . , ym)du problme dual de faon obtenir un certicat ?

    Pour voir cela, on va raner l'ingalit w z sur des solutions xj et yi faisables en utilisant lesvariables d'cart pour mesurer la dirence w z.

    Exercice 7. On veut introduire des variables d'cart ti pour le problme dual :Donner une formule raisonable pour ti.Exprimer w z en fonction des xi, yi, si, ti.

    Par dnition des variables d'cart si, on a

    si = bi n

    j=1

    aijxj ,

    et donc

    bi = si +n

    j=1

    aijxj .

    De mme, par dnition des variables d'cart tj pour le problme dual, on a

    tj =m

    i=1

    aijyi cj ,

    que l'on utilise pour exprimer cj

    cj =m

    i=1

    aijyi tj .

    En remplaant dans l'expression de w z, on obtient

    w z =m

    i=1

    biyi n

    j=1

    cjxj =m

    i=1

    siyi +m

    i=1

    nj=1

    aijxj

    yi nj=1

    (m

    i=1

    aijyi

    )xj +

    nj=1

    tjxj

    Qui se simplie en :

    w z =m

    i=1

    siyi +n

    j=1

    tjxj .

    Problme. Que peut-on dduire de cette galit ?

  • 16 1. PROGRAMMATION LINAIRE

    Thorme. (Complmentarit des variables d'cart) Si (x1, . . . , xn) est solution optimale du pro-

    blme primal et (y1 , . . . , ym) est solution optimale du problme dual, alors :

    yi = 0 ou si = 0, pour tout i = 1, . . . ,m;

    xj = 0 ou tj = 0, pour tout j = 1, . . . , n.

    Problme. Et maintenant ? Comment utiliser ce thorme pour trouver (y1 , . . . , ym) ?

    Exercice. [1, p. 64-65]

    Thorme. Si (x1, . . . , xn) est une solution basique non dgnre, alors les quations que l'on

    tire du thorme de complmentarit ont une unique solution.

    Donc, lorsque la solution optimale du problme est non dgnre, la technique que l'on a utilisedans les exercices permet toujours d'obtenir un certicat, pour le prix de la rsolution d'un systmede m quations linaires en m variables.

    1.5.7. Interprtation gomtrique de la dualit.

    Exercice. Maximiser x1 + x2Sous les contraintes2x1 + x2 14x1 + x2 82x1 x2 10x1, x2 0.Faire une gure dans le plan la rgion des solutions faisables.Donner le problme dual.Prendre y1 = y2 = 1, y3 = 0. Donner l'ingalit sur les xi correspondante, et reprsenter la rgionqu'elle dlimite dans le plan.Donner quelques solutions faisables du problme dual.Tracer sur la gure les rgions dlimites par les ingalits correspondantes.Calculer la solution optimale du primal et du dual.Les tracer sur la gure.Essayer d'interprter gomtriquement les thormes que l'on a rencontrs.

    1.5.8. Interprtation conomique des variables duales.

    Problem 1.5.1. Modle conomique d'une usine dont on veut maximiser le prot.Une papetterie produit et vend dirents types de papier : du papier kraft vendu au rouleau, dupapier recycl vendu la ramette et du papier velin vendu la feuille. Pour cel, elle disposeen dbut de mois d'un certain stock de matire premire : de l'eau ( l'hectolitre), du chlore (aulitre) du bois ( la tonne), du vieux papier (au kilo), des bres textiles (au ballot). Remplacer lesstocks en n de mois un certain cot. Chaque type de papier ncessite une certaine proportionde chaque matire premire. Par exemple, le chlore sert blanchir le papier ; il n'y en a pas besoin

  • 1.5. LE THORME DE DUALIT 17

    pour le papier kraft ; le papier velin est essentiellement produit partir de bois et de bres textiles,etc. Le but est de prvoir, pour le mois qui vient, quelle quantit de chaque papier il faut produirepour maximiser le prot de la papetterie.Modliser ce problme sous forme de programme linaire sous forme standard.

    xj : quantit de produit j fabriquecj : prix de vente unitaire du produit jaij : quantit de ressource i consomme par unit de produit j fabriquebi : limites sur la disponibilit de la ressource iMaximiser :

    z =n

    j=1

    cjxj

    Sous les contraintes :

    nj=1

    aijxj bi, pour i = 1, . . . ,m;

    xj 0, pour j = 1, . . . , n.

    Quelle dimension (au sens physique) ont les variables xj , bi , cj , aij ?On voudrait trouver une interprtation pour les variables yi dans le problme dual. Quelle dimen-sion physique ont-elles ? Qu'est-ce que cela suggre ?

    Cela suggre que yi mesure la valeur intrinsque de la ressource i pour l'usine.

    Thorme. S'il y a au moins une solution optimale (x1, . . . , xm) non dgnre, alors il existe

    strictement positif tel que lorsque |ti| pour tout i, le programme linaire relax :Maximiser :

    z =n

    j=1

    cjxj

    Sous les contraintes :

  • 18 1. PROGRAMMATION LINAIRE

    nj=1

    aijxj bi + ti, pour i = 1, . . . ,m;

    xj 0, pour j = 1, . . . , n.a une solution optimale, et la valeur optimale est

    z +m

    i=1

    yi ti

    o z est la valeur optimale du problme original et (y1 , . . . , ym) est la solution optimale du dual.

    Autrement dit, on peut mesurer l'esprance de gain au voisinage d'une solution optimale lorsquel'on relaxe certaines des contraintes : yi dcrit le gain que l'usine peut esprer en augmentant laquantit de ressource i disponible.

    1.5.9. Problmes.

    Problem 1.5.2. Utiliser le thorme de dualit pour vrier les solutions des problmes de pro-grammation linaire que vous avez rsolu jusqu'ici.

    Problem 1.5.3. Un bcheron a 100 hectares de bois de feuillus. Couper un hectare de bois et laisserla zone se rgnrer naturellement cote 10 kF par hectares, et rapporte 50 kF. Alternativement,couper un hectare de bois, et replanter avec des pins cote 50 kF par hectares, et rapporte terme120 kF. Sachant que le bcheron n'a que 4000 kF en caisse au dbut de l'opration, dterminer lameilleure stratgie adopter et le prot escomptable.Maintenant, le bcheron a aussi l'option d'emprunter pour augmenter son capital initial, et ce pourun taux d'intrt total de S% sur la dure de l'opration. Alternativement, il peut dcider d'investirson capital dans une autre activit rapportant T% sur la dure de l'opration. Dterminer, selonles valeurs de S et T , la meilleure stratgie adopter.

    Problem 1.5.4. Pouvez vous interprter les conditions de complmentarit des variables d'carten termes conomiques ?

    Problem 1.5.5. L'objectif est de dmontrer l'un des sens du thorme d'interprtation conomiquedes variables duales. L'autre sens est plus technique, et ne sera pas abord ici ; voir les rfrencespour les dtails.Soit z la valeur optimale du problme primal et (y1 , . . . , ym) une solution optimale quelconquedu problme dual. Montrer que pour toute solution faisable (x1, . . . , xn) du problme primal ol'on a relax chaque contrainte i de la quantit ti, on a

    nj=1

    cjxj z +m

    i=1

    yi ti

    Dmonstration. Exprimons le fait que (x1, . . . , xn) est solution faisable du problme avecles contraintes relaxes :

  • 1.6. APPLICATIONS 19

    nj=1

    aijxj bi + ti

    Donc :

    mi=1

    yi

    nj=1

    aijxj

    mi=1

    yi bi +m

    i=1

    yi ti = w +

    mi=1

    yi ti = z +

    mi=1

    yi ti

    On a trouv le terme de droite voulu.Reste trouver le terme de gauche, ce que l'on fait avec une inversion de somme similaire cellequi a t utilise dans les dmonstrations prcdentes.

    mi=1

    yi

    nj=1

    aijxj

    = nj=1

    (m

    i=1

    aijyi

    )xj

    nj=1

    cjxj

    Problme. Construire un exemple montrant que la conclusion du thorme est fausse si l'hypo-thse de non dgnrescence de la solution optimale est omise.

    1.6. Applications

    1.6.1. Jeux matriciels.

    1.6.1.1. Le jeu de Morra. Rgles du jeu (pour deux personnes, Louis et Claire). chaque tour, chaque joueur cache un ou deux pions, et essaye de parier, voix haute, combien depions l'autre joueur a cach. Si un seul des joueurs a pari la bonne solution, son score augmented'autant de point qu'il y a de pions cachs en tout ; le score de l'autre joueur diminue du mmenombre de points. Sinon, rien ne ce passe. Par exemple, si Claire cache 2 pions et parie 1 tandisque Louis cache 2 pions et parie 2, Louis gagne 4 points et Claire en perds 4.Le but est de trouver une stratgie gagnante.

    Exercice 8. Jouez !

    chaque tape, chaque joueur a le choix entre 4 actions : [1,1] : Cacher 1 pion, parier 1 pion [1,2] : Cacher 1 pion, parier 2 pions [2,1] : Cacher 2 pions, parier 1 pion [2,2] : Cacher 2 pions, parier 2 pionsChacune de ces options est appele stratgie pure.

  • 20 1. PROGRAMMATION LINAIRE

    Problme. Est-ce que suivre une stratgie pure est une stratgie raisonnable ?

    Quelles autres stratgies ?

    Exercice 9. Claire et Louis font un long match.

    Stratgie de Claire : inconnue ; elle a jou c1 fois [1,1], c2 fois [1,2], c3 fois [2,1] et c4 fois [2,2].

    Stratgie de Louis : lancer une pice chaque tour pour choisir entre [1,2] et [2,1].

    Calculer les gains et pertes de Claire et Louis.

    Rsultat :

    Gain de Louis : (c1 c4)/2.

    Perte moyenne maximale chaque tour : 1/2.

    Une stratgie alatoire de ce type est appelle stratgie mixte.

    Exercice 10. Gnralisation : on suppose que Louis se xe une stratgie mixte. Caractrisez lameilleure stratgie de contre-attaque de Claire, c'est--dire celle qui minimise le gain moyen deLouis.

    Problem 1.6.1. Comment caractriser la meilleure stratgie mixte pour Louis ?

  • 1.6. APPLICATIONS 21

    1.6.1.2. Jeux matriciels. Chaque matrice A = (aij) dnit un jeu. chaque tour, le joueurpar Ligne (Louis) choisit une ligne i parmi les m lignes, et le joueur par Colonnes (Claire) choisitune colonne j parmi les n colonnes.Le gain pour Louis est le coecient aij : Si aij 0, Louis reoit aij de Claire Si aij 0, Claire reoit aij de Louis Si aij = 0, il n'y a pas d'change

    Exercice. crire la matrice pour le jeu de Morra.crire la matrice pour le jeu papier/ciseaux/caillou/puits.

    Exercice 11. Dans un long match, Louis adopte une stratgie mixte, en choisissant au hasard lastratgie pure i avec une probabilit xe xi. Claire joue selon une stratgie de son choix : la ndu match, elle a jou cj fois la stratgie pure j.On note N :=

    i ci et yi :=

    ciN . Calculer le gain moyen par tour pour Louis.

    Dfinition. Les vecteurs x := (x1, . . . , xm) et y := (y1, . . . , yn) sont dit stochastiques :

    xi 0 et x1 + + xm = 1.

    On considre x := [x1, . . . , xm] comme un vecteur ligne, et y := [y1, . . . , yn]T comme un vecteurcolonne, de faon pouvoir crire commodment le gain de Louis sous la forme :

    xAy.

    Exercice 12. Louis adopte une stratgie mixte donne. Caractriser le gain au pire pour Louis.

    Ici, x est constant. Cela peut se mettre sous la forme du programme linaire en y :

    miny

    xAy

    Si Louis veut une bonne garantie pour maintenir ces gains hauts (ou ses pertes faibles), il peutchercher une stratgie mixte qui maximise la quantit miny xAy.On appelle une telle stratgie mixte optimale ; son gain moyen vaut

    maxx

    miny

    xAy

  • 22 1. PROGRAMMATION LINAIRE

    Problem 1.6.2. Est-ce que la stratgie mixte optimale est la meilleure stratgie ?

    Comment calculer la stratgie optimale ?

    Tel quel, le problme ne se met pas sous la forme d'un programme linaire. On avait vu une astucepour se dbarasser d'un min dans les contraintes ; celle ci ne s'applique cependant que lorsque l'onprend le min d'un nombre ni d'expressions, alors qu'ici il y en a a priori autant que de choix dey.

    Proposition. On peut toujours atteindre la quantit miny xAy avec un y de la forme :

    (0, . . . , 0, 1, 0, . . . , 0).

    Autrement dit :

    miny

    xAy = minj

    mi=1

    aijxi.

    Interprtation ?

    Dmonstration. Clairement, pour une stratgie pure j donne :

    miny

    xAy m

    i=1

    aijxi.

    Maintenant, supposons que j0 minimisem

    i=1 aij0xi :m

    i=1

    aijxi m

    i=1

    aij0xi pour j = 1, . . . , n.

    Alors, si y := (y1, . . . , yn) est un vecteur stochastique, on a :

    xAy =n

    j=1

    mi=1

    xiaijyj =n

    j=1

    yj

    (m

    i=1

    aijxi

    )

    nj=1

    yj

    (m

    i=1

    aij0xi

    )=

    nj=1

    yj

    ( mi=1

    aij0xi

    ).

    Donc, comme voulu,

    xAy m

    i=1

    aij0xi

  • 1.6. APPLICATIONS 23

    Exercice 13. Formuler le problme de trouver une stratgie mixte optimale pour Louis commeun programme linaire.Supposons que Claire veuille aussi adopter une stratgie mixte optimale. Formuler de mme sonproblme sous forme de programme linaire.

    Thorme. (Thorme minimax). Pour toute matrice m n A, il existe un vecteur stochastiquex de longueur m, et un vecteur stochastique y de longueur n tel que :

    miny

    xAy = maxx

    xAy,

    o le minimum est pris sur tout les vecteurs stochastiques y de longueur n, et le maximum est prissur tout les vecteurs stochastiques x de longueur m.

    Interprtation ?

    Dmonstration. Application immdiate du thorme de dualit.

    Dfinition. Si A est interprte comme un jeu, la valeur du jeu est la quantit :

    miny

    xAy = maxx

    xAy.

    Exercice. Calculer la valeur du jeu de Morra et du jeu caillou/pierre/ciseaux/puit.

    D'o vient cette particularit ?

    1.6.1.3. Stratgie cache / stratgie rvle.

    Problem 1.6.3. Est-ce que rvler sa stratgie son adversaire, diminue l'esprance de gain ?

  • 24 1. PROGRAMMATION LINAIRE

    1.6.1.4. Morra modi. Il n'est pas trs pratique de devoir annoncer simultanment les paris.

    Problem 1.6.4. Est-ce que le jeu est modi si Claire annonce toujours son pari en premier ?

    Exercice. Faire l'analyse de ce nouveau jeu.

    1.6.1.5. Blu et antiblu. Jeu de poker avec trois cartes (jeu invent et analys par Kuhn en1950).A et B dposent chacun un pion, puis reoivent chacun une carte.Ensuite, A peut parier un pion supplmentaire ou passer.De mme pour B, puis pour A, jusqu' ce que : Un pari est rpondu par un passe : celui qui a pari gagne tous les pions ; Un pari est rpondu par un pari ou un passe est rpondu par un passe :Celui qui a la plus haute carte gagne tous les pions.

    Exercice. Jouez !tant donn une distribution des cartes, dcrire les stratgies pures pour A et B.Dcrire toutes les stratgies pures pour A et B.Quelle est la taille de la matrice des gains ?

    Y-a-t'il des stratgies que l'on peut liminer d'oce ?

    Au nal, on peut obtenir comme matrice de gain :124 124 314 324

    112 0 0 16 16

    113 0 1613

    16

    122 16 16

    16

    16

    123 16 0 016

    312 16 13 0

    12

    313 16 16

    16

    12

    322 0 1213

    16

    323 0 1316

    16

    Stratgie mixte pour A : [ 13 , 0, 0,12 ,

    16 , 0, 0, 0] ; stratgie mixte pour B : [

    23 , 0, 0,

    13 ]

    T .

    Exercice. Prouver que ces stratgies sont optimales.

    Exercice. Lorsque A a la carte 1 en main, calculer en quelles proportions il doit choisir entre les4 stratgies lmentaires.

    Rsum de la stratgie de A : Avec la carte 1 : mixer 1 et 3 en proportions 5 :1 ; Avec la carte 2 : mixer 1 et 2 en proportions 1 :1 ; Avec la carte 3 : mixer 2 et 3 en proportions 1 :1.Pour A, bluer ou contre-bluer est rentable.Rsum de la stratgie de B : Avec la carte 1 : mixer 1 et 3 en proportions 2 :1 ;

  • 1.7. RSEAUX DE TRANSPORT 25

    Avec la carte 2 : mixer 1 et 2 en proportions 2 :1 ; Avec la carte 3 : toujours utiliser 4.

    Pour B, bluer est rentable, mais pas contre-bluer.

    1.7. Rseaux de transport

    Objectif : tudier une certaine classe de problmes de programmation linaire sur laquelle l'algo-rithme du simplexe prends une forme simple et ecace.

    1.7.1. Un exemple d'application.

    Exemple. Considrons le problme de transport d'lectricit suivant.

    Les noeuds sont des villes.

    Les arcs sont des cbles lectriques, sens unique, reliant les villes.

    1 5

    6

    3

    2

    7

    4

    Sources (noeuds avec production) : 6 : 9 MW; 7 : 5 MW

    Puits (noeuds avec consommation) : 3 : 6 MW; 4 : 6 MW; 5 : 2 MW

    Noeuds intermdiaires (noeuds sans production ni consommation) : 1,2

    Il y a des pertes en lignes, donc transporter du courant a un cot. On le modlise par un cot parunit de courant transporte sur chaque arc entre la ville i et la ville j.

  • 26 1. PROGRAMMATION LINAIRE

    1 5: 2

    6: 9

    4: 6

    3: 6

    2

    7: 5

    10

    15

    56

    108

    48

    65

    38

    28

    77

    48

    19

    33

    24Rpartition du ux de courant pour satisfaire la consommation au plus bas cot ?

    Exercice. Mettre le problme prcdent sous forme de problme de programmation linaire.Qu'a-t'il de spcique ?

    Consommation et production sont modlises par des constantes bi qui reprsentent la demande.On a pour les puits, bi > 0, pour les sources bi < 0, et pour les noeuds intermdiaires, bi = 0 ;Attention, sur les graphiques, c'est l'ore qui est reprsente ! Le signe est invers !

    Le cot de transport unitaire le long d'un arc est modlis par des constantes cij ; On modlise le ux de courant en mesurant par xij la quantit de courant transfre directemententre les villes i et j.

    Remarque. Cette modlisation est a priori ambigue : dans le rseau suivant, x12 = 1, x23 = 1et x24 = 1 peut reprsenter deux situations direntes :

    Transporter une unit de 1 vers 3 via 2, et une unit de 2 vers 4 directement ; Transporter une unit de 1 vers 4 via 2, et une unit de 2 vers 3 directement.

  • 1.7. RSEAUX DE TRANSPORT 27

    3: 1 4: 12: 1

    1: 1

    Comme le consommateur ne se soucie pas de l'origine du courant (un watt, c'est un watt), etcomme le cot dans les deux situations est le mme, on peut ignorer cette ambigut, et considrerque ces deux situations sont quivalentes.

    1.7.2. Problme standard de transport.

    Dfinition. Un problme comme le prcdent est appel problme standard de transport.On impose les restrictions suivantes : La consommation totale est gale la production totale ; Les arcs sont orients, avec au plus un arc dans chaque sens ; Le rseau est connexe (cf. ci-dessous).

    Ces restrictions permettent d'obtenir un algorithme plus simple et lgant. Nous verrons plus tardcomment les contourner pour traiter des problmes plus gnraux.Une solution d'un problme de transport peut tre modlis en introduisant pour chaque arc allantdu noeud i au noeud j une variable xij qui mesure le ux le long de cet arc.

    Proposition. Une solution dcrite par les valeurs des xij est ralisable (faisable) si et seulementsi : Chaque xij est positif (le ux est dans le sens de l'arc) ; Pour chaque noeud intermdiaire, le ux entrant est gal au ux sortant ; Pour chaque source, le ux sortant moins le ux entrant est gal la production ; Pour chaque puit, le ux entrant moins le ux sortant est gal la consommation ;

    Le seulement si est clair ; le si demanderait une vrication pour dcider les dtails de la ralisa-tion : quel watt venant d'o se retrouve o au nal.Les solutions faisables sont donc dcrites par un systme d'quations de la forme :

    x14 + x24 x45 = 6.

    (ici, il s'agit du sommet 4 dans notre exemple), et d'ingalits du type x14 0.

    Exercice. Donner une solution faisable pour notre exemple.

    Remarque. Pour des raisons de conventions, on note n le nombre de noeuds du rseau, et m lenombre d'arcs. C'est l'inverse de ce que l'on avait utilis pour les problmes de programmationlinaire gnraux . . .

    Dfinition. La matrice d'incidence du rseau est une matrice A de taille nm. Les lignes sontindexes par les noeuds du rseau, et les colonnes par les arcs. Dans la cellule correspondant unnoeud k et un arc ij, on mets un coecient valant :

    1 si l'arc part du sommet (i = k), 1 si l'arc arrive au sommet (j = k), 0 sinon.

    L encore les notations ne sont pas parfaites : une paire ij indexe un arc, et donc unecolonne, et non pas une cellule de la matrice. . .

  • 28 1. PROGRAMMATION LINAIRE

    Avec cette notation, et en notant b le vecteur colonne des bi, x le vecteur colonne des xij , et c levecteur ligne des cij on peut mettre le problme sous forme matricielle :

    Minimiser : cx

    Sous les contraintes : Ax = b et x 0.

    Exercice. crire sous forme matricielle le problme correspondant notre rseau :

    x :=

    x13x14x15x21x23x24x25x45x61x62x63x67x72x75

    , b :=

    0066295

    A :=

    1 1 1 1 11 1 1 1 1 1

    1 1 11 1 1

    1 1 1 11 1 1 1

    1 1 1

    c :=[

    c13 c14 c15 c21 c23 c24 c25 c54 c61 c62 c63 c67 c72 c75]

    c :=[

    48 28 10 7 65 38 7 56 48 108 24 33 19]

    On peut vrier que dans lgalit Ax = b, la quatrime composante donne l'quation

    x14 + x24 x45 = 6,

    correspondant au sommet 4.

    1.7.3. Solutions faisables arborescentes.

    Dfinition. Quelques classes de graphes classiques :

  • 1.7. RSEAUX DE TRANSPORT 29

    Chemin Cycle

    Graphe non connexe Graphe connexe

    Fort (graphe acyclique) Arbre

    Arbre couvrant du rseau :

  • 30 1. PROGRAMMATION LINAIRE

    1 5

    6

    3

    2

    7

    4

    Exercice. Supposez que seuls les arcs dans l'arbre couvrant prcdent peuvent tre utiliss.Y-a-t'il une solution ? Est-elle faisable ?

    Proposition. tant donn un arbre couvrant T , il y a une unique solution de transport poursatisfaire les contraintes de production et consommation en n'utilisant que les arcs de l'arbrecouvrant.

    Formellement, il existe un unique vecteur x := [xij ] vriant :

    Ax = b et xij = 0 pour ij nappartenant pas T.

    Dfinition. On appelle une telle solution arborescente.Si de plus le vecteur x vrie x 0, c'est une solution arborescente faisable.On dit aussi que l'arbre est faisable.

  • 1.7. RSEAUX DE TRANSPORT 31

    1.7.4. Algorithme du simplexe pour les rseaux, une motivation conomique.

    Exemple. Description de l'algorithme sur le rseau prcdent.

    1.7.5. Dmonstration algbrique de l'optimalit. Soit T un arbre.

    On note x := [xij ] la solution correspondante.

    Objectif : comparer le cot cx pour la solution x avec le cot cxpour une autre solution faisablex.

    Soit y := [y1, . . . , yn] les prix chaque noeuds pour la solution x.

    Lors de l'application du simplexe, on a compar le cot du transport cij d'une unit le long del'arc ij par rapport la dirence de prix yj yi entre les noeuds i et j.On pose cij := cij (yj yi), et c = [cij ] le vecteur ligne correspondant.

    Exercice. Montrer que c = c yA.

    Lemme. On a cx = cx + cx.

    Dmonstration. On va utiliser le rsultat de l'exercice pour reformuler le cot de x enfonction de c :

    cx = (c + yA)x = cx + yAx = cx + yb.

    En particulier, cx = cx + yb.

    Comme en plus cij = 0 si ij T et xij = 0 si ij 6 T , cx = 0, on a cx = yb.Conclusion : cx = cx + cx.

    Thorme. Si cij 0 pour tout arc ij, alors la solution x est optimale.

    Exercice : nissez de le dmontrer !

    Dmonstration. Si x est une autre solution faisable, xij 0. Donc cx =

    cijxij 0.

  • 32 1. PROGRAMMATION LINAIRE

    1.7.6. Initialisation. Comment choisir un arbre de dpart faisable ?

    On va, comme pour le simplexe habituel, introduire un problme auxiliaire :

    (1) Choisir un arbre couvrant T .

    (2) Calculer la solution x correspondante.

    (3) Si pour un arc ij de T on a xij < 0, la solution est infaisable. Ca n'est pas un problme :S'il n'existe pas, on ajoute un arc articiel ji dans le rseau.On met ji la place de ij dans T .

    (4) L'arbre obtenu est faisable dans le rseau modi.

    Problme : existe-t'il un arbre faisable dans le rseau modi n'utilisant pas d'arc articiel ?

    On prend comme fonction de cot w :=

    ij articiel xij .

    De la sorte, si x est une solution faisable du problme original, alors w = 0.

    On applique le simplexe. la n, on est dans l'une des situations suivantes :

    (1) w > 0 : Le problme original est infaisable.

    (2) w = 0, et l'arbre nal T1 n'utilise aucun arc articiel :T1 est une solution faisable du problme initial, comme voulu.

    (3) w = 0, et l'arbre nal T1 utilise au moins un arc articiel :On a clairement xij = 0 pour tous les arcs articiels.Comme le rseau est connexe, on peut toujours changer les arcs articiels par d'autresarcs non articiels, sans changer les xij .

    1.7.7. Terminaison et cyclage. Comme dans le cas gnral, l'algorithme du simplexe pourles rseaux a les proprits suivantes :

    Il peut y avoir des situations dgnres (pivot ne changeant pas le cot) ; L'algorithme peut cycler, mais seulement en prsence de dgnrescence ; S'il ne cycle pas, alors il termine ; Il y a des stratgies ecaces pour viter les cycles. Mme en vitant les cycles, la complexit au pire peut monter jusqu' 2n ; Dans la pratique, il ne cycle jamais ; la complexit est infrieure n.

    Pour les dtails, nous renvoyons [1, Ch. 19].

    1.7.8. Comment contourner les restrictions ? Dans les exercices suivants, on cherche contourner les restrictions sur les problmes standards de transport.

    Arcs orients galit de la production et de la consommation Connexit Au plus un arc dans chaque sens entre deux sommets

    Exercice. Dans les problmes suivants, on veut rpartir au mieux le transport d'oranges via desrseaux ferroviaires, avec les productions et consommations indiques sur les noeuds, et les cotsde transports indiqus sur les arcs. Pour chacun d'entre eux, indiquer si on peut le modliser sousforme de problme standard de transport, et si oui, comment.

  • 1.7. RSEAUX DE TRANSPORT 33

    1: 5 2: 3

    3

    4: 2

    54

    23

    21

    1: 4 3: 7

    2: 9 4: 2

    1

    1 1 1

    1

    1: 4 3: 7

    2: 5 4: 2

    7: 2

    6: 1

    5: 1

    8: 21

    1 1 1

    1

    2

    3

    2

  • 34 1. PROGRAMMATION LINAIRE

    1: 5

    2: 3

    3: 2

    2

    6

    410

    1.8. Applications du simplexe des problmes de transports

    Problem 1.8.1. Une usine de barrettes mmoire pour ordinateur doit faire face une demandeuctuante dans le temps. On suppose que pour l'anne venir, la demande dj pour chaque moisj est connue l'avance (cette hypothse vaut ce qu'elle vaut).Pour adapter la production la demande, l'usine a le choix entre plusieurs options : Stocker des barrettes d'un mois sur l'autre, sans limite, mais pour un cot unitaire de a. Produire, dans la limite de r barrettes par mois, pour un cot unitaire de b. Surproduire, dans la limite de s barrettes par mois, moyennant un cot unitaire plus lev c. la n de l'anne, on veut de plus qu'il n'y ait plus aucun stock, an de faciliter l'inventaire.videmment, l'objectif est d'adapter la production au moindre cot.Modliser ce problme sous forme de problme de transport standard.

    1.8.1. Un problme d'assignement.

    Exercice. Rpartition de cours entre plusieurs professeurs.Dans le dpartement de mathmatiques d'une universit aux USA, l'valuation des enseignantspar les tudiants a donn au cours des derniers semestres les rsultats suivants :

    Cours\Professeur Bill Yu Luis John HughCalculus 1 3 4 2,3 2,9 2,8

    Dierential Equations 2,25 3,2 3,7 1,9 4,4Statistics 2,6 3,7 4,5 2.7 3,1Calculus 2 3,9 4,1 2,6 3,9 2,4

    Discrete maths 2,8 2,8 3,5 3,4 4,2Dans un semestre, chaque cours est enseign par un professeur, et chaque professeur enseigne uncours. Le chef du dpartement veut rpartir les cours du prochain semestre entre les professeursde faon exploiter au mieux leurs talents respectifs (ou minimiser la grogne des tudiants, auchoix. . . ). Il dcide de prendre comme mesure de la qualit d'une rpartition la moyenne sur chaquecours de la note du professeur qui l'enseigne.Modliser le problme, et indiquer comment on pourrait le rsoudre.

  • 1.8. APPLICATIONS DU SIMPLEXE DES PROBLMES DE TRANSPORTS 35

    Problme. Est-on sr d'obtenir une solution entire ?

    Thorme. (dit d'intgralit) Soit P un problme standard de transport o les contraintes sontentires (i.e. les bi sont entiers). Alors :

    (1) Si P a une solution, alors il a une solution coecients entiers ;(2) Si P a une solution optimale, alors il a une solution optimale coecients entiers.

    Dmonstration. Une solution arborescente pour P a toujours des coecients entiers !En eet, la matrice d'incidence de l'arbre a des coecients 1, 1 et 0, et on peut la mettre sousforme triangulaire avec des coecients 1 et1 sur la diagonnale. Du coup, lorsque l'on calcule leux le long des arcs de l'arbre (ce qui revient inverser la matrice), on obtient uniquement desux entiers.

    Le thorme d'intgralit est assez simple. Alors quel est son intrt ?Le problme prcdent est appell problme d'assignement, et est essentiellement combinatoire (lesvariables sont discrtes).Ce que dit fondamentalement le thorme d'intgralit, c'est que dans certains cas les mthodes deprogrammation linaire peuvent tre utilises pour rsoudre des problmes purement combinatoire,ce qui est loin d'tre trivial !C'est le sujet de la combinatoire polyhdrale.

    1.8.2. Quelques commentaires sur la programmation linaire en coecients en-tiers. Les problmes de programmation linaire en entiers (on impose que les solutions soit coordonnes entires) sont notoirement dicile. Ils sont la plupart du temps NP-complets, et n-cessitent la plupart du temps l'utilisation d'algorithme de backtrack (essai-erreur) qui ne sont paspolynomiaux.Par contre, si par chance on peut les mettre sous forme de problmes standards de transport, lethorme d'intgralit permet de les rsoudre par l'algorithme du simplexe.Exemple. Un problme de sac--dos :On a des objets de direntes tailles l1, . . . , ln que l'on veut mettre dans un sac--dos de taillel. videmment le sac est trop petit, et l'on doit donc faire un choix. Le but est de remplir aumaximum le sac--dos. Cela peut se mettre sous la forme :Maximiser

    ni=1 xili, sous les contraintes 0 xi 1, xi entier.

    Peut-on le mettre sous forme de problme de transport ?

  • 36 1. PROGRAMMATION LINAIRE

    Exemple. Le problme d'assignement cours/professeurs.

    Problme. Est-ce que ce ce problme est polynomial ?

    On note que l'algorithme du simplexe n'est pas polynomial !Par contre, il existe un autre algorithme, dit de l'ellipsode, pour rsoudre les problme de pro-grammation linaire qui est polynomial. Il est amusant de constater qu'en pratique il est moinsecace que l'algorithme du simplexe. Nous renvoyons au Chvatal pour une description compltede cet algorithme.Toujours est-il que cela peut permettre de montrer que le problme d'assignement est polynomial.

    1.8.3. Combinatoire polyhdrale. Pour des dtails sur ce domaine, nous recommandonsparticulirement la lecture de l'article sur le sujet dans le handbook of combinatorics.L'ide gnrale de la combinatoire polyhdrale est la suivante : On part d'un problme d'optimisation combinatoire du type maximiser une certaine quantitsur un ensemble discret E

    On le transforme en problme de programmation linaire, en assignant aux lments de E desvecteurs, et en considrant le polyhdre convexe qu'ils engendrent.

    Ce convexe peut tre dcrit par des ingalits (Comment ? c'est l'tape dicile !). On a alors un problme de programmation linaire, que l'on peut rsoudre. Si tout ce passe bien, le thorme d'intgralit garantit que la solution trouve correspond bien un des vecteurs extrmaux correspondant aux lments de E.

    Le thorme de dualit donne alors des relations de type min-max entre des problmes combina-toires.

    1.8.3.1. Thorme de Knig (lemme des mariages).

    Thorme. On a un ensemble de n lles et n garons que l'on veut marier ensemble. Dansnotre grande magnanimit, on veut bien faire attention ne pas marier deux personnes qui ne seconnaissent pas.

    Si chaque lle connait exactement k 1 garons et chaque garon connat exactement k lles,alors on peut arranger n mariages de faon ne pas marier des inconnus.

    Exercice. Prouvez ce thorme en construisant le problme de transport qui va bien.

  • 1.8. APPLICATIONS DU SIMPLEXE DES PROBLMES DE TRANSPORTS 37

    Dmonstration. On associe chaque lle i une source ri produisant une unit, et chaquegaron un puit si consommant une unit, et on met un arc entre chaque couple ri si se connaissant.Indpendamment du cot sur les arcs, le problme est faisable :Il sut de mettre un ux de 1k sur chaque arc.Le thorme d'intgralit indique alors qu'il y a une solution entire.Cette solution entire donne une faon d'organiser les mariages.

    1.8.3.2. Matrices doublement stochastiques.

    Dfinition. Une matrice X = [xij ] de taille n n est doublement stochastique si les coecientsxij sont positifs et si la somme des coecients sur chaque ligne et chaque colonne vaut 1 : 0, 5 0, 2 0, 30, 01 0, 7 0, 29

    0, 49 0, 1 0, 41

    .X est une matrice de permutation si sur chaque ligne et chaque colonne il y a exactement un 1 etn 1 zros : 0 1 00 0 1

    1 0 0

    .La matrice prcdente correspond la permutation 3, 1, 2.

    Clairement une matrice de permutation est une matrice doublement stochastique.Les matrices de permutations sont les matrices doublement stochastiques coes entiers.

    Exemple. Dimension 2 : quelles sont les matrices doublement stochastiques ? quelles sont lesmatrices de permutations ?

    Thorme. (Birkho-Von Neumann) Toute matrice doublement stochastique est une combinaisonlinaire convexe de matrices de permutations.

    Exercice 14. crire la matrice doublement stochastique ci-dessus comme combinaison linaireconvexe de matrices de permutations.

  • 38 1. PROGRAMMATION LINAIRE

    Lemme. Pour toute matrice X doublement stochastique, on peut trouver une matrice de permu-tation Y de faon ce que si xij = 0 alors yij = 0.

    Exercice 15. Dmontrer ce lemme en utilisant un rseau de transport adquat, et dduisez-enle thorme.

    1.8.3.3. Couvertures et couplages dans les graphes bipartis. On va maintenant regarder uneapplication de la programmation linaire pour tudier des graphes non orients comme le suivant :

    1

    2

    3 4

    5

    6

    7

    8

    Une couverture C de ce graphe est un ensemble de sommets qui touchent toutes les artes, commepar exemple C := {1, 3, 4, 7, 8} :

    1

    2

    3 4

    5

    6

    7

    8

    Exemple 1.8.2. On a 8 petits villages relis par des routes. En cas d'accident de la route, onveut que les pompiers puissent intervenir rapidement. Le prefet impose que lorsqu'une route reliedeux villages, il y ait une caserne de pompier dans au moins l'un des deux villages. videmmentle budget est serr, donc on veut construire des casernes de pompier dans un nombre minimal devillages.Modlisation : Chaque village est reprsent par un sommet du graphe prcdent, les artes repr-sentant les routes. Rsoudre notre problme revient chercher une couverture de taille minimaledu graphe.

    Un couplage M de ce graphe est un ensemble d'artes qui ne se touchent pas, comme par exempleM := {{1, 3} , {4, 5} , {7, 8}} :

  • 1.8. APPLICATIONS DU SIMPLEXE DES PROBLMES DE TRANSPORTS 39

    1

    2

    3 4

    5

    6

    7

    8

    Exemple 1.8.3. On veut loger un groupe de 8 personnes dans un hotel, avec des chambres simpleset doubles. Pour minimiser les dpenses, on utiliser le maximum de chambres doubles. D'un autrect on ne veut pas forcer deux personnes qui ne se connaissent pas bien partager une chambre.Modlisation : chaque sommet du graphe prcdent reprsente une personne, et chaque arte reliedeux personnes qui se connaissent bien. Rsoudre notre problme revient alors rechercher uncouplage de taille maximale dans le graphe.

    Exercice 16. Montrer que pour un couplage M et une couverture C d'un mme graphe, on atoujours |M | |C|.

    Dmonstration. Comme C est une couverture, chaque arte de M devra tre touche parau moins un sommet dans C. De plus, M tant un couplage, chaque sommet de C touche au plusune arte de M . Donc, on a bien |M | |C|.

    Problem 1.8.4. Peut-on trouver M et C de faon avoir galit ?

    Dans notre exemple, non. Par contre, on va voir que pour certaines classes de graphe, cela va trevrai : on aura un thorme de dualit min-max. Comme par hasard, c'est une consquence de laprogrammation linaire.On appelle graphe biparti un graphe dont on peut partitioner les sommets en deux paquets A etB de sorte que toutes les artes soient entre A et B :

  • 40 1. PROGRAMMATION LINAIRE

    Exercice 17. On veut rechercher un couplage maximal du graphe prcdent. Montrer commenton peut rsoudre ce problme en utilisant un rseau de transport.

    On peut par exemple introduire le rseau suivant.

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1 0

    1

    Chaque solution entire du rseau correspond un couplage M du graphe biparti (les artes surlesquelles passent une unit). Le cot de cette solution est 4|M |. Donc minimiser ce cot revient rechercher un couplage de taille max.Voil une solution arborescente optimale du rseau ; on a indiqu sur les sommets les prix relatifs,et sur les artes les quantits transportes :

  • 1.9. PROBLMES DE TRANSPORTS AVEC LIMITES DE CAPACITS 41

    0

    1

    0

    1

    0

    1

    0

    1

    1

    0 1

    1

    1

    1

    0

    0

    1

    1

    1

    1

    La taille maximale d'un couplage M est donc 3.On remarque que les sommets du graphe biparti de prix 1 gauche et de prix 0 droite (en gris)forment une couverture optimale de taille 3 du graphe biparti.

    Problem 1.8.5. Est-ce une concidence ?

    Exercice 18. Soit T une solution arborescente optimale pour le rseau associ un graphe bipartiquelconque. On dnit M et C comme ci-dessus.

    (1) Vrier que si ij est une arte du graphe biparti, et si i 6 C, alors j C.(2) En dduire que C est une couverture du graphe biparti.(3) Vrier que si i est dans C, alors i appartient une des artes du couplage M .(4) Vrier que si ij est une des artes du couplage M , alors i et j ne sont pas simultanment

    dans C.(5) En dduire que |M | = |C|.

    Theorem 1.8.6. (Knig-Egervry) Dans tout graphe biparti, la taille d'un couplage maximal estgale la taille d'une couverture minimale.

    C'est une exemple typique o le thorme de dualit de la programmation linaire donne unthorme min-max reliant deux problmes combinatoires qui ne sont pas clairement relis a priori.

    1.9. Problmes de transports avec limites de capacits

    Exemple. Modliser un rseau routier par un rseau de transport sous forme standard n'est pastrs raliste : sur une autoroute donne, on ne peut pas faire passer autant de camions que l'onveut !

  • 42 1. PROGRAMMATION LINAIRE

    Dans cette section, nous allons regarder une gnralisation des problmes de transports, danslesquels on ajoutera des contraintes de capacits maximales.Nous verrons rapidement que l'algorithme du simplexe et les rsultats thoriques en dcoulantpeuvent tre tendus sans grosses dicults. Puis nous tudierons quelques applications.

    Dfinition. Problme de transport avec limites de capacits sous forme standard :Minimiser : cxSous les contraintes : Ax = b et 0 x u,o A est la matrice d'incidence d'un rseau.(u pour upper bound).

    Exercice. Peut-on mettre le problme suivant sous forme standard ?Minimiser : cxSous les contraintes : Ax = b et l x u.

    Exercice. Donner une solution optimale pour le problme suivant :

    +4

    0

    0

    4

    1,

  • 1.9. PROBLMES DE TRANSPORTS AVEC LIMITES DE CAPACITS 43

    On va donc relcher cette contrainte. Toute arte en dehors de l'arbre T devra tre soit non utilise,soit au contraire utilise pleine capacit :

    Dfinition. Soit T un arbre couvrant du rseau.Une solution x est T -arborescente si tout arc ij 6 T on a :

    xij = 0 ou xij = uij .

    Une solution x est arborescente s'il existe un arbre couvrant T tel que x est T -arborescente.

    Exercice. Donner une solution arborescente au problme prcdent.

    Exercice. tant donn un arbre T , a-t'on unicit de la solution arborescente vis--vis de cetarbre ?

    Exercice. Montrer que si les bi et les uij sont entiers, alors toute solution arborescente est entire.

    Nous allons maintenant voir sur un exemple comment on peut adapter l'algorithme du simplexepour les rseaux.Dans le cas classique (sans limites de capacits), le principe tait de faire rentrer dans l'arbre Tune arte ij inutilise (xij = 0) rentable (yi + cij < yj) de faon pouvoir l'utiliser.Ici, il y a un autre cas de gure : faire rentrer une arrte ij utilise pleine capacit (xij = uij)alors qu'elle n'est pas rentable (yi + cij > yj), de faon pouvoir diminuer son utilisation.

    Exemple 1.9.1. Cf. [1, p.356-359].

    Thorme. Soit x une solution T -arborescente telle que pour toute arte ij en dehors de l'arbre,on ait : soit xij = 0 et yi + cij yj,

  • 44 1. PROGRAMMATION LINAIRE

    soit xij = uij et yi + cij yj.Alors x est une solution optimale.

    Dmonstration. La dmonstration est trs similaire celle du cas sans limites de capacits.On va considrer une autre solution faisable x du problme, et comparer les cots cx et cx corres-pondants.On pose cij := cij (yj yi), et c = [cij ] le vecteur ligne correspondant.cij mesure le cot relatif : cij = 0 si ij est dans T cij 0 si xij = 0 (non rentable d'utiliser l'arc ij). cij 0 si xij = uij (rentable d'utiliser l'arc ij pleine capacit).On note que dans les trois cas, cijxij cijxij . Donc matriciellement cx cx.Comme prcdemment on peut crire c matriciellement sous la forme c = c yA.De plus, x et x sont solutions faisables et vrient donc toutes deux Ax = b.On en dduit alors :

    cx = cx + yAx = cx + yb cx + yb = cx + yAx = cx.

    1.10. Problmes de ot maximum

    1.10.1. Introduction.

    Dfinition. Problme de ot max :

    Rseau avec source et puits Pas de cots sur les arcs Contraintes de capacits sur les arcs Production et consommation nulle sur chaque noeud intermdiaire

    s i1

    i2

    p

    i3 i4

  • 1.10. PROBLMES DE FLOT MAXIMUM 45

    Clairement, cela se gnralise tout problme de ot max.

    Problme. Que peut-on en dduire ?

    On a un algorithme de rsolution (simplexe) Le problme de ot est polynomial On a un thorme d'intgralit :

    Si les contraintes de capacits sont entires (ou innies), alors :

    Soit le problme est non born : s p

  • 46 1. PROGRAMMATION LINAIRE

    Exercice. Quelle est la capacit de la coupe C = {s, i2, i3} ?Que peut-on en dduire sur la valeur d'un ot ?

    Proposition. Pour toute coupe C et tout ot F dans un rseau, la capacit |C| de la coupe estsuprieure au volume |F | du ot : |C| |F |.Problme. Que peut on esprer avoir ?

    Une dualit et un thorme min-max, bien-sr !

    Thorme. (Coupe min-Flot max) Dans un rseau, le volume maximal d'un ot est gal lacapacit minimale d'une coupe.

    Exercice. Vriez-le dans notre exemple.

    Dmonstration. On considre une solution F optimale du problme de ot obtenue avec lesimplexe pour les rseaux avec limites de capacit.

    s i1

    i2

    p

    i3 i4

    0,

  • 1.10. PROBLMES DE FLOT MAXIMUM 47

    0 si i est reli s dans T , 1 si i est reli t dans T .On prend comme coupe C l'ensemble des sommets i avec yi = 0.

    Chaque arc ij sortant de C est rentable puisque yi + cij = 0 < 1 = yj .

    Or, ij n'est pas dans l'arbre, et le ot est optimal.

    Donc ij doit tre utilis pleine capacit : xij = uij .

    De mme, tout arc ij entrant est non rentable, et n'est donc pas utilis : xij = 0.

    Conclusion : Le volume du ot F est gal la capacit de la coupe C :

    |F | =

    ij sortantxij

    ij entrant

    xij =

    ij sortantuij = |C| .

    Remarque. Il y a quelques boulons serrer.

    (1) Le simplexe pourrait terminer en indiquant que le problme est non born : i.e. il existedes ots de volume aussi grand que l'on veut :

    s p01

    Dans ce cas, il ne peut pas y avoir de coupe de capacit nie.Donc le thorme reste valide.

    (2) Le simplexe pourrait indiquer que le problme est non faisable.En fait, non, puisque xij = 0, xij est solution.

    (3) Si le ot max est de volume 0, il se pourrait que l'arbre ne contienne pas l'arc ps. Ducoup, l'ensemble des sommets i tels que yi = 0 ne serait pas forcment une coupe.

    Un tel cas correspond en fait une solution dgnre qui est arborescente vis--visde plusieurs arbres.

    En fait, en faisant un pivot convenable, on peut toujours remettre ps dans l'arbre.

    1.10.3. Applications. On a vu que les problmes de ots tait un cas particulier des pro-blmes de transport avec limites de capacits.

    Quel est donc l'intrt de considrer les problmes de ots ?

    On a un algorithme (mthode du chemin augmentant) plus rapide que le simplexe.

    1.10.3.1. Trouver une solution faisable dans un problme de transport avec limites de capacits.

    Exemple. On prend le problme de transport suivant, et on se demande s'il est faisable.

  • 48 1. PROGRAMMATION LINAIRE

    5

    3 0

    0 0

    2

    6

  • 1.10. PROBLMES DE FLOT MAXIMUM 49

    Modle : le sous-sol a t dlimit en un certain nombre de blocs. Pour chaque bloc i, on connatle cot Ci d'excavation, et le prot Pi que l'on peut escompter de son traitement.

    Au nal, on associe chaque bloc i la quantit wi = Ci Pi. Si l'on ne considre pas les autresblocs, il est rentable de creuser i si et seulement si wi < 0.

    On veut dterminer quels blocs on doit creuser pour maximiser le prot total

    i wi (ou autre-ment dit minimiser

    i wi).

    Maintenant, il y a des contraintes supplmentaires : si un bloc i est sous un bloc j, on ne peuxpas creuser i sans creuser j !

    On introduit un ordre partiel, de sorte que i < j si pour creuser i on doit creuser j.

    Comme on le verra, la forme des blocs, et le type d'ordre partiel n'est pas relevant.

    Exemple. On considre le sous-sol suivant :

    Comment modliser notre problme sous forme de problme de ot max ?

    La modlisation des contraintes de prcdences et un peu astucieuse !

    On introduit le rseau suivant :

    C'est la remarque suivante qui va faire marcher la machine :

    Remarque. Soit C une coupe.

    S'il existe deux blocs i < j, avec i C et j C, alors C est de capacit innie.La rciproque est vraie.

    Les coupes de capacit nie sont en correspondance avec les coupes respectant les contraintes.

    Maintenant, on peut vrier que la capacit d'une coupe nie vaut exactement

    iC, i bloc non rentable

    wi

    i 6C, i bloc rentablewi.

    Quitte rajouter le terme constant

    i, i bloc wi, on est en train de calculer le prot lorsque l'onenlve les blocs i avec i C.Rsum : Soit I un ensemble de blocs, et C la coupe {s} I. Si I ne satisfait pas les contraintes, la capacit de C est innie. Si I satisfait les contraintes, la capacit de C est l'oppos du prot.

    Maximiser le prot revient trouver une coupe min.

    Remarque. En termes pdants : on peut rsoudre par un algorithme de ot le problme detrouver une section nale de poids minimal dans un ordre partiel.

    1.10.3.4. Dualits chanes/antichanes dans les ordres partiels ; thorme de Dilworth.

    Problem 1.10.1. [1, p. 338] Problme des visites guides. Une compagnie propose 7 visites guidesdans la journe, notes a, b, c, d, e, f, g, dont les horaires et dures sont xes. Si une visite (parex. a) termine susament avant une autre (par exemple c), le guide de la premire visite peutenchaner sur la deuxime ; on notera alors a c. En l'occurence, voici tous les enchanementspossibles :

    a c, a d, a f, a g, b c, b g, d g, e f, e g. Combien de guides faut-il de guides au minimum dans cet exemple ? Comment trouver le nombre minimum de guides ncessaires dans le cas gnral ?

  • 50 1. PROGRAMMATION LINAIRE

    Dfinition. Soit P = (E,

  • 1.10. PROBLMES DE FLOT MAXIMUM 51

    Le thorme dans l'autre sens est plus dicile et bien plus profond. Il n'y a pas de constructionlmentaire de l'antichane et de la couverture en chane idoine. On va en fait se ramener laprogramation linaire (surprise).

    Thorme. (Dilworth) Soit P un ordre partiel. La taille de la plus grande antichane de P estgale la taille de la plus petite couverture en chanes de P .

    Dmonstration. On note n le nombre de sommets de P .Choisir une couverture en chane de P est quivalent slectionner un certain nombre d'arcs dansP , de sorte que chaque sommet ait au plus un arc sortant de slectionn, et un arc rentrant deslectionn.Remarque : s'il y a k chanes, il y a n k arcs slectionns.Cela ressemble un problme de couplage maximal dans un graphe biparti.On construit un graphe biparti B dans lequel chaque sommet x de P est dupliqu en (x, 1) et(x, 2).Chaque fois que x < y dans P , on relie (x, 1) et (y, 2).Qu'est-ce qu'un couplage dans B ?Un ensemble d'arcs de P vriant exactement les conditions voulues.Une couverture de P en k chanes correspond un couplage de B de taille n k.Prenons une couverture de P de taille k minimale.Cela donne un couplage de taille max n k de B.Le thorme min-max pour les graphes bipartis indique qu'il y a une couverture de B de mmetaille : n k sommets de B qui touchent tous les arcs.Dans P cela correspond au plus n k sommets qui touchent tous les arcs.Soit A l'ensemble des sommets restants qui est de taille au moins k.Il ne peut pas y avoir d'arcs entre deux sommets de A.Conclusion : A est une antichane de taille au moins k.

    Exercice. Suivez le droulement de la preuve sur l'ordre partiel prcdent

    1.10.4. La mthode du chemin augmentant. Rechercher un couplage max dans ungraphe biparti est un problme trs classique.Il existe en fait des techniques plus rapides que les algorithmes de ots pour cela.L'une d'entre elles est la mthode du chemin augmentant.

    1.10.4.1. Cas gnral des graphes simples.

    Exemple. Couplage de taille maximale dans le chemin P6.On peut construire un couplage de taille maximal progressivement partir d'un couplage vide enrajoutant des artes une une. Mais si on n'est pas parti correctement, on risque d'tre bloquavec un couplage qui est maximal, alors qu'il n'est pas de taille maximale. Il faut appliquer unetransformation au couplage pour pouvoir l'agrandir.

  • 52 1. PROGRAMMATION LINAIRE

    Dfinition. Soit M un couplage dans un graphe G.Un sommet M -satur (ou satur) est un sommet touchant une arte du couplage.Un chemin M -altern de G est un chemin de G qui utilise alternativement des artes dans M ethors de M .Un chemin M -augmentant est un chemin M -altern commenant et nissant par des sommetsnon M -saturs.

    Exemple. Regardons ce que cela donne avec le couplage suivant :

    Remarque. Si M est un couplage, et C est un chemin M -augmentant, alors on peut construireun couplage M strictement plus grand en utilisant C.Cas particulier : lorsque le chemin M -augmentant consiste d'une seule arte reliant deux sommetsnon saturs, on est ramen au rajout d'une arte au couplage M .

    Exercice. Soit G le graphe

    Le couplage M dessin est maximal, mais pas de taille maximale. Trouvez un chemin M -augmentantet construisez le couplage M correspondant.

    Est-ce que cette opration de chemin augmentant est susante ?

    Thorme. (Berge 1957) Un couplage M est de taille maximale si et seulement s'il n'y a pas dechemin M -augmentant.

    Dmonstration. Soit M un couplage, comme dans l'exemple suivant :

  • 1.10. PROBLMES DE FLOT MAXIMUM 53

    On suppose qu'il existe un couplage M de taille strictement plus grande.

    On va construire un chemin M -augmentant.On considre le graphe H obtenu par runion de M et M .Les sommets de H sont de degr au plus 2.Ses composantes connexes sont donc des doubles artes ou des cycles et chemins dont les artesalternent entre M et M . Dans un cycle ou une double arte il y a autant d'artes de M que deM . Il y aura donc forcment un chemin qui contiendra une arte de plus de M que de M . Cechemin est un chemin M -augmentant.

    On dduit de ce thorme un algorithme (ou plutt une mthode) :

    Algorithme 1.10.2. Recherche d'un couplage maximal dans un graphe :

    (1) Partir d'un couplage M quelconque (par exemple le couplage vide) ;

    (2) Chercher un chemin M -augmentant ;

    (3) S'il n'y en a pas, renvoyer M qui est maximal ; sinon ritrer avec M := M .

    Exercice. Appliquez cette mthode pour trouver un couplage maximal du graphe

    Pour un graphe quelconque, l'tape 2 peut tre dicile !Par contre, pour un graphe biparti, il y a un algorithme.

    1.10.4.2. Recherche d'un chemin augmentant pour un couplage d'un graphe biparti.

    Exemple. On va rechercher un couplage maximal dans le graphe biparti prcdent, en montrantcomment on peut trouver de manire systmatique un chemin M -augmentant.

  • 54 1. PROGRAMMATION LINAIRE

    Algorithme 1.10.3. Soit M un couplage d'un graphe biparti B entre les parties X et Y .Cet algorithme renvoie soit un chemin M -augmentant, soit une couverture du graphe de taille |M |,ce qui indiquera que le couplage M est de taille maximale.

    Soit U l'ensemble des sommets de X non touchs par M , et V l'ensemble des sommets de Y nontouchs par M .

    On va rechercher par un parcours en largeur les chemins M -alterns allant de U V .

    S (resp. T ) va reprsenter l'ensemble des sommets x de X (resp. Y ) pour lesquels on aura djtrouv un chemin M -altern allant de U x.

    Initialisation :: S := U , T := ;Itration ::

    Cas 1 :: Il y a une arte reliant un sommet de S un sommet de V . Cela donne unchemin M -augmentant que l'on renvoie

    Cas 2 :: Il y a une arte reliant un sommet x de S un sommet y de Y V avecxy /6 M . Ce sommet est reli par une arte du couplage un sommet w de X.Comme y et w sont relis U par un chemin M -altern, on rajoute y T et w S.

    Cas 3 :: T (X S) est une couverture de taille |M | du graphe (vriez le !) que l'onrenvoie.

    Exercice 19. Appliquer l'algorithme sur un graphe biparti de votre choixDmontrer que T (X S) est bien une couverture de taille |M | du graphe.

    Donner la preuve

    1.10.5. Algorithme de Ford-Fulkerson. La mthode du chemin augmentant se gnralise la recherche de couplage max dans un graphe biparti valu, et en fait aussi aux problmes deots max. On ne va regarder son fonctionnement que sur un exemple, et on renvoie [1, p. 369]pour les dtails.

    Exemple. On veut transporter le plus grand nombre possible de voyageurs de San-Francisco New-York, sachant qu'il ne reste que quelques places dans les avions entre les villes suivantes :

    SanFrancisco

    Denver

    Houston

    Atlanta

    Chicago

    NewYork

    5

    2

    6

    4

    5

    7

    4

  • 1.11. MTHODES ALTERNATIVES AU SIMPLEXE 55

    Dfinition. Soit R un rseau, et F un ot donn dans ce rseau.Un chemin allant de la source s au puits p est F -augmentant si pour chaque arte ij du cheminon a : xij < uij si l'arc ij est dans le mme sens que dans le rseau xij > 0 si l'arc ij est dans le sens inverse du rseau.

    partir d'un chemin F -augmentant, on peut construire un nouveau ot F qui sera de volumestrictement plus gros.Le principe de l'algorithme de Ford-Fulkerson est de partir d'un ot F quelconque, et de l'amlioreritrativement en recherchant des chemins F -augmentant. chaque tape, la recherche d'un chemin F -augmentant se fait par un parcours en profondeur,de manire similaire la recherche d'un chemin M -augmentant dans un graphe biparti. Si cetterecherche choue, elle dvoile une coupe de capacit gale au ot, ce qui donne un certicatd'optimalit du ot.

    Remarque. On peut toujours initialiser l'algorithme avec un ot nul.Si toutes les capacits sont entires et nies, chaque itration augmente le ot d'au moins 1. Cetalgorithme ne peut donc pas cycler, et il termine en un nombre ni d'tapes.Avec une mauvaise stratgie, et des capacits innies ou non-entires, l'algorithme peut ne pasterminer.

    1

    Avec une stratgie convenable, cet algorithme est en fait polynomial, en O(n3), mme si les

    capacits sont innies ou non entires.Pour les rseaux avec peu d'arcs, il y a des algorithmes plus compliqus qui permettent d'obtenird'encore meilleurs bornes. Cf. [1, p. 369] pour les dtails.

    1.11. Mthodes alternatives au simplexe

    Pour conclure ce chapitre sur la programmation linaire, nous prsentons rapidement quelquesmthodes alternatives qui ont t dveloppes pour rsoudre les problmes de programmationlinaire gnraux. Nous nous contentons d'voquer leur principe, leurs avantages et inconvnients,et donnons des rfrences pour ceux qui voudraient en savoir plus.

    1.11.1. Mthode de l'ellipsode.

    Principe: On commence par utiliser la dualit pour se ramener la recherche d'une so-lution faisable d'un systme d'inquations linaires. On peut en fait se ramener par uneperturbation convenable la recherche d'une solution faisable d'un systme d'inquationslinaires strictes !

    Si un tel systme est faisable, le volume de l'ensemble des solutions peut alors treminor par une quantit V qui dpends de la dimension de l'espace, et de la taille descoecients dans le systme linaire.

  • 56 1. PROGRAMMATION LINAIRE

    On part d'un ellipsode E susamment gros pour contenir toutes les solutions fai-sables.

    Si le centre de E est une solution faisable, on a termin.Sinon, on peut couper l'ellipsode en deux, et inclure ce demi-ellispode dans un

    ellipsode E qui contient encore toutes les solutions faisables. On ritre avec E := E. chaque itration, on a V (E) < V (E), o < 1 est une constante qui ne dpends

    que de la dimension ; donc le volume de E dcrot exponentiellement. Au bout d'un petitnombre d'itrations, si l'on a pas obtenu de solution faisable, on a V (E) < V , ce quiprouve que la systme n'a pas de solution faisable.

    Avantages: Algorithme polynomial

    Inconvnients: Plus lent en pratique que l'algorithme du simplexe Ne donne pas certains rsultats thoriques (dualit, gomtrie des polydres)

    Rfrence: [1, p. 443]

    1.11.2. Mthode des points intrieurs.

    Principe: Cette mthode est l'antithse exacte du simplexe.Le principe du simplexe est de ne considrer que des solutions basiques qui sont la

    frontire du polydre, et d'utiliser de l'algbre linaire pour itrer parmi ces solutions.Ici au contraire, la mthode ne considre que des solutions strictement l'intrieur

    du polydre. L'ide est d'approximer les ingalits du systme linaire, qui forment fon-damentalement des discontinuits, en barrires de potentiel, qui sont elles continues. Ducoup, on peut utiliser les techniques d'optimisation non-linaire continue, comme lesmthodes de gradients.

    Avantages: Rivalise avec le simplexe en pratique, suivant le type de problme rencontrs

    Inconvnients: Ne donne pas de rsultats thoriques (dualit, gomtrie des polydres)

    Rfrences: [2]

  • Bibliographie

    [1] V. Chvatal. Linear Programming.

    [2] R. Vanderbie. Linear Programming ; Foundations and Extensions. http://www.princeton.edu/~rvdb/LPbook/index.html

    [3] Linear Programming FAQ http://rutcor.rutgers.edu/~mnk/lp-faq.html

    57

    http://www.princeton.edu/~rvdb/LPbook/index.htmlhttp://www.princeton.edu/~rvdb/LPbook/index.htmlhttp://rutcor.rutgers.edu/~mnk/lp-faq.html

    Chapter 1. Programmation linaire1.1. Qu'est-ce que la programmation linaire1.2. Algorithme du simplexe1.3. Piges et comment les viter1.4. Efficacit de l'algorithme du simplexe1.5. Le thorme de dualit1.6. Applications1.7. Rseaux de transport1.8. Applications du simplexe des problmes de transports1.9. Problmes de transports avec limites de capacits1.10. Problmes de flot maximum1.11. Mthodes alternatives au simplexe

    Bibliographie