Résoudre moyennant la méthode du Simplexe le prochain problème:
Maximiser | Z = f(x,y) = 3x + 2y |
sous les contraintes: | 2x + y ≤ 18 |
2x + 3y ≤ 42 | |
3x + y ≤ 24 | |
x ≥ 0 , y ≥ 0 |
On considère les étapes suivantes:
On effectue un changement dans la nomenclature des variables. La correspondance suivante s'établie:
étant positives les termes indépendants de toutes les contraintes il ne faut rien faire. Dans le cas contraire, il faudrait multiplier par "-1" dans les deux côtés de l'inéquation (en tenant compte que cette opération affecte aussi au type de contrainte).
On transforme les inéquations en équations avec l'addition de variables d'écart, d'excès et artificielles selon le tableau suivant:
Forme d'inégalité | Forme de la nouvelle variable |
≥ | - excès + artificielle |
= | + artificielle |
≤ | + écart |
Dans ce cas, on introduit une variable d'écart (X3, X4 y X5) dans chacune des contraintes de la forme ≤, pour les transformer en égalités, avec ce résultat en équations linéaires:
2·X1 + X2 + X3 = 18 |
2·X1 + 3·X2 + X4 = 42 |
3·X1 + X2 + X5 = 24 |
Le tableau initial de la méthode du Simplexe est composé par tous les coefficients des variables de décision du problème original et les variables d'écart, excès et artificielles ajutées dans la deuxième étape (dans les colonnes, étant P0 0 le terme indépendant et le reste de variables Pi sont les mêmes que Xi), et les contraintes (dans les lignes). La colonne Cb a les coefficients des variables qu'on trouve dans la base.
La première ligne se compose des coefficients de la fonction objective, alors que la dernière ligne possède la valeur la fonction objective et les coûts réduits Zj - Cj.
On calcule la dernière ligne de la manière suivante: Zj = Σ(Cbi·Pj) pour i = 1..m, où si j = 0, P0 = bi et C0 = 0, et dans le cas contraire Pj = aij. Malgré d'être le premier tableau de la méthode du Simplexe et que tous les Cb sont nuls, on peut simplifier le calcul pour cette fois et disposer Zj = -Cj.
Tableau I . Itération 1ère | |||||||
---|---|---|---|---|---|---|---|
3 | 2 | 0 | 0 | 0 | |||
Base | Cb | P0 | P1 | P2 | P3 | P4 | P5 |
P3 | 0 | 18 | 2 | 1 | 1 | 0 | 0 |
P4 | 0 | 42 | 2 | 3 | 0 | 1 | 0 |
P5 | 0 | 24 | 3 | 1 | 0 | 0 | 1 |
Z | 0 | -3 | -2 | 0 | 0 | 0 |
Si l'objectif est la maximisation, quand dans la dernière ligne (ligne indicatrice) n'existe aucune valeur négative parmi les coûts réduits (colonnes P1 en avance), on obtient la condition d'arrêt.
Dans ce cas, on attend la fin de l'algorithme puisqu'on ne peut pas l'améliorer. La valeur de Z (colonne P0) est la solution optimale du problème.
Un autre cas possible, c'est que dans la colonne de la variable qui rentre en base toutes les valeurs sont négatives ou nuls. Indicative que le problème ne se trouve pas délimité et sa solution peut toujours être amélioré. Face à cette situation il n'est pas nécessaire de continuer réitérant indéfiniment et aussi on peut mettre fin à l'algorithme.
Lorsque cette condition n'est pas remplie, on exécute les processus suivants itérativement.
D'abord, on établit la variable qui rentre en base. A cet effet, on choisit la colonne dont sa valeur dans la ligne Z est le plus basse entre tous les négatifs. Dans ce cas, cela serait la variable X1 (P1) de coefficient -3.
S'il y aurait deux ou plus de coefficients pareils qui satisfont aux conditions précédentes (en cas d'égalité), on choisira la variable de base.
La colonne de la variable qui rentre en base qu'on appelle colonne-pivot (en couleur vert).
Une fois obtenue la variable entrante en base, on détermine quelle sera la variable sortante. On prend la décision sur la base d'un simple calcul : diviser chaque terme indépendant (colonne P0) entre l'élément correspondant de la colonne-pivot, à condition que les deux éléments soient strictement positifs (supérieures à zéro). On opte par la ligne dont le résultat est minimal.
S'il y aurait un élément plus bas ou égal à zéro on n'effectue pas ce quotient. Lorsque tous les éléments de la colonne-pivot sont de cette condition on aurait accompli la condition d'arrêt et le problème aurait une solution sans partie bornée (voir la théorie de la méthode du Simplexe).
Dans cet exemple: 18/2 [=9] , 42/2 [=21] y 24/3 [=8]
Le terme de la colonne-pivot qui avait entraîné le plus petit quotient positif dans la division précédente indique la ligne de la variable d'écart qui sort de base. Dans ce cas, il se révèle X5 (P5), de coefficient 3. Cette ligne s'appelle ligne pivot (en couleur vert).
Au moment de calculer les quotients, si deux ou plus de résultats respectent la condition d'élection de l'élément qui sort de base (en cas d'égalité), on ne choisit pas les variables basiques (lorsque cela est possible).
L'intersection de la ligne pivot et la colonne pivot fait ressortir l'élément pivot, dans ce cas le 3.
On calcule les nouveaux coefficients du tableau de la manière suivante:
Ainsi on normalise l'élément pivot et sa valeur devient 1, alors que le reste d'éléments de la colonne pivot s'annulent (analogue à la méthode de Gauss-Jordan).
On montre les calculs pour la ligne P4:
Ancienne ligne P4 | 42 | 2 | 3 | 0 | 1 | 0 |
- | - | - | - | - | - | |
élément ancienne ligne en colonne pivot | 2 | 2 | 2 | 2 | 2 | 2 |
x | x | x | x | x | x | |
Nouvelle ligne pivot | 8 | 1 | 1/3 | 0 | 0 | 1/3 |
= | = | = | = | = | = | |
Nouvelle ligne P4 | 26 | 0 | 7/3 | 0 | 1 | -2/3 |
Le tableau correspondant à cette deuxième itération est:
Tableau II . Itération 2ème | |||||||
---|---|---|---|---|---|---|---|
3 | 2 | 0 | 0 | 0 | |||
Base | Cb | P0 | P1 | P2 | P3 | P4 | P5 |
P3 | 0 | 2 | 0 | 1/3 | 1 | 0 | -2/3 |
P4 | 0 | 26 | 0 | 7/3 | 0 | 1 | -2/3 |
P1 | 3 | 8 | 1 | 1/3 | 0 | 0 | 1/3 |
Z | 24 | 0 | -1 | 0 | 0 | 1 |
Tableau III . Itération 3ème | |||||||
---|---|---|---|---|---|---|---|
3 | 2 | 0 | 0 | 0 | |||
Base | Cb | P0 | P1 | P2 | P3 | P4 | P5 |
P2 | 2 | 6 | 0 | 1 | 3 | 0 | -2 |
P4 | 0 | 12 | 0 | 0 | -7 | 1 | 4 |
P1 | 3 | 6 | 1 | 0 | -1 | 0 | 1 |
Z | 30 | 0 | 0 | 3 | 0 | -1 |
Tableau IV . Itération 4ème | |||||||
---|---|---|---|---|---|---|---|
3 | 2 | 0 | 0 | 0 | |||
Base | Cb | P0 | P1 | P2 | P3 | P4 | P5 |
P2 | 2 | 12 | 0 | 1 | -1/2 | 1/2 | 0 |
P5 | 0 | 3 | 0 | 0 | -7/4 | 1/4 | 1 |
P1 | 3 | 3 | 1 | 0 | 3/4 | -1/4 | 0 |
Z | 33 | 0 | 0 | 5/4 | 1/4 | 0 |
On découvre que dans la dernière ligne tous les coefficients sont positifs. On a accompli alors la condition d'arrêt.
La solution optimale est due à la valeur de Z dans la colonne des termes indépendants (P0), dans cet exemple: 33. Dans la même colonne, on peut avertir le point où on atteint, examinant les lignes correspondants aux variables de décision qui ont rentré en base: X1 = 3 y X2 = 12.
Si on annule le changement de variables, on obtient x = 3 e y = 12.
PHPSimplex
Version 0.81
Copyright ©2006-2024. Tous droits réservés.
Développé par:
Daniel Izquierdo Granja
Juan José Ruiz Ruiz
Traduction en langue anglais par:
Luciano Miguel Tobaria
Traduction en langue française par:
Ester Rute Ruiz
Traduction en langue portugaise par:
Rosane Bujes