Vous êtes sur la page 1sur 2

Programmation linéaire : Séance 2

On note DR = {x ∈ Rn | Ax = b, x ≥ 0} , l’ensemble  si m = n, la solution est unique et vaut x =


des solutions réalisables (ou admissibles) d’un PL A−1b, dans ce cas, il n’y a rien `a
sous forme standard (appelé domaine réalisable maximiser.
ou admissible).
Hypothèse non restrictive : si rang( A) < m le
On ne peut avoir que trois configurations système Ax = b n’a pas de solution en général. Si
possibles : rang(A) < m et b ∈ Im(A), il y a des équations
redondantes qu’on peut supprimer.
DR = ∅ : le PL n’a pas de solution.
Définition (variables de base) Soit B ⊂ {1, · · · ,
DR ≠ ∅ mais la fonction objectif F n’est pas
n} un ensemble d’indices avec card(B) = m tel que
majorée sur DR : le maximum de F vaut +∞ (cas
les colonnes Aj , j ∈ B, de A sont linéairement
exclu si DR est borné).
indépendantes. Autrement dit, la matrice carrée AB
DR ≠ ∅ et la fonction objectif F est majorée sur DR formée des colonnes Aj , j ∈ B, est inversible. On
: le PL admet une solution optimale (non dit que l’ensemble B des indices est une base.
nécessairement unique).
• Les variables xB = (xj , j ∈ B) sont appelées
Définitions variables de base.

• Un polyèdre Q de Rn est défini par Q = {x • Les variables xH = (xj , j ∉ B) sont appelées


∈ Rn | Ax = b} où A est une matrice m × variables hors-base.
n.
On dit que x=(xB ; xH) est la solution de base
• Un ensemble E est dit convexe si ∀x, y ∈ E associée à la base B si xH= 0.
, λx + (1 − λ)y ∈ E pour tout 0 ≤ λ ≤ 1.
x=(xB ; xH) est une solution de base réalisable, si
• Un point x ∈ DR est un sommet (ou point xH= 0 et xB = AB−1b ≥ 0.
extrême) si et seulement s’il n’existe pas Théorème : x est une solution de base réalisable
y, z ∈ DR , y ≠ z tels que x = λy + (1 − λ)z si et seulement si x est un sommet de DR .
avec 0 < λ < 1.
L’optimum de la fonction objectif F sur DR , s’il
Proposition : L’ensemble DR des solutions existe, est atteint en au moins un sommet de DR .
réalisables (appelé domaine réalisable) d’un PL
sous forme standard est un polyèdre convexe, Remarque : Pour résoudre un PL sous forme
fermé. standard, il suffit de se restreindre aux solutions
de base réalisables (les sommets de DR ).
Hypothèse de rang plein
Méthode force brute : Pour déterminer une
On suppose que la matrice A est de taille m × n solution de base, on doit résoudre AB xB = b. Par
avec rang(A) = m ≤ n. une méthode directe de type Gauss/LU qui
demande de l’ordre de O(m3) opérations.
Remarques : Sous l’hypothèse de rang plein : le
système Ax = b admet toujours des solutions. Exploration exhaustive de toutes les solutions de
base (comparaison des coûts correspondants) :
 si m < n, le système Ax = b admet une
O(m 𝐶𝑛𝑚 ) opérations.
infinité de solution.

Yassine Hachaïchi Page 1


Méthode du simplexe : on explore seulement les S’il existe e tel que (𝐿𝐻 )𝑒 > 0 alors, on choisi 𝑥𝑒
sommets qui permettent d’augmenter la fonction comme variable entrante.
objectif ce qui réduit le nombre de solutions de
bases à explorer. Choix de la variable sortante :

La méthode du simplexe est due à G. Dantzig Une fois l’indice e choisi, il faut déterminer quelle
(1947). Elle comporte 2 phases. variable doit quitter la base. On a Ax = b, on
augmente xe jusqu’à annuler une des variables de
Phase 1 - Initialisation : Trouver une solution de
base réalisable (ou bien détecter l’impossibilité). base (si possible). Cette variable sera alors la
variable sortante. On note Ae la e-ième colonne de
Phase 2 - Progression : On passe d’un sommet à A
un sommet voisin pour augmenter la fonction
objectif (ou bien on détecte une fonction objectif F Ax = b ⇔ ABxB + Aexe = b ⇔ xB = A−B1(b − Aexe)
non majorée). ⇔ xB = xB − A−B1Aexe ⇔ xB = xB − zxe
L’algorithme du simplexe proprement dit : la Si z ≤ 0, on peut augmenter xe autant qu’on veut,
phase 2 on aura toujours la positivité de la variable de base
On dispose d’une solution de base réalisable x xB. La fonction objectif n’est pas majorée sur DR
d’un PL sous forme standard. La matrice A peut i.e. le maximum de F vaut +∞. Dans ce cas,
s’écrire A = (AB | AH ) avec AB une matrice carrée l’algorithme s’arrête.
de taille m × m, inversible, correspondant aux
Sinon il existe zi > 0, pour avoir la positivité (xB)i
variables de base et AH une matrice de taille m ×
−zixe ≥ 0 pour tout i, on choisit la variable sortante
(n − m), correspondant aux variables hors-base.
pour laquelle le rapport (xB)i/zi pour i = 1, · · · , m
avec zi > 0, est le plus petit possible.
On décompose également x = (xB | xH )T . On va
chercher une autre base B∗ et une solution de base
x∗ associée telles que F (x∗) > F (x).

La méthode du simplexe consiste à faire rentrer


une variable hors-base (variable entrante) et faire
sortir à la place une variable de base (variable
sortante).

Choix de la variable entrante :

Soit 𝑦 ∈ 𝐷𝑅 on a b = Ay = AByB + AH yH ce qui


donne yB = AB−1(b − AH yH ).

Or, on a 𝐹 𝑦 − 𝐹 𝑥 = 𝑐𝐻𝑇 𝑦𝐻 + 𝑐𝐵𝑇 𝑦𝐵 −


𝑐𝐵𝑇 𝑥𝐵 = 𝑐𝐻𝑇 − 𝑐𝐵𝑇 𝐴−1
𝐵 𝐴𝐻 𝑦𝐻 .

On a le vecteur coûts réduits : 𝐿𝐻 = 𝑐𝐻𝑇 −


𝑐𝐵𝑇 𝐴−1
𝐵 𝐴𝐻 . Puisque 𝑦 ∈ 𝐷𝑅 on a 𝑦 ≥ 0.

Si 𝐿𝐻 ≤ 0, alors le produit scalaire 𝐿𝐻 𝑦𝐻 ≤ 0,


d’où l’optimalité de F(x).

Yassine Hachaïchi Page 2

Vous aimerez peut-être aussi