Sunteți pe pagina 1din 53

Département : Science Economique et Gestion

Filière : Economie d’Entreprise

Support de cour : Recherche opérationnelle

Prof.Rachid NACIRI

Année universitaire : 2016-2017


Table des matières

Introduction générale 1

1 Formulation d’un programme linéaire 2


1.1 Formulation théorique d’un programme linéaire . . . . . . . . . . . . . . 2
1.2 Formes d’un programme linéaire . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Modélisation mathématique . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Interprétation d’un programme linéaire sous forme canonique . 7
1.4 Exemple de modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.1 Problème de mélange . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.2 Problème de recouvrement . . . . . . . . . . . . . . . . . . . . . . 10

2 Résolution graphique de programmes linéaires à deux variables 12


2.1 Bases de la méthode graphique . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Région admissible . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 solution réalisable et solution optimale . . . . . . . . . . . . . . . 15
2.2 Exemple de résolution graphique d’un programme linéaire . . . . . . . 17

3 Méthode du simplexe 21
3.1 Notion de matrice de base et de Solution de base . . . . . . . . . . . . . 21
3.2 Algorithme primal du simplexe . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 Théorème fondamentale de la programmation linéaire . . . . . . 25
3.3 Premier critère de Dantzig . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4 Deuxième critère de Dantzig . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.1 Tableau simpliciale . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Méthode à deux phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Théorie des graphe 46


4.1 Concept de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 type de représentation d’un graphe . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 représentation sagittale d’un graphe . . . . . . . . . . . . . . . . 47
4.2.2 Application multivoque . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.3 Matrice booléenne . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Problème du plus court chemin . . . . . . . . . . . . . . . . . . . . . . . . 49

i
Introduction générale

1
Chapitre 1

Formulation d’un programme linéaire

Objectifs du chapitre :
æ Présentation des notions de bases liées à la formulation d’un problème de
programmation linéaire.
æ Pouvoir modéliser un problème économique en un problème de program-
mation linéaire.

1.1 Formulation théorique d’un programme linéaire

Un programme linéaire (en bref, PL) est un problème d’optimisation qui consiste à
maximiser ou à minimiser une fonction linéaire et qui dépend de n variables satis-
faisant un nombre d’équations et inéquation dites contraintes. En langage mathéma-
tique, on décrira de tels modèles de la manière suivante :


[max] ou [min] z = c1 x1 + . . . + cn xn


s.c
 :

 a11 x1 + . . . + a1n xn (=, ≤, )b1




 .. .. ..
. . .






 a x + . . . + a xn (=, ≤, )b

i1 1 in i
. . .

 ..


.. ..



am1 x1 + . . . + amn xn (=, ≤, )bm





 x1 , x2 , . . . , x n ∈ R


o Les coefficients ( aij )1≤ j≤n , (bi )1≤i≤m et (ci )1≤i≤n doivent avoir une valeur bien
1≤ i ≤ m
déterminée (avec certitude) et peuvent être positifs, négatifs ou nuls.

2
3 chapitre 1. Formulation d’un programme linéaire

.
o Les variables x1 , .., xn , sont dite variables de décision, ils constituent les incon-
nues du problème.
o La fonction z( x1 , . . . , xn ) est dite fonction objective.

1.2 Formes d’un programme linéaire

Definition 1.2.1

o Un programme linéaire est dite sous forme standard s’il est écrit sous la
forme :

[max] z = c1 x1 + . . . + cn xn


s.c
 :






 a11 x1 + . . . + a1n xn = b1

 .. .. ..
. . .






 a x + . . . + a xn = b

i1 1 in i
.. .. ..





 . . .


am1 x1 + . . . + amn xn = bm







 x1 , x2 , . . . , x n ≥ 0

o Un programme linéaire est dite sous forme canonique s’il est écrit sous
la forme :

[max] z = c x + . . . + c x [min] z = c1 x1 + . . . + cn xn
1 1 n n

s.c : s.c
 :



 a11 x1 + . . . + a1n xn ≤ b1 a11 x1 + . . . + a1n xn ≥ b1
 

 

 ..
 .. .. .. .. ..
 

. . . . . .
 


 


 ou 

ai1 x1 + . . . + ain xn ≤ bi

  a x + . . . + a xn ≥ b

i1 1 in i
.. .. .. .. .. ..


 . . .



 . . .

 

 
 am1 x1 + . . . + amn xn ≤ bm am1 x1 + . . . + amn xn ≥ bm
 
 


 

 
 x1 , x2 , . . . , x n ≥ 0  x1 , x2 , . . . , x n ≥ 0
 

Année universitaire : 2017-1018 Prof R. NACIRI


4 chapitre 1. Formulation d’un programme linéaire

Remarque 1.2.1
Tout programme linéaire peut être mis sous forme standard respectivement sous
forme canonique. En effet,
Ê Tout problème de maximisation peut être transformé en un problème de
minimisation et vice versa :

max[z( x )] = min[−z( x )]

0
Ë Une variable négative xi peut être remplacée par une variable positive xi ,
0
telle que xi = − xi
Ì Une variable xi de signe quelconque peut être remplacée par deux va-
riables positives xi+ , xi− , telle que xi = xi+ − xi−
n
Ì Une équation de type ∑ aij x j = bi peut être remplacée par les deux in-
j =1
équations suivantes :

n n
∑ aij x j ≤ bi et ∑ aij x j ≥ bi
j =1 j =1

n n
Í Toute équation de type ∑ aij x j ≥ bi (respectivement ∑ aij x j ≤ bi ) peut
j =1 j =1
n n
être remplacée par l’inéquation ∑ − aij x j ≤ −bi (respectivement ∑ −
j =1 j =1
aij x j ≥ −bi )
n
Î Toute inégalité de type ∑ aij x j ≤ bi peut être remplacée par une égalité,
j =1
soit : n n
∑ aij x j ≤ bi ⇔ ∃xe ≥ 0 telle que ∑ aij x j + xe = bi
j =1 j =1

La variable xe est appelée variable d’écart.


n
Î Toute inégalité de type ∑ aij x j ≥ bi peut être remplacée par une égalité,
j =1
soit : n n
∑ aij x j ≥ bi ⇔ ∃xs ≥ 0 telle que ∑ aij x j − xs = bi
j =1 j =1

La variable xs est appelée variable de surplus.

Année universitaire : 2017-1018 Prof R. NACIRI


5 chapitre 1. Formulation d’un programme linéaire

Exemple 1.2.1
Considérons le programme linéaire suivant :

[min] z = 2x1 − 5x2 + 4x3 − x4




s.c :





 x1 − x2 + x3 ≤ 4
(P ) : 

3x − 5x + 4x + x = 10

1 2 4 3


2x1 + 5x2 + 4x3 ≥ 6




x1 , x3 ≥ 0, x2 ≤ 0, x4 ∈ R


Forme standard : Pour la forme standard les variable de décision doivent être posi-
tives. En effet, on remarque que :
ä La variable de décision x2 est négative, on pose alors x2+ = − x2
ä La variable de décision x4 est de signe quelconque , donc il existe x4+ , x4−
positifs tels que x4 = x4+ − x4−
Donc après substitution on obtient :

[min] z = 2x1 + 5x2+ + 4x3 + x4− − x4+




s.c :





 x1 + x2+ + x3 ≤ 4
(P ) : 

3x + 5x + + 4x + − 4x + + x = 10

1 2 4 4 3


2x1 − 5x2+ + 4x3 ≥ 6




x1 , x3 , x2+ , x4+ , x4− ≥ 0


Tout les contraintes doivent être des equation. En effet ;


ä On ajoute une variable d’écart à la première contrainte qu’on note e1 .
ä On retranche une variable de surplus de la troisième contrainte qu’on note s1 .

Année universitaire : 2017-1018 Prof R. NACIRI


6 chapitre 1. Formulation d’un programme linéaire

On obtient alors,

[min] z = 2x1 + 5x2+ + 4x3 + x4− − x4+




s.c :





 x1 + x2+ + x3 + e1 = 4
(P ) : 

3x + 5x + + 4x + − 4x + + x = 10

1 2 4 4 3






 2x1 − 5x2+ + 4x3 − s1 = 6

x1 , x3 , x2+ , x4+ , x4− ≥ 0


Enfin reste à transformer le problème de minimisation on un problème de maximi-


sation. Donc la forme standard de P est

[max] z = -2x1 − 5x2+ − 4x3 − x4− + x4+


s.c :




 x1 + x2+ + x3 + e1 = 4
(P ) : 

+ + +
3x1 + 5x2 + 4x4 − 4x4 + x3 = 10



+
2x1 − 5x2 + 4x3 − s1 = 6




x1 , x3 , x2+ , x4+ , x4− ≥ 0

1.3 Modélisation mathématique

Généralement il y a trois étapes à suivre pour pouvoir construire le modèle d’un


programme linéaire :
Ê Identifier les variables du problème à valeur non connues (variables de déci-
sions).
Ë Identifier les restrictions (les contraintes) du problème et les exprimer par un
système d’équations linéaires.
Ì Identifier l’objectif ou le critère de sélection et le représenter sous une forme
linéaire en fonction des variables de décision.
Spécifier si le critère de sélection est à maximiser ou à minimiser.

Année universitaire : 2017-1018 Prof R. NACIRI


7 chapitre 1. Formulation d’un programme linéaire

1.3.1 Interprétation d’un programme linéaire sous forme canonique

Supposons qu’une entreprise fabrique n produit qu’on note P1 , . . . , Pn à partir de m


matières qu’on note M1 , , Mn . Les quantités de matière premières disponibles on stock
sont respectivement b1 , . . . , bm . Le tableau suivant donne les quantités nécessaires de
chaque matière première pour la fabrication d’une unité d’un produit donné :

Produits M1 M2 ... Mm
P1 a11 a12 ... a1m
P2 a21 a22 ... a2m
.. .. .. ..
. . . ... .
Pn an1 an2 ... anm

Sachant que chaque unité de produits Pi est vendu par ci DH, 1 ≤ i ≤ n. Formuler le
problème de la recherche d’un plan de production maximisant le chiffre d’affaires de
l’entreprise sous forme d’un programme linéaire.

o Détermination des variables de décision.

Les variables de décision du problème sont le nombre d’unités à fabriquer pour


chaque produit. En effet, notons, x1 , , xn les quantités respectives à fabrique pour
P1 , , Pn .

o Détermination des contraintes.

On dispose d’une quantité limiter pour chaque matière première. Donc :


ä Contrainte de la matière première M1 : a11 x1 + a21 x2 + . . . + an1 xn ≤ b1
ä Contrainte de la matière première M1 : a12 x1 + a22 x2 + . . . + an2 xn ≤ b2
.. .. ..
ä . . .
ä Contrainte de la matière première M1 : a1m x1 + a2m x2 + . . . + anm xn ≤ bm

o Détermination de la fonction objective.

Année universitaire : 2017-1018 Prof R. NACIRI


8 chapitre 1. Formulation d’un programme linéaire

Le chiffre d’affaires associé à une production ( x1 , x2 , . . . , xn ) est :

z = c1 x1 + . . . + c n x n

o Modèle.

Pour maximiser le chiffre d’affaires de la vente, il faut déterminer les valeurs x1 , . . . , x2


solution du programme linéaire suivant :


[max] z = c1 x1 + . . . + cn xn


s.c
 :






 a11 x1 + . . . + a1n xn ≤ b1

 .. .. ..
. . .






 a x + . . . + a xn ≤ b

i1 1 in i
.. .. ..





 . . .


am1 x1 + . . . + amn xn ≤ bm







 x1 , x2 , . . . , x n ≥ 0

1.4 Exemple de modélisation

1.4.1 Problème de mélange

Exemple 1.4.1
Une raffinerie souhaite utiliser quatre types de pétrole pour produire trois sortes
d’essence, A, B et C, dont les prix de vente sont, respectivement, 55$, 45$ et 35$
pour chaque baril vendu. L’information relative aux types pétrole est résumée dans
le tableau suivant :

Type de pétrole Quantité maximum disponible (barils/jour) Cout ($/baril)


1 3000 30
2 2000 60
3 4000 40
4 1000 50

Année universitaire : 2017-1018 Prof R. NACIRI


9 chapitre 1. Formulation d’un programme linéaire

L’essence A ne doit pas être composée de plus de 30% de pétrole de type 1, ni plus
de 50% de pétrole de type 3, mais elle doit être composée d’au moins 40% de pétrole
de type 2. L’essence B doit être composée d’au moins 10% de pétrole de type 2, mais
d’au plus 50% de pétrole de type 1. L’essence C ne doit pas être composée de plus
de 70% de pétrole de type 1.

Objectif :

Le problème consiste à déterminer combien de barils de chaque type de pétrole de-


vraient être utilisés dans la fabrication de chacune des sortes d’essence de façon à
maximiser le profit total. Formulez ce problème à l’aide d’un modèle de program-
mation linéaire.

La difficulté dans ce type de problème réside dans le fait de trouver une notation
adéquat pour exprimer les variable de décision. Ici On doit déterminer les quantité
d’essence de type A,B,C à fabriquer, mais chaque essence est composé quatre type de
pétrole

o Détermination des variables de décision.

Soit xij le nombre de barils de pétrole de type i (i = 1, 2, 3, 4) utilisées dans la fabri-


cation de l’essence j (j = A, B, C). Par exemple x1A désigne le nombre de barils du
pétrole de type 1 pour la fabrication de l’essence A.

o Détermination des contraintes.

On dispose d’une quantité limiter pour chaque matière première. D’où les contraintes
de capacité suivantes :

x1A + x1B + x1C ≤ 3000


x2A + x2B + x2C ≤ 2000
x3A + x3B + x3C ≤ 4000
x4A + x4B + x4C ≤ 1000

Année universitaire : 2017-1018 Prof R. NACIRI


10 chapitre 1. Formulation d’un programme linéaire

Chaque essence est un mélange de quatre type de pétrole avec des proportions bien
déterminées. D’où les contraintes de mélange suivantes :

x1A ≤ 0.3( x1A + x2A + x3A + x4A )


x3A ≤ 0.5( x1A + x2A + x3A + x4A )
x2A ≥ 0.4( x1A + x2A + x3A + x4A )
x2B ≥ 0.1( x1B + x2B + x3B + x4B )
x1B ≤ 0.5( x1B + x2B + x3B + x4B )
x1C ≤ 0.7( x1C + x2C + x3C + x4C )

o Détermination de la fonction objective.

Le chiffre d’affaires associé à une production xij en tenant compte des charge ( Pétrole
utilisé) est :
z = 55( x1A + x2A + x3A + x4A ) + 45( x1B + x2B + x3B + x4B ) + 35( x1C + x2C + x3C + x4C )
−30( x1A + x1B + x1C ) − 60( x2A + x2B + x2C ) − 40( x3A + x3B + x3C ) − 50( x4A + x4B +
x4C )

1.4.2 Problème de recouvrement

Exemple 1.4.2
Le tableau suivant représente les demandes journalières en chauffeurs dans une
entreprise de transport
Lu Ma Me Je Ve Sa Di
13 18 21 16 12 25 9
Les chauffeurs travaillent cinq jours d’affiliée (et peuvent donc avoir leurs deux jours
adjacents de congé n’importe quand dans la semaine).

Objectif :

Déterminer les effectifs formant les sept équipes possibles de chauffeurs de manière
à:
ä Couvrir tous les besoins,
ä Engager un nombre minimum de chauffeurs.

Année universitaire : 2017-1018 Prof R. NACIRI


11 chapitre 1. Formulation d’un programme linéaire

o Détermination des variables de décision.

On associe une variable de décision à chacune des sept équipes possibles :


ä x1 : nombre de chauffeurs dans l’équipe du lundi (repos le samedi et le di-
manche),
ä x2 : nombre de chauffeurs dans l’équipe du mardi,
ä ...
ä x7 : nombre de chauffeurs dans l’équipe du dimanche.

o Détermination des contraintes.

Le nombre de chauffeurs présente chaque jour doit être suffisant :

x1 + x4 + x5 + x6 + x7 ≥ 13 lundi
x1 + x2 + x5 + x6 + x7 ≥ 18 Mardi
x1 + x2 + x3 + x6 + x7 ≥ 21 Mercredi
x1 + x2 + x3 + x4 + x7 ≥ 16 Jeudi
x1 + x2 + x3 + x4 + x5 ≥ 12 vendredi
x2 + x3 + x4 + x5 + x6 ≥ 25 Samedi
x3 + x4 + x5 + x6 + x7 ≥ 9 Dimanche

o Détermination de la fonction objective.

On veut minimiser le nombre total de chauffeurs engagés. Donc :

z = x1 + x2 + x3 + x4 + x5 + x6 + x7

Année universitaire : 2017-1018 Prof R. NACIRI


Chapitre 2

Résolution graphique de programmes


linéaires à deux variables

Objectifs du chapitre :
æ Interprétation graphique d’un programme linéaire .
æ Méthode pour la résolution graphique d’un programme linéaire à deux
variables.

2.1 Bases de la méthode graphique

Cette méthode permet de trouver la solution optimale d’un problème de programma-


tion linéaire graphiquement. En effet, chaque contrainte de type a1 x1 + a2 x2 = b par-
tage le plan en deux demi-plan, l’un dont les point vérifient l’inégalité a1 x1 + a2 x2 ≤ b
et l’autre dont les points vérifient l’inégalité a1 x1 + a2 x2 ≥ b. Donc, en considérant le
demi-plan adéquat pour chaque contrainte, on peut déterminer la région du plan oú
se trouve les solution qui satisfont toutes les contraintes.

12
13 chapitre 2. Résolution graphique de programmes linéaires à deux variables

Remarque 2.1.1
Pour déterminer le demi-plan a considérer pour une contrainte, on choisi un
point quelconque situé hors de la droite : s’il vérifie la contrainte, l’ensemble des
solutions cherché et le demi-plan contenant ce point, sinon, il s’agit de l’autre
demi-plan.

Exemple 2.1.1
Considérons la contrainte :
(C ) : 4x1 + 5x2 ≥ 20

Pour déterminer le demi-plan qui vérifie la contrainte (C ), il suffit par exemple de


choisir x1 = 0 et x2 = 0. On a 4 × 0 + 5 × 0 = 0 ≤ 20, donc l’origine (0,0) n’appartient
au demi-plan vérifiant la contrainte (C ).

2.1.1 Région admissible

Afin de pouvoir résoudre graphiquement un problème de programmation linéaire,


il faut d’abord trouver l’ensemble des solutions d’un système qui correspond à l’in-
tersection des demi-plans et des droites associées à chaque contrainte du programme
linéaire. Cette intersection, est dite région admissible, ou domaine réalisable. Trois cas
se présente :
o La région admissible est bornée (et non vide). Dans ce cas Le problème possède
toujours au moins une solution optimale, quelle que soit la fonction objectif.
o La région admissible est non bornée.

Année universitaire : 2017-1018 Prof R. NACIRI


14 chapitre 2. Résolution graphique de programmes linéaires à deux variables

o La région admissible est vide. Dans ce cas le problème est sans solution.
contraintes contradictoires
Exemple 2.1.2
Considérons le système suivant :

4x + 5x2 ≤ 20
 1



3x1 + 10x2 ≤ 30



 x ≥ 0, x ≥ 0
1 2

Demi-plan vérifiant la première contrainte :

Demi-plan vérifiant la deuxième contrainte :

La région vérifiant les deux contrainte est l’intersection des deux demi-plan (le po-
lygone ABCD ) :

Année universitaire : 2017-1018 Prof R. NACIRI


15 chapitre 2. Résolution graphique de programmes linéaires à deux variables

Exemple 2.1.3
(Région admissible non bornée)
Considérons le système suivant :

2x − x1 ≤ 1
 2



6x2 − x1 ≤ 9



 x ≥ 0, x ≥ 0
1 2

La région vérifiant les deux contrainte est non borné :

2.1.2 solution réalisable et solution optimale

Après avoir trouver la région admissible du système, il reste a trouver le ou les points
de cette région ou la fonction objective sera optimale (maximale ou minimale).
o L’ensemble des point appartenant a la région admissible est dites solution ad-
missible ou solution réalisable.

Année universitaire : 2017-1018 Prof R. NACIRI


16 chapitre 2. Résolution graphique de programmes linéaires à deux variables

o Tout point qui optimise (maximise ou minimise ) la fonction objective est dite
solution optimale.
La question qui se pose à ce stade est de savoir comment trouver graphiquement la
(ou les) solution optimale d’un problème de programmation linéaire. En effet, consi-
dérerons le programma linéaire à deux variables suivant :


[max] z= ax1 + bx2 ⇐ Fonction objective
s.c :



a x + a12 x3 ≤ b1

 11 1





a21 x1 + a22 x2 ≤ b2



 x ≥ 0, x ≥ 0
1 2

La fonction objective peut être écrite sous la forme réduite suivante :

−a z
x2 = x1 +
b b

. Par la suite D désigne la région admissible de ,

Remarque 2.1.2
Pour une famille de droites parallèle (ayant la même pente), les droites qui
occupe la position la plus élavée et celle qui a le plus grande ordonnée à l’origine
et vice-versa.

Soit,
−a z
Az = { x1 + , z ∈ R}
b b
−a
Az représente la famille de droites parallèles de pente b (constante), et d’ordonnée à
l’origine bz . Pour z fixé la droites Az représente l’ensemble des point réalisant le profil

Année universitaire : 2017-1018 Prof R. NACIRI


17 chapitre 2. Résolution graphique de programmes linéaires à deux variables

z. Dite aussi droite isoprofil.

Donc d’après la remarque précédente augmenter la valeur de z, est équivalant à tracer


les droites Az de tel sorte que l’une se situe au plus haut niveau que l’autre.

Remarque 2.1.3

o Pour une valeur fixé de z, on note par la suite l’intersection entre la droite
Az et la région admissible D par Az D
T

o Pour une valeur fixé de z , Az D corresponde à l’ensemble des point


T

vérifiant le système de contraintes et réalisant le profil z

Procédé de la méthode graphique


Ê Pour un z = z0 fixé (souvent on prend z=0 ) on trace la droite Az0
Ë On repère Az0 D
T

Ì on trace la droite Az1 parallèle à Az0 tel que z1 ≥ z0


Í On repère Az1 D
T

Î On recommence depuis l’étape 3 jusqu’à trouver Az D = ∅ (ensemble


T

vide)

2.2 Exemple de résolution graphique d’un programme


linéaire

Exemple 2.2.1
Région admissible bornée Considérons le programme linéaire suivant :


[max] z= ax1 + bx2 ⇐ Fonction objective
s.c :



4x + 5x2 ≤ 20

 1





3x1 + 10x2 ≤ 30



 x ≥ 0, x ≥ 0
1 2

Année universitaire : 2017-1018 Prof R. NACIRI


18 chapitre 2. Résolution graphique de programmes linéaires à deux variables

Après avoir représenté la région admissible (le polygone (ABCD)) ainsi que les
droites correspondantes au différentes valeur de z on obtient le graphe suivant :

ici les droite tracées sont A0 ,A5 ,A10 ,A16 . On a ,

D = { D } 6= ∅, A5 D 6= ∅, A10 D 6= ∅, A16 D = { B} 6= ∅,
\ \ \ \
A0

et
D=∅
\
∀z > 16 A10

Donc la valeur optimale de z est 16 est qui correspond à la solution optimale B( x1 =


2, x2 = 2, 5)

Exemple 2.2.2
(Région admissible bornée (solution optimal infinie))
Considérons le programme linéaire suivant :



 max z = 2, 5x1 + x2


sc




 3x1 + 5x2 ≤ 15


5x1 + 2x2 ≤ 10

Année universitaire : 2017-1018 Prof R. NACIRI


19 chapitre 2. Résolution graphique de programmes linéaires à deux variables

Exemple 2.2.3
(Région admissible non bornée (solution optimal unique))
Considérons le programme linéaire suivant :



 max z = −3x1 + 4x2


sc




 x1 − x2 ≤ −1


0, 5x1 + x2 ≤ 2

Exemple 2.2.4
(Région admissible non bornée (solution optimal infinie))
Considérons le programme linéaire suivant :

max z = − x1 + 2x2




sc




 3x1 + 5x2 ≤ 15


5x1 + 2x2 ≤ 10

Année universitaire : 2017-1018 Prof R. NACIRI


20 chapitre 2. Résolution graphique de programmes linéaires à deux variables

Exemple 2.2.5
(Région admissible non bornée (Pas de solution optimal))
Considérons le programme linéaire suivant :



 max z = x1 + x2


sc




 3x1 + 5x2 ≤ 15


5x1 + 2x2 ≤ 10

Année universitaire : 2017-1018 Prof R. NACIRI


Chapitre 3

Méthode du simplexe

Objectifs du chapitre :
æ Présenter la méthode du Simplexe qui est une procédure algébrique per-
mettant de résoudre les programmes linéaires avec plus de deux variables.

3.1 Notion de matrice de base et de Solution de base

Dans tout ce qui suit, désigne par (P ) le programme linéaire suivant écrit sous sa
forme standard :

[max] z = c1 x1 + . . . + cn xn


s.c
 :






 a11 x1 + . . . + a1n xn = b1

 .. .. ..
. . .




(P ) : 

 a x + . . . + a xn = b

i1 1 in i
.. .. ..





 . . .


am1 x1 + . . . + amn xn = bm







 x1 , x2 , . . . , x n ≥ 0

21
22 chapitre 3. Méthode du simplexe

Remarque 3.1.1
Le programme P peut être écrit sous la forme matricielle suivante :


[max] z = t cx

s.c :
(P ) :

 Ax = B

x ≥ 0

où,
 
a a12 ... a1n
 11
 .. .. .. ..       
 . . . . 
 b1 c1 x1
 .  .   .
 .  , c =  ..  et x =  ..
   
A=
 ai1 ai2 ... ain  ,b= .    


 . .. .. .. 
 .. . . .  bm cn xn
 
am1 am2 ... amn

ä L’inéquation x ≥ 0 signifie que toutes les composantes du vecteur x sont


positives.
ä Le vecteur t c désigne la transposé du vecteur c.
ä Le système Ax = b est supposé linéairement indépendante, c-à-d, qu’au-
cune contrainte ne s’écrit en combinaison linéaire des autre. Si c’est le
cas on peut la supprimer sans changer la solution du système. Cela est
équivalant à affirmer que rang( A) = m, par conséquent m ≤ n

Remarque 3.1.2
Puisque rang( A) = m, donc il existe une matrice B carrée (m × m) extraite de A
qui est inversible

Definitions 3.1.1

o On appelle matrice de base B de (P ) toute matrice inversible d’ordre


m × m extraite de A
o On appelle vecteurs de bases associés à une base B les m vecteurs associés
aux colonnes d’une base de (P ). Les m − n vecteurs restants sont dites
vecteurs hors base.

Année universitaire : 2017-1018 Prof R. NACIRI


23 chapitre 3. Méthode du simplexe

o On appelle solution de base associée à une base B de (P ) , la solution


particulière du système Ax = b on annulant les vecteurs hors base.
o Une solution de base est dite réalisable si les valeurs des composantes du
vecteur de base sont positives.
o Une solution de base est dite non-réalisable si au moins l’une des valeurs
des composantes du vecteur de base est strictement négative.
o Une solution de base est dite dégénérée si au moins l’une des valeurs des
composantes du vecteur de base est nulle.
o Soit x une solution réalisable de (P ). x est dite optimale, si pour toutes
solution réalisable y on a z(y) ≤ z( x ), soit z( x ) = max A.

Par la suite, si B est une base de (P ), on notera par xB les vecteurs de base associés à
B et par xN les vecteurs hors base.

Exemple 3.1.1
Considérons le système suivant :

5x + 2x2 + 3x3 + 4x4 + x5 = 22
 1



5x1 + x2 + x3 + 5x4 + 4x5 = 22



4x + 2x + 3x + 3x = 18
1 2 3 4

Alors,
   
5 2 3 4 1 22
   
A=
 5 1 1 5 4 
 , b =  22 
 
4 2 3 3 0 18

Ê  
5 2 4
 
B=  5 1 5  Est une matrice de base

4 2 3
   
x 2
 1   
 x2  =  2  la solution de base réalisable non-dégénérée associée à B
xB =    
x4 2

Année universitaire : 2017-1018 Prof R. NACIRI


24 chapitre 3. Méthode du simplexe

! !
x3 0
xN = = vecteurs hors bases
x5 0
Ë  
5 2 3
 
B= 5 1 1

 Est une matrice de base
4 2 3
   
x1 4
   
xB = 
 x2  =  4 
 
 est une solution de base non-réalisable
x3 −2
! !
x4 0
xN = = vecteurs hors bases
x5 0
Ì  
5 3 4
 
B=  5 1 5  Est une matrice de base

4 3 3
   
x1 0
   
 x3  =  2  la solution de base réalisable dégénérée associée à B
xB =    
x4 4
! !
x2 0
xN = = vecteurs hors bases
x5 0
   
x1 0
   
 x2   0 
   
Í xB =  x3  =  4  est une solution réalisable mais pas de base.
   
   
 x   2 
 4   
x5 2

Année universitaire : 2017-1018 Prof R. NACIRI


25 chapitre 3. Méthode du simplexe

3.2 Algorithme primal du simplexe

3.2.1 Théorème fondamentale de la programmation linéaire

Definitions 3.2.1
o Un ensemble non vide X est dite convexe si :

∀ x, y ∈ X et α, β ∈ [0, 1] avec α + β = 1; on a αx + βy ∈ X.

o Une combinaison linéaire d’éléments de X ( ∑ λi xi ) est dite convexe si


1≤ i ≤ n
∑ λi = 1 et i ≥ 0.
1≤ i ≤ n

D = { x = ( x1 , . . . , xn ) ⊂ Rn /Ax = b et x ≥ 0}

et
Z = {z = c1 x1 + . . . + cn xn /( x1 , . . . , xn ) ∈ D}

Remarque 3.2.1

ä Il est claire que D ⊂ Rn et Z ⊂ R.


ä x = ( x1 , . . . , xn ) ∈ D si et seulement si est une solution réalisable de (P )

Le théorème suivant est dis théorème fondamentale de la programmation linéaire.

Théorème 3.2.1
o Si P admet une solution de base réalisable, alors P admet une solution
de base réalisable.
o Si P admet une solution de base optimale, alors P admet une solution
de base optimale.

Le théorème fondamentale de la programmation linéaire, montre que pour trouver


une solution optimale à un problème de programmation linéaire il suffit de res-
treindre notre recherche au sous-ensemble des solutions de bases réalisables.

Année universitaire : 2017-1018 Prof R. NACIRI


26 chapitre 3. Méthode du simplexe

Cependant, pour un problème de programmation linéaire qui contient un membre


important de contrainte , l’application direct de ce résultat conduit à un nombre consi-
dérable de calcule. D’ailleurs la majorité de ces calcules serait effectués inutilement,
puisque seule les solutions ne comportant pas de valeurs négative sont à considérées.

Remarque 3.2.2
Pour un problème de programmation linéaire

Exemple 3.2.1
Résoudre le programme linéaire suivant en utilisant le théorème fondamentale du
simplexe : 

max z = x1 + 2x2






sc






x1 + x2 + x3 = 6








 x2 + x4 = 10



 x1 , x2 , x3 , x4 , ≥ 0

Objective de la méthode du simplexe est :


Ê Recourir à un test sélectif de solution de bases réalisable en augmentant
à chaque fois la valeur de la fonction objective.
Ê Vérifier l’optimalité de la solution obtenue.

3.3 Premier critère de Dantzig

Le premier critère de Dantzig dite aussi condition d’optimalité donne une condition
suffisante pour qu’une solution de (P ) soit optimale.

Remarque 3.3.1
Soit B une de P , Alors on peut toujours s’arranger pour écrire l’équation Ax = b
sous la forme :
B xB + N xN = b,

Année universitaire : 2017-1018 Prof R. NACIRI


27 chapitre 3. Méthode du simplexe

 
x1 !
 .  xB
avec A = ( B\ N ), x =  . 
 . = xN
xn

Théorème 3.3.1
Soit B une base du programme linéaire, et x B la solution de base correspondante.

cN = cn − cb B−1 N ≤ 0 ⇒ z( x B ) = max Z .

Avant de monter le théorème rappelons la définition du maximum d’un sous en-


semble de R : 
∀ x ∈ A, x ≤ m
∀ A ⊂ R, m = max{ A} ⇔
m ∈ A

!
yB
Démonstration. Soit y = , une solution réalisable de (P ), d’après la remarque
yN
on a
B yB + N yN = b

ce qui implique
yb = B−1 b − B−1 Ny N

donc,

z(y) = cB yB + cN yN
= cB (B −1 b − B −1 N yN ) + cN yN
= c B B −1 b + ( c N − c B B −1 N ) y N

Par hypothèse, cN = cN − cB B −1 N ≤ 0 alors z(y) ≤ cB B −1 b. D’après la remarque


cB B −1 b ∈ D , d’où cB B −1 b est la solution optimale de B .

Année universitaire : 2017-1018 Prof R. NACIRI


28 chapitre 3. Méthode du simplexe

3.4 Deuxième critère de Dantzig

Dans le cas le premier critère n’est pas satisfaits, donc il faut essayer de trouver une
nouvelle solution réalisable qui augmentera la valeur de la fonction économique. C’est
le deuxième critère de Dantzig donne une méthode pour

Definition 3.4.1
On dit qu’un programme linéaire sous forme standard, est sous forme cano-
nique par apport à une base B. Si B est la matrice identité et les coûts correspon-
dant aux variables de base sont nuls.

Remarque 3.4.1
Si le programme linéaire (P ) est sous forme canonique par apport une base B
alors :
xB = b − N xN

et
z = cB b + (cN − cB N ) xN

Exemple 3.4.1
On Considère le programme linéaire suivant :

max z = 4x1 + 5x2




sc





 2x1 + x2 + x3 = 8


 x + 2x + x = 7

1 2 4






 x2 + x5 = 3


x1 , x2 , x3 , x4 , x5 ≥ 0

On a

Année universitaire : 2017-1018 Prof R. NACIRI


29 chapitre 3. Méthode du simplexe

   
  x1   4
   
2 1 1 0 0  x2  8  5 
       
A= x =  x3  b =  7  c= 0 
   
 1 2 0 1 0 
      
0 1 0 0 1  x  3  0 
 4   
x5 0
Alors le programme linéaire est sous forme canonique par apport à B avec,
   
1 0 0 x3 !
    x1
B=
 0 1 0  avec xB =  x 4
 xN =
   x2
0 0 1 x5
 
! 8
0  
Pour xN =  7  ≥ 0.
on a xB =  
0
3

Dans tout ce qui suit on notre


 
c n1
 
cN = 
 . . . 

c nm−n

Théorème 3.4.1
Soit B une base du programme linéaire, et x B la solution de base réalisable
correspondante.
S’il existe 1 ≤ r ≤ m − n tel que cNr > 0, alors soit :
o Le problème (P ) admis une solution optimale non bornée.
0
o Il existe une base B telle que z( x B 0 ) ≥ z( x B ).

!
xB = B −1 b
Démonstration. Comme x B est une solution de base , alors x B = .
xN = 0
Construisons une nouvelle solution en changeant la valeur d’un élément du vecteur

Année universitaire : 2017-1018 Prof R. NACIRI


30 chapitre 3. Méthode du simplexe

xN (hors-base) soit :

0
xN = (0, 0, . . . , 0) −→ xN = (0, . . . , xr , . . . , 0) avec a > 0,
| {z } |{z}
longueur m−n r −meposition

Donc d’après la remarque , la nouvelle solution doit vérifier

0
x B = B −1 b − N x N

D’autre part on a

r-ème colonne
  
z}|{ 0
 a1m+1 ... a1r ... a1n 
 . 
  .. 

 .. .. .. .. ..
0
 . . . . .  
B −1 NxN

=    xr 
 
 aim+1 ... air ... ain 
  .. 

 .. .. .. .. ..  . 

 . . . . .  
0
amm+1 amr ... amn

   
x ×a a
 r . 1r   .1r 

 .. 

 .
 .


   
= 
 xr × air
 = xr  a
  ir


 ..   .
 ..


 . 
 


xr × amr amr

Donc d’après la remarque précédente est équivaut à :


     
b1 a b1 − xr × a1r
 .   .1r   .. 
 .   .
 .   . .
  
  
     
xB =  b  − xr  a  =  b − xr × a  (3.1)
 i   ir   i ir 
 .   . .
.  .. .
  
 .    . 
     
bm amr bm − xr × amr

Pour que la nouvelle solution soit réalisable il faut

xB ≥ 0 ⇔ ∀ 1 ≤ i ≤ m bi − xr × air ≥ 0

Année universitaire : 2017-1018 Prof R. NACIRI


31 chapitre 3. Méthode du simplexe

Deux cas se présente alors :


Cas 1 : Pour tout 1 ≤ i ≤ m, air ≤ 0.
Dans ce cas quelque soit la valeur (positive) de xr la solution restera réalisable (dans
le domaine admissible), soit :

∀ xr > 0, bi − a × air ≥ 1 ≤ i ≤ m.

Donc,
0
z ( x B ) = c B b + c N x N = z ( x 0 ) + c Nr × x r

d’où
lim z( xB ) = lim z( x0 ) + cNr × xr = +∞
xr →+∞ xr →+∞

Cas 2 : il existe 1 ≤ i ≤ m, air > 0.


Donc pour que la solution restera réalisable la valeur maximal que peut prendre a
est :

bi
xr = min{ , tel que air > 0}
air

Remarque 3.4.2
Supposons qu’on est dans le deuxième cas du théorème précédent. Donc il existe
1 ≤ i0 ≤ m
bi bi
xr = min{ , tel que air > 0} = 0
air a i0 r
Alors, D’après l’équation (3.1) on a
 
b − xr × a1r
     
x1 b a  1
 1   .1r .. 

  .. 
..   .
 
.

.   .   .
   
   
       bi − x r × a i r 
xB =   =  bi 0  − x r  a i 0 r
x i0      =  | 0 {z 0
} 
   
 ..   .. 
    .
 ..
  =0 
 .   .    .. 
    . 
xm bm amr
 
bm − xr × amr

Donc ce cas on dit que la variable xi0 est sortie de la base et que la variable xr
est entré en base. Cette opération est dite pivotage.

Année universitaire : 2017-1018 Prof R. NACIRI


32 chapitre 3. Méthode du simplexe

Algorithme générale du simplexe :


Ê Trouver une solution base réalisable correspondante à une matrice de
base initiale par apport à laquelle le programme linéaire est canonique
Ë Vérifier la condition d’optimalité.
ä Si la solution de base réalisable est optimale. Stop
ä Sinon, passer à l’étape numéro 3.
Í Trouver une autre solution de base qui augmentera la valeur de la fonc-
tion objective.

Exemple 3.4.2
On Considère le programme linéaire suivant :

max z = 4x1 + 5x2




sc


2x1 + x2 + x3 = 8




 x + 2x + x = 7

1 2 4






 x2 + x5 = 3


x1 , x2 , x3 , x4 , x5 ≥ 0

On a
   
  x1   4
   
2 1 1 0 0  x2  8  5 
       
A= x =  x3  b =  7  c= 0 
   
 1 2 0 1 0 
      
0 1 0 0 1  x  3  0 
 4   
x5 0
o Trouver une base réalisable.

Etape 1 :
On commence par trouver une base réalisable initiale du programme linéaire. par
apport a laquelle ce dernier est canonique. En effet une base évidente est
   
1 0 0 x
 3 
!
  x1
B=
 0 1 0  avec xB = 
 x4 
 xN =
 x2
0 0 1 x5

Année universitaire : 2017-1018 Prof R. NACIRI


33 chapitre 3. Méthode du simplexe

 
! 8
0  
Pour xN =  7  ≥ 0. Donc B est une base réalisable.
on a xB =  
0
3

o Vérifier l’optimalité de la solution

On a
z = cB b + (cN − cB N ) xN = 0
| {z }
cN =(4,5)

Donc d’après le premier critère de Dantzig la solution n’est pas optimale. Ici les deux
composante de cN sont positif

o Augmenter la valeur de z

D’après le deuxième critère de Dantzig on peut choisir d’augmenter la valeur de


l’une des deux variables hors base. Choisissons d’augmenter la valeur de x2 . En
effet on a
     
x 8 2 1
 3    
!
 x1 = 0
x B =  x4  =  7  −  1
     2 
 x2
x5 3 0 1
D’où,  
  8 − |{z}
1 × x2
 
x3  a12 
2 × x2
 x4  =  7 − |{z}
   



a22
   
x5 
 3 − 1 × x2


|{z}
a32

Donc a12 , a22 et a32 sont strictement positive et

bi 8 7 3
min{ , tel que air > 0} = min{ , , } = 3
air 1 2 1

donc x2max = 3 ce qui implique que x5 sort de la base puisque il aura une valeur
nulle et x2 entre dans la base. Donc la nouvelle valeur de z est 15.
Note : Pour que le système soit sous forme canonique par apport à la nouvelle
solution de base il faut que le coût de la variable x2 soit nul. i.e c2 = 0. et la base et

Année universitaire : 2017-1018 Prof R. NACIRI


34 chapitre 3. Méthode du simplexe

égale à la matrice identité. En effet,


! !
x1 x1
z = 0 + (cN − cB N ) xN = (4, 5) = (4, 5) = 15 + 4x1 − 5x5
| {z } x2 3 − x5
cN =(4,5)

et le système initiale devient :



z = 15 + 4x1 − 5x5 z = 15 + 4x1 − 5x5




sc
sc
 




 2x1 + (3 − x5 ) + x3 = 8



 2x1 − x5 + x3 = 5




 x + 2(3 − x ) + x = 7
 ⇔



 x −2x + x = 1

1 5 4 1 5 4

x + x = 3  x2 + x5 = 3


 2 5 



 

x1 , x2 , x3 , x4 , x5 ≥ 0 x1 , x2 , x3 , x4 , x5 ≥ 0
 

On pose :  
2 0 1 0 -1
 
A1 = 
 1 0 0 1 -2 

0 1 0 0 1

Donc la nouvelle solution est


   
x3 5 ! !
    x1 0
xB =  x4  =  1 
   xN = = z = 15.
x5 0
x2 3

On voit bien que la valeur de z a augmentée : z = 0 → z = 15

o Vérifier l’optimalité de la solution

on a !
x1
z = 15 + 4x1 − 5x5 = 15 + (4 − 5)
| {z } x5
cN

Donc cN 1 >0, donc la solution n’est pas optimale, alors on peut augmenter la valeur
de x1

o Augmanter la valeur de z

Année universitaire : 2017-1018 Prof R. NACIRI


35 chapitre 3. Méthode du simplexe

D’après le deuxième critère de Dantzig on augmente la valeur de x1 . En effet on a


     
x3 5 2 -1 !
    
 =  1 − 1
 x1
xB =  x 4 -2 
      x5 = 0
x2 3 0 1

D’où,  
  5 − |{z}
2 × x1
 
x3  a11 
  1 − |{z}
1 × x1
 
 x4  =  
    a21


x2 
 3 − 0 × x1


|{z}
a31

Donc a11 , a21 , ( a31 =0) sont strictement positive et

bi 5 1
min{ , tel que air > 0} = min{ , } = 1
air 2 1

donc x1max = 1 ce qui implique que x4 sort de la base puisque il aura une valeur
nulle et x1 entre dans la base. Donc la nouvelle valeur de z est 19
On voit bien que la valeur de z a augmentée : z = 15 → z = 19
Note : Pour que le système soit sous forme canonique par apport à la nouvelle
solution de base il faut que le coût de la variable x1 soit nul. i.e c1 = 0. et la base et
égale à la matrice identité. En effet,

!
x1
z = 15 + (cN − cB N ) xN = 15 + (4 − 5)
| {z } x5
cN =(4 −5)
!
1 + 2x5 − x4
= 15 + (4 − 5) = 19 − 4x4 + 3x5
x5

Année universitaire : 2017-1018 Prof R. NACIRI


36 chapitre 3. Méthode du simplexe

et le système initiale devient :



z = 19 − 4x4 + 3x5 z = 19 − 4x4 + 3x5




sc
sc
 




 2(1 − 2x5 − x4 ) − x5 + x3 = 5



 3x5 − 2x4 + x3 = 3




 x −2x + x = 1
 ⇔



 x − 2x + x = 1

1 5 4 1 5 4






 x2 + x5 = 3




 x2 + x5 = 3

 

x1 , x2 , x3 , x4 , x5 ≥ 0 x1 , x2 , x3 , x4 , x5 ≥ 0
 

On pose :  
0 0 1 -2 3
 
A1 = 
 1 0 0 1 -2 

0 1 0 0 1

Donc la nouvelle solution est


   
x 3
 3   
! !
x4 0
x B =  x1  =  1 
   xN = = z = 19.
 x5 0
x2 3

On voit bien que la valeur de z a augmentée : z = 15 → z = 19

o Vérifier l’optimalité de la solution

on a !
x4
z = 19 − 4x4 + 3x5 = 19 + (−4 3)
| {z } x5
cN

Donc cN 2 = 3 >0, donc la solution n’est pas optimale, alors on peut augmenter la
valeur de x5

o Augmenter la valeur de z

D’après le deuxième critère de Dantzig on augmente la valeur de x5 . En effet on a


     
x 3 -2 3
 3    
!
 x4 = 0
 x1  =  1  −  1 -2 
xB =      
x5
x2 3 0 1

Année universitaire : 2017-1018 Prof R. NACIRI


37 chapitre 3. Méthode du simplexe

D’où,  
3 − |{z}
3 × x5
 
a15
 
x3  
  1 − (−2) × x5
 
 x1  =  
   | {z } 
 a25 
x2 
 3− 1 ×x


|{z} 5
a35

Donc a15 , (a25 <0, a35 =0) est strictement positive et

bi 3 3
min{ , tel que air > 0} = min{ , } = 1
air 3 1

donc x5max = 1 ce qui implique que x3 sort de la base puisque il aura une valeur
nulle et x5 entre dans la base. Donc la nouvelle valeur de z est 22
On voit bien que la valeur de z a augmentée : z = 19 → z = 22
Note : Pour que le système soit sous forme canonique par apport à la nouvelle
solution de base il faut que le coût de la variable x5 soit nulle. i.e c5 = 0. et la
nouvelle base est égale à la matrice identité. En effet,
!
x4
z = 19 + (cN − cB N ) xN = 19 + (−4 3)
| {z } x5
cN =(−4 3)
!
x4
= 19 + (−4 3) = 22 − 2x4 − x3
1 + 32 x4 − 31 x3

et le système initiale devient :



z = 22 − 2x4 − x3 z = 22 − 2x4 − x3




sc
sc
 




 3x5 − 2x4 + x3 = 3



 3x5 − 2x4 + x3 = 3




 x − 2(1 + 2 x − 1 x ) + x = 1
 ⇔



x + 2 x − 1 x = 3

1 3 4 3 3 4 1 3 3 3 4






 x2 + (1 + 32 x4 − 31 x3 ) = 3




 x2 + 23 x4 − 31 x3 = 2

 

x1 , x2 , x3 , x4 , x5 ≥ 0 x1 , x2 , x3 , x4 , x5 ≥ 0
 

Année universitaire : 2017-1018 Prof R. NACIRI


38 chapitre 3. Méthode du simplexe

3.4.1 Tableau simpliciale

Soit (P ) un programme linéaire sous forme canonique par apport à une base B donc
d’après la remarque :

z = z + cN xN (⇔ z − cN xN = z)




P: B xB + N xN = b




x , x ≥ 0
B N

Le système précèdent peut être sous forme d’un tableau qu’on appelle tableau sim-
pliciale équivalant à (P ) :
z }| {
z }| { vecteur de base
z x1 x2 ... xm xm +1 xm +2 ... xn
z 1 0 0 ... 0 -cm+1 -cm+2 ... -cn z
 
 x1 0   b1 



 x 1 0 


2 0  ..  b2 
xB . B= .  N .. La solution de base

 .. 0
 
. 



 0 1 


xm 0 bm

Exemple 3.4.3
Le programme linéaire suivant est sous forme canonique par apport à la base associé
aux vecteur de base ( x2 , x5 , x6 ), on a :



z = 5 + 4x1 + x3 − 2x4







 z x1 x2 x3 x4 x5 x6
x + x2 − x3 + 3x4 = 5

 1 z -4 -1 z=5


 1 0 2 0 0

P : − x1 + x5 − x4 = 2 ⇔ x2 0 1 1 -1 3 0 0 b1 = 5




 2x1 + 2x3 + x6 = 4 x5 0 -1 0 0 -1 1 0 b2 = 2






 x1 , . . . , x6 ≥ 0
 x6 0 2 0 2 0 0 1 b3 = 4

Année universitaire : 2017-1018 Prof R. NACIRI


39 chapitre 3. Méthode du simplexe

Exemple 3.4.4
On Considère le programme linéaire suivant :

max z = 4x1 + 5x2




sc





 2x1 + x2 + x3 = 8


 x + 2x + x = 7

1 2 4






 x2 + x5 = 3


x1 , x2 , x3 , x4 , x5 ≥ 0

Le premier tableau simpliciale équivalant au programme linéaire (P) est le suivant :

z x1 x2 x3 x4 x5
z 1 − c N1 = − 4 − c N2 = − 5 0 0 0 z=0 
x3 0 2 1 1 0 1 b1 = 8 


x4 0 1 2 0 1 0 b2 = 7 La solution de base

x5 b3 = 3

0 0 1 0 0 0 

On a cN1 , cN2 > 0, donc la solution n’est pas optimale. On choisi d’augmenter la
valeur de x2 . La colonne contenant les coefficients de la variable x2 est dite colonne
pivot.

colonne pivot
z}|{
z x1 x2 x3 x4 x5
z 1 -4 -5 0 0 0 z=0
x3 0 2 1 1 0 0 b1 = 8
x4 0 1 2 0 1 0 b2 = 7
x5 0 0 1 0 0 1 b3 = 3

Pour choisir la variable qui sortira de la base on calcule

b1 b2 b3
min{ , , }
a21 a22 a23

. la ligne qui correspond a la valeur minimale est dite ligne pivot, l’intersection
entre la colonne pivot et la ligne pivot est dite pivot

Année universitaire : 2017-1018 Prof R. NACIRI


40 chapitre 3. Méthode du simplexe

z x1 x2 x3 x4 x5
z 1 -4 -5 0 0 0 z=0
b1 8
x3 0 2 1 1 0 0 b1 = 8 a21 = 1
b2 7
x4 0 1 2 0 1 0 b2 = 7 a22 = 2
b2 3
x5 0 0
1 0 0 1 b3 = 3 a23 = 1 ⇐ valeur minimale
pivot

Donc la variable sortante est x5 . Méthode de pivotage : D’abord on divise la ligne


pivot par le pivot, ici le pivot est égale à 1 donc la ligne pivot reste inchangé.

z x1 x2 x3 x4 x5 z x1 x2 x3 x4 x5
z 1 -4 -5 0 0 0 0 z 1 -4 -5 0 0 0 0
x3 0 2 1 1 0 0 8 ⇒ x3 0 2 1 1 0 0 8 Ligne1
x4 0 1 2 0 1 0 7 x4 0 1 2 0 1 0 7 Ligne2
0 0
1 0 0 1 3
x5 1 1 1 1 1 1 1 x5 0 0
1 0 0 1 3 Ligne3

Puis, on cherche une combinaison entre la ligne pivot est chaque ligne du tableau
y compris la ligne des coûts afin d’annuler les composantes de la colonne pivot, la
colonne de x2 dans ce cas.
ä Annuler la valeur de a22 = 2 : Pour annuler la valeur de a22 il suffit de
remplacer la ligne2 par ligne2 − 2 × ligne3 .
ä Annuler la valeur de a12 = 1 : Pour annuler la valeur de a12 il suffit de
remplacer la ligne1 par ligne1 − ligne3 .
ä Annuler la valeur de c2 = −5 : Pour annuler la valeur de c2 il suffit de
remplacer la ligne0 par ligne0 + 5 × ligne3 .

z x1 x2 x3 x4 x5
z 1 −4 → −4 + 5 × 0 −5 → −5 + 5 × 1 0 → 0 + 5 × 0 0 → 0 + 5 × 0 0 → 0 + 5 × 1 0 → 0 + 5 × 3
x3 0 2 → 2−0 1 → 1−1 1 → 1−0 0 → 0−0 0 → 0−1 8 → 8−3
x4 0 1 → 1−2×0 2 → 2−2×1 0 → 0−2×0 1 → 1−2×0 0 → 0−2×1 7 → 7−2×3
x2 0 0
1 0 0 1 3

z x1 x2 x3 x4 x5
z 1 -4 0 0 0 5 15
x3 0 2 0 1 0 -1 5
x4 0 1 0 0 1 -2 1
x2 0 0 1 0 0 1 3

Année universitaire : 2017-1018 Prof R. NACIRI


41 chapitre 3. Méthode du simplexe

Note : Afin de calculer les valeurs de chaque cellule du tableau assez facilement,
on peut procédé de la manière suivante (règle des carrés) : par exemple si on veut
0
calculer la nouvelle valeur de A qu’on note A ;

colonne pivot
z}|{

A ... B
.. ..
. ? .


C ... pivot ⇐ Colonne pivot

On a
0 A × pivot − B × D
A =
pivot
. Deuxième itération :
On a cN1 > 0, donc la solution n’est pas optimale. Donc, on peux augmenter la
valeur de x1 .
colonne pivot
colonne pivot z}|{
z
z}|{
x1 x2 x3 x4 x5 z x1 x2 x3 x4 x5
z 1 -4 0 0 0 5 15 z 1 -4 0 0 0 5 15
⇒ b1 5
x3 0 2 0 1 0 -1 5 x3 0 2 0 1 0 -1 5 a11 = 2
b2 1
x4 0 1 0 0 1 -2 1 x4 0
1 0 0 1 -2 1 a12 = 1 ⇐ valeur minimale
pivot
x2 0 0 1 0 0 1 3 x2 0 0 1 0 0 1 3 b3
= 3
=?
a13 0
Alors la variable sortante est x4 , après calcule on retrouve le tableau simpliciale
suivant :

z x1 x2 x3 x4 x5
z 1 0 0 0 4 -3 19
x3 0 0 0 1 -2 3 3
x1 0 1 0 0 1 -2 1
x2 0 0 1 0 0 1 3

Troisième itération : On a cN5 > 0, donc la solution n’est pas optimale. Donc, on
peux augmenter la valeur de x5 .
colonne pivot colonne pivot
z}|{ z}|{
z x1 x2 x3 x4 x5 z x1 x2 x3 x4 x5
z 1 0 0 0 4 -3 19 z 1 0 0 0 4 -3 19
⇒ x3 -2 b1
= 3
= 1 ⇐ valeur minimal
x3 0 0 0 1 -2 3 3 0 0 0 1 3 3 a15 3
x1 0 1 0 0 1 -2 1 x1 0 1 0 0 1 -2 1 a25 = −2 < 0
b3 3
x2 0 0 1 0 0 1 3 x2 0 0 1 0 0 1 3 a35 = 1 =3
Donc, la variable sortante est x5 , après calcule on retrouve le tableau simpliciale
suivant :

Année universitaire : 2017-1018 Prof R. NACIRI


42 chapitre 3. Méthode du simplexe

z x1 x2 x3 x4 x5
z 1 0 0 1 2 0 22
1 −2
x3 0 0 0 3 3 1 1
2 −1
x1 0 1 0 3 3 0 3
−1 2
x2 0 0 1 3 3 0 2

3.5 Méthode à deux phase

La difficulté pour appliqué l’algorithme précèdent réside dans le fait de trouver une
base réalisable initiale par apport a laquelle le programme linéaire est sous forme
canonique. Si une telle base est trouvée , alors le premier tableau peut être formé
aisément et donc l’algorithme peut démarrer.

Le but de la méthode à deux phase est de remédier à ce problème de démarrage. cette


méthode consiste à transformer le problème de trouver une base réalisable initiale
en un problème d’optimisation appelé programme artificiel. Une fois le programme
artificiel résolu, on détermine facilement si le problème initial admet au moins une
solution.

Procedé de la méthode à deux phase :


Ê Formulation du programme artificiel (P a ), en ajoutant des variables ar-
tificiels aux contraintes qui posent problème. l’objective de (P a ) est de
minimiser une "sous-fonction objectif" formée seulement des variables
artificielles
ä Si la solution optimale de (P a ) est égale à 0, alors le programme
linéaire initiale admet une solution réalisable. on pas directement à 2
ä Sinon,le programme linéaire initiale n’admet pas de solution de base
réalisable.
Í Éliminer les variables artificielles et trouver une solution de base réali-
sable initiale pour le problème originel.

Année universitaire : 2017-1018 Prof R. NACIRI


43 chapitre 3. Méthode du simplexe

Exemple 3.5.1
Considérons le programme linéaire suivant :

max z = − x1 − x2 max z = − x1 − x2

sc sc


 
Forme standard
3x − 4x2 ≤ −12 3x + 4x2 − e1 = 12

 1

 ⇐⇒
 1




2x1 + x2 ≤ 4 2x1 + x2 + e2 = 4
 

 

 x1 , x2 ≥ 0 x , x , e , e ≥ 0
1 2 1 2

La solution de base (e1 , e2 ) n’est pas réalisable puisque la solution comporte une
coordonneé négative (on a e1 = −12). Formulation du programme linéaire artificiel :

min w = a1




sc

 3x1 + 4x2 − e1 + a1 = 12
(P a ) :



 |{z}
 variable arti f iciel




 2x1 + x2 + e2 = 4


x , x , e , e , a ≥ 0
1 2 1 2 1

La forme standard de(P a ) est :




max w = − a1
sc



a 3x + 4x2 − e1 + a1 = 12

(P ) :  1





2x1 + x2 + e2 = 4



x , x , e , e , a ≥ 0
1 2 1 2 1

Le programme linéaire artificiel admet une solution de base réalisable, les vecteurs
de base sont ( a1 , e1 ). Pour qu’on puisse dresser le premier tableau simplicial il faut
que (P a ) soit sous forme canonique par apport à la base en question. On remarque
que le coût de a1 est non nul (c a1 = −1). D’après la première contrainte du système
précédent on a :
− a1 = −12 + 3x1 + 4x2 − e1

Année universitaire : 2017-1018 Prof R. NACIRI


44 chapitre 3. Méthode du simplexe

Donc (P a ) devient :


−12 + 3x1 + 4x2 − e1
w = |{z}
| {z }
w0

cN xN


a

(P ) : 3x + 4x2 − e1 + a1 = 12
 1





2x1 + x2 + e2 = 4



x , x , e , e , a ≥ 0
1 2 1 2 1

Résolution du programme linéaire artificiel :

w0 x1 x2 e1 e2 a1
w0 1 -3 -4 1 0 0 -12
a1 0 3 4 -1 0 1 12
e2 0 2 1 0 1 0 4

On a cNx , cNx2 > 0, donc la solution n’est pas optimale. On peux augmenter la
1
valeur de x2 .

w0 x1 x2 e1 e2 a1
w0 1 -3 -4 1 0 0 -12
12
a1 0 3
4 -1 0 1 12 4 = 3 ⇐ valeur minimal
pivot
4
e2 0 2 1 0 1 0 4 1 =3

Donc la variable sortante est a1 . Après calcule on trouve le tableau simplicial suivant

z x1 x2 e1 e2 a1
z 1 0 0 0 0 1 0
Valeur optimale nulle
3 −1 1
a1 0 4 1 4 0 4 3
5 1 −1
e2 0 4 0 4 1 4 1

Donc la solution optimale du programme artificiel est null. alors le pro-


gramme initiale admet une solution. Deuxième phase : On obtient une
première base réalisable pour le programme linéaire initial en suppri-
mant la variable artificielle. On obtient ainsi un programme linéaire équi-
valent au programme linéaire initial avec une première base réalisable :

Année universitaire : 2017-1018 Prof R. NACIRI


45 chapitre 3. Méthode du simplexe



max z = − x1 − x2 w//0 x1
/ x2 e1 e2 a/1
/

max z = − x1 − x2
sc sc


 w//0
/ /
1 /
0 /
0 /
0 /
0 /
1 /
0 
3
3x + 4x2 − e1 = 12 x + x2 − 14 e1 = 3


 1

 ⇔ 3 −1 1 ⇔ 4 1


a1
 
0 4 1 4 0 /4 3
5 1
2x1 + x2 + e2 = 4 4 x 1 + 4 e1 + e2 = 1
5 1 −1
e2
 


x , x , e , e ≥ 0 0 4 0 4 1 //4/ 1 

x , x , e , e ≥ 0
1 2 1 2 1 2 1 2

Le programme linéaire admet une solution de base réalisable ( x2 , e2 ), pour former
le premier tableau simpliciale, la variable x2 doit avoir un cot nulle. D’après la
première contrainte on a ;
3 1
x 2 = 3 − x 1 + e1
4 4
donc ;


max z = −3 − 41 x1 − 14 e1
sc



3
x + x2 − 14 e1 = 3

4 1



5 1
4 x 1 + 4 e1 + e2 = 1




x , x , e , e ≥ 0
1 2 1 2

m

z x1 x2 e1 e2
1 1
z 1 4 0 4 0
-3
3 −1
a1 0 4 1 4 0 3
5 1
e2 0 4 0 4 1 1

On remarque que la solution est optimale. zmax = −3 pour x1 = 0 (variable hors


base), x2 = 3

Année universitaire : 2017-1018 Prof R. NACIRI


Chapitre 4

Théorie des graphe

Objectifs du chapitre :
æL’objective de chapitre est de présenter une bref introduction sur la théorie
des graphe ainsi qu’un algorithme qui traite le problème du chemin minimale.

4.1 Concept de base

Les graphes et leurs algorithmes sont des outils mathématiques utilisés pour mo-
déliser et résoudre des problèmes complexes dans des domaines aussi variés que
l’optimisation (production industrielle , aide à la décision . . . . ) , la conception de
réseaux (électriques, routiers, télécommunication...) ou la modélisation des systèmes
évolutifs (automatique, économies...)

Definition 4.1.1
Un graphe fini G = (X, U) est défini par un ensemble fini X = x1 , x2 , . . . , xn dont
les éléments sont des points, appelés sommets ou nœuds, et par l’ensemble fini
U = u1 , u2 , ..., um dont les éléments sont des lignes orientées ou non.

Remarque 4.1.1
ä Si les lignes d’un graphe ne sont pas orientées elles sont appelées arêtes,
et dans ce cas, le graphe est dit non orienté.
ä Si les lignes d’un graphe sont orientées, on parle d’arcs ou branches ou
encore flèches, et le graphe devient orienté ou digraphe.
ä le nombre de sommets que contient un graphe représente l’ordre du
graphe.

46
47 chapitre 4.Théorie des graphe

Definition 4.1.2
Soit G = ( X, U ) un graphe est défini par :
o Deux sommets xi et x j sont dites adjacents s’il existe un arc ur tel que
( xi , x j ) ∈ ur
o Si ( xi , x j ) ∈ ur alors xi est dit un précédent et x j un successeur de xi

4.2 type de représentation d’un graphe

4.2.1 représentation sagittale d’un graphe

Cette représentation consiste en un dessin où les sommets sont reliés par des arcs :

Exemple 4.2.1

ä f et g sont adjacents.
ä a admet e comme précédent est successeur.
ä c n’admet aucun successeur.

4.2.2 Application multivoque

Année universitaire : 2017-1018 Prof R. NACIRI


48 chapitre 4.Théorie des graphe

Definition 4.2.1
On appelle application multivoque d’un graphe G = ( X, U ) l’application définie
par :
Γ : X → P (X)
xi 7→ successseur de xi

Exemple 4.2.2
Dans le graphe suivant on a X = { a, c, e, f , g} :

L’application multivoque est définie par :


ä Γ( a) = {e}
ä Γ(c) = ∅
ä Γ(e) = { g}
ä Γ( f ) = {c, g, e}
ä Γ( g) = {c, a}

4.2.3 Matrice booléenne

Definition 4.2.2
Soit G = ( X, U ) un graphe d’ordre n. On appelle matrice booléenne de G, la
matrice M = ( aij ) tel que :

 a = 1 s0 il existe u ∈ U tel que ( x , x ) ∈ u
ij i j
aij =
0 sinon

Année universitaire : 2017-1018 Prof R. NACIRI


49 chapitre 4.Théorie des graphe

Exemple 4.2.3
La matrice booléenne de du graphe suivant :

est :  
0 0 1 0 0
 
 0 0 0 0 0 
 
M=  0 0 0 0 1 
 
 
 0 1 1 0 1 
 
1 1 0 0 0

4.3 Problème du plus court chemin

Definition 4.3.1
o Un graphe G = ( X, U ) est dit valué si chaque arc u possède une longueur
l ( u ).
o Un chemin α est une liste de sommet { x1 , . . . , xk } telle qu’il existe un arc
entre chaque pair de sommets successif, soit

∀i = 1, . . . , k − 1 ∃u ∈ U tel que ( xi , xi+1 ) ∈ u

o Un chemin α est simple si chaque arc du chemin est empruntée une seule
fois.
o Un circuit est un chemin simple finissant à son point de départ x1 = xk

Année universitaire : 2017-1018 Prof R. NACIRI


50 chapitre 4.Théorie des graphe

o Un chemin α ={ x1 , . . . , xk } est élémentaire si chacun des sommets du


parcours est visité une seule fois, soit :

∀i, j = 1, . . . k tel que i 6= j, xi 6= x j

Exemple 4.3.1
Dans le graphe suivant :

On a :
ä Les chemins { f , g, a, e} et { f , g, c} sont simples.
ä Le chemin { f , g, a, e, g, a} n’est pas simple puisque l’arc (g, a) est emprunté 2
fois.
ä { g, a, e, g} est un circuit
ä { f , g, a, e} est un chemin élémentaire

Problème du plus court chemin


Le problème du plus court chemin entre deux sommet xi et x j revient a trouvé
un chemin α de xi à x j qui est solution de :

min(l (α) =
α
∑ l (u))
u∈α

Théorème 4.3.1
Dans un graphe avec une valuation positive l(u) de ses arêtes :
o Un plus court chemin entre 2 sommets est élémentaire
o Les plus courts chemins vérifient le principe d’optimalité : Si p= {s, . . . , t}
est un plus court chemin entre s et t, alors pour tout sommet x sur le
chemin, le sous-chemin de p jusqu’à x, {s, ..., x }, est un plus court chemin

Année universitaire : 2017-1018 Prof R. NACIRI


51 chapitre 4.Théorie des graphe

de s à x.

Algorithme (Dijkstra-Moore) 1959


But : calculer les plus courts chemins d’un sommet s à tous les autres sommets
du graphe.
a. Y = { xs }, D ( xs ) = 0, Y = X \Y

l ( xs , x ) si x ∈ Γ( xs )
i i
D ( xi ) =
+∞

b. sélectionner x j ∈ Y tel que D ( x j ) = min D ( xi ). Faire Y 7→ Y \ x j , Si Y = ∅


x i ∈Y
arrêt, sinon passer en c.
c. Si Γ( x j ) ∩ Y = ∅, retourner en b, sinon faire :

∀ xi ∈ Γ( x j ) ∩ Y D ( xi ) 7→ min{ D ( xi ), D ( x j ) + l ( xi , x j )}

et retourner en b.

Exemple 4.3.2
Calculer le plus court chemin entre le sommet 1 et le sommet 6 :

Année universitaire : 2017-1018 Prof R. NACIRI

S-ar putea să vă placă și