Académique Documents
Professionnel Documents
Culture Documents
Algorithme du simplexe
avec
variables bornées
Variante du simplexe pour
problème avec variables bornées
min c T g
Sujet à Ag = h
lj ≤ g j ≤ qj j = 1, 2,..., n
et en remplaçant: uj = qj – lj et b = h – Al
min c T x + c T l
Sujet à Ax = b
0 ≤ xj ≤ uj j = 1, 2,..., n
Variante du simplexe pour
problème avec variables bornées
• Dans ce problème
c T l + min c T x + c T l
Sujet à Ax = b
0 ≤ xj ≤ uj j = 1, 2,..., n
xj , yj ≥0 j = 1,2,..., n
• Une façon de le résoudre est de le ramener sous une forme standard en
introduisant des variables d’écart yj,
et d’ensuite utiliser l’algorithme du simplexe
n
min z = ∑c x
j =1
j j Tableau avec m + n lignes
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m
xj + yj =uj j = 1,2,..., n
xj , yj ≥0 j = 1,2,..., n
n
min z = ∑c x
j =1
j j Tableau avec m lignes
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m
0≤ xj ≤uj j = 1,2,..., n
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m
Non dégénérescence:
xj + yj =uj j = 1,2,..., n toutes les variables de
base sont positives à
xj , yj ≥0 j = 1,2,..., n chaque itération
xj + yj =uj j = 1,2,..., n
xj , yj ≥0 j = 1,2,..., n
m + n variables de base requises Exactement m variables xj satisfont
il y a n variables yj 0 < xj < uj.
Par contradiction, si m0 ≠ m variables xj
satisfaisaient la relation, alors les
⇓ m0 variables yj correspondantes seraient
Il y a au moins m variables xj également dans la base.
dans la base De plus, pour les n – m0 autres indices j
xj = uj (cas a) ou bien yj = uj (cas b) serait
vérifié.
Alors le nombre de variables de base
serait égal à
2m0 + (n – m0) = m0 + n ≠ m + n
n
min z = ∑c x j j
La base a donc la forme suivante j =1
n
Sujet à ∑a x
j =1
ij j = bi i = 1, 2,..., m
xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n
min z = c T x
Sujet à Ax + 0 y = b
Ix + Iy = u
x, y ≥ 0
m
A 0
I I
xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n
m
min z = c T x
Sujet à Ax + 0 y = b
T
min z = c x Ix + Iy = u
Sujet à Ax + 0 y = b x, y ≥ 0
Ix + Iy = u
x, y ≥ 0
m
1 1 A 0
I I
n
2
I1
det ( Ξ ) = det ( I ) det ( B ) − det [ 0 D 0] I −1 0
0
{ ( )}
= det ( I ) det ( B ) − det 0ɶ
où la matrice 0ɶ est m × m puisque
[0 D 0] est une matrice m × n et
I1
0 est une matrice n × m
0
m
Base de A
Les colonnes de
la base B de A
correspondent
aux variables
1 1 0<xj<uj
n
2
n
Sujet à ∑a
j =1
ij x j = bi i = 1,2,..., m
0≤ xj ≤uj j = 1,2,..., n
en traitant implicitement les bornes supérieures uj. À chaque itération, nous
allons considérer une solution (de base) associée à une base B de A ayant
m variables de base 0 < xj < uj j ∈ IB
n – m variables hors base x j = 0 ou u j j ∈ JB
n
min z = ∑c x
j =1
j j
n
Sujet à ∑a x
j =1
ij j = bi i = 1, 2,..., m
xj + yj = uj j = 1, 2,..., n
xj , yj ≥ 0 j = 1, 2,..., n
• À chaque itération, nous allons considérer une solution (de base) associée à
une base B de A ayant
m variables de base 0 < xj < uj j ∈ IB
n – m variables hors base x j = 0 ou u j j ∈ .JB
• Si on dénote les indices des variables de base IB = {j1, j2, …, jm} où ji est
l’indice de la variable de base dans la iième ligne, alors
x j = 0 ou u j j ∈ JB
x ji = b i − ∑a
j∈JB
ij x j i = 1,2,..., m
Le critère pour choisir la variable d’entrée est modifié pour tenir compte
des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice j ∈ JB
si x j = 0 et c j < 0, il est avantageux d’augmenter xj
si x j = u j et c j > 0 , il est avantageux de diminuer xj
{
Déterminons c s1 = min c j : x j = 0 et
j∈JB
} {
c s2 = max c j : x j = u j
j∈JB
}
{
Soit c s = min c s1 , −c s2 } ( {
max c s1 , c s2})
Si c s ≥ 0 , alors la solution est optimale et l’algorithme s’arrête.
Le critère pour choisir la variable d’entrée est modifié pour tenir compte
des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.
Ainsi, pour un indice j ∈ JB
si x j = 0 et c j < 0, il est avantageux d’augmenter xj
si x j = u j et c j > 0 , il est avantageux de diminuer xj
{
Déterminons c s1 = min c j : x j = 0 et
j∈JB
} {
c s2 = max c j : x j = u j
j∈JB
}
Soit { }
c s = min c s1 ,−c s2
Si c s ≥ 0 , alors la solution est optimale et l’algorithme s’arrête.
a rs > 0 ) − a rs
1≤ i ≤ m
is− a
alors la valeur de la variable d’entrée xs
est réduite de θ (i.e., xs← us– θ).
La variable d’entrée xs devient variable de
base à la place de la variable de sortie x jr
qui devient égale à 0.
Pivoter sur a rs et retourner à l’étape 1
Étape 2.2: Choix de la variable de sortie
la valeur de
• La réduction θ de la valeur de la Soit g i = b i − ∑ a ij x j la variable de
variable d’entrée xs est limitée par j ∈ JB base x ji
la première des trois situations
suivantes qui se produit: g u − g ji
θ = min u , min : a < 0 , min
i i
: a is > 0
i) xs atteint sa borne inf. 0
s is
−a
1≤ i ≤ m
is a 1≤ i ≤ m
is
ii) une variable de base x jr
décroît à 0 (dans ce cas a rs < 0 )
iii) une variable de base x jr
augmente pour atteindre sa
borne sup. u jr (dans ce cas Si θ =
u −g jr u − g ji
= min : a < 0
r i
is
a rs > 0 ) a rs a
1≤ i ≤ m
is
M.S. Bazaraa, J.J. Jarvis, H.D. Sherali, “ Linear Programming and Network
Flows”, 3rd edition, Wiley-Interscience (2005), p217