Vous êtes sur la page 1sur 28

Recherche Opérationnelle

Enseignants: Dr. Sameh Najeh


Dr. Zouheir Ben Jemaa

2016-2017

Plan du cours
Partie I : Programmation Linéaire
1. Introduction à la programmation linéaire.
2. Théorie de la programmation linéaire.
3. Algorithme primal du simplexe à une ou deux phases.
4. Dualité en PL.
5. Etude de sensibilité et techniques de post-optimisation.
Partie II: Théorie des graphes
1. Eléments de la théorie des graphes.
2. Problèmes d’arbre couvrant de poids minimum et de plus court
chemin.
3. Problème d’ordonnancement et de gestion de projet.

2016-2017

1
Introduction à la RO

Recherche Opérationnelle (RO)


 Approche scientifique à la prise des décisions, qui cherche à
déterminer comment concevoir et faire fonctionner un système
d’une façon optimale.
 Champs d’application:
- Industrie
- Gouvernement
- Agences
- Hôpitaux
- Institutions d’éducation…

2016-2017

Introduction à la RO

 Méthodologie de la RO

Identification Formulation Implement


du Pb & Implement Analyse Test de la
du Modele Modele Solution

Résultat non
optimal

2016-2017

2
Objectif du module:
 La programmation linéaire (PL) est un des domaines les plus utilisés de la RO.
 La (PL) permet de traiter un vaste ensemble de problèmes d’optimisation dans
des contextes divers comme: la gestion de stocks, flux de transport, distribution de
tâches à des personnels, recherche de plans de fabrication etc. . . La modélisation de
ces problèmes débouche sur des équations ou inéquations linéaires (exprimant les
différentes contraintes) dont on cherche les solutions permettant d’optimiser une
fonction économique elle-même linéaire.
N.B: 1. De plus on supposera que les variables considérées sont astreintes à être
positives (contraintes de positivité).
2. On appelle une telle formulation un programme linéaire (PL).

2016-2017

Partie 1: Programmation Linéaire

2016-2017

3
Chapitre 1: Introduction à la PL
 Exemple: Une compagnie est spécialisée dans la production de deux types de
produits : des climatiseurs et des ventilateurs. Le tableau suivant donne les
informations nécessaires à la fabrication d’une unité de chacun de ces produits,
ainsi que le profit généré par la production d’une unité de ce produit. Le tableau
nous donne aussi le nombre total d’heures machines et d’heures main d’œuvre
disponibles.
Heures machine Main d’œuvre Profit
Climatiseur 2 h/unité 3 h/unité 25 DT/unité
Ventilateur 2 h/unité 1 h/unité 15 DT/unité
Total disponible 240 h 140 h
Objectif : Maximiser le profit
2016-2017

Chapitre 1: Introduction à la PL
Formulation du programme linéaire
a Variables de décision :
Les variables de décision doivent complètement décrire les décisions à prendre.
x1 = nombre de climatiseurs
x2 = nombre de ventilateurs

b Fonction objectif : La fonction objectif s’écrit


Z = 25x1 + 15x2

2016-2017

4
Chapitre 1: Introduction à la PL

c. Contraintes du modèle:
- Contraintes heure machine: 2x1 + 2x2 ≤ 240
- Contrainte main d’œuvre: 3x1 + x2 ≤ 140
- Contraintes de non-négativité: x1 ≥ 0, x2 ≥ 0

d. Formulation mathématique du problème:


Max Z = 25 x1 + 15 x2
s.c. 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0
2016-2017

Chapitre 1: Introduction à la PL
Terminologie
 Les variables x1, x2.,..xn sont appelées variables de décision du problème.
 f0 est une fonctions à optimiser appelée fonction objectif ou fonction
coût: Max (ou Min): f0(x1, x2, …, xn)=f0(x), où: x= (x1, .., xn)
 Les contraintes prennent la forme d’équations et d’inéquations.
f1(x1, x2, …, xn)b1

Sous-contraintes (s/c) :
fk(x1, x2, …, xn) bk
:
f m(x1, x2, …, xn) = bm

 Remarque: Si toutes les fonctions fk sont linéaires alors le problème est


dit: Problème Linéaire (PL)
2016-2017

5
Chapitre 1: Introduction à la PL
Terminologie
 Une solution est une affectation de valeurs aux variables du problème.
 Une solution est admissible si elle satisfait toutes les contraintes du
problème.
 La valeur d’une solution est la valeur de la fonction objectif dans cette
solution.
 Le domaine admissible D d’un PL est l’ensemble des solutions
admissibles du problème.
 La solution optimale d’un PL (si elle existe) est formée des valeurs
optimales des variables du problème et de la valeur associée de la
fonction objectif.
2016-2017

Chapitre 1: Introduction à la PL
 Méthode de la résolution d’un PL
Deux méthodes sont utilisées dans la littérature:
1.Résolution par la méthode graphique (résolution graphique)
2. Résolution par la méthode du simplexe
 Résultat d’une optimisation linéaire:
Le domaine admissible d’un PL peut être:
1. Vide: Dans ce cas le problème est sans solution admissible, et ainsi ne
possède pas de solution optimale.
2. Borné et non vide: Le problème possède toujours au moins une
solution optimale , quelle que soit la fonction objectif.
2016-2017

6
Chapitre 1: Introduction à la PL

3. Non bornée: Selon la fonction objectif choisie:


 Le problème peut posséder des solutions optimales.
 Il peut exister des solutions admissibles de valeur arbitrairement
grande (ou petite). Dans un tel cas le PL n’admet pas de solution
optimale finie et est dit non borné.

2016-2017

Chapitre 1: Introduction à la PL

 Application 1: Max Z = 25 x1 + 15 x2
2x1 + 2x2 ≤ 240
s/c: 3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0
 1ère étape :Déterminer les solutions admissibles
x2
140 3 x1  x2  140
120
2 x1  2 x2  240

120 x1
Domaine admissible 140/3
2016-2017

7
Chapitre 1: Introduction à la PL

2ème étape : Représenter les lignes de niveau


(PL) : Max Z = 25x1 + 15x2
 Z = 25x1 + 15x2: Equation des x2
Solution optimale
lignes de niveau: des droites de
pente -5/3 ( appelées aussi
ligne d’isoprofit ou isocoût).

25 x1  15 x2  Z
opt

25 x1  15 x2  Z 2
x1
25 x1  15 x2  Z1
2016-2017

Chapitre 1: Introduction à la PL
3ème étape : Déduire la solution optimale

{B} = D1 ∩ D2,
x2
Solution optimale
où: D1: 2x1 + 2x2 = 240
D2: 3x1 + x2 = 140
B
3 x1  x2  140
Donc: La solution optimale est donnée
par: x*1=10, x*2=110 et Z*opt=1900
25 x1  15 x2  Z opt

x1
2 x1  2 x2  240

2016-2017

8
Chapitre 1: Introduction à la PL
 Résolution par la méthode graphique:
1. Représenter les lignes de niveau de la fonction objectif: sont des droites
parallèles dans IR2.
2. Il existe des solutions admissibles si la ligne de niveau associée à cette
valeur appartient au domaine admissible D du problème.
3. Pour déterminer la valeur maximale atteignable par une solution
admissible, il suffit de faire glisser le plus loin possible une ligne de
niveau de la fonction objectif, dans le sens du gradient jusqu’à ce que
qu’elle touche encore tout juste D.
4. Les points de contact ainsi obtenus correspondants aux solutions
optimales du PL.
2016-2017

Chapitre 1: Introduction à la PL
 Application 2:
Impossible d’afficher l’image.

 PL non borné
x1  2 x2  Z 2
Max Z = x1 + 2x2
7x1+2x2 ≥ 28
s/c: x1 + 6x2 ≥ 12
x1 ≥ 0, x2 ≥ 0

Domaine admissible
x1  6 x2  12

2016-2017

9
Chapitre 1: Introduction à la PL
 Application 3:
 PL a une infinité de solutions optimales

Domaine admissible
Max Z = x1 + 3x2
2x1+6x2 ≤ 30 (1)
s/c: x1 ≤ 10 (2) (3)
x2 ≤ 4 (3) (1)
x1 ≥ 0, x2 ≥ 0 (2)

Z=Zopt
Z=Z1
L’ensemble des solutions optimales est un segment Z=0

2016-2017

Chapitre 1: Introduction à la PL
 Application 4:

 PL non réalisable

Max Z = 3x1 + 2x2


x1+2x2 ≤ 2 (1)
s/c: 2x1 + 4x2 ≥ 8 (2)
x1 ≥ 0, x2 ≥ 0
(2)

(1)
Domaine réalisable vide donc PL non réalisable

2016-2017

10
Chapitre 1: Introduction à la PL
 PL sous sa forme standard
Un PL est sous sa forme standard si:
 toutes les contraintes sont des égalités
 toutes les variables sont non négatives ( xi ≥ 0)
 le second membre est non négatif (i.e bi ≥ 0).

Max:c1x1 + c2x2 + … + cnxn


a11x1 + a12x2 + … + a1nxn = b1
Ecriture Max (ou Min): cx
s/c : :
s/c: Ax=b
am1x1 + am2x2 + … + amnxn = bn Matricielle X ≥ 0
x1, x2, ….,xn ≥0
2016-2017

Chapitre 1: Introduction à la PL
 PL sous sa forme canonique
Un PL est sous sa forme canonique si:
 toutes les contraintes sont des inégalités ()
 toutes les variables sont non négatives ( xi ≥ 0)
 le second membre est non négatif (i.e bi ≥ 0).

Max (c1x1 + c2x2 + … + cnxn)


a11x1 + a12x2 + … + a1nxn  b1
Ecriture Max cX
s/c : :
s/c: Ax  b
am1x1 + am2x2 + … + amnxn  bn Matricielle
x≥0
x1, x2, ….,xn ≥0
2016-2017

11
Chapitre 1: Introduction à la PL

 Règles de transformation
 Minimisation Maximisation:

min f(x) = - max(-f(x))


Exemple: pour minimiser f(x) = Cx, on maximise g(x) = (- C)x et
multiplier la solution optimale de g par -1 pour obtenir celle de f.
 Inéquation () Inéquation ()
Ax  b - Ax  - b
 Equation Inéquation ()
 Ax  b Ax  b
Ax  b   
 Ax  b  Ax   b
2016-2017

Chapitre 1: Introduction à la PL

 Règles de transformation
 Inéquation équation: On ajoute une variable d’écart (de
surplus)  Ax  b  Ax  s  b , s  0

 Ax  b  Ax  s  b , s  0

 Variables libre (réelle) variable non négative: tout nombre réel


peut être écrit comme la différence de deux nombres non négatifs:

x  x  x
x  IR    
 x ,x  0

2016-2017

12
Chapitre 1: Introduction à la PL
Exemple: Mise sous forme standard

Max Z = 25 x1 + 15 x2 Max Z = 25 x1 + 15 x2
s.c. x1 - 2x2 +4x3≤ 12 s.c. x1 - 2x2 +4x3+ s1=12
-x1 + 4x2 +x3≥ 4 -x1 + 4x2 +x3-s2 =4
3x1 + x2 +x3≥ 2 3x1 + x2 +x3-s3= 2
x1, x2, x3 ≥ 0 x1, x2 , x3 , s1, s2, s3 ≥ 0

On note: Max Z = 25 x1 + 15 x2
s.c. x1 - 2x2 +4x3+ x4=12
x1,..x3: variables directes
-x1 + 4x2 +x3-x5 =4
3x1 + x2 +x3-x6=2 X4,…x6: variables d’écarts

x1,x2 … x6 ≥ 0
2016-2017

Chapitre 2: Algorithme du Simplexe

Soit un PL sous sa forme standard (Ax = b).


 Définitions:
i. On appelle rang du PL le rang de sa matrice A.
ii. On suppose que A est mn, on dit que A est de rang plein si: rang(A) = m  n ..
 Remarques:
Soit A une matrice de rang plein, alors, le système Ax = b admet toujours des
solutions:
- si m < n, le système Ax = b admet une infinité de solutions.
- si m = n, la solution. est unique x* et vaut x = A-1b,

2016-2017 26

13
Chapitre 2: Algorithme du Simplexe

Définition: solution réalisable


On appelle solution réalisable tout vecteur x qui satisfait les contraintes du PL i.e. tel que
Ax = b et x  0:
Définition : variables de base
Soit B  {1,..n} un ensemble d'indices avec card (B) = m tel que les colonnes Aj , j  B,
de A soient linéairement indépendantes. Autrement dit, la matrice carrée AB formée des
colonnes Aj , j  B, est inversible. On dit que l'ensemble B des indices est une base.
Les variables xB = (xj ; j  B) sont appelées variables de base.
Les variables xH = (xj ; j B) sont appelées variables hors-base.
Définition: Soit un PLS, on appelle une matrice augmentée la matrice définie par:
Aˆ  ( A | b )
2016-2017 27

Chapitre 2: Algorithme du Simplexe

Remarques: si A est de rang plein (rang(A) = m)


 Pour déterminer les solutions de Ax = b, il suffit de choisir m colonnes
linéairement indépendants de A formant une base de l’espace des colonnes de A (et
donc de IRn) et d’exprimer le système dans cette base.
 Sous l'hypothèse de rang plein, il existe toujours une base non vide. Quitte à
renuméroter les indices, on peut toujours écrire les décompositions par blocs :
A = (B|H), donc: Ax = b  (B|H)x = b,
Où B est une matrice inversible formée de m (= rang(A)) colonnes linéairement
indépendantes de A.

2016-2017 28

14
Chapitre 2: Algorithme du Simplexe

 x 
( B | H ) x  ( B | H )  B   b ;
 xH 
1 1
B (B | H )x  B b  x B  B  1 Hx H  B 1b

Ainsi: on choisit arbitrairement les xH et les xB sont déterminées par:

nm
x H  IR , x B  B  1 b  B  1 Hx H

IRemarque: l’optimum peut être atteint en changeant seulement les variable


hors base tout en respectant la contrainte de non négativité de variables

2016-2017 29

Chapitre 2: Algorithme du Simplexe

 Revenons à la fonction objectif: Z = cx :


 x 
Z  cx  ( c B | c H )  B   c B x B  c H x H
 xH 
 Z  c B ( B  1 b  B  1 Hx H )  c H x H
 Z  c B B  1 b  c B B  1 Hx H  cH xH ,
1
Soit : c   c B B H  c H  Z  c B B  1b  c x H
 Ainsi, le PLS initial devient:

Max Z  c B B  1b  c x H
Sc : x B  B  1 b  B  1 Hx H

xB  0, xH  0
2016-2017 30

15
Chapitre 2: Algorithme du Simplexe

Définitions:
i.x* est dite solution de base ou solution basique si elle vérifie Ax* = b, et x* s’écrit:

 x  B  1b 
x *   B 

 xH  0 
i. Si en plus xB  0 alors x* est une solution de base réalisable.
ii. x* est dite solution réalisable si elle vérifie les contraintes: Ax* = b et x*  0.
iii. Les colonnes formant B sont dites basiques les autres hors bases.
iv. Les variables associées aux colonnes de B sont dites basiques les autres variables
hors base.

v. On appelle base la liste ordonnée des variables basiques cette liste est notée B.

2016-2017 31

Chapitre 2: Algorithme du Simplexe

Exemple

0 1 2 2 1 1 2 
A    ; b    B   , B  2,4
1 1 2 3 1 1 3 

x  x 
x H   1  x B   2 
 x3   x4 

1 0
x B  B  1 b    ; x H   
0
  0

2016-2017 32

16
Chapitre 2: Algorithme du Simplexe

 Solutions basiques d’un PLS:


Considérons le PLS dont les contraintes sont données par:
 Ax D  x E  b , x D : variable de décision

 x D  0 , x E  0 , x E : variable d' écart

a . a1n 1 0 . . 0
La matrice  a 
11

. a 21 0 1 . . . est de taille m(n + m) et est de


12

rang plein.  . . . . . . . .

 . . . 0 0 . 1 
a . a mn 0 0 
 m1 . 1

La base B0 = I, formée par des variables d’écart du problème. La solution basique


associée à cette base est: xB = xE = b et xH = xD = 0
2016-2017 33

Chapitre 2: Algorithme du Simplexe

Max Z  c B B  1b  c x H
Sc : x B  B  1 b  B  1 Hx H

xB  0, xH  0

Dans le cas de l’algorithme de simplexe, on a B=Identité, ce qui donne (à


une permutation des variables de base près):

Max Z  cBb  cxH


Sc : x B  b  Hx H

xB  0, xH  0

2016-2017 34

17
Chapitre 2: Algorithme du Simplexe

Principe de la méthode de simplexe

L’algorithme du simplexe pour une maximisation suit les étapes


suivantes :
1. Trouver une SBR pour le PL, appelée la SBR initiale.
2. Déterminer si la SBR courante est optimale. Sinon, trouver
une autre SBR qui possède une valeur z plus élevée.
3. Retourner au point (2) avec la nouvelle SBR comme SBR
courante.

Pour la méthode de simplexe, la base B est toujours l’identité à


une permutation des colonnes près

La question est donc : comment se déplacer?


2016-2017 35

Chapitre 2: Algorithme du Simplexe

Algorithme
PLS initial
Sommet de départ
Augmenter une des variable hors base jusqu’à une des
contraintes de non négativité n’est plus satisfaite

Oui
Z optimal Fin

Non
Un nouveau Sommet
Pivotage
2016-2017 36

18
Chapitre 2: Algorithme du Simplexe

Pivotage: Passage d’une matrice à une autre


-Le pivotage consiste à éliminer une colonne de base et d’ajouter à la base une
colonne hors base.
-Ceci se fait par ajout à chaque ligne une combinaison linéaire des autres.
-Pour avoir un système équivalent ces opérations doivent se faire sur la matrice
augmenté. Aˆ  [ A b ]
-Le pivotage par rapport à air consiste à remplacer air par 1 et tous les autres akr
par 0.
-La colonne de base j contenant cette même colonne dans l’étape précédente
devient hors base.
-En écriture matricielle, ceci consiste à multiplier à gauche la martice augmentée
par la matrice de pivotage.
-Les coefficients de la fonction coût correspondant aux variables de bases sont
nuls. Donc toutes ces étapes doivent être faites sur le tableau suivant:
2016-2017 37

Chapitre 2: Algorithme du Simplexe

Tableau

Max Z = cx, sc: Ax = b, x  0


• Le tableau initial est :
xD =xH xE =xB z Résultat
T0 = A I 0 b
-cD 0 1 0
• Un tableau est associé à une base d’un système d’équations.
• Un tableau comprend une ligne supplémentaire représentant la fonction objectif
du problème. La base associée au tableau initial est donc formée des colonnes des
variables d’écart auxquelles on ajoute (en dernière position) celles correspondant
à la variable z et au second menbre b. 2016-2017 38

19
Chapitre 2: Algorithme du Simplexe

Exemple

Max Z = 2 x1 + 5 x2+ 3x3 Max Z = 2 x1 + 5 x2+ 3x3


s.c. x1 - 2x2 +4x3≤ 12 s.c. x1 - 2x2 +4x3+x4= 12
-x1 + 4x2 +x3 ≤ 4 -x1 + 4x2 +x3 +x5= 4
3x1 + x2 +x3 ≤ 2 3x1 + x2 +x3 +x6= 2
x1, x2, x3 ≥ 0 x1, x2, x3 , x1, x2, x3 ≥ 0

x1 x2 x3 x4 x5 x6 Z b
1 -2 4 1 0 0 0 12
-1 4 1 0 1 0 0 4
3 1 1 0 0 1 0 2
-2 -5 -3 0 0 0 1 0

2016-2017 39

Chapitre 2: Algorithme du Simplexe

Questions :
1. Quelle est la variable entrante à la base?
2. Quelle est la variable sortante de la base?
Réponses :
1. On choisit parmi les variables hors base celle, ayant le taux d’augmentation
maximal de z(x).
Dans le tableau:
-Si tous les cœfficients de la fonction coût (dernière ligne) sont strictement
positifs, l’optimum est atteint.
- si non la variable entrante est celle qui correspond au cœfficients le plus
petit, il faut qu’au moins un des cœfficients de Z (-cD) soit negatif.
2. En augmentant la variable entrante à partir de zéro, la variable sortante est
celle qui s’annule la première parmi les variables de base
2016-2017 40

20
Chapitre 2: Algorithme du Simplexe

Exemple

x1 x2 x3 x4 x5 x6 Z b
1 -2 4 1 0 0 0 12
-1 4 1 0 1 0 0 4
3 1 1 0 0 1 0 2
-2 -5 -3 0 0 0 1 0

Variable entrante: x2 x1=x3=0, et x2 augmente à partir de 0

x4=0 ssi x2=-12/2=-6, x5=0 ssi x2=4/4=1; x6=0 ssi x2=2/1=2

x5 est la variable sortante


2016-2017 41

Chapitre 2: Algorithme du Simplexe

Règle:

Soit xe la variable entrante, et bk/ak,e=min {bi/ai,e ,  i =1,...,m et ai,e > 0}


la variable sortante xs est celle corresponndant à la kième colonne de
l’identité, c a d que dans le tableau sous xs on trouve le 1 à la kième ligne.
Le pivotage se fait autour de as,e=a22=4
x1 x2 x3 x4 x5 x6 Z b
1 -2 4 1 0 0 0 12
-1 4 1 0 1 0 0 4
3 1 1 0 0 1 0 2
-2 -5 -3 0 0 0 1 0

2016-2017 42

21
Chapitre 2: Algorithme du Simplexe

Pivotage: Passage d’un tableau à un autre


1 

Matrice de pivotage
a
 1e
 . 0 0

am 1, j  C j
a ke
0 1 .  Cœfficients de la fonction coût
. .
1
. . 
0 0
a ke
. 1 0

 a m  1, e 
0 0  0 1 Colonne e Colonne s
 a ke 
Colonne e Colonne s
 a1e 
  . .
Colonne k . . a1e . . 0 . . . . 0 . . a ke 
  . . . .
. . . . . 0 . .

. 0 . .

. 1
Ligne k . a ke . . 1 . . . . 1 . . . .
   a ke 
. . . . . . . . . . . . . . . .
  . 
. . a m 1, e . . 0 . . . 0 . .

a m 1,e
. .

 a ke 
2016-2017 43

Chapitre : Algorithme du Simplexe

Exemple: Exercice 3 de la série 1


x2
Max Z = 3x1 + 5x2 B(0,6)---->Z=30 C(2,6)---->Z=36
x1+ x3 =4
s/c: 3x1 + 2x2 + x4 =18
2x2 + x5=12
x1, x2, x3, x4 , x5≥ 0 A(0,0)---->Z=0 x1
Point A sur le graphe
x1 x2 x3 x4 x5 Z b
1 0 1 0 0 0 4
3 2 0 1 0 0 18
0 2 0 0 1 0 12
-3 -5 0 0 0 1 0

2016-2017 44

22
Chapitre 2: Algorithme du Simplexe
Pivotage: Passage d’un tableau à un autre
1 0 0 0 x1 x2 x3 x4 x5 Z b

0 1 -1 0 1 0 1 0 0 0 4

0 0 1/2 0 3 2 0 1 0 0 18
0 0 5/2 1 0 2 0 0 1 0 12
-3 -5 0 0 0 1 0
Point B sur le graphe
x1 x2 x3 x4 x5 Z b
B=(2,3,4)
1 0 1 0 0 0 4
3 0 0 1 -1 0 6
X=(0,6,4,6,0)
0 1 0 0 1/2 0 6
-3 0 0 0 5/2 1 30
2016-2017 45

Chapitre 2: Algorithme du Simplexe


Pivotage: Passage d’un tableau à un autre
1 -1/3 0 0 x1 x2 x3 x4 x5 Z b

0 1/3 0 0 1 0 1 0 0 0 4

0 0 1 0 3 0 0 1 -1 0 6
0 1 0 1 0 1 0 0 1/2 0 6
-3 0 0 0 5/2 1 30
Point C sur le graphe
x1 x2 x3 x4 x5 Z b
0 0 1 -1/3 1/3 0 2 B=(1,2,3)

1 0 0 1/3 -1/3 0 2
X=(2,6,2,0,0)
0 1 0 0 1/2 0 6
0 0 0 1 3/2 1 36
2016-2017 46

23
Chapitre 2: Algorithme du Simplexe
Pivotage: Passage d’un tableau à un autre
Étapes de chaque itération de l’algorithme du simplexe
Avec n nombre de variables et m nombre de contraintes (≤):
1. Construire le tableau initial T de dimension (m+1)x(n+m+2).
2. Déterminer la variable entrante et la variable sortante.
3. Déterminer la matrice de pivotage P de dimension (m+1)x(m+1).
4. Calculer P.T; T(m+1,m+n+2) est la nouvelle valeur de la fonction
coût.
5. Déterminer les nouvelles valeurs des variables xi, i=1,…,n+m. b
pour les variables de base et 0 pour les variables hors base.
6. s’arrêter si T(m+1,1:n+m) ≥ 0, si non aller dans 2.
2016-2017 47

Chapitre 2: Algorithme du Simplexe

Simplexe à deux phases


Lorsque toutes les contraintes sont des inégalités (≤) et les seconds
membres sont tous strictement positifs on procède facilement suivant
l’algorithme de simplexe décrit précédemment. Des fois c’est pas le
cas, et on procède selon l’algorithme de simplexe à deux phases, la
première phase permet de nous ramener à la deuxième phase décrite
précédemment.
Exemple:
Max z = 4x1 + 3x2 Max z = 4x1 + 3x2
s.c. 2x1 –x2  15 s.c. 2x1 –x2 –x3 = 15
x1 + x2 = 10 x1 + x2 = 10
2x1 – x2  20 2x1 – x2 + x4= 20
x1, x2, x3, x4  0
2016-2017 48

24
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases
On introduit encore des variables dites artificielles à chaque contrainte
‘‘ et à chaque contrainte ‘=’, on obtient alors :
Max z = 4x1 + 3x2
s.c. 2x1 –x2 –x3 +a1= 15
x1 + x2 +a2= 10
2x1 – x2 + x4= 20
x1, x2, x3, x4 , a1, a2 0
La phase I consiste à résoudre
min z’ = a1 + a2
s.c. 2x1 –x2 –x3 +a1= 15
x1 + x2 +a2= 10
2x1 – x2 + x4= 20
x1, x2, x3, x4 , a1, a2 0
2016-2017 49

Chapitre 2: Algorithme du Simplexe


Simplexe à deux phases (Phase I)
x1 x2 x3 x4 a1 a2 Z’ b
1 0 0 0
2 -1 -1 0 1 0 0 15
0 1 0 0
1 1 0 0 0 1 0 10
0 0 1 0
-1 -1 0 1 2 -1 0 1 0 0 0 20
0 0 0 0 1 1 1 0

Les variables de bases sont x4, a1 et a2, mais pour démarrer avec la
phase I de simplexe les coefficients de la fonction coût correspondant
à a1 et a2 doivent s’annuler. Ceci revient à multiplier à gauche par le
tableau ci-dessus; on obtient:

2016-2017 50

25
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases (Phase I)
x1 x2 x3 x4 a1 a2 Z’ b
1/2 0 0 0
-1/2
2 -1 -1 0 1 0 0 15
1 0 0
1 1 0 0 0 1 0 10
-1 0 1 0
3/2 0 0 1 2 -1 0 1 0 0 0 20
-3 0 1 0 0 0 1 -25
x1 x2 x3 x4 a1 a2 Z’ b
1 1/3 0 0
0 2/3 0 0 1 -1/2 -1/2 0 1/2 0 0 15/2

0 0 1 0 0 3/2 1/2 0 -1/2 1 0 5/2


0 1 0 1 0 0 1 1 -1 0 0 5
0 -3/2 -1/2
2014-2015
0 3/2 0 1 -5/2
51

Chapitre 2: Algorithme du Simplexe


Simplexe à deux phases (Phase I)

x1 x2 x3 x4 a1 a2 Z’ b
1 0 -1/3 0 1/3 1/3 0 25/3
0 1 1/3 0 -1/3 2/3 0 5/3
0 0 1 1 -1 0 0 5
0 0 0 0 1 1 1 0

Variables de base (x1,x2,x4). On peut mettre les variables artificielles à 0


et revenir à la fonction coût de départ pour obtenir le PLS suivant

2016-2017 52

26
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases (Phase II)
x1 x2 x3 x4 z b
1 0 0 0
1 0 -1/3 0 0 25/3
0 1 0 0
0 1 1/3 0 0 5/3
0 0 1 0
4 3 0 1 0 0 1 1 0 5
-4 -3 0 0 1 0

1 0 1/3 0 x1 x2 x3 x4 z b
0 1 -1/3 0 1 0 -1/3 0 0 25/3
0 0 1 0 0 1 1/3 0 0 5/3
0 0 1/3 1 0 0 1 1 0 5
0 0 -1/3 0 1 115/3 53

Chapitre 2: Algorithme du Simplexe


Simplexe à deux phases (Phase II)

x1 x2 x3 x4 z b
1 0 0 1/3 0 25/3
0 1 0 -1/3 0 0
0 0 1 1 0 5
0 0 0 1/3 1 40

Optimum=40 atteint pour les variables (x1,x2,x3,x4)=(25/3,0,5,0)

2016-2017 54

27
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases

Phase I: appliquée lorsqu’il existe des contraintes (= ou ); dans ce cas:


• Ajouter une variable artificielle pour chacune de ces contraintes.
• Considérer le PLS obtenu et changer la fonction coût par la somme des
variables artificielles. Cette fonction doit être minimiser.
• Ces variables artificielles appartiennent à la base, donc la fonction coût doit
être ré-exprimée en fonction des variables hors base. Ceci est fait par la
multiplication à gauche du tableau par une matrice dont vous déterminerez.
• Si le minimum est 0, il est atteint nécessairement pour des variables
artificielles toutes nulles. Dans ce cas on élimine ces variables et on passe à
la phase II.
• Si le minimum n’est pas nul, au moins une variable intermédiaire est non nul;
donc problème non réalisable (Domaine réalisable vide).
2016-2017 55

28

Vous aimerez peut-être aussi