Documente Academic
Documente Profesional
Documente Cultură
Algorithme de simplexe
Programmation linéaire
Dans le cas général un programme linéaire peut être
définie sous 2 formes:
Programme linéaire sous forme canonique:
n n
maximiser ∑c x
j =1
j j minimiser ∑c x
j =1
j j
sujet à Ax ≤ b ou sujet à Ax ≥ b
x≥0 x≥0
c1 0
avec c = ⋮ ∈ IR , c ≠ ⋮ , A(m × n ) et b ∈ IR .
n m
c 0
n
Programmation linéaire : Forme standard
Le sommet 1: (0,0 )
Solution associée: x1 = (0,0,4,12,18)
x3
Le sommet 2: (4,0 )
Solution associée: x 2 = (4,0,0,12,6)
Le sommet 3: (4,3 ) x1 x2
Solution associée: x = (4,3,0,6,0)
3
Le sommet 4: (2,6 )
Solution associée: x 4 = (2,6,2,0,0)
Le sommet 5: (0,6 )
Solution associée: x 5 = (0,6,4,0,6)
Chaque solution associée à un sommet possède exactement 2 variables nulles
et 3 variables positives .
Solution de base admissible
1 0 1 0 0 4
{
S = x ∈ IR 3
}
: Ax = b , x ≥ 0 A = 0 2 0 1 0 , b = 12
3 2 0 0 1 18
x 1 x2
Les bases associées aux points x 1 , x 2 , x 3 , x 4 et x 5
1 0 0 1 0 0 1 0 0
3
x ↔ B = 0 1 0 x ↔ B = 0
1 1 2 2
1 0 x ↔ B = 0 2 1
3
0 0 1 3 0 1 3 2 0
1 0 1 0 1 0
5
x ↔ B = 0 2 0 x ↔ B = 2
4 4 5
0 0
3 2 0 2 0 1
Les bases associées à 2 sommets adjacents différent d’une seule colonne
5 x4 Solution de base admissible
x
x3
x 1 x2
Définition : On dit que les solutions associées aux 5 points (x1, x2, x3, x4
et x5) sont des solutions de base admissibles ou encore des points
extrêmes.
Solution de base admissible: Cas général
Considérons le problème (P) suivant
maximiser cT x
Ax = b
sujet à
x≥0
Avec A matrice m lignes et n colonnes
b ∈ IR+m , c ∈ IR n , c ≠ 0 et rang ( A) = m.
Définition : Une base du problème (P) est toute sous matrice carrée inversible
de A et d’ordre m (m = Nbre de lignes de A = Nbre de contraintes)
−1
Définition : Une base B du problème (P) est dite admissible si B b≥0
Définition : Une solution de base admissible x associée à une base B
est définie par x = B−1b ≥ 0
B
et les autres composantes (de x ) nulles.
Exemples de solutions de bases admissibles:
1 0 1 0 0 4
{ }
S = x ∈ IR : Ax = b, x ≥ 0 A = 0 2 0 1 0 , b = 12
5
3 2 0 0 1 18
La solution
1
x = (0,0,4,12, 18) 1
0 0
est une solution de base, elle est associée à la base 0 1 0
0 0 1
La solution x = (4,3,0,6,0 )
3
1 0 0
est une solution de base, elle est associée à la base
0 2 1
3 2 0
Définition:
Soit x une solution de base associée à la base B.
−1
Les composantes de xB = B b sont appelées des variables de base
et les autres composantes des variables hors base.
Exemples :
1) Solution: x1 = (0,0,4,12,18) : les variables de base : x3 , x4 et x5
les variables hors base: x1 , et x2
2) Solution: x 2 = (4,0,0,12, 6) : les variables de base : x1 , x4 et x5
les variables hors base: x2 , et x3
3) Solution: x 3 = (4,3,0,6,0 ) : les variables de base : x1 , x2 et x4
les variables hors base: x3 , et x5
4) Solution: x 4 = (2,6,2,0,0 ) : les variables de base : x1 , x2 et x3
les variables hors base: x4 , et x5
5) Solution: x 5 = (0,6,4,0,6 ) : les variables de base : x2 , x3 et x5
les variables hors base: x1 , et x4
Algorithme de simplexe
Pour résoudre un programme linéaire sous forme standard
on utilise l’algorithme de simplexe
Principe de l’algorithme
(
Remarque: Si B = a i1 , a i2 ,… , a is ,… , a im ) alors la colonne
de B d’indice s est associée à la variable x is
Algorithme de simplexe: Exemple
x = (0 , 0 , 6 , 5 ) .
T
et
Calcul des coûts réduits :
c1 = −1, c2 = 3, c2 > 0 ⇒ x n’est pas optimale
Variable d’entrée :
c r = max c j = c 2 ⇒ la variable d’entrée est x2 .
Variable de sortie :
bi b1
min , y i 2 > 0 =
6
= ⇒ la variable de sortie est xi1 = x3 .
yi 2 y12 2
Changement de base : ( { }) 2 0
B′ = B − ais ∪{ar } = [a2 , a4 ] = .
1 1
B = B′ .
Fin de l’itération 1
Itération2 : B −1 = 1 1 0
, c BT B −1 3
= , 0 .
2 −1 2 2
B b = (3,2) = (x2 , x4 ) ,
−1 T T
Solution de base associée à la base :
x = (0 ,3 , 0 , 2 ) .
T
( { })
Changement de base : B′ = B− ais ∪{ar } = [a1, a2 ] = .
1 1
1 −1 2
, c B B = , .
Itération3 : −1
B = T −1 4 1
2 1 1 3 3
T
4 11
Solution de base associée à la base : B b = , = ( x1, x2 )
−1 T
4 11
T 3 3
x = , ,0 ,0 .
3 3
4 1
Calcul des coûts réduits : c3 = − , c4 = −
3 3
Les indices
Les cœfficients des variables de base cB
de variables
de base Le second membre
i1 ci1
B -1 A B -1b
⋮ ⋮
im cim
c1 … cn
Les cœfficients
de la fonc. écon. c1 … cn cBT B−1b
bs bk
= min : ykr > 0, yr = B−1ar , b = B−1b
ysr ykr
Opérations d’un pivot sur ysr
1) Diviser la ligne de la variable x is par le pivot ysr
La ligne obtenu est la ligne de la variable xr
2) Soustraire de la ligne i le multiple da la ligne de la variable xr par
yir pour tout i = 1, … , m et i ≠ s.
3) Retrancher de la ligne des coûts réduits le multiple de la ligne de la variable
xr par cr .
Exemple 1
max Z = − x1 + 3x2
s.à − x1 + 2 x2 + x3 =6
−1 2 1 0 6
A = , b =
x1 + x2 + x4 =5 1 1 0 1 5
x1 , x2 , x3 , x4 ≥0 bi b1
min , y i 2 > 0 =
yi 2 y12
Itération 1 1 2 3 4
3 0 -1 2 1 0 6
4 0 1 1 0 1 5
-1 3 0 0
Variable de pivot
sortie x 3 -1 3 0 0 0
5 0 3 0 0 -1 1 6
3 5 0 0 0
3 0 0 -5/2 0 30
bi b3
Itération2 min , y i1 > 0 =
1 2 3 4 5
y i1 y 31
3 0 1 0 1 0 0 4
2 5 0 1 0 1/2 0 6
5 0 3 0 0 -1 1 6
3 5 0 0 0
Variable de Pivot
sortie x 5
3 0 0 -5/2 0 30
1 3 1 0 0 -1/3 1/3 2
3 5 0 0 0
0 0 0 -3/2 -1 36
Itération 3
1 2 3 4 5
3 0 0 0 1 1/3 -1/3 2
2 5 0 1 0 1/2 0 6
1 3 1 0 0 -1/3 1/3 2
3 5 0 0 0
0 0 0 -3/2 -1 36
1 1 1 -1 0 0
A = . 2 0 - 1 0 - 1 0
0 1 1 0 0 1
Problème: solution de base initiale?
1 1 1 −1 0 0 1 0
A = 2 0 −1 0 −1 0 0 1
0 1 0 0 0 1 0 0
Une base initiale est formée par les colonnes des variables z1 , z 2 et x 6
Itération 1:
1 2 3 4 5 6 z1 z2
z1 -M 1 1 1 -1 0 0 1 0 4
z2 -M 2 0 - 0 -1 0 0 1 3
1
6 0 0 1 1 0 0 1 0 0 2
Variable de
sortie z -1 2 1 0 0 0 -M -M
2
-1+3M 2+M 1 -M -M 0 0 0 -7M
max c j = c1 > 0 Base initiale = colonnes de
variables z1, z2 et x6
6 0 0 1 1 0 0 1 0 0 2
-1 2 1 0 0 0 -M -M
-1 2 1 0 0 0 -M -M
Toutes les variables artificielles sont hors base, donc on supprime les colonnes
associées à ces variables.
Itération 3:
1 2 3 4 5 6
3 1 0 2/3 1 -2/3 1/3 0 5/3
-1 2 1 0 0 0
Variable de
sortie x 6 0 5/3 0 1/3 -2/3 0 -2/3
max c j = c 2 > 0
Pivot
(Variable d’entrée x2 )
Itération 4:
1 2 3 4 5 6
3 1 0 0 1 -2 1 -2 1
1 -1 1 0 0 -1 0 -1 2
2 2 0 1 0 2 -1 3 1
-1 2 1 0 0 0 Pivot
Variable de
sortie x 3 0 0 0 -3 1 -5 1
max c j = c 5 > 0
(Variable d’entrée x5 )
Itération 5:
1 2 3 4 5 6
5 0 0 0 1 -2 1 -2 1
1 -1 1 0 0 -1 0 -1 2
2 2 0 1 1 0 0 1 2
-1 2 1 0 0 0
0 0 -2 -1 0 -3 2
x = (2,2,0,0,1,0) T