Vous êtes sur la page 1sur 89

Recherche Opérationnelle

1ère Année IFM

Responsable du cours : Troudi Fathi


troudi.fathi@gmail.com

Année universitaire : 2009 - 2010


Plan du cours
 Introduction à la recherche opérationnelle

 Partie 1 : Programmation Linéaire


 Chapitre 1 : Introduction à la programmation
linéaire
 Chapitre 2 : Résolution d’un programme linéaire :
méthode de simplexe
 Chapitre 3 : Dualité et analyse de sensibilité dans
la programmation linéaire
Plan du cours
 Partie 2 : Graphes
 Chapitre 1 : Notions fondamentales sur les
graphes
 Chapitre 2 : Problème du plus court chemin
 Chapitre 3 : Problème de planification de projets
Introduction à la Recherche
Opérationnelle
Introduction à la RO
 Origines de la RO
- Période : 2ème guerre,
- Responsable : armée britannique
- Problèmes posés : implantation optimale de radars de surveillance ,
le management des
 bombardements
 anti sous-marins
 opérations de miniers…

RO = Application des mathématiques et des méthodes scientifiques


aux opérations militaires

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
Introduction à la RO
 Techniques de la RO
 La programmation mathématique
 programmation linéaire
 programmation quadratique
 programmation en nombres entiers
 programmation dynamique
 Analyses de réseaux et graphes
 Théories des files d’attentes
 Simulation
 Analyse statistique

 Champs d’application de la RO
- Industries
- Gouvernement
- Agences
- Hôpitaux
- Institutions d’éducation…
Introduction à la RO
 Méthodologie de la RO
(1) Identification du problème

(2) Collecte des données

(3) Modélisation (Formulation


mathématique)

(4) Vérification du modèle

(5) Recherche des solutions

(6) Présentation des solutions

(7) Implémentation et
recommandations
Partie 1
Programmation Linéaire
Chapitre 1

Introduction à la
programmation linéaire
Chapitre 1
Introduction à la PL

 La programmation linéaire = méthode permettant d’optimiser, c'est-à-


dire rendre le plus grand ou le plus petit possible, une fonction linéaire,
cela sous certaines contraintes définies par des inégalités.

 Les exemples habituels d’optimisation sont la recherche d’un bénéfice


maximal ou d’un coût minimal.

 Remarque : C’est grâce à cette méthode que les problèmes de


ravitaillement étaient résolus pendant la seconde guerre mondiale.
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. Les deux produits
nécessitent un certain nombre d’heures de main d’œuvre. Le tableau
suivant donne les informations nécessaires sur les deux produits, c’est-à-
dire les nombres d’heures machine et d’heures main d’œuvre 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 Main d’œuvre Profit


machine
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
Chapitre 1
Introduction à la PL
I. Formulation du programme linéaire

a) Variables de décision : doivent complètement décrire les


décisions à prendre.

La compagnie veut décider du nombre de climatiseurs et du


nombre de ventilateurs à produire pour maximiser le profit. Ceci
nous amène à choisir les deux variables de décision suivantes :
x1 = nombre de climatiseurs
x2 = nombre de ventilateurs
Chapitre 1
Introduction à la PL
b) Fonction objectif : dans n’importe quel programme linéaire, le
responsable de décision veut maximiser (en général, le revenu ou
profit) ou minimiser (en général le coût) une fonction des variables
de décisions. Cette fonction est appelée “ fonction objectif ”.

L’objectif de l’entreprise est de déterminer le programme de


production qui maximisera son profit (Z=profit). La fonction objectif
s’écrit alors:

Max Z = 25x1 + 15x2


Chapitre 1
Introduction à la PL
c) Contraintes du modèle : La limitation des ressources contraint
l’entreprise de la manière suivante :
1) Contraintes heure machine 2x1 + 2x2 ≤ 240
2) Contrainte main d’œuvre 3x1 + x2 ≤ 140
3) Contraintes de non-négativité (exprimant que les niveaux
d’activité ne peuvent être négatifs) x1 ≥ 0, x2 ≥ 0

Modèle complet : x1 = nbre de climatiseurs, x2 = nbre de ventilateurs


Max Z = 25 x1 + 15 x2
s.c. 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0
s.c = sous contraintes
Chapitre 1
Introduction à la PL
 Domaine réalisable et solutions optimales : Ce sont deux
concepts fondamentaux associés avec un PL. Pour les définir, on va
utiliser le terme point (x1,x2), qui désigne une spécification de la valeur
de chaque variable de décision.

 Le domaine réalisable (DR) est l’ensemble de tous les points


satisfaisant toutes les contraintes du PL. Dans notre exemple, le point
(20,40) (Z= 280) appartient au DR. Ce point est dit réalisable.

 Pour un problème de maximisation (min), une solution optimale est un


point du DR qui donne la valeur la plus large (faible) de la fonction
objective.

(20, 40) ≠ solution optimale car (10, 110) est réalisable et donne Z = 1900
meilleur profit que Z= 280
Chapitre 1
Introduction à la PL
II. Résolution graphique
 Méthode de résolution d’un PL ne comportant que 2 variables
de décision

 Etapes à suivre
• Représenter les lignes des contraintes et l’ensemble du
domaine réalisable
• Localiser la solution optimale
• Calculer la solution optimale
Chapitre 1
Introduction à la PL
1ère étape : domaine réalisable
(PL) Max Z = 25 x1 + 15 x2
s.c. 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0
Domaine réalisable
Chapitre 1
Introduction à la PL
2ème étape : Recherche de la solution optimale
(PL) Max Z = 25 x1 + 15 x2

La fonction objectif Z = 25x1 + 15x2 représente pour Z fixé (25x1


+ 15x2 = cte) l’équation des courbes de niveau (des droites de
pente -5/3) qu’on appelle aussi ligne d’isoprofit ou isocoût.

 Maximiser Z revient à déplacer la ligne d’isoprofit dans la direction


qui augmente la valeur de Z (pour un pb de maximisation). La
dernière ligne qui touche le DR définit la plus large valeur de toutes
les solutions réalisables, et contient la solution optimale
Chapitre 1
Introduction à la PL
2ème étape : Recherche de la solution optimale (suite)

Solution optimale

{B} = D ∩ D’

D’

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

Solution optimale
{B} = D ∩ D’ d’équations respectives:
2x1 + 2x2 = 240
3x1 + x2 = 140
Donc x1=10, x2=110 et Z*=1900

D’

D
Chapitre 1
Introduction à la PL
III.Notions de convexité et points extrêmes

Définition : Un ensemble E non vide est dit convexe si et seulement si


pour tout élément x et y de E et pour tout λ Є [0,1], λ x + (1- λ ) y Є E.

Pour toute paire de points P1 et P2, l’ensemble des points qui forment
le segment [P1P2] appartient au demi-plan.

Convexes Non convexes

Caractéristique d’un PL: le DR d’un PL est ou bien vide ou convexe.


Chapitre 1
Introduction à la PL
Définition:  E, un ensemble convexe, un point P dans E est appelé
point extrême si chaque segment de droite entièrement contenu dans
S et contenant le point P, a P comme extrémité.
Mathématiquement :
Soit x Є E, x est un point extrême ↔ S’il Ǝ y Є E, z Є E et 0<λ<1 tels
que x= λy + (1- λ)z alors x=y=z

a x y
b

a,b Points x n’est pas un y Point


extrêmes point extrême extrême
Chapitre 1
Introduction à la PL
Théorème: Pour un PL donné, si un optimum existe, au moins un point
extrême est optimal.

Corollaire: Si PL admet un optimum unique, alors cet optimum doit être


un point extrême.

IV.Cas particuliers de PL
PL non borné
Max Z = x1 + 2x2
s.c. 7x1+2x2 ≥ 28
x1 + 6x2 ≥ 12
x1 ≥ 0, x2 ≥ 0
Chapitre 1
Introduction à la PL

14

Lignes d’isoprofit

2 12
x1+6x2 = 12
7x1+2x2 = 28

Si la fonction objectif est min z = x1 + 2x2 (18/5, 7/5) est optimal.


Chapitre 1
Introduction à la PL
PL a une infinité de solutions optimales
Max Z = x1 + 3x2
s.c. 2x1+6x2 ≤ 30 (1)
x1 ≤ 10 (2)
x2 ≤ 4 (3)
x1 ≥ 0, x2 ≥ 0

Tous les points appartenant


à [AB] sont optimaux
Chapitre 1
Introduction à la PL
PL non réalisable
Max Z = 3x1 + 2x2
s.c. x1+2x2 ≤ 2 (1)
2x1 + 4x2 ≥ 8 (2)
x1 ≥ 0, x2 ≥ 0

DR vide PL non réalisable


Chapitre 2

Résolution d’un programme


linéaire : méthode de simplexe
Chapitre 2
Méthode de simplexe
I. Introduction

 Dans le chapitre précédent, on a vu comment résoudre


graphiquement un PL à deux variables. Or la majorité des problèmes
réels ont plusieurs variables. D’où la nécessité d’avoir une méthode
algébrique pour résoudre des PLs ayant plus que 2 variables.

 La méthode de Simplexe est l’une des méthodes les plus anciennes


(Dantzig, 1947), et la plus utilisée jusqu’à nos jours, pour résoudre
même des problèmes de grandes tailles avec quelques milliers de
variables et quelques milliers de contraintes.
Chapitre 2
Méthode de simplexe
II.Mise en forme standard

Un PL peut avoir des contraintes d’égalité (=) et des contraintes d’inégalité


( ≥ et ≤ ).

Avant l’application de Simplexe, le PL doit être converti en un PL


équivalent où :
- toutes les contraintes sont des égalités,
- toutes les variables sont non négatives (≥ 0),
- le second membre est non négatif (AX ≤ b, b≥0).

Un tel PL est dit sous la forme standard.


Chapitre 2
Méthode de simplexe
Exemple : Usine de ceintures

Une usine fabrique de 2 sortes de ceintures : luxe et standard


Chaque type demande 1m² de cuir
• Une ceinture standard demande 1h de travail
• Une ceinture de luxe demande 2h

Chaque semaine, on dispose de 40m² de cuir et de 60h de travail.


• Chaque ceinture standard rapport 3 Euros
• Chaque ceinture de luxe 4 Euros.

Objectif : Maximiser le profit.


Chapitre 2
Méthode de simplexe
 x1 = nombre de ceintures de luxe produites par semaine
 x2 = nombre de ceintures standard produites par semaine

 Maximiser z = 4x1 + 3x2, avec

x1 + x2  40 contrainte sur le cuir (1)


2x1 + x2  60 contrainte sur le travail (2)
x1, x2  0 contrainte de signe (3)
Chapitre 2
Méthode de simplexe
 Pour convertir la ième contrainte  en une contrainte d’égalité, on définit
la variable d’écart, si (slack variables) qui représente la quantité de
ressource non utilisée dans cette contrainte.

s1 = 40 - x1 - x2  x1 + x2 + s1 = 40

On doit ajouter s1 ≥ 0 pour que (x1 , x2) satisfasse x1 + x2  40.

 Pour une contrainte ≥, on définit ei (excess variable), variable


d’excédent, qui est aussi ≥ 0.

On obtient alors:
max z = 4x1 + 3x2
s.c. x1 + x2 + s1 = 40
2x1 + x2 – e1 = 60
x1, x2, s1, e1 0
Chapitre 2
Méthode de simplexe
 Remarque : L'impact de ces variables d'écart sur la fonction objectif
est nul. Ceci explique le fait que leur existence soit tout simplement
liée à une mise en forme du programme linéaire initial.

 En général, la mise en forme d’un PL donne :


maxZ  c1x1  c 2 x 2  ...  c n x n
s.c. a11x1  a12 x2  ...  a1n xn  b1
a21x1  a22 x2  ...  a2 n xn  b2

am1x1  am 2 x2  ...  amn xn  bm


xi  0, i  (1,2,...n)
Chapitre 2
Méthode de simplexe
 x1   b1   c1 
     
 On définit A = (ai j), x   x2  ; b   b2  ; c   c2 
     
     
 n
x
 bm   cn 

On suppose que n  m

 (PL) : Max ct x
s.c. Ax = b
x≥0

Rq : pour avoir la forme standard, les équations doivent, si nécessaire,


être multipliées par (-1) pour avoir b  0
Chapitre 2
Méthode de simplexe
III. Analyse algébrique de la méthode de simplexe
1. Variables de base
• On appelle Base une sous matrice régulière de A. Il faut que la matrice
A(m,n) soit de rang m (pas de contrainte (ou équation) redondante càd
inutile).

• Une solution de base est obtenue en posant n − m variables égales à 0,


et en résolvant pour les m variables restantes, qui sont les variables de
base (VB).

• Les n−m variables à 0 sont les variables hors base (VHB).

• Des choix différents de VHB donnent lieu à des différentes solutions de


base.
Chapitre 2
Méthode de simplexe
Représentation

x tB x tH

c tb c tH

B H
base hors base

m colonnes n − m colonnes
Chapitre 2
Méthode de simplexe
Représentation matricielle
xB
A = [B | H] , x= , ct = [ctB| ctH]
xH

• Ce qui donne
Z = ct x = ctB xB + ctH xH

Ax = b  B xB + H xH = b

 Une solution de base est telle que


xH = 0
BxB = b
xB = B−1b
Chapitre 2
Méthode de simplexe
Exemple
 Soit le système suivant :
x1 + x2 = 3
−x2 + x3 = −1

 Si on pose VHB = {x3}, alors VB = {x1, x2}. On résout


x1 + x2 = 3
−x2 = −1

 Ce qui donne x1 = 2 et x2 = 1.

 Certains choix de variables peuvent ne pas générer de solution de base.


Chapitre 2
Méthode de simplexe

2. Solutions de base réalisables

 Une solution de base est dite réalisable (SBR) si :


xB = B−1b ≥ 0

Si le vecteur xB contient des termes nuls, on dira que cette solution est
une solution de base dégénérée (peut être associée à plus qu’une base).
Chapitre 2
Méthode de simplexe
Exemple de SBR
Soit le problème : min − x1 − 2x2
s.c. x1 + 2x2 ≤ 4
2x1 + x2 ≤ 5
x1 , x2 ≥ 0

 Sous forme standard, on a: min − x1 − 2x2


s.c x1 + 2x2 + x3 = 4
2x1 + x2 + x4 = 5
x1 , x2 , x3 , x4 ≥ 0

 4 variables (n=4) et 2 contraintes (m=2)


Chapitre 2
Méthode de simplexe
(PL) : min − x1 − 2x2
s.c x1 + 2x2 + x3 = 4
2x1 + x2 + x4 = 5 1 2 1 0
x1 , x2 , x3 , x4 ≥ 0 A=
2 1 0 1

 On peut essayer de constituer une base en utilisant l’ensemble B = {1, 3},

B = [A1A3] = 1 1 H = [A2A4] = 2 0
20 11

 xB = x1 , xH = x2
x3 x4

 L’inverse de B existe, donc B correspond à une base B−1 = 0 1/2

1 −1/2
Chapitre 2
Méthode de simplexe
 La solution de base correspondante est donc :

xB = B−1b = 0 1/2 4 = 5/2 = x1 >0


1 −1/2 5 3/2 x3

 Cette solution est bien une SBR.


Chapitre 2
Méthode de simplexe
3. Conditions d’optimalité d’une SBR
xB
 B 1b   
Soit x une SBR associée à la base B. On a alors x  
 0  x H
  
Soit x une solution réalisable quelconque de P.

On a z(x)= c x et z(x) = cx = cB B-1 b.

Calculons z(x) - z(x)

On a b=Ax ; Par conséquent :

z(x) - z(x) = c x-cx = cx - cB B-1 b = cx - cB B-1 Ax = (c – cB B-1 A)x

Appelons  (x) = (c - cB B-1 A), alors z(x) - z(x) =  (x). x


Chapitre 2
Méthode de simplexe
Théorème : Soit x une SBR de P. (x)  0  x est optimal.

Démonstration

 Rq: Pour simplifier la notation, nous allons utiliser la notation  au


lieu de (x)

 Soit x une solution réalisable de P. z(x) peut s’écrire :


z(x) = cB B-1 b + . x = z(x) + . x

  0  z(x)  z(x), puisque x  0.

Ceci est vrai  x solution réalisable; d'où x est optimal.

 Rq : c’est une condition suffisante. Elle devient aussi nécessaire si


la SBR est non dégénérée.
Chapitre 2
Méthode de simplexe
4. Théorèmes fondamentaux

 Théorème : La région réalisable pour tout problème de


programmation linéaire est un ensemble convexe. Si un PL possède
une solution optimale, alors un point extrême de la région réalisable
doit être optimal.

 Théorème : Pour tout LP, il existe un point extrême unique de la


région réalisable qui correspond à chaque solution de base
réalisable. Egalement, il existe au moins une SBR qui correspond à
chaque point extrême de la région réalisable.
Chapitre 2
Méthode de simplexe
 Illustration des théorèmes
On reprend l’exemple des ceintures de cuir, c-à-d maximiser z, avec :
z = 4x1 + 3x2
x1 + x2 + s1 = 40
2x1 + x2 + s2 = 60
x1, x2, s1, s2 ≥ 0
Chapitre 2
Méthode de simplexe
 On a l’équivalence entre SBR et points extrêmes suivants :

Base Hors-base SBR Point extrême


x1, x2 s1, s2 s1 = s2 = 0, x1 = x2 = 20 E
x1, s1 x2, s2 x2 = s2 = 0, x1 = 30, s1 = 10 C
x1, s2 x2, s1 x2 = s1 = 0, x1 = 40, s2 = −20 Non réalisable, s2 < 0
x2, s1 x1, s2 x1 = s2 = 0, s1 = −20, x2 = 60 Non réalisable, s1 < 0
x2, s2 x1, s1 x1 = s1 = 0, x2 = 40, s2 = 20 B
s1, s2 x1, x2 x1 = x2 = 0, s1 = 40, s2 = 60 F
Chapitre 2
Méthode de simplexe
5. Nombre de solutions possibles
 Le nombre de bases candidates est égal à
Cmn = n!/((n−m)!m! )

 Le nombre de SBR est donc ≤ Cmn c-à-d fini, mais peut être très
large.

 Puisque le nombre de telles bases peut être très large, il est


pratiquement impossible de trouver la solution optimale à partir
d’une formule compacte.

il nous faut donc utiliser un algorithme systématique (procédure


itérative) de recherche.
Chapitre 2
Méthode de simplexe
Définition d’un algorithme
Un algorithme est un ensemble de règles employées pour obtenir des
résultats à partir de données spécifiques, dans lequel chaque étape est
bien définie et peut être traduite sous forme d’un programme
informatique.

Simplexe
Le simplexe est un algorithme ou méthode de recherche qui garantit de
trouver un optimum d’un PL (s’il existe) en un nombre fini d’itérations.
Chapitre 2
Méthode de simplexe
IV. Méthode de simplexe
1. Principe

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 (Δ ≤ 0). 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.

 La question est donc : comment se déplacer.


Chapitre 2
Méthode de simplexe
2. Tableau canonique

 (PL) : Max z = ct x comme on a :


s.c. Ax = b
x≥0
xB
A = [B | H] , x= , ct = [ctB| ctH]
xH

Le PL peut ainsi s’écrire comme suit :

B xB + 0 (-z) + H xH = b
cB xB + (- z) + c xH = 0
Chapitre 2
Méthode de simplexe
 Sous forme matricielle on aura :
x 
B 0 H  B   b
   z    
 cB 1 cH     0 
 xH 

 Sous forme d’un tableau, le PL peut être présenté comme suit :

1er membre 2ème membre

xB -z xH
B 0 H b
cB 1 cH 0
Chapitre 2
Méthode de simplexe
 Le tableau canonique relatif à la base B est obtenu en transformant
la matrice sous les variables xB et –z en une matrice identité d’ordre
m+1.
1er membre 2ème
membre
xB -z xH
B 0 H b
cB 1 cH 0

 Pour ce faire, on multiplie à gauche chaque colonne du tableau par


la matrice : 1
 B 1 0   1 
  B 0 
 
c 1 
 B    c B 1 1
 B 
Chapitre 2
Méthode de simplexe
 Le tableau canonique relatif à B est donc le suivant :

xB -z xH
I 0 B-1H B-1b
0 1 cH – cB B-1H – cB B-1b
où B-1b  0.

On rappelle que : Δ = c - cB B-1 A et peut être aussi partitionnée en ΔB


et ΔH selon la SBR x

On aura alors :  = (B H) = (cB – cB B-1B cH – cB B-1H)


= (0 cH – cB B-1H)
Chapitre 2
Méthode de simplexe
 x1   xm1 
   
 x2   xm 2 
Soient xB   , xH  

   
 
 xm   xn 
 a1, j   a1, j   b1, j   b1, j 
       
 a2, j  1 a2, j   b 2, j  1 b2, j 
Notons par : 
  B 
  et   B  
       
 am, j   am, j   b m, j   bm, j 
       
Chapitre 2
Méthode de simplexe
 Notre tableau canonique devient ainsi :

Variables de x1 …xm -z xm+1 … xn Valeurs des


base var de
base
x1 1…0 0 a1,m+1 … a1,n b1
. .
. .
xm 0…1 0 am,m+1 … am,n bm

-z 0…0 1  m+1 …  n – cB B-1b


Chapitre 2
Méthode de simplexe
3. Itérations de Simplexe
 Définition : Pour tout problème de PL, deux SBR sont adjacentes si
leur ensembles de variables de base ont m − 1 variables de base en
commun. Etape 1
Construction du
tableau initial

Solution optimale Oui


Fin

Etape 2 Non
Déplacement (pivotage)
vers une SBR adjacente

 La question quelle est la variable entrante, et celle sortante?


Chapitre 2
Méthode de simplexe
 Remarque : Si la SBR est non dégénérée, le déplacement implique
un point extrême adjacent ;
Si la SBR est dégénérée, la base change mais on reste au même
point extrême (une nouvelle variable nulle).

 Pour se déplacer d’une SBR à une autre adjacente, une variable


hors base (variable entrante xe) va prendre la place de l’une des
variables de base (xs). Ainsi,
Chapitre 2
Méthode de simplexe
Variables de base x1 …xs …xm -z xm+1 … xe … xn Valeurs des
var de base
x1 1…0…0 0 a1,m+1 … a1,e …a1,n b1
. .
xs 0…1…0 0 as,m+1 … as,e…as,n bs
. .
xm 0 … 0… 1 0 am,m+1 am,e … am,n bm
-z 0…0…0 1  m+1 …  e …  n -cBB-1b = -z

Questions :
1. Quelle est la variable entrante?
2. Quelle est la variable sortante?
Chapitre 2
Méthode de simplexe
3.1. Choix de la variable entrante

Dans une SBR toutes les variables hors base sont nulles (xe =0). Pour
faire entrer xe, on augmente sa valeur, par exemple de   0 (xe = xe +
) tout en maintenant à zéro toutes les autres variables hors base.

1er critère de Dantzig : nous indique le choix de la variable entrante.


Ce dernier est basé sur la contribution éventuelle de xe à la fonction
objectif.

Puisque z(x) = z(x) + . x   z(x)/ xj= j = taux de variation de z


par rapport xj.

Par conséquent on choisit la variable, xe, ayant le taux d’augmentation


maximal de z(x) (PL de max), c-à-d le j maximal :

xe est telle que e = max{ j , où j= m+1, …, n ; j > 0}


Chapitre 2
Méthode de simplexe
2ème critère de Dantzig : nous indique la valeur de la variable entrante ().

 Pb de maximisation : on désire donc augmenter xe le maximum possible,


tout en satisfaisant les contraintes. On sait que le PL sous la forme
canonique est équivalent au problème de départ. Donc, les valeurs des
variables de base doivent changer tout en satisfaisant les contraintes
suivantes :

xi + ai,m+1 xm+1 + …+ ai,e xe…+ai,n xn = bi  i = 1, …, m

Comme xe =   xi =bi - ai,e 

 La valeur de  doit être choisie telle que : xi = bi - ai,e   0,  i = 1, …, m


Chapitre 2
Méthode de simplexe
 Pour tout i tel que ai,e 0, on a bienbi - ai,e   0 et ceci    0
(car bi  0 : puisqu’on part d’une SBR).

 Pour i tel queai,e > 0, on doit choisir  telle que   bi/ai,e

 La valeur maximale de  qui satisfait ces contraintes est max = min


{bi/ai,e :  i = 1, …, m et ai,e > 0}  2ème critère de DANTZIG
(critère du ratio minimal)

 On en déduit la variable sortante :


xs telle quebs/as,e = min {bi/ai,e :  i = 1, …, m et ai,e > 0}

 En effet, pour la ligne s : xs = bs - as,e  = bs - as,e (bs/as,e) = 0


Chapitre 2
Méthode de simplexe
 On appelle :as,e : élément pivot
Ligne s : ligne pivot
Colonne e : colonne pivot

 Maintenant on a donc une nouvelle base B’ = {1, …, e, …, m} avec xs


étant une nouvelle variable hors base.

 Il faudra ainsi représenter le PL sous la forme canonique associée à B’.


 La colonne de xe doit être transformée afin de conserver la matrice
d’identité:  a1 ,e  0 
   
   
 a    1   Ligne s
 s ,e   
   
a  0 
 m ,e   
Chapitre 2
Méthode de simplexe
 Pour ce faire, on applique les opérations élémentaires suivantes
(selon Gauss-Jordan) :

Op1 : Division de la ligne pivot par l’élément pivot as,e


asj’ = as,j/as,e  j, ase’ = 1

Var. de x1 … x s … x m -z xm+1 …xe … xn Val. des var de base


base
x1 1…0 … 0 0 a1,m+1 …a1,e …a1,n b1
. 
xs 0…1/as,e … 0 0 as,m+1’ …1 …as,n’ bs/as,e
. .
xm 0…0 … 1 0 am,m+1’ …am,e …am,n bm
-z 0… 0… 0 1  m+1 … e …  n -z
Chapitre 2
Méthode de simplexe
Op2 :  i s, soustraction d’un multiple approprié de la ligne pivot pour
annuler le coefficient de la ligne i , colonne e.
Var. de x1 … x s … x m -z xm+1 …xe … xn Val. des var
base de base
x1 1…0 … 0 0 a1,m+1 …a1,e …a1,n b1 0
.   
xs
.
0…1/as,e … 0 0 as,m+1’ …1 …as,n’ bs/as,e
.
1 
xm 0…0 … 1 0 am,m+1’ …am,e …am,n bm 0
-z 0… 0… 0 1  m+1 … e …  n -z
 
0
 aij’ = aij – aie as,j/as,e  j = 1 , …, n+1 (n+ dernière ligne du tableau)
 aie’ = 0
 j’ = j - e as,j/as,e  j = 1, …, n+1 (n var plus -z )
Chapitre 2
Méthode de simplexe
 Le nouveau tableau est donc le suivant:

Variables x1 … xs … xm -z xm+1 …xe … xn Valeurs des var de


de base base
x1 1 … -a1,e (1/as,e) … 0 0 a1,m+1’…0 b1–a1,e (bs/as,e)
. …a1,n’ .
xs bs/as,e
. 0… 1/as,e … 0 0 as,m+1’ …1 …as,n’ .
xm bm’
0 … -am,e (1/as,e)…1 0 am,m+1’ …0 …am,n
-z 0 … - e (1/as,e) 0 1  m+1 ’ … 0 …  n’ - z - e (bs/as,e)
Chapitre 2
Méthode de simplexe
 Exemple
Soit le PL suivant :

max z = 3x1 + 2x2


s.c. x1 + x2 + s1 = 80
2 x1 + x2 + s2 = 100 m=3, n=5 ; rang(A)=3
x1 + s3 = 40
x1, x2, s1, s2, s3  0

 Une SBR apparaît d'une façon évidente : s1 = 80; s2 = 100; s3 = 40

 VB = {s1, s2, s3}; alors VHB = {x1, x2} ,

c-à-d x1 = x2 = 0  z = 0
Chapitre 2
Méthode de simplexe
 Suite exemple à faire
Chapitre 2
Méthode de simplexe
 Cas particuliers
 PL non borné : Des solutions ont été trouvées mais la valeur de z
peut toujours être améliorée. Dans le cadre de Simplexe, ce cas est
représenté par le fait que dans chacune de ces colonnes j, aij  0 pour
tout i (pas de variables sortantes) d’où il est impossible de faire entrer
dans la base des variables telles que  > 0. Les j > 0 montrent bien
qu'il est possible d'augmenter z, mais le fait que tous les aij  0
montre qu'il n'existe pas de SBR susceptible d'augmenter z.
 PL a une infinité de solutions
Exemple:
max z = 3x1 + 2x2
s.c. 3x1 + 2x2  120
x1 + 1x2  50
x1, x2  0
Chapitre 2
Méthode de simplexe
#1 x1 X2 s1 s2 bi
s1 3 2 1 0 120 
s2 1 1 0 1 50
cj 3 2 0 0 0

#2 x1 X2 s1 s2 bi
x1 1 2/3 1/3 0 40
s2 0 1/3 -1/3 1 10 
j 0 0 -1 0 -120

Chapitre 2
Méthode de simplexe
C'est un tableau optimal, mais on remarque la présence d'une variable
hors base à j = 0. Cela veut dire que si on la fait entrer dans la base,
on va obtenir une autre SB optimale sans que la valeur de z ne
change  le segment formé par ces deux SB optimales contient
toutes les solutions optimales du problème.

Un autre tableau optimal :

#3 x1 X2 s1 s2 bi
x1 1 0 1 -2 20
x2 0 1 -1 3 30 
j 0 0 -1 0 -120
Chapitre 2
Méthode de simplexe
4. Résumé de l’algorithme de simplexe

1. Mettre le PL sous la forme standard.


2. Trouver une solution initiale de base (SBR initiale).
3. Ecrire le PL sous la forme canonique relative à la SBR initiale.
4. Itérations :
4.1. Si le critère d'arrêt est satisfait (Δ ≤ 0), donner le résultat final
(solution optimale) ; sinon aller à l'étape 4-2.
4.2. Déterminer la variable entrante (ou la colonne pivot) selon le
1er critère de DANTZIG
4.3. Déterminer la variable sortante (ou la ligne pivot) selon le
2ème critère de DANTZIG
4.4. Calculer le nouveau tableau en effectuant une opération de
pivot. Retour à 4-1.
Chapitre 2
Méthode de simplexe
IV. Méthode de simplexe à deux phases
On a déjà indiqué que la méthode de Simplexe part d’un PL sous la forme
canonique. Cela suppose qu’on peut facilement identifier une SBR initiale.
Parfois, ceci n’est pas évident, par exemple
(P) Max z = 4x1 + 3x2
s.c. 2x1 –x2  15
x1 + x2 = 10
2x1 – x2  20
x1, x2  0
En mettant ce PL sous la forme standard, on obtient
Max z = 4x1 + 3x2
s.c. 2x1 –x2 –e1 = 15
x1 + x2 = 10
2x1 – x2 + s3= 20
x1, x2, e1, s3  0
Chapitre 2
Méthode de simplexe
Il est difficile de trouver intuitivement/rapidement une SBR. Alors,
qu’est-ce qu’on fait ? On introduit encore des variables dites
artificielles à chaque contrainte ‘‘et à chaque contrainte ‘=’, on obtient
alors (P’) :
Max z = 4x1 + 3x2
s.c. 2x1 –x2 –e1 + s1= 15
x1 + x2 +s2= 10
2x1 – x2 + s3 = 20
x1, x2, e1, s3, s1,s2  0

Une SBR de P’ est donnée par VB = {s1,s2, s3}. Cependant, les


variables artificielles non seulement ont un effet nul dans la fonction
objectif mais aussi doivent être nulles dans une SBR de P. Alors,
lorsqu’une variable artificielle est non nulle, ceci indique que la
solution est non réalisable dans P. On doit essayer d’annuler les
variables artificielles dans P’. Ceci est réalisé en appliquant
l’algorithme de Simplexe au problème suivant :
Chapitre 2
Méthode de simplexe
Min zI = si var artificielle si = s1 +s2
s.c. 2x1 –x2 –e1 + s1= 15
(PI) x1 + x2 +s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, s1, s2  0

Phase I : Résoudre PI par la méthode de Simplexe

Résultats possibles de la phase I :


Cas 1 : zI  0  au moins une si  0  P non réalisable (DR vide)

Cas 2 : zI = 0 et aucune variable artificielle n’est une VB. Dans ce


cas, on omet toutes les colonnes du tableau optimal de la phase I, qui
correspondent aux variables artificielles. On combine la fonction
objectif de P avec les autres lignes de ce tableau. On met à jour la
dernière ligne de telle manière à avoir j = 0 pour les VB. On obtient
ainsi un tableau canonique initial de P. On continue alors la résolution
avec la méthode de Simplexe (Phase II).
Chapitre 2
Méthode de simplexe
Cas 3 : zI= 0 et au moins une si est une VB du tableau optimal de la
phase I  Le problème original P a au moins une contrainte
redondante  Eliminer les contraintes redondantes ; réintroduire z(x)
et commencer la phase II.
Rq : dans le cas 3, on trouve une ou plusieurs lignes où tous les
coefficients sont nuls sauf ceux des variables artificielles  telles
lignes sont redondantes et peuvent être éliminées.
 Exemple
x1 x2 x3 x4 x5 s2
x3 3 -1 1 1 0 0 6
s2 0 0 0 0 0 1 0
x5 2 1 0 2 1 0 5

La Ligne 2 peut être éliminée.


Chapitre 2
Méthode de simplexe
 Application à P :
Max zI = - s1 - s2
s.c. 2x1 –x2 –e1 + s1= 15
(PI) x1 + x2 + s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, s1, s2  0

#1 x1 x2 e1 s3 s1 s2

s1 2 -1 -1 0 1 0 15
s2 1 1 0 0 0 1 10
s3 2 -1 0 1 0 0 20
0 0 0 0 -1 -1 0
Chapitre 2
Méthode de simplexe
Variables de base (s1 et s2) ayant des coûts marginaux non nuls 
mise à jour du tableau : L4  L4 + L1 + L2

#1 x1 x2 e1 s3 s1 s2
s1 2 -1 -1 0 1 0 15
s2 1 1 0 0 0 1 10
S3 2 -1 0 1 0 0 20
3 0 -1 0 0 0 25

#2 x1 x2 e1 s3 s1 s2
X1 1 -1/2 -1/2 0 1 /2 0 15/2
s2 0 3/2 1/2 0 -1/2 1 5/2
S3 0 0 1 1 -1 0 5
0 3/2 1/2 0 -3/2 0 5/2
Chapitre 2
Méthode de simplexe
#3 x1 x2 e1 s3 s1 s2
X1 1 0 -1/3 0 1/3 1/3 25/3
X2 0 1 1/3 0 -1/3 2/3 5/3
S3 0 0 1 1 -1 0 5
0 0 0 0 -1 -1 0

Tableau optimal de la phase I (cas 2) : VB = {x1, x2, s3}

Rq: On peut éliminer du tableau la colonne d'une variable artificielle


dès que celle-ci sort de la base.
Chapitre 2
Méthode de simplexe
Phase II :
#4 x1 x2 e1 s3
x1 1 0 -1/3 0 25/3
x2 0 1 1/3 0 5/3
s3 0 0 1 1 5
4 3 0 0
L4 – 4L1 –3 L2 0 0 1/3 0 -115/3

#5 x1 x2 e1 s3
x1 1 0 0 1/3 10
x2 0 1 0 -1/3 0
e1 0 0 1 1 5
0 0 0 -1/3 -40
Chapitre 2
Méthode de simplexe
V. Méthode de Big M (phases I et II confondues)
Si le PL est tel que des variables artificielles doivent être introduites
pour obtenir un tableau canonique, on peut aussi le résoudre avec la
méthode de Big-M

 Principe : introduire les variables artificielles dans la fonction objectif,


avec des coefficients arbitrairement larges (M >>0, pour un problème
de minimisation), puis résoudre le problème résultant à l’aide de
Simplexe (en une seule phase).

En général,
Max zM = cx - i Msi
(PM) s.c. Ax + s = b
x  0, s  0
Chapitre 2
Méthode de simplexe
Exemple :
Max zM= 4x1 + 3x2-M s1 -Ms2
s.c. 2x1 –x2 –e1 + s1= 15
(PI) x1 + x2 +s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, s1, s2  0

#1 x1 x2 e1 s3 s1 s2
s1 2 -1 -1 0 1 0 15 
s2 1 1 0 0 0 1 10
s3 2 -1 0 1 0 0 20
4 3 0 0 -M -M 0
Mise à 4+3M 3 -M 0 0 0 25M
jour

Chapitre 2
Méthode de simplexe
#2 X1 x2 e1 s3 s1 s2
x1 1 -1/2 -1/2 0 1/2 0 15/2
s2 0 3/2 1/2 0 -1/2 1 5/2
s3 0 0 1 1 -1 0 5
0 5+3/2M 2+1/2M 0 -2-3/2M 0 -30+5/2M

#3 X1 x2 e1 s3 s1 s2
x1 1 0 -1/3 0 1/3 1/3 25/3
x2 0 1 1/3 0 -1/3 2/3 5/3
s3 0 0 1 1 -1 0 5
0 0 1/3 0 -1/3-M 0 -115/3
Chapitre 2
Méthode de simplexe
#4 X1 x2 e1 s3 s1 s2
x1 1 0 0 1/3 0 0 10
x2 0 1 0 -1/3 0 2/3 0
e1 0 0 1 1 -1 0 5
0 0 0 -1/3 -M 0 -40
Chapitre 2
Méthode de simplexe
Résultats possibles de Big-M :
 Cas 1 : Simplexe donne une solution optimale (x*, s*) avec s* =
0. Alors x* est optimal pour le problème de départ (P).

 Cas 2 : Simplexe donne une solution optimale (x*, s*) avec s* 
0. Le critère d’optimalité étant satisfait  M suffisamment large, (P)
est donc non-réalisable.

 Cas 3 : (PM) est non borné  M suffisamment large. Le critère


d’optimalité étant satisfait  M suffisamment large, (P) est non borné
s’il est réalisable, sinon il est non-réalisable.
 On doit alors vérifier s’il est réalisable: Ceci en continuant
l’algorithme après remplacement de la fonction objectif (dans le
dernier tableau) par Z’M = - i Msi (en annulant les constantes
dans l’expression (j + M j*) de la dernière ligne). Si la solution
optimale obtenue est telle que s = 0, alors (P) est réalisable donc
non-borné, sinon (P) est non-réalisable.
Chapitre 2
Méthode de simplexe
Exemple
Max zM = x1 + x2 - M s1 - Ms2
(PM) s.c. x1 + x2 –e1 + s1= 1
x1 - x2 – e2 +s2= 0
x1, x2, e1, e2,s1, s2  0

#1 x1 x2 e1 e2 s1 s2
s1 1 1 -1 0 1 0 1
s2 1 -1 0 -1 0 1 0 
1 1 0 0 -M -M 0
Mise à 1+2M 1 -M -M 0 0 M
jour

Chapitre 2
Méthode de simplexe
#2 x1 x2 e1 e2 s1 s2
s1 0 2 -1 1 1 -1 1
x1 1 -1 0 -1 0 1 0
0 2+2M -M 1+M 0 -1-2M M

#3 x1 x2 e1 e2 s1 s2
X2 0 1 -½ ½ ½ -½ ½
X1 1 0 -½ -½ ½ ½ ½
0 0 1 0 -1-M -M -1

(PM) non borné car Δe1 > 0 et tous les aij < 0 (pas de var sortante)
Chapitre 2
Méthode de simplexe
Si P est réalisable alors il est non borné sinon il est non réalisable
Pour vérifier s’il est réalisable ou pas on modifie la ligne des Δj par la
fonction objectif Z’M = - i Msi et on vérifie si tous lessi = 0, alors (P)
est réalisable

#4 x1 x2 e1 e2 s1 s2
x2 0 1 -½ ½ ½ -½ ½
x1 1 0 -½ -½ ½ ½ ½
0 0 0 0 -M -M 0

Z’M = 0   s1* =  s2* = 0  (P) réalisable  (P) non borné.


Chapitre 2
Méthode de simplexe
Il est pratiquement impossible de conclure si la méthode de Big-M
résout les PL avec moins de calcul que l'approche à deux phases.
L'expérience pratique semble indiquer que les deux approches ont
approximativement le même effort de calcul.

Pour résumer :
La résolution d'un PL à l'aide de l'algorithme de simplexe nécessite
une SBR initiale. C'est un problème qui peut être résolu de trois
manières différentes :
1. Introduction de variables artificielles et l'application de Simplexe à
deux phases (phase I trouve une SBR)
2. Introduction de variables artificielles et l'application de la méthode
de Big-M (basée sur l'algorithme de Simplexe)
3. Trouver intuitivement une SBR, écrire le PL sous la forme
canonique, puis passer directement à la phase II (l’approche la
moins pratique).

Vous aimerez peut-être aussi