Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 1
contraintes gi ( X )=0 ou gi ( X )≥0 . Notons qu’un programme linéaire peut être ramené à un
problème d’optimisation combinatoire.
I. Etapes de modélisation d’un programme linéaire (PL)
La formalisation mathématique d’un problème concret est une tâche délicate mais essentielle car elle
conditionne la découverte ultérieure de la bonne solution. Elle comporte les mêmes phases quelles
que soient les techniques requises ultérieurement pour le traitement (programmation linéaire ou
programmation non linéaire) : Généralement il y a trois étapes à suivre pour pouvoir construire le
modèle d'un programme linéaire :
1. Identifier les variables du problème à valeur non connues (variable de décision) et les
x ,y
représenter sous forme symbolique (exp. 1 1 ).
2. Identifier les restrictions (les contraintes) du problème qui s’expriment en général par des
relations entre les variables et qui se représentent sous forme d’un système d’équations ou
d’inéquations linéaires.
3. 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.
II. Présentation théorique
Un programme linéaire consiste à trouver le maximum ou le minimum d’une forme linéaire dite
fonction objectif en satisfaisant certaines équations et inégalités dites contraintes. En langage
mathématique, on décrira de tels modèles de la manière suivante :
x , x ,… , x
Soient n variables de décision 1 2 n l’hypothèse que les variables de décision sont positives
Supposons que ces variables de décision doivent vérifier un système d’équations linéaires définis
par m inégalités :
1
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
III.
{max c1x+c2x+…cnx¿{a1x+a12x+…a1nx≥b1¿{a21x+a2x+…a2nx≥b2¿{ ⋮¿{am1x+am2x+…amnx≥bm¿
Exemples de modélisations
Plusieurs problèmes de divers domaines sont représentés ou approximés par des modèles de PL.
L’utilisation de ces techniques de modélisation s’est renforcée encore après avoir construit des
algorithmes et des logiciels capables de résoudre de plus larges problèmes avec autant de variables
de décision que de contraintes.
2
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir les sujets atteints
d’un rhume. Ces pilules sont fabriquées selon deux formats :
Petite taille : elle contient 2 grains d’aspirine, 5 grains de bicarbonate et 1 grain de codéine.
Grande taille : elle contient 1 grain d’aspirine, 8 grains de bicarbonate et 6 grains de codéine.
Pour guérir la maladie, le sujet a besoin de 12 grains d’aspirine, 74 grains de bicarbonate et 24
grains de codéine. Déterminer le nombre de pilules minimales à prescrire au sujet pour qu’il soit
guérit.
Modélisation du problème en un PL
4
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Exemple 2.1. Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur trois
machines M1, M2 et M3, successivement mais dans un ordre quelconque. Les temps unitaires
d’exécution sont donnés par le tableau suivant :
M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 mn
Modélisation en un PL :
{ m a x 9 0 x 1 + 1 0 x 2 ¿ { 1 x 1 + 9 x 2 ≤ 9 0 ¿ { 7 x 1 + 1 2 x 2 ≤ 8 40 ¿ { 6 x 1 + 16 x 2 ≤ 96 0 ¿
5
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Exemple 2.2. Un constructeur automobile a la possibilité de produire des voitures, des camionnettes
et des vélos. Chaque voiture, camionnette et vélo vendue, rapporte un profit de 3000 u.m, 2000 u.m
et 500 u.m respectivement. L’usine est constituée de 3 ateliers : découpage des tôles, assemblage et
finition intérieure. Chaque atelier fonctionne 8 heures par jour. Le tableau suivant montre le temps
(en minutes) nécessaire dans chaque atelier à la production de chaque véhicule.
Avant d’être livrés aux différents concessionnaires de la marque, les véhicules sont entreposés, en
fin de journée, dans un hangar pouvant recevoir l’équivalent de 200 voitures. Une camionnette
occupe 5 fois plus de place qu’un vélo et une voiture 3 fois plus de place qu’un vélo. Suite à des
commandes importantes provenant de différentes sociétés de transport, l’entreprise est dans
l’obligation de produire un minimum de 30 camionnettes par jour. Donner le programme linéaire
correspondant à ce problème.
Modélisation en un PL :
6
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
On se propose de réaliser une alimentation économique pour des bestiaux, qui contient
obligatoirement 4 sortes de composants nutritifs, A, B, C et D. L’industrie alimentaire produit
précisément deux aliments M et N qui contiennent ces composants : 1 Kg d’aliment M contient 100
g de A, 100 g de C, 200 g de D ; 1 Kg d’aliment N contient 100 g de B, 200 g de C, 100 g de D. Un
animal doit consommer par jour au moins : 0.4 Kg de A, 0.6 Kg de B, 2 Kg de C et 1.7 Kg de D.
L’aliment M coûte 10 u.m le Kg et N coûte 4 u.m le Kg. Quelles quantités d’aliments M et N doit-
on utiliser par jour et par animal pour réaliser l’alimentation la moins coûteuse ?
Modélisation en un PL :
M N Quantités prescrites
A 0.1 0 0.4
B 0 0.1 0.6
C 0.1 0.2 2
D 0.2 0.1 1.7
Coût 10 4
Ce genre de tableau peut aider à mieux analyser le problème et ainsi formuler le programme linéaire
correspondant.
Le choix de cette quantité est contraint à la présence dans l’alimentation du composant
- A : 0 .1 x 1≥0. 4 ⇒ x1 ≥4
- B : 0 .1 x 2≥0. 6 ⇒ x 2 ≥6
- C : 0 .1 x 1 +0 . 2 x 2 ≥2 ⇒ x 1 +2 x 2 ≥20
7
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Une entreprise désire effectuer une campagne publicitaire dans la télévision, la radio et les journaux
pour un produit lancé récemment sur le marché. Le but de la campagne est d’attirer le maximum
possible de clients. Les résultats d’une étude de marché sont donnés par le tableau suivant :
Pour la campagne, on prévoit de ne pas payer plus que 800 u.m pour toute la campagne et on
demande que ces objectifs soient atteints :
Modélisation en un PL :
8
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
9
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Une entreprise stock un produit dans trois dépôts A 1, A2 et A3. Les quantités stockées sont
respectivement a1, a2 et a3. Les dépôts doivent alimenter 4 magasins B1, B2, B3 et B4. La quantité du
produit nécessaire au point de vente Bj : j=1, …,4 est bj. Si cij est le coût unitaire de transport du
produit de dépôt Ai vers le point de vente Bj, comment l’entreprise doit-elle répartir les stocks du
produit entre les points de vente ?
Modélisation en un PL :
Une condition nécessaire pour que ce problème possède une solution est que l’offre soit au mois
∑ a i ¿ ∑j b j
égale à la demande d’où : i .
Les variables de décision du problème sont :
xij : quantité du produit acheminée depuis le dépôt Ai au point de vente Bj.
Les contraintes de non-négativité sont vérifiées.
Les contraintes du problème sont :
∑x ij
¿ ai
disponible, d’où j =1 pour i=1,…,3.
3
∑ x ¿ bj
ij
- La quantité acheminée doit satisfaire la demande d’où i=1 pour j=1,…,4.
3 4
Z ( min)=∑ ∑ c ij x ij
Fonction objectif : le coût de transport à minimiser, donc i=1 j =1 , d’où le
problème peut s’écrire sous la forme suivante :
{{ {
34 4 3
min∑∑ cijxij¿ ∑ xij≤ai pour i=1,. .,3¿ ∑ xij≥bj pour j=1,. ,4¿ ¿
i=1 j=1 j=1 i=1
10
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Considérons n objets, notés i=1,...,n, apportant chacun un bénéfice ci et possédant un poids ai. On
veut ranger ces objets dans un sac que l'on veut au maximum de poids b. Le problème de sac-à-dos
(knapsack) consiste à choisir les objets à prendre parmi les n objets de manière à avoir un bénéfice
maximal et respecter la contrainte du poids à ne pas dépasser. Chaque objet i, i∈{1,...,n}, doit être
sélectionné au moins pi fois et au plus qi fois. Ce problème se rencontre bien entendu dès que l'on
part en randonnée en voulant emmener le plus possible d'objets utiles (nourriture, boissons,...). Ce
problème est plus fréquemment utilisé pour remplir les camions de transport, les avions ou bateaux
de fret et même pour gérer la mémoire d'un microprocesseur.
Modélisation en un PL :
La formulation en un problème linéaire en nombres entiers du problème de sac-à-dos est très simple.
On utilise pour chaque objet i∈ { 1,...,n } , une variable entière xi correspondant au nombre de fois où
l'objet i est choisi. Le problème du sac-à-dos est donc équivalent au programme en nombres entiers
suivant.
{{
n n
max∑ cixi ¿ ∑ ai xi≤b, (1)¿{ pi≤xi≤qi , pour i=1,. .,n ¿ ¿
i=1 i=1
La contrainte (1) est dite contrainte de sac-à-dos. Elle est l'unique contrainte de ce programme
linéaire en nombres entiers qui est un problème difficile algorithmiquement à résoudre.
11
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
On considère un ensemble de n villes et les distances c ij qui les séparent. Le problème du voyageur
de commerce consiste à déterminer le tour le plus court possible passant exactement une fois par
chaque ville et revenant au lieu de départ (cycle Hamiltonien).
Modélisation en un PL :
Il y a n villes et nous notons cij la distance entre la ville i et la ville j. Pour modéliser le problème du
voyageur de commerce, nous utilisons les variables suivantes :
{{ { { {
nn n n
min∑ cijxij¿ ∑xij=1, ∀j ¿ ∑xij=1, ∀i ¿ ∑ xij≤|S−1 ∀S⊂{1,. n} et2≤|S≤n−1¿ ∑ xij≥1 ∀S⊂{1,. n} etφ≠S {1,. n} ¿
j=1i=1 i=1 j=1 i∈S j∈S i ∈S j ∉S
La première contrainte dit qu’il entre exactement 1 fois dans chaque ville, tandis que la deuxième dit
qu’il sort exactement 1 fois de chaque ville. Ceci n’est pas suffisant, car on pourrait aboutir ainsi à
plusieurs petits tours, donc il reste à éliminer les sous-tours en mettant soit les troisièmes contraintes
(élimination de sous-tours) soit les quatrièmes contraintes (connexité).
12
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
CHAPITRE 2
Après avoir illustré par des exemples, comment un problème pratique peut être modélisé par un
programme linéaire, l’étape qui va suivre sera certainement celle de la résolution de ce problème
mathématique. La méthode graphique est l’une des premières méthodes utilisées à ce sujet.
Si on parle de résolution graphique alors on doit se limiter à une représentation à deux variables et
au plus à trois variables. Ceci indique que dans cette section on examinera seulement les
programmes linéaires à deux variables de décision.
Nous allons décrire cette méthode à travers trois exemples représentatifs, ayant chacun deux
variables structurelles. La résolution d'un (PL) par la méthode graphique se fait selon une démarche
commune, celle-ci peut être résumée en quatre directives :
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 .
Exemples :
Définitions :
Théorème : L’ensemble des points extrêmes du polyèdre D, correspond à l’ensemble des solutions
de base réalisables.
Théorème : L’optimum de la fonction objectif sur D, s’il en existe, est atteint en au moins un point
extrême du polyèdre D.
L’ensemble D des solutions réalisables d’un programme linéaire (PL) n’est pas nécessairement
borné. En fait pour un PL, trois situations peuvent se produire :
Dans ce qui suit les flèches en bleu représentent la direction de vecteur gradient (vecteur
d’augmentation ou de diminution) de la fonction objectif.
Exemple 1:
14
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
solutions réalisables, et ceux qui vont satisfaire une partie ou aucune de ces contraintes, appelés
solutions non réalisables.
Une représentation graphique des inégalités (des contraintes) va nous permettre de déterminer
l’ensemble des solutions réalisables.
Revenons à notre exemple du problème de médecine. Une des contraintes de ce problème est celle
relative au grain d’aspirine : 2 x 1 + x 2 ≥12 . L’ensemble des solutions qui vérifient cette inégalité
est le même que celui qui vérifie 2 x 1 + x 2 =12 et 2 x 1 + x 2 > 12.
L’ensemble des solutions qui correspond à l’équation est l’ensemble des points de la droite l définie
par x 2=−2 x 1 +12 . Cette droite admet une valeur de la pente égale –2 et intercepte l’axe des
ordonnées en 12 (voir figure ci-dessus).
L’inégalité 2 x 1 + x 2 > 12 correspond à un demi-plan limité par la droite x 2=−2 x 1 +12 . Or cette
droite divise le plan en deux demi-plans ouverts donc quel est le demi-plan à choisir ?
Pour ce faire, il suffit de prendre un point de l’un des demi-plans (c’est à dire n’appartenant pas à la
droite x 2=−2 x 1 +12 ) et voir s’il vérifie l’inégalité 2 x 1 + x 2 > 12. Par exemple le point de
coordonnées (0,0) ne vérifie pas l’inégalité 2 x 1 + x 2 >12 donc le demi-plan π1 au-dessus de la
droite est celui recherché (voir figure ci-dessus).
L’espace blanc représente le demi-plan fermé des solutions qui vérifient la contrainte 2 x 1 +x 2 >12 .
Si on fait de même pour les deux autres contraintes du problème (voir figures ci-dessous), on obtient
les deux autres demi-plans π2 et π3 relatifs aux solutions vérifiant respectivement les contraintes
5 x1 + 8 x2 >74 et x 1 +6 x 2 >24 .
15
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Une solution possible du problème est dite réalisable si et seulement si elle vérifie toutes les
contraintes, c’est à dire si elle appartient aux trois demi-plans relatifs à chaque contrainte du
programme linéaire, en d’autre terme à π 1 ∩ π 2∩ π 3 plus les contraintes de positivité (voir figure).
Proposition : L’ensemble des solutions réalisables (non vide) est convexe (l’intersection d’un
nombre fini de demi-plans).
Soit Z la valeur de la fonction objectif du problème de médecine Z =x1 + x2 . Pour Z=0, la fonction
objectif est représentée de la manière suivante :
Pour Z=6, c’est à dire que le nombre de pilules à prescrire est égal à 6 pilules. La fonction objectif
est représentée comme suit :
16
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Chaque point du segment qui relie les points (6,0) à (0,6) représente des solutions qui engendrent
une prescription avec 6 pilules des deux tailles.
On peut tracer une infinité de droites qui représentent les différentes valeurs de la fonction objectif,
toutes ces droites ont le même coefficient directeur (-1). Par suite elles sont parallèles entre elles. De
plus on peut diminuer la valeur de Z indéfiniment dans le sens indiqué dans la figure ci-dessous.
Le problème est de connaître qu’elle est la droite qui correspond à la valeur minimal de la fonction
objectif ?
17
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
a. Résolution graphique
Si nous retraçons l’ensemble des droites parallèles relatives à différentes valeurs de la fonction
objectif sur la figure qui représente l’ensemble des solutions réalisables, on peut localiser la solution
optimale. Elle correspond à la solution réalisable qui intercepte la droite à la plus petite valeur de Z.
Dans notre exemple, la solution optimale est l’intersection des deux droites d’équations 2 x 1 +x 2 =12
et 5 x1 +8 x2 =74 . Une évaluation des coordonnées de ce point revient à résoudre le système linéaire
suivant :
{2 x1+x2=12 ¿ ¿¿¿
Elle correspond d’après le graphique au point (2,8). Donc la prescription optimale est de 2 pilules de
petite taille et 8 pilules de grande taille. Le nombre de pilules (la valeur de la fonction objectif) est
égal à 10.
On remarque que la solution optimale du problème de médecine est un point extrême qui se trouve
sur le bord de l’ensemble des solutions. Une telle solution est dite solution réalisable de base.
On peut admettre le résultat suivant : " Si un programme linéaire admet une solution optimale alors
il existe une solution réalisable de base pour laquelle la fonction objectif atteint la valeur optimale "
Une méthode de résolution du programme linéaire consiste donc à déterminer les solutions
réalisables de base (les points d’intersection des droites qui forment les contraintes) et à calculer
pour chaque point la valeur de la fonction objectif. La solution du programme linéaire est la solution
à qui on associe la valeur optimale de la fonction objectif.
18
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Dans le problème de médecine, l’ensemble des solutions réalisables de base présente 4 points
extrêmes A(0,12), B(2,8), C(126/11,23/11) et D(24,0). La valeur de la fonction objectif associée
respectivement à A, B, C et D est 12, 10, 149/11 et 24. On vérifie bien que B est la solution optimale
du problème avec une valeur optimale égale à 10.
Exemple 2:
19
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Il s'agit donc de chercher à l'intérieur de ce domaine, le couple ( x1, x2) maximisant la fonction
objectif.
Or l'équation 1200 x 1 + 1000 x 2 =Z 0 est représentée par une droite de pente constante -1,2 dont tous
les points (x1, x2) fournissent la même valeur Z0 pour la fonction économique.
En particulier, la droite 1200 x 1 + 1000 x 2 =0 passe par l'origine et donne une valeur nulle à la
fonction économique. …………………………………………………………………………………
Pour augmenter la valeur de Z0 et donc la fonction économique, il suffit d'éloigner de l'origine (dans
le quart de plan x1 ≥ 0 ; x2 ≥0) la droite de pente -1,2.………………………………………….
Pour respecter les contraintes, cette droite sera déplacée jusqu'à l'extrême limite où il n'y aura plus
qu'un point d'intersection (éventuellement un segment) avec la région des solutions admissibles.
On remarquera que la solution optimale se trouve nécessairement sur le pourtour de la région des
solutions admissibles. La solution se trouvant sur les deux droites d'équation
3 x1 +4 x 2 =160 et
6 x 1 +3 x 2=180 .
20
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Exemple 3 :
{Z(max)=3x1+2x2¿{ x1+x2≤80¿{2x1+x2≤10 ¿ ¿
Le programme est de dimension deux, donc, on peut le résoudre graphiquement :
a. Résolution graphique :
Dans notre exemple, la solution optimale est l’intersection des deux droites d’équations x1+x2 = 80
et 2x1+x2 = 100. Une évaluation des coordonnées de ce point revient à résoudre le système linéaire
suivant :
x1+x2=80
2x1+x2=100.
21
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Elle correspond d’après le graphique au point (20,60). Donc Le meilleur plan de production est : 20
unités de produit de 1ier type et 60 unités de produit de 2ème type. Le coût de production
correspondant (la valeur de la fonction objectif) est égal à 180 unités monétaires.
Il est clair qu’on peut augmenter la valeur de la fonction objectif dans la direction des flèches
indéfiniment (sens de vecteur gradient de la fonction objectif), donc la solution est non bornée
(l’infinie).
22
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Dans cette partie on donne quelques exemples de résolution graphique de problèmes linéaires
relatifs au différents cas possibles (le domaine gris représente l’ensemble de solutions réalisables).
1. Problème impossible
L’espace des solutions réalisables est vide, il est l’intersection des deux zones grises de la figure ci-
dessus
L’ensemble des points décrit par le segment [AB] représente les solutions optimales du problème
linéaire.
3. Problème de dégénérescence
24
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
CHAPITRE 3
On dit qu’un programme linéaire est écrit sous forme canonique si le domaine des solutions
réalisables est défini par un système d'inéquations linéaires, Si par contre, en dehors des contraintes
de non-négativité toutes les contraintes sont des égalités, on dit que le programme linéaire, est mis
sous forme standard. On peut toujours mettre un programme linéaire quelconque sous forme
standard en ajoutant des variables supplémentaires appelées variables d'écart.
{ m ax C X ¿ { A X ≤ b ; ¿ ¿ {max CX¿{AX=b;¿ ¿
Forme canonique de minimisation Forme standard
Notons que les problèmes de minimisation et de maximisation sont en fait équivalents puisque :
min D f ( x )=−max D (−f ( x )) .
Exemple 2 : Mettre sous forme canonique puis sous forme standard le problème linéaire suivant :
26
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
1) Le système est de plein rang, dans ce cas l’ensemble des solutions {X | AX = b} n’est pas vide,
la solution est unique si et seulement si m=n, et une infinité de solution si m<n.
2) Le système n’est pas de plein rang, et le système AX = b est incompatible, donc pas de
solution.
3) Le système n’est pas de plein rang, et le système AX = b est redondant et en enlevant la
redondance on retourne au cas 1).
27
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
( ) ( ) ( ) ( )
1 2 1 7 1 2 1 7 1 2 1 7 1 2 1 7
2 −1 2 6 0 −5 0 −8 0 −5 0 −8 0 1 0 8 /5
1 1 3 12 ⇒ 0 −1 2 5 ⇒ 0 0 2 35/5 ⇒ 0 0 1 33/10
Ceci implique que le système (S 1 ) possède une solution unique : x1 = 0.5, x2 = 1.6 et x3 = 3.3
( ) ( )( )
1 2 1 1 7 1 2 1 1 7 1 2 1 1 7
2 −1 2 2 6 ⇒ 0 −5 0 0 −8 ⇒ 0 −5 0 0 −8
1 1 3 −1 12 0 −1 2 −2 5 0 0 2 −2 33/5
( )
1 2 1 1 7
⇒ 0 −5 0 0 −8
0 0 1 −1 33/10
28
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Donc il est clair que le rang(Ab)=rang(A)=3 avec m<n, donc le système (S 2 ) possède une infinité
de solutions. Si x4 =0, alors ; x1 = 0.5, x2 = 1.6 et x3 =3.3 et en changeant la valeur de x4 on aura
une infinité de solutions.
Exemple 3 :
( )( )( )
1 3 1 5 1 3 1 5 1 3 1 5
2 −1 −1 −3 0 −7 −3 −13 0 −7 −3 −13
4 2 1 7 0 −10 −3 −13 0 0 9 /7 39/7
5 −2 4 −4 ⇒ 0 −17 −1 −29 ⇒ 0 0 44 /7 18/7
(9/7)×z = 39/7, ce qui implique que z = 39/9, et que (44/7)×z =18/7, ce qui implique que z =18/44,
et ceci est impossible. Donc le système (S 3 ) est incompatible (pas de solution).
Définition 1 : Etant donné le système linéaire {AX=b, X≥0}, où A est une matrice m×n de rang égal
à m tel que m ≤ n. Soit N={1,2,…,n} ; I={j1,j2,…,jm} : I⊆N. A cet ensemble d’indices correspond
une matrice carrée régulière (m×m) extraite de A notée AI=(aj1,…,ajm). L’ensemble I est dit une base
si AI est non singulière c-à-d déterminant de AI est différent de 0.
Etant donnée une base I, en réordonnant les colonnes de A, on peut écrire A=( AI, AJ) ; ceci est
équivalent à dire que :
→ (AI)XI+( AJ)XJ = b
29
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
→ XI = (AI)-1b-(AI)-1(AJ)XJ
X* = (XI,XJ)t est dit solution de base si elle vérifie AX *=b et X*=(XI=(AI)-1b, XJ=0)t. Si en plus XI≥0,
alors X* est une solution de base réalisable.
Remarque: Si A est du rang m, le nombre de solutions de bases réalisables est au plus égal à
m
C n =n !/( n−m)! .
30
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Exemple 1 : Déterminer les bases et les bases réalisables du système d’inéquations suivant :
( 1 1 1 0¿ ) ¿
{x1+x2+x3 =6¿{ x2 +x4=3 ¿ ¿ ⇒
AX=¿
¿
¿¿
A I =¿ (1 1¿) ¿ ¿¿ X I =( A I ) b=¿ (1 - 1 ¿ ) ¿ ¿ ¿
−1
1) Pour I={1,2}, ¿ on a ¿
D,’où I est une base réalisable.
A I =¿ (1 1¿ ) ¿ ¿¿
2) Pour I={1,3}, ¿ on a, det( A I )=0 , d’où I n’est pas une base.
A I =¿ (1 0¿ ) ¿ ¿¿ X I =( A I )−1 b=¿ (1 0 ¿ ) ¿ ¿ ¿
3) Pour I={1,4}, ¿ on a ¿
D’où, I est une base réalisable.
A I =¿ (1 1¿) ¿ ¿¿ X I =( A I ) b=¿ ( 0 1 ¿ ) ¿ ¿ ¿
−1
4) Pour I={2,3}, ¿ on a ¿
D’où, I est une base réalisable.
A I =¿ (1 0¿) ¿ ¿¿ X I =( A I ) b=¿ ( 1 0 ¿ ) ¿ ¿¿
−1
5) Pour I={2,4}, ¿ on a ¿
D’où, I n’est pas une base réalisable.
A I =¿ (1 0¿ ) ¿ ¿¿ X I =( A I )−1 b=¿ (1 0 ¿ ) ¿ ¿ ¿
6) Pour I={3,4}, ¿ on a ¿
Donc, I est une base réalisable.
31
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
On récapitule,
Pour les bases non réalisables, les sommets correspondant n’appartiennent pas au domaine des
solutions réalisables.
{x1 ≤6¿{x1/4+x2≤6¿{3x1+2x2≤2 ¿ , en rajoutant des variables d’écarts aux différentes inégalités, on aura :
32
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
3
On a le nombre total de solutions de base est C5 =10 , or on a déterminé uniquement 5, les 5 autres
choix de bases ne conduisent pas à des solutions réalisables.
(P)≡¿{Z(max)=CX¿ { AX=b¿¿¿
−1 −1
X I =( A I ) b−( A I ) ( A J ) X J , et
D’après ce qui précède et pour une base I, on a : AX =b ⇒
CX=C I X I +C J X J
=C I ( A I )−1 b−C I ( A I )−1 ( A J ) X J +C J X J
=Πb+(C J −ΠA J )X J
−1
Π=C I ( A I )
où est dit vecteur multiplicateur.
33
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Il est clair que l’ensemble des indices des variables est N={1, 2, 3, 4, 5} et AI = (a1, a 2).
A I =¿ (1 1¿) ¿ ¿¿
Comme la matrice ¿ est inversible, alors on peut écrire le système sous la forme
suivante :
(1 1 ¿) ¿ ¿ ¿
¿
En multipliant ce dernier système par (AI)-1, matrice inverse de la matrice (AI), on aura :
( x1 ¿) ¿ ¿ ¿
¿
S
D’où la forme standard ( P ) de ( P) par rapport à la base {1,2} est :
34
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
(P )≡¿{Z(max)=2x3+x4−x5+5¿{x1=1−x3+2x4−2x5¿{x2=3−2x3−x4−2x5¿ ¿
S
S
Il est clair que le PL ( P ) possède x1=1 et x₂=3 comme solution de base réalisable associée à la
base {1,2} et Z(x1=1, x₂=3)=5.
Théorème d’optimalité : Etant donné un programme linéaire écrit sous forme standard
relativement à une base I. Si le vecteur coût C est négatif (i.e. (C J - ᴫ AJ) ≤ 0), alors la solution de
base réalisable correspondante à la base I est optimale (i.e. X J*=(AI)-1b et XJ*=0) et la valeur de la
fonction objectif correspondante est Z*=ᴫb.
(CJ - ᴫAJ) ≥ 0.
Remarque : Si pour une base donnée I, la solution de base réalisable correspondante est optimale,
alors la base I est dite base optimale.
(P)≡¿{Z(max)=CX¿ { AX≤b¿¿¿
Avec : X est un vecteur colonne de Rn , C est un vecteur ligne de Rn ,
b est un vecteur colonne de Rm; A : m×n.
35
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
On lui associe un autre problème de la PL (D) dit dual de (P) ((P) est dit primal).
⇒
(D( D) ≡(P)≡¿{Z(max)= CX¿ { AX≤b, ¿ ¿¿¿
Théorème de dualité : Soit le problème linéaire suivant :
36
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
(P)≡¿{Z(max)=CX¿{ AX=b, ¿ ¿
Son dual est le programme linéaire suivant :
(D)≡¿{W(min)=Yb ¿{ YA≥C,¿ ¿
Exemple : Soit le PL Primal suivant :
1) Les deux programmes ont des solutions optimales finies X* et Y* telles que CX*=Y*b.
2) L’un des deux problèmes n’a pas de solutions réalisables et l’autre a des solutions réalisables
mais pas de solutions optimales finies (i.e non bornée).
37
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
38
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Exemples :
(Primal) (Dual)
¿ ¿
{ 1
(P)≡¿{Z(max)= x1+x2¿{ -x1+x2 =1¿ x1− x2 =0¿ ¿
2 { 1
(D)≡¿{W(min)= y1¿{ −y1+y2≥1¿ y1− y2≥1¿ ¿
2
On a X*=( x 1 , x 2 )=(1,2) est réalisable avec Z*=3, et Y*=(y1, y2)=(3,4) est réalisable avec W*=3. Ces
¿ ¿ ¿
deux solutions sont optimales de (P) et (D) respectivement (car on a CX*= x 1 + x 2 =3=Y*b= y 1 =3).
(Primal) (Dual)
(Primal) (Dual)
Nous allons maintenant donner une condition nécessaire et suffisante pour que deux solutions
réalisables X et Y soient optimales. Cette condition sera utilisée dans certaines techniques de
résolution de problèmes de programmation linéaire (méthode primal-dual). Etant données les deux
PLs duaux suivants :
(Primal) (Dual)
m
¿ (∑ a ij y j −c j )=0 ,
Si
x j >0 , alors i=1
Pour le PL (D) la troisième contrainte y 1 +2 y 2 ≥20 , correspond à la variable x3 dans (P). On peut
¿
¿ ¿
x =0, et c’est
vérifier facilement que y 1 +2 y 2 =4+2(9)=22>20 , Ceci implique forcement que 3
¿
x
le cas car 3
=0 .
41
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
CHAPITRE 4
On a présenté dans le chapitre précédent une procédure graphique pour résoudre un programme
linéaire à deux variables. Par contre, dans la plupart des problèmes réels, on a plus que deux
variables à déterminer. Nous décrivons ici une procédure algébrique pour résoudre les programmes
linéaires avec plus que deux variables. Cette méthode a été développée par G. B DANDZIG aux
États unis en 1947, et est appelée méthode du simplexe. L’idée de base de l’algorithme du simplexe
consiste à partir d’un point extrême X0 de l’ensemble D des solutions réalisables à se déplacer vers
un point extrême X1, où la valeur de Z(X1) est meilleure. On suppose dans l’algorithme du simplexe
qu’on a une solution réalisable de base de départ. Dans cette section, la méthode de simplexe est
présentée pour les problèmes de maximisation
(0) Mettre le PL sous sa forme standard par rapport à une base réalisable I.
(1) Déterminer les coefficients des variables hors base de la fonction objectif et poser
cs=maxj∊J{cj}.
Choisir r∊K et mettre à nouveau le PL sous forme standard par rapport à la nouvelle
base I=I-{r}+{s} et aller en (1).
42
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
(1) Déterminer les coefficients des variables hors base de la fonction objectif et poser
cs=minj∊J{cj}.
Il est clair que {3,4,5} forme une base réalisable de départ (ce qui est en bleu dans le tableau), d’où
les variables hors base x1 =x₂=0 et x3=2, x4=4, x5 =5 et Z*=0. La solution (0, 0, 2, 4, 5) n’est pas
optimale car d’après le théorème d’optimalité il existe au moins un élément dans le vecteur (C J -
ᴫAJ) qui est positif (on a le c1=1 et le c2=2).
VB x1 x₂ x3 x4 x5 b k=cp/Lp
x3 -3 2 1 0 0 2 2/2=1 2ème étape :
Lp ligne pivot
x4 -1 2 0 1 0 4 4/2=2
x5 1 1 0 0 1 5 5/1=5
-Z 1 2 0 0 0 0
Variable entrante (colonne pivot) : On a max (coeff (Z))=2>0, donc x2 est la variable entrante.
Variable sortante (ligne pivot) : On a min(k>0), min(1, 2, 5)=1, donc x3 est la variable sortante.
Lp∩Cp = l’élément pivot=2.
On met à nouveau le PL sous forme standard par rapport à la nouvelle base {2, 4, 5}, on aura le
tableau suivant :
Cp
VB x1 x₂ x3 x4 x5 b k=cp/Lp
x2 -3/2 1 ½ 0 0 1
43 Lp
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
x4 2 0 -1 1 0 2 2/2=1
x5 5/2 0 -½ 0 1 4 4/(5/2)=8/5
-Z 4 0 -1 0 0 -2
La solution (0, 1, 0, 2, 4) n’est pas optimale car d’après le théorème d’optimalité il existe au moins
un élément dans le vecteur (C j −ΠA j ) qui est positif (on a uniquement le 4). Donc on cherche
d’avoir une solution de base réalisable meilleure.
Variable entrante (colonne pivot) : On a max (coeff (Z))=4>0, donc x1 est la variable entrante.
Variable sortante (ligne pivot) : On a min (k>0), min (1, 8/5)=1, donc x4 est la variable sortante.
Lp∩Cp = l’élément pivot=2.
On met à nouveau le PL sous forme standard par rapport à la base {2, 1, 5}, on aura le tableau
suivant :
VB x1 x2 x3 x4 x5 b k=cp/Lp
x2 0 1 -¼ ¾ 0 5/2
x1 1 0 -½ ½ 0 1
x5 0 0 ¾ -5/4 1 3/2 (3/2)/(3/4)=2
-Z 0 0 1 -2 0 -4
x2 0 1 0 ⅓ ⅓ 3
x1 1 0 0 -⅓ -⅔ 2
x3 0 0 1 -5/3 4/3 2
-Z 0 0 0 -1/3 -4/3 -8
Il est clair d’après le tableau final que tous les cj : j ∈J sont négatifs, alors la solution actuelle est
¿
optimale avec Z =8 et x 1=2, x 2=3 .
44
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Il est clair que I={4,5,6} est une base réalisable. Donc l'algorithme du simplexe s'applique avec une
( x1 , x 2 , x 3 , x 4 , x 5 , x 6 )=(0,0,0 , 60 ,18 , 20 )
solution de base de départ .
Somme V x1 x2 x3 x4 x x b
t B 5 6
x3 10 5 1 0 0 0 200
x4 2 3 0 1 0 0 60
O x5 1 0 0 0 1 0 18
x6 0 1 0 0 0 1 20
-Z 1000 120 0 0 0 0 0
0
A x2 2/3 1 0 1/3 0 0 20
x5 1 0 0 0 1 0 18
45
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
x6 −2/3 0 0 −1/3 0 1 0
x1 1 0 3/20 −1/4 0 0 15
B x2 0 0 −1/10 1/2 0 0 10
x5 0 0 −3/20 1/4 1 0 3
x6 0 0 1/10 −1/2 0 1 10
¿
I = {3,2,5,6 }
Pour ce problème la base correspondant au sommet A, est une base dégénérée, mais la
solution optimale correspondant au sommet B, n’est pas dégénérée par le fait qu’on a pu enlever la
dégénérescence dans la dernière itération du simplexe.
Interprétation graphique
46
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Dans le cas d'un problème de maximisation sous contraintes et avec un second membre positif :
Etapes Justification
1. Formuler un programme linéaire pour le Pour obtenir une représentation mathématique du
problème réel. problème
2. Vérifier que le second membre du Ceci est nécessaire pour obtenir comme variable
programme linéaire est positif de base initiale l’origine
3. Ecrire le programme linéaire sous une Mettre toutes les contraintes sous forme d’égalité
forme standard
4. Construire le premier tableau de simplexe Ce tableau correspond à la solution initiale de
base
5. Choisir comme variable entrante dans la La valeur de cj-zj indique la quantité
base celle qui admet le plus grand effet net d’augmentation de la fonction objectif si on
positif cj-zj. augmente la valeur de xj d’une unité.
6. Choisir la variable sortante de la base celle La plus petite valeur de bi/aij indique le nombre
qui admet le plus petit ratio supérieur à zéro. maximal d’unité de xj qu’on peut introduire avant
que la variable de base de l’ième ligne ne soit
égale à zéro.
7. Construire le nouveau tableau en utilisant la Cette règle nous permet entre autre de calculer les
règle de pivot valeurs des nouvelles variables de décision
8. Faire le test d’optimalité. Si Si (cj-zj) 0 alors on n’a pas d’intérêt à faire
(cj-zj) 0 pour toutes les variables (hors base), entrer dans la base aucune de ces variables. Une
la solution obtenue est donc optimale. Sinon telle introduction engendra une diminution de la
retourner à l’étape 5. fonction objectif.
47
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Soit (P) un PL écrit sous sa forme standard. On associe à (P) le programme auxiliaire (PA)
suivant :
Théorème : Soit (X*,V*) une solution réalisable de base optimale de (PA) : Si ψ*=0, alors X* est une
solution réalisable de base pour (P).
Lemme : Soit (X*,V*) une solution optimale de (PA). Si ψ *>0, alors le PL (P) n’admet pas de
solutions réalisables.
48
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
Soit vr une variable artificielle de base. Effectuer un pivotage faisant sortir le vr et entrant une
variable xi.
Phase 2 :
Appliquer l’algorithme du simplexe à (P) sous sa forme obtenue à la fin de la première phase.
49
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
VB x1 x2 x3 x4 v b
v 3 1 -1 0 1 6
x4 1 3 0 1 0 10
-Z 1 2 0 0 0 0
-ψ -3 -1 1 0 0 -6
On a d’après le tableau final, ψ*=0, d’où la solution de base actuelle (x1, x2 ,x3, x4) = (2,0,0,8) est
optimale pour le PL (PA) et est réalisable pour le PL (P), mais elle n’est pas optimale, car les
coefficients de la fonction Z sont positifs.
Phase 2 : On réapplique l’algorithme du simplexe à (P) sous sa forme obtenue à la fin de la phase 1,
on aura :
VB x1 x2 x3 x4 b
x1 1 1/3 -1/3 0 2
x4 0 8/3 1/3 1 8
-Z 0 5/3 1/3 0 -2
x1 1 0 -3/8 -1/8 1
50
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
x2 0 1 1/8 3/8 3
-Z 0 0 1/8 -5/8 -7
x1 1 3 0 1 10
x3 0 8 1 3 24
-Z 0 -1 0 -1 -10
VB x1 x2 x3 v1 v2 b
v1 1 1 1 1 0 1
v2 0 1 1 0 1 1
-Z 2 1 0 0 0 0
-ψ -1 -2 -2 0 0 -2
x2 1 1 1 / 0 1
Oter la variable
artificielle de la
51 base optimale
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
v2 -1 0 0 / 1 0
-Z 1 0 -1 / 0 -1
-ψ 1 0 0 / 0 0
x2 0 1 1 / / 1
x1 1 0 0 / / 0
-Z 0 0 -1 / / -1
-ψ 0 0 0 / / 0
On a d’après le tableau final ψ*=0, d’où la solution de base actuelle (x1, x2 ,x3) = (0,1,0) est optimale
pour le PL (PA) et est optimale pour le PL (P) (avec Z *=1) car tous les coefficients des variables
hors base de la fonction objectif Z sont négatifs (ie. le vecteur C ≤ 0).
(P)≡¿{Z(max)= x1+ 2 x3+ 4¿{ x1+2x2+ 3 =2¿{ x1+ 2 5x3 =12¿{ x1+2x2+6x3+ 4 =13 ¿
Phase 1 : On associe à (P) son problème auxiliaire (PA) suivant :
52
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
53
Programmation linéaire : Par N. MEDDAH, MCB en mathématiques appliquées
VB x1 x2 x3 x4 v1 v2 b
v1 1 2 1 0 1 0 2
v2 1 1 5 0 0 1 12
x4 1 2 6 1 0 0 13
-Z 0 -1 -5 0 0 0 -13
-ψ -2 -3 -6 0 0 0 -14
x3 2
v2 2
x4 1
-Z -3
-ψ 4 9 0 0 6 0 -2
Il est clair que la solution de base actuelle est optimale pour le PL (PA) (contraintes d’optimalité
sont vérifiées), avec un ψ* >0. Donc le problème (P) n’admet pas de solution réalisable car son
domaine de solutions réalisables D(P) est vide.
54