121
3. Variantes de l’algorithme du simplexe

3_Variantes_simplexe

Embed Size (px)

Citation preview

  • 3. Variantes de lalgorithme dusimplexe

  • Les deux phases du simplexePour initialiser lalgorithme du simplexe, il faut disposer dune solution de base ralisable initiale.Or une telle solution de base initiale nest pas ncessairement disponible.De plus, en gnral, nous ne savons mme pas si le domaine ralisable nest pas vide.La phase I du simplexe: indique si le problme est ralisable (i.e., son domaine ralisable nest pas vide) si oui, fournit linformation pour gnrer une solution de base ralisable initiale.

  • Cas simpleSoit le problme de programmation linaire suivant:En utilisant les variables dcart xn+1 xn+2 . . xn+m

  • Cas simpleLe problme devient

    Les variables de base de la solutioninitiale sont xn+1, xn+2,, xn+m

  • Problme du restaurateur transform en minTransformons les contraintes dingalit du problme du restaurateur en galit avec les variables dcart u, p et h:

    min z = 8x 6y min z = 8x 6y Sujet Sujet 5x + 3y 30 5x + 3y + u =30 2x + 3y 24 2x + 3y + p =24 1x + 3y 18 1x + 3y + h = 18 x, y 0 x, y, u, p, h 0Les contraintes constituent un systme de 3 quations comportant 5 variables. Exprimons 3 des variables en fonction des 2 autres

  • Cas plus compliquConsidrons plutt le problme suivant:En utilisant les variables dcart xn+1 xn+2 . . xn+m

  • Cas plus compliquAlors le problme devientLa solution de base o xn+1, xn+2,, xn+m sont les variables de base nest pas ralisable car les valeurs des variables xn+i = bi 0 i = 1,2,,mlorsque les variables hors base sont gales 0

  • Cas gnralDans le cas gnral o le problme est sous la forme standard

    Nous utilisons une phaseprliminaire (Phase I) Introduisons les variablesartificielles t1 t2 . . tm

    Construisons un problme artificiel

  • Solution de base ralisable initialeLes contraintes deviennent doncLes variables t1, t2,, tm sont les variables de base dune solution de base ralisable de ce systme

  • Probme artificielDans le cas gnral o le problme est sous la forme standard

    Nous utilisons une phaseprliminaire (Phase I) Introduisons les variablesartificielles t1 t2 . . tm

    Construisons un problme artificielRemplaons la fonction conomique par une nouvelle: minimiser lasomme des variables artificielles

  • Problme artificielLe problme artificielle de la phase I est donc de la forme

  • Ou encore, le problme artificielle de la phase I est donc de la forme

    Rsolvons ce problme avec lalgorithme du simplexe

  • Problme artificiel Gnrons un problme quivalent en soustrayant chacune des m premires contraintes de celleassocie la fonction conomique

    Dfinissons

  • Problme artificiel quivalentLe problme quivalent est donc de la forme

  • Rsolution du problme de la phase ICe problme est rsolu avec lalgorithme du simplexe.Les variables artificielles t1, t2 ,, tm sont les variables de base de la solution initiale puisque leur valeur est non ngative lorsque les variables xj du problme original sont fixes 0.

  • Rsultat de la phase IProposition la fin de la phase I (i) si la valeur optimale min w de la fonction conomique est positive (i.e., min w > 0), alors le domaine ralisable du problme original est vide (i.e., le problme original nest pas ralisable) (ii) si la valeur optimale min w de la fonction conomique est nulle (i.e., min w = 0), alors le domaine ralisable du problme original nest pas vide (i.e., le problme original est ralisable).

  • Preuve (i) (Preuve par contrapose) Si le domaine ralisable du problme original nest pas vide,

  • Rsultat de la phase IPreuve (i) (Preuve par contrapose) Si le domaine ralisable du problme original nest pas vide, substituons ces valeurs des variables xj dans le problme de la phase I

  • Rsultat de la phase IPreuve (i) (Preuve par contrapose) Si le domaine ralisable du problme original nest pas vide, substituons ces valeurs des variables xj dans le problme de la phase I

  • Rsultat de la phase IPreuve (i) (Preuve par contrapose) Si le domaine ralisable du problme original nest pas vide, substituons ces valeurs des variables xj dans le problme de la phase I pour obtenir une solution ralisable o toutes les variables ti sont gales 0 et o la valeur de la fonction conomique w = 0.

  • Rsultat de la phase IPreuve (i) (Preuve par contrapose) Si le domaine ralisable du problme original nest pas vide, substituons ces valeurs des variables xj dans le problme de la phase I pour obtenir une solution ralisable o toutes les variables ti sont gales 0 et ainsi ayant une valeur de la fonction conomique w = 0. Donc si min w > 0, alors le problme original na pas de solution.

  • Rsultat de la phase I(ii) Si la fin de la phase I, la valeur de min w = 0,

  • Rsultat de la phase I(ii) Si la fin de la phase I, la valeur de min w = 0, alors il existe une solution ralisable du problme de la phase I o toutes les variables artificielles ti sont gales 0. Dans ce cas, les valeurs que prennent les variables xj constituent une solution pour le problme original.

  • Rsultat de la phase I(ii) Si la fin de la phase I, la valeur de min w = 0, alors il existe une solution ralisable du problme de la phase I o toutes les variables artificielles ti sont gales 0. Dans ce cas, les valeurs que prennent les variables xj constituent une solution pour le problme original.

  • Solution initiale pour poursuivreDans le cas o min w est gale 0, nous poursuivons la rsolution du problme original avec lalgorithme du simplexe en utilisant linformation du tableau de la dernire itration de la phase I pour construire une solution de base initiale pour le problme original.Considrons le tableau du simplexe de la dernire itration de la phase I

  • Tableau phase ISolution optimale de la phase I

    m des colonnes du tableau sont les mvecteurs unitaires o le 1 est la iime composante

  • Tableau phase Im des colonnes du tableau sont les mvecteurs unitaires o le 1 est la iime composante

    La variable sous laquelle nousretrouvons le iime vecteur unitaire est la variable de basedans la iime ligne du tableau

  • Solution initiale pour poursuivreDeux cas diffrents doivent tre considrs.Cas 1: Aucune variable artificielle nest variable de base. Donc toutes les variables de base sont des variables originales xj. Considrons le tableau du simplexe de la dernire itration de la phase I

  • Solution initiale pour poursuivreliminons les colonnes des variables artificiellesRemplaons la dernire ligne du tableau par la fonction conomique du problme original

  • Solution initiale pour poursuivreDnotant les variables de base par ,le tableau devientPour retrouver le tableau du simplexe associ cette base, il faut ramener

    0 les cots relatifs des variables de base

  • Solution initiale pour poursuivre Modifions la dernire ligne de ce tableau en soustrayant chacune des autres lignes i multiplie par De sorte que

  • Solution initiale pour poursuivreLe tableau devient donc

    Nous avons donc un tableau du simplexe associ une solution initiale de base pour le problme originale o les variables de base sont

  • Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable artificielle tk est variable de base dans la ligne i

  • Solution initiale pour poursuivreCas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable artificielle tk est variable de base dans la ligne i. Cette ligne du tableau la dernire itration de la phase I est de la forme Mais min w = 0 => tk = 0 . Ainsi

    Essayons de remplacer tk par une des variables originales xj titre de variable de base dans la ligne i. Analysons les coefficients des variables xj dans cette ligne.

  • Solution initiale pour poursuivre Supposons quil existe un indice s, 1 s n, tel que . Transformons le dernier tableau de la phase I en excutant un pivot sur llment pour que xs devienne la variable de base dans la ligne i. Ceci ne modifie en rien la valeur de lobjectif w puisque

  • Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable artificielle tk est variable de base dans la ligne i

  • Solution initiale pour poursuivre ii) Supposons que . On peut alors dmontrer que la contrainte i du problme est redondante car elle peut sexprimer comme une combinaison linaire des autres contraintes. Dans ce cas, la contrainte i peut tre limine sans modifier le domaine ralisable. Nous liminons donc la ligne i du tableau. Aprs avoir trait chaque ligne o la variable de base est unevariable artificielle selon i) ou ii), alors nous obtenons une autresolution optimale de la phase I o aucune variable artificielle nestde base. Nous retombons alors sur le Cas 1

  • Notion de multiplicateurs du simplexeConsidrons la dernire ligne du tableau du simplexe associ la base B qui correspond aux vecteurs des cots relatifs des variables:

  • Notion de multiplicateurs du simplexe

    Dnotons le vecteur dfini par

    Alors

    Ou

    o dnote la jime colonne de la matrice de contrainte A est le vecteur des multiplicateursdu simplexe associ la base B.

  • Notion de multiplicateurs du simplexe

    Le vecteur des multiplicateurs du simplexe permet de calculer les cots relatifs directement partir des donnes originales du problme.

    Les composantes i (i=1,2,,m) du vecteur des multiplicateurs peuvent tre considrs comme des poids associs aux lignes i du tableau (ou aux contraintes i du problme) tel que la soustraction dune combinaison linaire des lignes avec ces poids de la dernire ligne du tableau permet dannuler les cots relatifs des variables de base.

  • Sensitivit de la valeur optimale auxmodifications des termes de droiteLes multiplicateurs du simplexe associs une base optimale permettent de mesurer leffet de modifier les termes de droite sur la valeur optimale dun problme.Considrons le problme original et un autre o les termes de droite sont modifis

  • Sensitivit de la valeur optimale auxmodifications des termes de droite

    Dnotons par B* une base optimale du problme original, et la solution de base optimale correspondante

    dont la valeur (optimale pour le problme) est donne par

  • Sensitivit de la valeur optimale auxmodifications des termes de droite

    Choisissons la valeur de de telle sorte que

    Donc B* demeure une base ralisable pour le nouveau problme modifi puisque la solution de base associe est

  • Sensitivit de la valeur optimale auxmodifications des termes de droiteDonc B* demeure une base ralisable pour le nouveau problme modifi puisque la solution de base associe est

    De plus, puisque ni les cots cj ni la matrice A nont t modifis, alors le vecteur des multiplicateur * reste inchang. Par consquent les cots relatifs demeurent inchangs et donc non ngatifs pour le nouveau problme. Par consquent, B* demeure une base optimale pour le nouveau problme

  • Sensitivit de la valeur optimale auxmodifications des termes de droiteCette solution est optimale pour le nouveau problme.

    valuons la valeur optimale du nouveau problme:

  • Sensitivit de la valeur optimale auxmodifications des termes de droitevaluons la valeur optimale du nouveau problme:. Ainsi, indique la taux de variationunitaire de la valeur optimale lorsque le terme de droite bi de lacontrainte i est modifi dune quantit choisie de telle sorte que la basedemeure ralisable pour le nouveauproblme.

  • Domaine ralisableLensemble des points ralisables pour le systme5x + 3y 302x + 3y 24 1x + 3y 18 x,y0

  • Rsolution graphiqueConsidrons la fonction conomique : z = 8x 6y.La solution optimale: x = 3 et y = 5 => z = 54.Vecteur des multiplicateurs optimaux: T = [ 3/2, 0, 1/2]Si b1 = 30 devient b1+b1 avec b1
  • Rsolution graphiqueConsidrons la fonction conomique : z = 8x 6y.La solution optimale: x = 3 et y = 5 => z = 54.Vecteur des multiplicateurs optimaux: T = [ 3/2, 0, 1/2] Si b1 = 30 devient b1+b1 avec b1>0 domaine ralisable augmente

    5x + 3y 30

    2x + 3y 24 1x + 3y 18

  • Rsolution graphiqueConsidrons la fonction conomique : z = 8x 6y.La solution optimale: x = 3 et y = 5 => z = 54.Vecteur des multiplicateurs optimaux: T = [ 3/2, 0, 1/2]Si b3 = 18 devient b3+b3 avec b3
  • Rsolution graphiqueConsidrons la fonction conomique : z = 8x 6y.La solution optimale: x = 3 et y = 5 => z = 54.Vecteur des multiplicateurs optimaux: T = [ 3/2, 0, 1/2]Si b2 = 24 devient b2+b2 avec b2
  • Forme rvise du simplexeDans cette variante de lalgorithme du simplexe, nous exploitons les multiplicateurs du simplexe pour permettre de faire le pivot sur un tableau de dimension rduite.

    Nous considrons le problme de programmation linaire sous sa forme standard

  • Forme rvise du simplexeLes donnes du problme

    peuvent tre rsumes dans le tableau suivant

  • Construisons un nouveau tableau partir de ce dernier en ajoutant une matrice identit mxm ct de la matrice A des contraintes et en lui associant un vecteur de m composantes gales 0 dans la dernire ligne du tableau

  • Supposons que nous rsolvions le problme avec lalgorithme du simplexe et que nous fassions galement les pivots sur la partie additionnelle du tableau chaque itration.Considrons une solution de base ralisable dont la base B est constitue des m premires colonnes de A.Pour faciliter la prsentation reprsentons le tableau augment sous une forme matricielle quivalente:

  • Le tableau du simplexe associ la base B peut tre retrouv en multipliant les m premires lignes du tableau par B-1 et en ramenant les cots relatifs des variables de base 0B-10

  • Considrant maintenant la reprsentation explicite du tableau augment cette itration

    La matrice B-1 se retrouve lendroit o tait la matrice identit dans le tableau des donnes originales

  • Dnotons par = [1, 2,, m]T le vecteur des multiplicateurs associs la base B. Alors

    En particulier, pour i = 1,2,,m, puisque cn+i = 0 et

    1

  • Ce tableau scrit donc sous la formeB-1 inverse de la baseMultiplicateurschangs de signe

  • contient toute linformation ncessaire pour complter une itration du simplexe.La partie suivante de ce tableau

  • Critre dentre: Pour dterminer la variable dentre ou vrifier si la solution actuelle est optimale, il faut dterminer les cots relatifs

  • Critre de sortie: Pour complter cette tape, il faut connatre Or

  • Pivot: Il suffit de complter le pivot uniquement sur les colonnes dutableau prcdent. En effet nous aurons alors toute linformationncessaire pour complter la prochaine itration.En pivotant sur llment

  • +1

  • Variante du simplexe pour problme avec variables bornesConsidrons le problme de programmation linaire avec variables bornes suivant

    Ramenons 0 les bornes infrieures en faisant le changement de variables suivant xj = gj lj (i.e., gj = xj + lj )

  • Variante du simplexe pour problme avec variables bornes le problme devient

    Ramenons 0 les bornes infrieures en faisant le changement de variables suivant xj = gj lj (i.e., gj = xj + lj )

  • Variante du simplexe pour problme avec variables bornes le problme devient

    et en remplaant: uj = qj lj et b = h Al

  • Variante du simplexe pour problme avec variables bornesDans ce problme

    puisque cTl reprsente une constante, nous pouvons liminer ce terme de la fonction conomique sans changer la solution optimale et dans la suite de la prsentation considrer ce problme sans perte de gnralit.

  • Considrons la formulation explicite du problme

    Une faon de le rsoudre est de le ramener sous une forme standard en introduisant des variables dcart yj, et densuite utiliser lalgorithme du simplexe

  • Considrons une solution de base ralisable de ce problme.La prsence des contraintes xj + yj = uj implique quau moins une des deux variables xj ou yj est variable de base, j = 1,2,,n.Donc une des trois situations suivantes prvaut pour chaque j = 1,2,,n: a) xj = uj est variable de base et yj = 0 est variable hors base b) xj = 0 est variable hors base et yj = uj est variable de base c) 0 < xj < uj est variable de base et 0 < yj < uj est variable de base Non dgnrescence:toutes les variables de base sont positives chaque itration

  • m + n variables de base requisesil y a n variables yj

    Il y a au moins m variables xj dans la baseExactement m variables xj satisfont 0 < xj < uj.Par contradiction, si m0 m variables xj satisfaisaient la relation, alors les m0 variables yj correspondantes seraientgalement dans la base. De plus, pour les n m0 autres indices jxj = uj (cas a) ou bien yj = uj (cas b) seraitvrifi.Alors le nombre de variables de base serait gal 2m0 + (n m0) = m0 + n m + n

  • La base a donc la forme suivante 0 < xj < uj0 < yj < ujxj=uj yj=uj

  • La base a donc la forme suivante 0 < xj < uj0 < yj < ujxj=uj yj=uj

  • La base a donc la forme suivantemn 0 < xj < uj0 < yj < ujxj=uj yj=ujBase de ALes colonnes de la base B de Acorrespondent aux variables 0
  • Ainsi, nous pouvons dvelopper une variante du simplexe pour rsoudre directement le problme

    en traitant implicitement les bornes suprieures uj. chaque itration, nous allons considrer une solution (de base) associe une base B de A ayant m variables de base n m variables hors base

  • chaque itration, nous allons considrer une solution (de base) associe une base B de A ayant m variables de base n m variables hors base .Si on dnote les indices des variables de base IB = {j1, j2, , jm} o ji est lindice de la variable de base dans la iime ligne, alors

    Nous retrouvons lesmmes expressions quepour les problmes sansbornes sauf que les variables hors base

  • Il suffit dajuster les critres dentre et de sortie en consquence pour retrouver la variante du simplexe.

    Nous retrouvons lesmmes expressions quepour les problmes sansbornes sauf que les variables hors base

  • tape 1: Choix de la variable dentre Le critre pour choisir la variable dentre est modifi pour tenir compte des variables hors base xj leur borne suprieure uj qui peuvent diminuer. Ainsi, pour un indice si , il est avantageux daugmenter xj si , il est avantageux de diminuer xj

    Dterminons et

    SoitSi , alors la solution est optimale et lalgorithme sarrte.

    Si , alors la variable xs augmente; aller ltape 2.1.

    Si , alors la variable xs diminue; aller ltape 2.2

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si = , alors le problme nest pasborn infrieurement et lalgorithmesarrte.la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si = us, alors lensemble des variables de base reste le mme et la mme base estutilise la prochaine itration. La variable xs demeure hors baseet sa valeur passe de 0 us. Retourner ltape 1. la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xsest limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si

    alors la valeur de la variable dentre xsaugmente . La variable dentre xs devient variable debase la place de la variable de sortie .Pivoter sur et retourner ltape 1la valeur de la variable de base

  • tape 2.1: Choix de la variable de sortieLaugmentation de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne sup. us ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si

    alors la valeur de la variable dentre xsaugmente . La variable dentre xs devient variable debase la place de la variable de sortie .Pivoter sur et retourner ltape 1la valeur de la variable de base

  • tape 1: Choix de la variable dentre Le critre pour choisir la variable dentre est modifi pour tenir compte des variables hors base xj leur borne suprieure uj qui peuvent diminuer. Ainsi, pour un indice si , il est avantageux daugmenter xj si , il est avantageux de diminuer xj

    Dterminons et

    SoitSi , alors la solution est optimale et lalgorithme sarrte.

    Si , alors la variable xs augmente; aller ltape 2.1.

    Si , alors la variable xs diminue; aller ltape 2.2

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit la valeur de la variable de base

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si = us, alors lensemble des variables de base reste le mme et la mme base estutilise la prochaine itration. La variable xs demeure hors baseet sa valeur passe de us 0. Retourner ltape 1. la valeur de la variable de base

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si

    alors la valeur de la variable dentre xsest rduite de (i.e., xs us ). La variable dentre xs devient variable debase la place de la variable de sortie .Pivoter sur et retourner ltape 1la valeur de la variable de base

  • tape 2.2: Choix de la variable de sortieLa rduction de la valeur de la variable dentre xs est limite par la premire des trois situations suivantes qui se produit: i) xs atteint sa borne inf. 0 ii) une variable de base dcrot 0 (dans ce cas ) iii) une variable de base augmente pour atteindre sa borne sup. (dans ce cas ) Soit Si

    alors la valeur de la variable dentre xset rduite de (i.e., xs us ). La variable dentre xs devient variable debase la place de la variable de sortie .Pivoter sur et retourner ltape 1la valeur de la variable de base

  • tape 3: PivotVariable dentreVariable de sortie Llment de pivot est lintersection de la ligne de la variable dentre xs et de la colonne de la variable de sortie xr

  • Tableau rsultant pour amorcer la prochaine itration

  • Problme du restaurateurLensemble des points ralisables pour le systme5x + 3y 302x + 3y 24 1x + 3y 18 x,y0x 4

  • Problme du restaurateurLensemble des points ralisables pour le systme5x + 3y 302x + 3y 24 1x + 3y 18 x,y0x 4

  • Problme du restaurateurLensemble des points ralisables pour le systme5x + 3y 302x + 3y 24 1x + 3y 18 x,y0x 4

  • Problme du restaurateurLensemble des points ralisables pour le systme5x + 3y 302x + 3y 24 1x + 3y 18 x,y0x 4