Académique Documents
Professionnel Documents
Culture Documents
IID 2 et GI 2
1. Introduction
2. Forme standard
3. Principe de l’algorithme
5. Résolution du PLS
6. Exemples
1. Minimisation avec Simplexe
2. Initialisation de la méthode de Simplexe
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.
Présentation :
L’algorithme du simplexe est le plus utilisé pour la résolution des Programme Linéaire.
Il a été mis au point en 1948 par B. Dantzig. Depuis, cet algorithme a fait l’objet de
plusieurs recherche scientifiques et a servi à la résolution de nombreux problèmes. La
méthode simplexe est une procédure algébrique itérative qui permet de résoudre les
Programme Linéaires.
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.
Présentation :
L’algorithme du simplexe est le plus utilisé pour la résolution des Programme Linéaire.
Il a été mis au point en 1948 par B. Dantzig. Depuis, cet algorithme a fait l’objet de
plusieurs recherche scientifiques et a servi à la résolution de nombreux problèmes. La
méthode simplexe est une procédure algébrique itérative qui permet de résoudre les
Programme Linéaires.
Principe :
Partant d’une solution réalisable connue, située en un sommet de la frontière du
domaine d’acceptabilité, on cherche parmi les sommets voisins celui qui améliore le plus
la fonction objectif à optimiser. On passe alors à ce sommet et on recommence jusqu’à
ce qu’on soit en un sommet tel que le passage à aucun des sommets voisins n’améliore
la fonction à optimiser. Ce sommet sera alors l’optimum cherché.
Prenons l’exemple 1 suivant :
4x1 + x2 + e2 = 440
x1 + 4x2 + e3 = 480
s.c x1 + x2 + e1 = 150
4x1 + 2x2 + e2 = 440
x1 + 4x2 + e3 = 480
x1 + e4 = 90
x1 ≥ 0, x2 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0, et e4 ≥ 0
Exemple :
Ecrire sous forme standard le problème suivant:
x1 = x2 = 0 ←→
Variables hors base (v.h.b.)
x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18
On appelle variables hors base (v.h.b.) les n variables de Rn+m fixées à zéro. Les m
variables restantes sont appelées variables de base (v.b.).
Variables hors base (v.h.b.)
x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18
On appelle variables hors base (v.h.b.) les n variables de Rn+m fixées à zéro. Les m
variables restantes sont appelées variables de base (v.b.).
e1 = 4
e2 = 12 variables de base
e3 = 18
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
Solutions de base adjacentes
On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
x1 = 0, x1 = 0
x2 = 0, x2 = 6
e1 = 4, e1 = 4
e2 = 12, e2 = 0
e3 = 18, e3 = 6
Solutions de base adjacentes
On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
x1 = 0, x1 = 0
x2 = 0, x2 = 6
e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0
e3 = 18, e3 = 6
car elles ne diffèrent que par une seule variable hors base. Par contre les solutions
suivantes :
Solutions de base adjacentes
On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
x1 = 0, x1 = 0
x2 = 0, x2 = 6
e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0
e3 = 18, e3 = 6
car elles ne diffèrent que par une seule variable
hors base. Par contre les solutions
x1 = 0, x1 = 2
suivantes :
x2 = 0, x2 = 6
Solutions de base adjacentes
On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
x1 = 0, x1 = 0
x2 = 0, x2 = 6
e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0
e3 = 18, e3 = 6
car elles ne diffèrent que par une seule variable
hors base. Par contre les solutions
x1 = 0, x1 = 2
suivantes : solutions de base non-adjacentes
x2 = 0, x2 = 6
Solutions de base adjacentes
x1 = 0, x1 = 0
x2 = 0, x2 = 6
e1 = 4, e1 = 4
e = 12, e2 = 0
2
e = 18, e3 = 6
3
x1 = 0, x1 = 0
x2 = 0, x2 = 6
0 + 0 + 3 x3 + e1 =90
0 + 0 + 30 x3 + e2 =1260
0 + 0 + 1 x3 + e3 =84
x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0
Autrement
Quelle est la valeur maximale qu’on peut donner à x3 sans violer les contraintes du
modèle ?
choix de pivot
Pour chaque itération, nous suivons les règles suivantes :
q Variable entrante : plus fort coefficient strictement positif.
q Variable sortante : plus petite valeur strictement positive dans B/Colonne choisie.
q Le pivot : intersection de la ligne et de la colonne sélectionnée.
x3 variable entrante remplace la variable e1 dans le nouveau tableau.
Le pivot est égal à 3.
Nouveau sommet
Transformation du tableau
q Ligne x3 (ancienne ligne e1 ) −→ à (ligne e1 )/3 . (Division par le pivot).
q Ligne e2 −→ à Ligne e2 − 30 ligne x3
q Ligne e3 −→ à Ligne e3 − ligne x3
q Ligne B −→ à Ligne cj −258 ligne x3
Règle de pivot
Une autre manière de construire le tableau suivant:
q Diviser la ligne de pivot par la valeur de pivot.
q À chacune des variables de base, on associé la valeur 1 à l’intersection de la ligne
et la colonne de cette même variable et le reste de la colonne c’est 0.
q Calculer le reste des valeurs du tableau par la règle de pivot.
Par exemple 21 sera remplacer par 21×3−2×30
3 = 1.
147×3−2×258
147 sera remplacer par 3 = −25
Remarques
q Le passage de l’ancien tableau au nouveau tableau traduit le passage du sommet
(0, 0, 0) ou le bénéfice est nul à un autre sommet ou le bénéfice est 7740
(lebénéfice a été amélioré)
q La fonction bénéfice est B = x1 − 25x2 − 86e1 B peut augmenter si on augmente
x1 avec x2 = e1 = 0. Il faut passer à un autre sommet, l’algorithme n’est pas
encore terminé.
Remarques
q Le passage de l’ancien tableau au nouveau tableau traduit le passage du sommet
(0, 0, 0) ou le bénéfice est nul à un autre sommet ou le bénéfice est 7740
(lebénéfice a été amélioré)
q La fonction bénéfice est B = x1 − 25x2 − 86e1 B peut augmenter si on augmente
x1 avec x2 = e1 = 0. Il faut passer à un autre sommet, l’algorithme n’est pas
encore terminé.
On effectue notre choix du pivot :
x1 x2 x3 e1 e2 e3 B B /colonne choisie
1 2 1
x3 3 3 1 3 0 0 30 90
e2 5 1 0 −10 1 0 360 72
2 1
e3 3 3 0 − 13 0 1 54 81
cj 1 −25 0 −86 0 0 7740
Transformation du tableau
q Variable entrante qui correspond à la plus grande valeurs positive dans la ligne cj
qui est la variable x1 .
q Variable sortante qui correspond à la plus petite valeurs positive dans la colonne
"B /colonne choisie" qui est la variable e2
q Le pivot=5. La variable x1 remplace la variable e2 .
q Ligne x1 (ancienne ligne e2 ) −→ à (ligne e2 )/5 . (Division par le pivot).
1
q Ligne x3 −→ à Ligne x3 − 3 ligne x1
2
q Ligne e3 −→ à Ligne e3 − 3 ligne x1
q Ligne cj −→ à Ligne cj − ligne x1
Effectuons les calculs sur les lignes x1 et cj . On obtient :
x1 x2 x3 e1 e2 e3 B
x3 6
1 1
x1 1 5 0 −2 5 0 72
e3 6
cj 0 −25, 2 0 −84 − 15 0 7812
Remarques importantes
q S’il n’y a pas de candidat pour quitter la base, on peut faire croître la variable
entrante et donc aussi la fonction objectif autant qu’on le veut. Dans ce cas, le
problème est non borné.
q S’il y a plusieurs candidats pour quitter la base, alors n’importe lequel de ces
candidats entraservir. La présence de plusieurs candidats pour quitter la base a une
conséquence importante : la dégénérescence.
Problème d’agriculteur
Résoudre ce problème à l’aide de l’algorithme du simplexe:
s.c x1 + x2 ≤ 150
4x1 + 2x2 ≤ 440
x1 + 4x2 ≤ 480
x1 ≤ 90
x1 ≥ 0 et x2 ≥ 0
Problème de dégénérescence :
Dans le cas où le Problème linéaire est dégénéré, c’est à dire que la fonction objectif Z
ne varie pas après le changement de base et conséquent on peut rencontrer les
situations suivantes :
• Quand on veut déterminer la variable entrante, et on a au moins deux variables
hors bases ayant le même coefficient le plus élevé strictement positif dans la
dérniere ligne.
• Quand on veut déterminier la variable sortante, et on trouve au moins deux
variables de base ayant le même et le plus petit rapport positif de la dernière
colonne.
• Il est possible, après un certain nombre d’itérations, de retrouver le tableau de
départ (problème de cyclage).
Plusieurs méthode appliqués au cyclage dans le cas dégénérés sont utilisés, le plus
connu c’est la règle de Bland :
Lorsque plusieurs variables sont susceptibles d’entrer ou de sortir de la base, on choisit
toujours la variable xr ayant le plus petit indice r .
Exemples :
1-
x1 x2 x3 e1 e2 e3 B B/C
e2 4 7 0 0 1 4 4 4/7
e1 2 8 0 1 0 3 0 0
x3 -2 9 1 0 0 2 0 0
Z -5 2 0 0 0 5 3
→ Variable candidat à entrer dans la base : x2
→ Varbiales candidates à sortir de la base : x3 et e1 = x4 . On choisit donc x3
2-
x1 x2 x3 e1 e2 e3 B B/C
e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
Z 2 3 1 0 0 1 0
2-
x1 x2 x3 e1 e2 e3 B B/C
e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
Z 2 3 1 0 0 1 0
3-
x1 x2 x3 e1 e2 e3 B
e1 1 2 5 1 0 0 3
e2 3 1 2 0 1 0 4
e3 2 8 1 0 0 1 3
Z 3 3 2 0 0 0 0
4-
x1 x2 e1 e2 B
e1 0 -2 1 -1 8
x1 1 0 0 3 5
Z 0 16 0 -3 13
Tout les coefficients de la colonne de la variable entrante x2 sont négatifs ou nuls, alors
on dit que Zmax = +∞.
Si à la fin des itérations, une variable hors base avec un coefficient nul dans la dernère
ligne du tableau optimal, alors on a une arête optimale. Les autres sommets optimaux
peuvent être obtenus en faisant rentrer cette variable dans la base.
Considérons, par exemple le tableau optimal suivant :
x1 x2 e1 e2 B
x1 1 0 1 1 3
x2 0 1 -1 -2 2
Z 0 0 -1 0 8
On fait entrer e2 dans la base et x1 sera alors la variable sortante. Ainsi, on obtient une
autre solution optimale :
x1 x2 e1 e2 B
e1 1 0 1 1 3
x2 2 1 1 0 8
Z 0 0 1 0 8
Dans le cas de minimisation de l’objectif, les itérations et l’optimalité de la méthode du
simplexe sont déterminés par les critères suivants :
• Critère de la variable entrante : On choisit la variable hors base ayant le coût
réduit le plus négatif.
• Critère de la variable sortante : le même que dans le cas de maximisation,
puisque ce critère est lié à la réalisabilité des variables.
• Critère d’optimalité : l’algorithme du simplexe s’arrête quand tous les coûts
réduits des variables hors base (coefficient de la dernière ligne du tableau simplexe
) sont tous positifs ou nuls.
Les critères précédents découlent de la proprièté suivantes :
minimiser Z = c1 x1 + ... + cn xn revient à maximiser −Z
Exemple :
Soit le problème :
Min − x1 − 2x2
−3x1 + 2x2 ≤2
−x1 + 2x2 ≤4
x1 + x2 ≤5
x1 , x2 ≤0
x1 x2 → e1 e2 e3 B B/C
← e1 -3 2 1 0 0 2 1
e2 -1 2 0 1 0 4 2
e3 1 1 0 0 1 5 5
Z -1 -2 0 0 0 0 0
x2 variable entrante dans la base.
e1 variable sortante de la base.
Etape 2 :
x1 → x2 e1 e2 e3 B B/C
x2 -3/2 1 1/2 0 0 1 -2/3
← e2 2 0 -1 1 0 2 1
e3 5/2 0 -1/2 0 1 4 8/5
Z -4 0 1 0 0 -2
Etape 3 :
x1 x2 e1 → e2 e3 B B/C
x2 0 1 -1/4 3/4 0 5/2 10
x1 1 0 -1/2 1/2 0 1 -2
← e3 0 0 3/4 -5/4 1 3/2 2
Z 0 0 -1 2 0 -6
Etape 4 :
x1 x2 e1 e2 e3 B B/C
x2 0 1 0 1/3 1/3 3
x1 1 0 0 -1/3 2/3 2
e1 0 0 1 -5/3 4/3 2
Z 0 0 0 1/3 4/3 -8
Tous les coefficients de la dernière ligne sont positifs ou nuls : donc ce tableau est
optimal alors les solutions sont : x1∗ = 2; x2∗ = 3; e1∗ = 2; e2∗ = e3∗ = 0 et Z ∗ = −8
Initialisation de la méthode de Simplexe :
Nous avons vu comment trouver une solution de base réalisable initiale lorsque le
programme linéaire de départ est sous forme canonique :
T
Max Z = c x
Ax ≤ b
x ≥0
alors en ajoutant une variable d’écart ei à chaque contrainte pour la transformer en une
égalité. Le système devient,
Max Z
= cT x
A∗ x ∗ = b
x∗ ≥0
Où, A∗ = (AIm ), x ∗ = (x1 , ..., xn , e1 , ..., em )T et Im est la matrice identité d’ordre m.
Le passage en forme standard permet d’avoir une base initiale B0 = {ei , i = 1, ..., m}
facilement. Si le second membre b est positif alors cette base est réalisable et
correspond à l’origine :