Vous êtes sur la page 1sur 53

1

PARTIE 1: Optimisation Linéaire


2

Chapitre I. Programmation linéaire


I. Introduction

I.1 Exemple 1.

Une entreprise spécialisée dans la fabrication de matériels informatiques propose à son


catalogue d’ordinateurs des centaines de référence. Pour simplifier, on ne s’intéresse ici qu’á
deux types d’ordinateurs: le IM4 et le IM5. Chacun d’eux comporte un processeur - le même
- mais les deux modèles diffèrent en particulier par le nombre de barrettes mémoires. Plus
précisément, le IM4 comporte 2 barrettes alors que le IM5 en comporte 6. Le marché pour
ces composants est tel qu’on ne peut espérer acheter auprès des fournisseurs habituels plus de
10000 processeurs pour le trimestre à venir et plus de 48000 barrettes. Une autre limitation
risque d’intervenir sur la production. L’assemblage est caractérisé, en particulier, par une
opération délicate, qui pour l’IM4 est de 3 minutes alors que pour l’IM5 elle n’est que d’une
minute; on ne dispose a priori pour l’assemblage de ces deux types de machines que de 24000
minutes pour le trimestre à venir. Enfin, compte tenu des conditions actuelles du marché, on
peut espérer retirer un profit de 4000 DH sur l’IM4 et de 8000 DH sur l’IM5. Le problème est
de déterminer les quantités de chacun des deux types d’ordinateurs à fabriquer de manière à
obtenir le plus grand profit possible.
Modélisation du problème
Soit x1 la quantité d’ordinateurs de type IM4 et x2 la quantité d’ordinateurs de type
IM5 á fabriquer de manière à obtenir le plus grand profit possible. La première porte sur la
limitation du nombre de processeurs disponibles: chaque machine utilise un processeur et on
peut en disposer de 10 000. On doit donc imposer:

x1 + x2 ≤ 10000

De même, le nombre de barrettes est limité. Compte tenu du nombre de barrettes dans
chacun des 2 ordinateurs et du nombre de barrettes disponibles, cette contrainte se traduit
par :
2x1 + 6x2 ≤ 48000
3

Enfin, la contrainte portant sur le temps d’assemblage s’écrit:

3x1 + x2 ≤ 24000

La fonction objectif:
On souhaite maximiser le profit qui est représenté par:

4000x1 + 8000x2 .

Le problème initial est donc modélisé par le problème de programmation mathématique


suivant:
max(4000x1 + 8000x2 )

sous les contraintes suivantes





 x1 + x2 ≤ 10000


 2x1 + 6x2 ≤ 48000




 3x1 + x2 ≤ 24000


 x1 , x2 ≥ 0.

Le problème initial est donc modélisé par le problème de programmation mathématique suiv-
ant:
max(4000x1 + 8000x2 )

sous les contraintes suivantes:





 x1 + x2 ≤ 10000


 2x1 + 6x2 ≤ 48000

 3x1 + x2 ≤ 24000





 x1 , x2 ≥ 0.

II. Les programmes linéaires


4

Les problèmes comme celui de l’exemple 1 sont appelés problèmes de programmation


linéaire ou PL. La programmation linéaire est la branche des mathématiques appliquées qui
traite ces problèmes.
Exemple de PL:
Maximiser 5x1 + 4x2 + 3x3 Sous les contraintes :





 2x1 + 3x2 + x3 ≤ 5


 4x1 + x2 + 2x3 ≤ 11

 3x1 + 4x2 + 2x3 ≤ 8







 x1 , x2 , x3 ≥ 0

Un autre problème pourrait être:


Minimiser 3x1 + x2
Sous les contraintes : 



 6x2 − x3 + x4 ≥ −3


7x + 2x4 = 5

 2



x1 + x2 + x 3 = 1



x3 + x4 ≤ 2






 x ,x ≥ 0

2 3

II.2 Fonctions, équations et inéquations linéaires

Définition 1 : Soient c1 , c2 , ..., cn des nombres réels. La fonction f définie sur les variables
réelles x1 , x2 , ..., xn par :

f (x1 , x2 ..., xn ) = c1 x1 + c2 x2 + ... + cn xn

est appelée fonction linéaire.


Définition 2 : Soient f une fonction linéaire et b un nombre réel, alors l’équation
f (x1 , x2 , ..., xn ) = b est appelée l’équation linéaire et les inégalités

f (x1 , x2 , ..., xn ) ≤ b
5

f (x1 , x2 , ..., xn ) ≥ b

sont appellées des inéquations linéaires. Les équations et inéquations linéaires sont appelées
ici des contraintes linéaires.
Définition 3: Un programme linéaire est un problème qui consiste à maximiser ou minimiser
une fonction linéaire tout en respectant un ensemble fini de contraintes linéaires.
La fonction linéaire que l’on doit maximiser ou minimiser dans un problme PL est dite fonction
objectif du problème.
Exemple: La fonction f définie par:

f (x1 , x2 ) = 4000x1 + 8000x2

est la fonction objective du problème d’exemple 1.


Les nombres x1 , x2 , ..., xn qui satisfont toutes les contraintes d’un problème PL donné
constituent une solution réalisable ou admissible de ce problème.
Par exemple nous avons vu que x1 = 0, x2 = 500 est une solution réalisable d’exemple 1.

II.3 Solution réalisable, Solution optimale

Définition 4: Une solution réalisable qui maximise la fonction objective d’un problème
PL (sous la forme standard) est appelée solution optimale.
La valeur associée à une solution optimale est appelée valeur optimale du problème.
Par exemple x1 = 300, x2 = 700 est la solution optimale d’exemple 1. Ainsi la valeur optimale
correspondante est 68000000.
6

IV. Mise sous forme standard

Maximiser
n
X
cj x j
j=1

Sous conditions: 


 Ax ≤ b

Cx = d



x≥0

est appelé forme standard d’une PL. On peut se ramener toujours à cette forme quitte à
remplacer :

• Minimiser f est équivalent à maximiser -f

• x = x+ − x− avec x+ ≥ 0 et x− ≥ 0

• a = b est équivalent à a ≥ b et b ≥ a

V. Définitions
Définition 1:
L’ensemble {x ∈ Rn /Ax ≤ b, Cx = d} : l’ensemble des solutions réalisables (admissibles),
est appelé polyèdre. Cet ensemble est convexe.
Définition 2:

• Un sommet du polyèdre P = {x ∈ Rn /Ax ≤ b, Cx = d} est un point x qui ne peut pas


s’écrire comme combinaison convexe de deux points de P distincts de x.

• Le maximum de la fonction objectif, s’il existe, est atteint au moins en un sommet de


P.

VII. Modélisation de certains problèmes économiques

VII.1 Problème d’optimisation en économie


Les problèmes que l’on étudie dans ce paragraphe consistent à trouver les optimums d’une
fonction, qu’on appelle fonction économique, donnée f (x1 , ..., xn ) = c1 x1 + ... + xn où les ci
7

sont des constantes, les variables étant liées par certaines relations qui sont des équations ou
des inéquations linéaires gi (x1 , ..., xn ) ≥ 0 pour tout i = 1, ..., p.
L’optimisation de telles fonctions offre des possibilités de modélisation est un ensemble de
méthodes permettent d’aboutir à des solutions cohérentes des modèles. Le champ actuel des
applications de l’optimisation à l’économie est très vaste. Un domaine important concerne
la gestion et l’utilisation des ressources rares pour accroı̂tre la productivité. Ces applications
incluent des problèmes opérationnels tels que la distribution de biens, l’ordonnancement de
la production, la sélection de portefeuilles, la conception et l’analyse de réseaux de transport.

Les étapes à suivre dans le processus de modélisation

La structure d’un modèle de programmation linéaire comporte trois élèments importants:

• Les variables de décision.

• Les contraintes linéaires.

• La fonction économique où fonction objectif.

VII.2 Exemples de problèmes se ramenant à une programmation


linéaire

VII.2.1 Problème de transport


Une usine stocke un produit dans trois sites S1 , S2 et S3 . Les quantités stockées dans
chaque site sont respectivement 40, 50 et 30 tonnes. Les dépôts doivent alimenter quatre
magasins B1 , B2 , B3 et B4 . Les quantités nécessaires minimum au point de vente B1 sont de
10 tonnes, 12 tonnes au point B2 , 14 tonnes au point B3 et 9 tonnes au point B4 .
Question: Comment l’entreprise doit-elle répartir les stocks du produit entre les points de
vente?
Modélisation du problème
Notons xij la quantité du produit que le dépôt Si livre au magasin Bj . Ces inconnues:

x11 , x12 , x13 , x14 , x21 , x22 , x23 , x24 , x31 , x32 x33 , x34
8

sont donc positives ou nulles.


Comme les dépôts S1 , S2 et S3 ne peuvent livrer respectivement que 40 tonnes, 50 tonnes et
30 tonnes au maximum, alors on a:

x + x12 + x13 + x14 ≤ 40
 11



x21 + x22 + x23 + x24 ≤ 50



x31 + x32 + x33 + x34 ≤ 30

Comme la quantité minimum à livrer aux magasins B1 , B2 , B3 et B4 respectivement étant


de 10 tonnes, 12 tonnes, 14 tonnes et 9 tonnes, alors on a :




 x11 + x21 + x31 ≥ 10


 x12 + x22 + x32 ≥ 12




 x13 + x23 + x33 ≥ 14


 x14 + x24 + x34 ≥ 9

Toute solution à ce système d’inéquation est une solution, c’est-à-dire est une répartition
réalisable des produits stockés entre les points de vente. Parmi toutes ces solutions, nous
allons chercher les plus économiques. Supposons que cij soit le coût du transport du dépôt
Si au magasin Bj . Pour une solution donnée du système d’inéquation, le coût correspondant
est:
i=3,j=4
X
c11 x11 + c12 x12 + ... + c34 x34 = cij xij
i=1,j=1

Nous devons donc chercher à minimiser cette fonction. Nous avons donc le modèle mathématique
suivant: 



 xij ≥ 0


x11 + x21 + x31 ≥ 10










 x12 + x22 + x32 ≥ 12


x13 + x23 + x33 ≥ 14





x14 + x24 + x34 ≥ 9



x11 + x12 + x13 + x14 ≤ 40






x21 + x22 + x23 + x24 ≤ 50










 x31 + x32 + x33 + x34 ≤ 30


min(c11 x11 + c12 x12 + ... + c34 x34 )


9

Exercice: Un chocolatier-confisseur confectionne des assortiments de chocolats. Dans


ceux-ci, il a convenu d’y placer 3 sortes de chocolats, dénotés chocolats 1,2 et 3, dont chaque
kg lui coûte respectivement 4 DH, 1,45 DH et 2,40 DH. Chaque assortiment doit peser un kg
et se vendra 8 DH. Le chocolat 1 doit représenter entre 0.1 et 0.2 du poids d’un assortiment.
Les chocolats 1 et 2 présents dans un assortiment ne doivent pas peser plus de 800g. Au moins
la moitié du poids d’un assortiment doit provenir des chocolats 1 et 3. Quelle proportion de
chaque sorte de chocolats, le chocolatier-confisseur doit-il utiliser pour maximiser les revenus
nets qu’il tirera de la vente de ses assortiments ?

Un problème de production
Soit une entreprise produisant deux biens A et B à l’aide de quatre procédés de fabrication
(ou activités). Les activités 1 et 2 sont réservées à la production du bien A et les activités
3 et 4 la production du bien B. Les données de production sont regroupées dans le tableau
suivant:
10

Facteur de Bornes de Bien A Bien A Bien B Bien B


production ressources Activité1 Activité2 Activité3 Activité4
Equipement (heure-machine) 70 3 2 4 3
Main d’ouvre (heure) 120 7 8 10 12
Matière première (Kg) 15 1 1 1 1
Coût de production unitaire 2 5/2 4 3

On suppose en outre que l’entreprise écoule toute sa production de A et B aux prix de


vente unitaire respectifs 8 et 11.
Le problème initial de l’entreprise est repartie sa production entre les activités 1, 2, 3 et 4
de façon à maximiser sa marge brute totale à l’aide des ressources en facteurs de production
dont elle dispose.
Soient x1 , x2 , x3 , x4 ≥ 0 des niveaux d’activités donnés respectifs aux activités 1, 2, 3 et 4.
Les contraintes de limitations des ressources s’écrivent pour les trois facteurs de production:
Pour l’équipement:
3x1 + 2x2 + 4x3 + 3x4 ≤ 70

Pour la main d’ouvre:


7x1 + 8x2 + 10x3 + 12x4 ≤ 120

Pour la matière première :


x1 + x2 + x3 + x4 ≤ 15

Ces inégalités peuvent être transformées en égalités par l’adjonction de variables dites d’écart
mesurant les excédents des facteurs. Soient e1 , e2 , e3 les variables d’écart pour les contraintes
respectives à l’équipement, la main d’ouvre et la matière première.
L’excédent en ressource d’équipement est:

e1 = 70 − (3x1 + 2x2 + 4x3 + 3x4 )

L’excédent en ressource de la main d’ouvre:

e2 = 120 − (7x1 + 8x2 + 10x3 + 12x4 )


11

L’excédent en ressource de la main d’ouvre:

e3 = 120 − (7x1 + 8x2 + 10x3 + 12x4 )

Un calcul élémentaire des marges brutes unitaires permet d’exprimer la marge brute totale
en fonction des niveaux d’activités :

11
6x1 + x2 + 7x3 + 8x4
2

On cherche donc à maximiser cette fonction.


VIII. Problème général de programmation linéaire

VIII.1 Problème général

Définition : Tout problème de programmation linéaire peut se mettre sous la forme suivante:
Trouver les nombres x1 , ..., xn soumis aux conditions suivantes:




 xi ≥ 0


a x + a12 x2 + ... + a1n xn ≥≤ b1

 11 1



..
.


am1 x1 + am2 x2 + ... + amn xn ≥≤ bm








et qui optimisent (maximisent ou minimisent) la fonction linéaire :

c1 x1 + ... + cn xn .

VIII.2 Problème canonique

Nous allons intéresser à un type particulier de programmation linéaire, appellé program-


mation canonique, et décrire une méthode algorithmique de résolutions.
12

Définition: On appelle programme linéaire canonique un programme du type:





 xi ≥ 0



a11 x1 + a12 x2 + ... + a1n xn ≤ b1




..





 .






 am1 x1 + am2 x2 + ... + amn xn ≤ bm


 u11 x1 + u12 x2 + ... + u1n xn = d1

.
 ..





um1 x1 + um2 x2 + ... + umn xn = dm










 bi , di ≥ 0


 max(c1 x1 + ... + cn xn )






VIII.3 Tableau initial d’un programme canonique

La résolution des programmes linéaires a plus de deux variables ne pourra se faire par
des méthodes géométriques. Comme la résolution des systèmes d’inéquations linéaires pose
de nombreux problèmes, nous allons nous ramener en introduisant des variables d’écart à un
système d’équations linéaires.
Afin de schématiser à l’extrême les procédures algébriques de résolution, nous allons convertir
notre programme en un tableau et mettre en évidence les propriétés de ce tableau ici d’un
programme canonique.
Dans le paragraphe suivant, nous verrons, comment à partir d’un programme linéaire quel-
conque, nous ramenons à un tableau analogue à un tableau d’un programme canonique.
13

Considérons un programme canonique :





 xi ≥ 0






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

 ..
.





am1 x1 + am2 x2 + ... + amn xn ≤ bm



bi ≥ 0









 max(c1 x1 + ... + cn xn )



Introduisons les variables d’écart. Nous obtenons le système suivant:





 xi ≥ 0






 a11 x1 + a12 x2 + ... + a1n xn + e1 = b1

 ..
.





am1 x1 + am2 x2 + ... + amn xn + em = bm



bi , ei ≥ 0









 max(c1 x1 + ... + cn xn )



Le tableau associé à ce programme est:

x1 x2 ··· xn e1 e2 · · · em
a11 a12 ··· a1n 1 0 ··· 0 b1
a21 a22 ··· a2n 0 1 ··· 0 b2
.. .. .. .. .. .. ..
. . . . . . .
am1 am2 · · · amn 0 0 ··· 1 bm
c1 c2 ··· cn 0 0 ··· 0 0

Remarque: Nous remarquons que les m dernières colonnes et m premières lignes de ce


tableau constituent une matrice carrée d’ordre m, appelée matrice de l’identité et les coeffi-
cients correspondant dans la fonction économique sont nuls.
14

Définition: On dit qu’un tableau est initialisé si les coefficients, dans les m dernières colonnes
de ce tableau, correspondant dans la fonction économique sont nuls.
Dans cet exemple, le tableau est initialisé. D’un tel tableau initialisé se dégage une solution
évidente.
x1 = 0, · · · , xn = 0, e1 = b1 , · · · , em = bm

et
c1 x1 + · · · + cn xn = 0.

Cette solution n’est pas évidement la solution maximale. Le fait remarquable que nous venons
de décrire est tout tableau initialisé donne directement une solution au programme considéré.
Exemple
Trois machines M1 , M2 et M3 peuvent produire chacune deux types de pièces P1 et P2 .
Le temps de fabrication d’une pièce de type Pi sur la machine Mj est donné dans le tableau
suivant en heures:

M1 M2 M3
P1 3 4 4
P2 4 6 5

On veut fabriquer au moindre coût 6 pièces de type P1 , 8 pièces de type P2 . La machine


M1 est disponible 14 heures, les machines M2 et M3 sont disponibles chacunes 24 heures. Le
coût horaires respectivement de M1 , M2 et M3 sont 7, 5 et 6.

1) Ecrire le programme linéaire modélisant ce problème.

2) Ce problème est-t-il canonique? sinon érire un programme canonique équivalent.

3) Ecrire le tableau correspondant.

4) Ce tableau est-t-il initialisé? Justifier votre réponse. Sinon initialisé ce tableau.

Solution
15

1) Le programme est le suivant :





 xij ≥ 0






 x11 + x12 + x13 = 6


x + x22 + x23 = 8

 21



3x11 + 4x21 ≤ 14



4x12 + 5x22 ≤ 24






4x13 + 6x23 ≤ 24







 min(z = 21x + 28x + 20x + 30x + 24x + 30x )
11 21 12 22 13 23

2) Ce programme n’est pas canonique, sa forme canonique est:





 xij ≥ 0






 x11 + x12 + x13 = 6


x + x22 + x23 = 8

 21



3x11 + 4x21 ≤ 14



4x21 + 5x23 ≤ 24






4x31 + 6x32 ≤ 24







 max(z = −21x − 28x − 20x − 30x − 24x − 30x )
11 21 12 22 13 23

3) Introduisant les variables d’écart dans les inéquations. Le système s’écrit:





 xij ≥ 0






 x11 + x12 + x13 = 6


x + x22 + x23 = 8

 21



3x11 + 4x21 + e1 = 14



4x21 + 5x23 + e2 = 24









 4x31 + 6x32 + e3 = 24



 max(z = −21x − 28x − 20x − 30x − 24x − 30x )
11 21 12 22 13 23
16

Le tableau correspondant est:

x11 x12 x13 x21 x22 x23 x31 x32 e1 e2 e3


1 1 1 0 0 0 0 0 0 0 0 6
0 0 0 1 1 1 0 0 0 0 0 8
3 0 0 4 0 0 0 0 1 0 0 14
0 4 0 0 0 5 0 0 0 1 0 24
0 0 0 0 0 0 4 6 0 0 1 24
−21 −20 −24 −28 −30 −30 0 0 0 0 0 0
Ce tableau n’est pas initialisé. Pour cela on procède comme suit:
introduisant d’autres variables x et y dans les deux premières équations.
Considérons la nouvelle fonction:

max(−21x11 − 28x21 − 20x12 − 30x22 − 24x13 − 30x23 + c1 x + c2 y)

Le tableau associé s’écrit donc:


x11 x12 x13 x21 x22 x23 x31 x32 x y e1 e2 e3
1 1 1 0 0 0 0 0 1 0 0 0 0 6
0 0 0 1 1 1 0 0 0 1 0 0 0 8
3 0 0 4 0 0 0 0 0 0 1 0 0 14
0 4 0 0 0 5 0 0 0 0 0 1 0 24
0 0 0 0 0 0 4 6 0 0 0 0 1 24
−21 −20 −24 −28 −30 −30 0 0 c1 c2 0 0 0 0
Qui est équivalent à:

x11 x12 x13 x21 x22 x23 x31 x32 x y e1 e2 e3


1 1 1 0 0 0 0 0 1 0 0 0 0 6
0 0 0 1 1 1 0 0 0 1 0 0 0 8
3 0 0 4 0 0 0 0 0 0 1 0 0 14
0 4 0 0 0 5 0 0 0 0 0 1 0 24
0 0 0 0 0 0 4 6 0 0 0 0 1 24
−21 − c1 −20 − c1 −24 − c1 −28 − c2 −30 − c2 −30 − c2 0 0 0 0 0 0 0 −6c1 − 8c2
17

Ce dernier tableau s’obtient en ajoutant à la dernière ligne −c1 fois la première et −c2 fois
la seconde. Ce tableau est initialisé.
Exemple:
Une entreprise dispose de deux usines de fabrications U1 et U2 et de trois dépôts D1 , D2
et D3 . Les usines, qui ont des disponibilités limitées doivent fournir au dépôt les quantités
demandées. L’acheminement des marchandises a un coût (frais de transport, de carburant,
taxes,...) et ce coût varie suivant les destinations. Le problème qui se pose est celui de
l’acheminement au moindre coût. Les disponibilités de l’usine U1 sont de 18, de U2 de 32. Les
demandes des dépôts D1 , D2 et D3 sont respectivement de 9, 21 et 20. Les coûts de transports
de l’usine U1 à chacun des dépôts D1 , D2 et D3 sont respectivement de 13, 9 et 15 et ceux de
l’usine U2 sont respectivement de 11, 10 et 18 par quantité transportée.
1) Ecrire le programme linéaire modélisant ce problème.
2) Ce problème est-t-il canonique? sinon érire un programme canonique équivalent.
3) Ecrire le tableau correspondant.
4) Ce tableau est il initialisé? Justifier votre réponse. Sinon initialisé ce tableau.
18

IX. Cas où les contraintes sont des inéquations dans les deux sens ou des
équations
Supposons que l’on ait un programme du type:





 xi ≥ 0


a11 x1 + a12 x2 + ... + a1n xn ≤ b1






 ..



 .


ar1 x1 + ar2 x2 + ... + arn xn ≤ br





ar+11 x1 + ar+12 x2 + ... + ar+1n xn ≥ br+1


 ..
.






am1 x1 + am2 x2 + ... + amn xn ≥ bm










 max(c1 x1 + ... + cn xn )



Nous introduisons les variables d’écarts positives, en les ajoutant lorsque le seconde mem-
bre est supérieur au premier et en les retranchant dans le cas contraire. Nous obtenons le
programme suivant:




 xi , ej ≥ 0


a11 x1 + a12 x2 + ... + a1n xn + e1 = b1






 ..



 .


ar1 x1 + ar2 x2 + ... + arn xn + er = br





ar+11 x1 + ar+12 x2 + ... + ar+1n xn − er+1 = br+1


 ..
.






am1 x1 + am2 x2 + ... + amn xn − em = bm










 max(c1 x1 + ... + cn xn )




19

Le tableau correspondant à un tel système est le suivant:

x1 x2 ··· xn e1 · · · er er+1 · · · em
a11 a12 ··· a1n 1 0 ··· 0 0 ··· 0 b1
.. .. .. .. .. .. .. ..
. . . . 0 . . . ··· .
ar1 ar2 ··· arn 0 0 1 0 ··· 0 br
..
ar+11 ar+12 · · · ar+1n 0 ··· 0 0 −1 ··· . br+1
.. .. .. .. .. .. .. ..
. . . . . ··· . 0 0 . 0 .
am1 am2 ··· amn 0 ··· 0 0 0 ··· −1 bm
c1 c2 ··· cn 0 ··· 0 0 0 ··· 0

Ce tableau n’est pas initialisé: En effet, nous n’avons qu’une partie des vecteurs constituant
la matrice identité. Les contraintes bi ≥ 0 nous empêchent de remplacer les vecteurs colonnes
du type    
0 0

..
 
..

   

 . 


 . 

   

 0 


 0 

   

 −1 
 par des vecteurs de types 
 1 .

   
0 0
   
   
.. ..
   

.
 
.

   
   
0 0
D’après le tableau précédent, il manque m-r vecteurs colonnes de la matrice identité.

IX.1 Initialisation du tableau


1) On introduit m − r variables artificielles η1 , ...ηm−r et on affectue à la fonction économique
des coefficients w négatifs. Ainsi nous sommes amenés à maximiser la fonction:

c1 x1 + c2 x2 + ... + cn xn + wη1 + ... + wηm−r .


20

Le tableau devient:

x1 x2 ··· xn e1 · · · er er+1 · · · em η1 · · · ηm−r


a11 a12 ··· a1n 1 0 ··· 0 0 ··· 0 0 ··· 0 b1
.. .. .. .. ... .. .. .. .. ..
. . . . 0 . . ··· . . ··· 0 .
ar1 ar2 ··· arn 0 0 1 0 ··· 0 0 ··· 0 br
..
ar+11 ar+12 · · · ar+1n 0 ··· 0 0 −1 ··· . 1 0 0 br+1
.. .. .. .. .. .. .. .. .. ..
. . . . . ··· . 0 0 . 0 . . .
am1 am2 ··· amn 0 ··· 0 0 0 ··· −1 0 0 1 bm
c1 c2 ··· cn 0 ··· 0 0 0 ··· 0 w ··· w

Tous les vecteurs colonnes de la matrice identité figure dans le tableau.


2) Afin que le tableau précédent soit initialisé, il est nécessaire de rendre nul les coefficients
de la fonction économique située sous les colonnes de la matrice identité. Ainsi pour éliminer
le premier coefficient w correspondant à la colonne associée à η1 , on remplace la dernière ligne
par la dernière mois w fois la ligne r+1; on opère de même pour les autres coefficients. Et on
obtient le tableau initialisé suivant:

x1 x2 ··· xn e1 · · · er er+1 · · · em η1 · · · ηm−r


a11 a12 ··· a1n 1 0 ··· 0 0 ··· 0 0 ··· 0 b1
.. .. .. .. ... .. .. .. .. ..
. . . . 0 . . ··· . . ··· 0 .
ar1 ar2 ··· arn 0 0 1 0 ··· 0 0 ··· 0 br
..
ar+11 ar+12 · · · ar+1n 0 ··· 0 0 −1 ··· . 1 0 0 br+1
.. .. .. .. .. .. .. .. .. ..
. . . . . ··· . 0 0 . 0 . . .
am1 am2 ··· amn 0 ··· 0 0 0 ··· −1 0 0 1 bm
Pm
c01 c02 ··· c0n 0 ··· 0 0 0 ··· 0 0 ··· 0 − j=r+1 wbj

Avec
c0i = ci − w(ar+1i + · · · + am1 ), 1≤i≤n
21

Un tel tableau est initialisé. Les colonnes de référence sont ici les colonnes associées
aux variables e1 , e2 , · · · , er , η1 , · · · , ηm−r . Les coefficients de la fonction économique sont, au
dessus de ces colonnes, tous égaux à 0.
22

Chapitre II. Méthode de simplexe


23

Description de l’algorithme du Simplexe

Première étape: Recherche du pivot:


Le pivot est un coefficient du tableau qui permet, grâce à la méthode du pivot, d’annuler
tous les coefficients de la colonne contenant ce pivot, excepté cet élément qui est ramené à 1
après la division de la ligne le contenant par ce nombre.
Choix de la colonne pivot
La colonne pivot est définie à partir des coefficients de la fonction économique. On cherche
à se focaliser sur la variable qui, en augmentant, augmentera le plus possible la fonction
objectif. Cette variable correspond au plus grand coefficient positif de la fonction objectif.
Considérons les coefficients c1 , ..., cn de la fonction économique. Parmi tous les coefficients
positifs, on considère le plus grand. La colonne pivot est la colonne qui le contient. La variable
correspondante sera la variable entrante car elle ne va plus s’annuler.
Remarque: S’il existe plusieurs coefficients correspondant à cette valeur positive maximale,
on peut choisir celui que l’on veut.
Choix de la ligne pivot
La variable entrante va prendre la place d’une des variables de base, appelé variable
sortante. Il faut maintenant trouver quelle valeur maximum peut prendre cette variable
entrante afin de maximiser la fonction objectif. Pour cela, chaque coefficient de la dernière
colonne est divisé par le coefficient correspondant de la colonne pivot. Si la colonne pivot est:

 
a1j
 
 

 a2j 
 

 a3j 
 .. 

 . 

 
anj 
 

 
cj
bi
On calcule les rapports aij
pour 1 ≤ i ≤ n lorsque aij > 0. On obtient de cette façon, pour
chaque contrainte prise séparément, la valeur maximale que peut prendre la variable entrante.
bk bi
On sélectionne le plus petit rapport positif: Oncherche l’indice k tel que 0 ≤ akj
≤ aij
, en ne
24

considrant les i que si aij > 0.


bk
La k-ième ligne est la ligne pivot, et akj est le pivot: la ligne pivot est la ligne k telle que akj

soit positif et minimal. La variable correspondant à cette ligne est la variable sortante.
Troisième étape: Itération
S’il existe un coefficient ci positif dans le nouveau tableau, on retourne à la première étape
(choix du pivot) puis à la deuxième (réduction du tableau). On réitère ce processus jusqu’à ce
que tous les coefficients de la fonction économique soient négatifs. Cela se produira forcément.

Exemple d’apprentissage: Détermination de la solution optimale

Exemple 1: Si on considère le programme linéaire suivant:





 x1 + x2 ≤ 1






 x2 ≤ 2


 3x1 + 4x2 ≤ 12




 x1 + x 3 ≤ 3


max(3x1 − x2 + x3 )







 x ≥0
i

En introduisant les variables d’écart, on obtient:




 x1 + x2 + e1 = 1






 x2 + e 2 = 2


 3x1 + 4x2 + e3 = 12




 x1 + x3 + e4 = 3


max(3x1 − x2 + x3 )







 x ,e ≥ 0
i i

Le premier tableau se présente donc ainsi:


25

x1 x2 x3 e1 e2 e3 e4
e1 1 1 0 1 0 0 0 1
e2 0 1 0 0 1 0 0 2
e3 3 4 0 0 0 1 0 12
e4 1 0 1 0 0 0 1 3
−Z 3 -1 1 0 0 0 0 0

Le plus grand coefficient positif de la fonction économique est c1 = 3. La colonne pivot est
donc la première colonne. La variable x1 est donc entrante.
La première ligne est la ligne pivot. Les seuls coefficients positifs non nuls de cette colonne
bi b1
sont a11 = 1, a31 = 3 et a41 = 1. Calculons les rapports ai1
correspondants. On a a11
= 1,
b3 b4
a31
= 4, a41
= 3.
Le plus petit rapport est le premier, donc la ligne pivot est la première. Le pivot associé
est a11 = 1. La variable entrante est x1 et la variable sortante est e1 .
Deuxième étape : Réduction du tableau
On divise la ligne pivot par le pivot puis on annule ensuite les coefficients du tableau
situées au-dessus et au-dessous du pivot, en soustrayant la ligne pivot aux autres lignes.

x1 x2 x3 e1 e2 e3 e4
x1 1 1 0 1 0 0 0 1
e2 0 1 0 0 1 0 0 2
e3 0 1 0 -3 0 1 0 9 L3 ← L3 − 3L1
e4 0 -1 1 -1 0 0 1 2 L4 ← L4 − 3L1
−Z 0 -4 1 -3 0 0 0 -3 L5 ← L5 − 3L1

La solution correspondante est définie par x1 = 1, x2 = x3 = 0, e1 = 0, e2 = 2, e3 = 9 et


e4 = 2. La fonction économique vaut 3 en ce point.
On a un coefficient positif, à savoir c3 = 1. La troisième colonne est donc la colonne pivot.
Le seul coefficient positif de cette colonne est a43 = 1, c’est donc le pivot. On réduit le tableau
et on obtient:
26

x1 x2 x3 e1 e2 e3 e4
x1 1 1 0 1 0 0 0 1
e2 0 1 0 0 1 0 0 2
e3 0 1 0 -3 0 1 0 9
x3 0 -1 1 -1 0 0 1 2
−Z 0 -3 0 -2 0 0 -1 -5 L5 ← L5 − L4

Tous les coefficients de la fonction économique sont négatifs, on a donc la solution optimale.
Elle est définie par x1 = 1, x2 = 0, x3 = 2, e1 = 0, e2 = 2, e3 = 9 et e4 = 0. Dans ce cas,
max(3x1 + x2 + x3 ) = 5.

Exemple 2:
On considère le programme linéaire suivant:




 3x1 + 2x2 + 4x3 + 3x4 ≤ 70


7x + 8x2 + 10x3 + 12x4 ≤ 120

 1



x1 + x2 + x3 + x4 ≤ 15



max(6x1 + 11 x + 7x3 + 8x4 )

2 2





 x ≥0

i

La résolution de ce programme nous donne ces tableaux successifs:

x1 x2 x3 x4 e1 e2 e3
e1 3 2 4 3 1 0 0 70
e2 7 8 10 12 0 1 0 120
e3 1 1 1 1 0 0 1 15
−Z 6 11/2 7 8 0 0 0 0

La solution correspondante est x1 = x2 = x3 = x4 = 0 et e1 = 70, e2 = 120, e3 = 15. La


variable entrante est x4 et la variable sortante est e2 .
27

x1 x2 x3 x4 e1 e2 e3
e1 5/4 0 3/2 0 1 -1/4 0 40 L1 ← L1 − 1/4L2
x4 7/12 2/3 5/6 1 0 1/12 0 10 L2 ← 1/12L2
e3 5/12 1/3 1/6 0 0 -1/12 1 5 L3 ← L3 − 1/12L2
−Z 4/3 1/6 1/3 0 0 -2/3 0 -80 L4 ← L4 − 2/3L2

La solution correspondante est x4 = 10, e1 = 40 et e3 = 5, les autres variables étant nulles.


La fonction économique vaut 80.
On cherche le pivot, et on le trouve sur la première colonne et troisième ligne. La variable
entrante est donc x1 et la variable sortante est e3 :

x1 x2 x3 x4 e1 e2 e3
e1 0 -1 1 0 1 0 -3 25 L1 ← L1 − 3L3
x4 0 -53/3 3/5 1 0 1/5 -7/5 3 L2 ← L2 − 7/5L3
x1 1 4/5 2/5 0 0 -1/5 12/5 12 L3 ← 12/5L3
−Z 0 -9/10 -6/5 0 0 -2/5 -36/15 -96 L4 ← L4 − 16/5L3

Ce tableau est le dernier car tous les coefficients de la dernière ligne sont négatifs. La
solution optimale correspondante est x1 = 12, x4 = 3, e1 = 25. La fonction économique vaut
en ce point 96.

IV. Variable entrante, variable sortante

L’idée de la méhode du simplexe est, partant d’une solution de base réalisable, d’augmenter
la valeur d’une des variables hors base, la variable entrante, de façon à diminuer (si on
minimise) ou à augmenter (si on maximise) la valeur du critère. L’expression du coût réduit
en fonction des variables hors base qui apparaı̂t dans la première ligne du dictionnaire, permet
de choisir la variable entrante.
28

Chapitre III. Méthode de dictionnaire

Exemple 3:
Résoudre le système suivant en utilisant la méthode du dictionnaire:





 2x1 + 4x2 + 5x3 + 7x4 ≤ 42


x + x2 + 2x3 + 2x4 ≤ 17

 1



x1 + 2x2 + 3x3 + 3x4 ≤ 24



max(7x1 + 9x2 + 18x3 + 17x4 )






 x ≥0

i

Solution: On introduit les variables décart:

e1 = 42 − 2x1 − 4x2 − 5x3 − 7x4

e2 = 17 − x1 − x2 − 2x3 − 2x4

e3 = 24 − x1 − 2x2 − 3x3 − 3x4 Dictionnaire I

Z = 7x1 + 9x2 + 18x3 + 17x4

Le problème s’écrit maintenant : Maximiser Z sous les conditions x1 , x2 , · · ·, e3 ≥ 0.

• Les variables e1 , e2 et e3 dites variables de base sont exprimées en fonction des variables
x1 , x2 , x3 , x4 dites variables hors base.

• Une solution de base est une solution dans laquelle toute les variables hors base sont
nulles. Dans ce cas, x1 = x2 = x3 = x4 = 0 implique e1 = 42, e2 = 17 et e3 = 24.

• Cette solution est dite réalisable car les valeurs des variables sont strictement positives.

• Pour faire croı̂tre Z, on augmente la valeur d’une variable dont le coefficient dans la
ligne de Z est plus grande positive. Disons x3 .

e1 ≥ 0 ce qui impose x3 ≤ 8.4,

e2 ≥ 0 ce qui impose x3 ≤ 8.5,


29

e3 ≥ 0 ce qui impose x3 ≤ 8,

Cette opération revient à se déplacer d’un sommet de polyèdre (0, 0, 0, 0) à un autre sommet
(0, 0, 8, 0) le long d’une arrête jusqu’à rencontrer un nouvel hyperplan (e3 = 0).
Pour pouvoir itérer cette opération, il faut obtenir un nouveau dictionnaire en échangeant
les rôles de x3 et e3 .

1 2 5
e1 = 2 − x1 − x2 − 2x4 − e3
3 3 3
1 1 2
e2 = 1 − x1 + x2 + e3
3 3 3
1 2 1
x3 = 8 − x1 − x2 − x4 − e3 Dictionnaire II
3 3 3
Z = 144 + x1 − 3x2 − x4 − 6e3

On doit choisir x1 comme variable entrante. Limite sur l’argumentation de x1 :

x3 ≥ 0 ce qui impose x1 ≤ 24,

e1 ≥ 0 ce qui impose x1 ≤ 6,

e2 ≥ 0 ce qui impose x1 ≤ 3,

Donc la variable e2 sort de la base.

x1 = 3 + x2 − 3e2 + 2e3

e1 = 1 − x2 − 2x4 + e2 + e3

x3 = 7 − x2 − x4 + e2 − e3 Dictionnaire III

Z = 147 − 2x2 − x4 − 3e2 − 4e3

Cette opération revient à se déplacer d’un sommet de polyèdre (0, 0, 8, 0) à un autre


sommet (3, 0, 7, 0) le long d’une arrête jusqu’à rencontrer un nouvel hyperplan (e2 = 0).
Tous les coefficients dans la ligne de la fonction objectif sont négatifs, donc la solution
courante est x1 = 3, x2 = x4 = e2 = e3 = 0 et x3 = 7 est optimale et sa valeur est 147.
Exemple 4:
30

On considère le programme linéaire suivant.






 2x1 + 2x2 + 8x3 + 7x4 ≤ 40


2x + 3x2 + 6x3 + 4x4 ≤ 10

 1



x1 + 2x2 + x3 + 3x4 ≤ 80



max(6x1 + 8x2 + 5x3 + 8x4 )






 x ≥0

i

Résoudre ce problème en utilisant la méthode de simplexe.


Exemple 5:
On considère le programme linéaire suivant.




 x1 + 2x2 + 7x3 + 2x4 ≤ 50


x + 3x2 + 5x3 + 2x4 ≤ 30

 1



2x1 + 6x2 + 4x3 + 3x4 ≤ 10



max(x1 + 2x2 − 5x3 + 2x4 )






 x ≥0

i

Résoudre ce problème en utilisant la méthode de simplexe et la méthode de dictionnaire.


Les cycles
La méthode du simplexe peut engendrer un nombre infini d’itérations sans jamais trouver
la solution optimale. Pour justifier ce fait, considérons le dictionnaire suivant:
Exemple:
Résoudre le système suivant en utilisant les dictionnaires:

1



 x − 11
2 1 2 2
x − 52 x3 + 9x4 ≤ 0

 1
x − 3 x − 1 x + x4 ≤ 0

 2 1 2 2 2 3



x1 ≤ 1



max(10x1 − 57x2 − 9x3 − 24x4 )






 x ≥0

i

Solution:
31

Introduction des variables d’écart:

1 11 5
e1 = − x1 + x2 + x3 − 9x4
2 2 2
e2 = 1 − x1
1 3 1
e3 = − x1 + x2 + x3 − x4
2 2 2
Z = 10x1 − 57x2 − 9x3 − 24x4

On pose les règles suivantes:

• La variable entrante sera toujours la variable hors base ayant le plus grand coefficient
dans la ligne du dictionnaire associée à la fonction objectif Z.

• Si plusieurs variables peuvent être choisies pour quitter la base, on prendra celle de plus
petit indice. Ainsi, nous obtenons pour les six prochaines itérations, les dictionnaires
suivants:

La première itération: x1 entrante et e1 par exemple sortante

x1 = 11x2 + 5x3 − 18x4 − 2e1

e2 = −4x2 − 2x3 + 8x4 + e1

e3 = 1 − 11x2 − 5x3 + 18x4 + 2e1

Z = 53x2 + 41x3 − 204x4 − 20e1

La deuxième itération: x2 entrante et e2 par exemple sortante

1 1 1
x2 = − x3 + 2x4 + e1 − e2
2 4 4
1 3 11
x1 = − x3 + 4x4 + e1 − e2
2 4 4
1 3 11
e3 = 1 + x3 − 4x4 − e1 + e2
2 4 4
29 27 53
Z = x3 − 98x4 − e1 − e2
2 4 4
32

La troisiéme itération: x3 entrante et x1 par exemple sortante


1 5
x2 = x1 − 2x4 − e1 − e2
2 2
3 11
x3 = −2x1 − 8x4 + e1 − e2
2 2
e 3 = 1 − x1

Z = −29x1 + 18x4 + 15e1 − 93e2

La quatrième itération: x4 entrante et x2 par exemple sortante


1 1 1 5
x4 = x1 − x2 − e 1 + e 2
2 2 4 4
1 9
x3 = 2x1 − 4x2 − e1 + e2
2 2
e3 = 1 − x1
21 141
Z = −20x1 − 9x2 + e1 − e2
2 2
La cinquième itération: e1 entrante et x3 par exemple sortante
1 3 1
x 4 = − x1 + x2 + x3 − e 2
2 2 2
e1 = 4x1 − 8x2 − 2x3 + 9e2

e 3 = 1 − x1

Z = 22x1 − 93x2 − 21x3 + 24e2

La sixième itération: e2 entrante et x4 par exemple sortante


1 3 1
e2 = − x1 + x2 + x3 − x4
2 2 2
1 11 5
e1 = − x1 + x2 + x3 − 9x4
2 2 2
e3 = 1 − x1

Z = 10x1 − 57x2 − 9x3 − 24x4

On retrouve donc le premiér dictionnaire après avoir introduire les variables d’ecart.
Puisque le dictionnaire construit après la sixième itération est identique au dictionnaire
initial, la méthode bouclera sur les mêmes itérations indéfiniment, sans jamais trouver la
solution optimale (laquelle, comme nous le verrons plus tard, vaut 1). Ce phénomène est
connu sous le nom de cycle.
33

Chapitre IV. Méthode de deux phases

Exemple 1: On considère le problème suivant:

min(z = 2x1 + 3x2 )

sous les contraintes suivantes 





 2x1 + x2 ≤ 16


 x1 + 3x2 ≥ 20




 x1 + x2 = 10


 xi ≥ 0

On introduit les variables d’écarts et les variables artificielles. On doit d’abord résoudre phase
1:
Phase 1:
min(w = η1 + η2 = 30 − 2x1 − 4x2 + e2 )

sous les contraintes suivantes





 2x1 + x2 + e1 = 16


 x1 + 3x2 − e2 + η1 = 20




 x1 + x2 + η2 = 10


 xi , ei , ηi ≥ 0

La résolution de ce programme nous donne ces tableaux successifs:

x1 x2 e1 e2 η1 η2
e1 2 1 1 0 0 0 16
η1 1 3 0 -1 1 0 20
η2 1 1 0 0 0 1 10
−w -3 -4 0 1 0 0 -30

La colonne pivot est donc la deuxième colonne. La variable x2 est donc entrante. La ligne
pivot est donc la deuxième ligne. La variable η1 est donc sortante.
34

x1 x2 e1 e2 η1 η2
e1 5/3 0 1 1/3 -1/3 0 28/3
x2 1/3 1 0 -1/3 1/3 0 20/3
η2 2/3 0 0 1/3 -1/3 1 10/3
−w -2/3 0 0 -1/3 4/3 0 -10/3

La colonne pivot est donc la première colonne. La variable x1 est donc entrante. La ligne
pivot est donc la troisième ligne. La variable η2 est donc sortante.

x1 x2 e1 e2 η1 η2
e1 0 0 1 -1/2 1/2 -5/2 1
x2 0 1 0 -1/2 1/2 -1/2 5
x1 1 0 0 1/2 -1/2 3/2 5
−w 0 0 0 0 1 1 0

Phase 2:
La forme canonique associé au dérnier tableau est de la forme:




 e1 − 1/2e2 = 1


 x2 − 1/2e2 = 5




 x1 + 1/2e2 = 5


 xi , ei ≥ 0

min(z = 2x1 + 3x2 = 25 + 1/2e2 ).


Tous les coefficients de la fonction économique sont positifs, on a donc la solution optimale.
Elle est définie par x1 = 5, x2 = 5. La valeur optimale est z = 5.
Exemple 2: On considère le problème suivant:

min(z = x1 − x2 + 2x3 )

sous les contraintes suivantes 


x + 3x2 ≥ 4
 1



x1 + x2 − x3 ≤ 10



xi ≥ 0

35

On introduit les variables d’écarts et les variables artificielles. On doit d’abord résoudre phase
1:
Phase 1:

min(w = η1 = 4 − x1 − 3x2 + e2 )

sous les contraintes suivantes



x + 3x2 − e1 + η1 = 4
 1



x1 + x2 − x3 + e2 = 10



xi , ei , ηi ≥ 0

La résolution de ce programme nous donne ces tableaux successifs:

x1 x2 x3 e1 e2 η1
η1 1 3 0 -1 0 1 4
e2 1 1 -1 0 1 0 10
−w -1 -3 0 1 0 0 -4

La colonne pivot est donc la deuxième colonne. La variable x2 est donc entrante. La ligne
pivot est donc la premiére ligne. La variable η1 est donc sortante.

x1 x2 x3 e1 e2 η1
x2 1/3 1 0 -1/3 0 1/3 4/3
e2 2/3 0 -1 1/3 1 -1/3 26/3
−w 0 0 0 0 0 1 0

Phase 2:
La forme canonique associé au dérnier tableau est de la forme:



 1/3x1 + x2 = 4/3

2/3x1 − x3 = 26/3



xi , ei ≥ 0

min(z = x1 − x2 + 2x3 = −4/3 + 4/3x1 − 1/3e1 + 2x3 ).


36

x1 x2 x3 e1 e2
x2 1/3 1 0 -1/3 0 4/3
e2 2/3 0 -1 1/3 1 26/3
−z 4/3 0 2 -1/3 0 4/3

La colonne pivot est donc la quatrième colonne. La variable e1 est donc entrante. La ligne
pivot est donc la deuxiéme ligne. La variable e2 est donc sortante.

x1 x2 x3 e1 e2
x2 1 1 -1 0 1 10
e1 2 0 -3 1 3 26
−z 2 0 1 0 1 10

Tous les coefficients de la fonction économique sont positifs, on a donc la solution optimale.
Elle est définie par x1 = x3 = 0, x2 = 10. La valeur optimale est z = −10.
37

Chapitre V. Dualité en programmation linéaire

I. Introduction
Définition 1:
On appelle un programme primal un modèle de programmation linéaire associé à un
problème donné ou encore modèle original.
Pour chaque modèle de programmation linéaire, il existe un et un seul autre modèle de
programmation linéaire appelé un programme dual (ou bien son dual).

II. Le dual d’une forme linéaire canonique


La forme canonique d’un programme primal consiste en un modèle de programmation
linéaire dont l’optimisation en est une de maximisation avec des contraintes de type inférieure
ou égal et des variables toutes positives, on lui associe un programme canonique dual dont
l’optimisation en est une de minimisation avec des contraintes de type supérieur ou égal et
des variables toutes positives.
Tout programme primal canonique de type :

 maximiserZ = C T X



AX ≤ B



X, B ≥ 0

On lui associe son dual canonique de la forme:





 minimiserW = B T Y

Y TA ≥ C



Y ≥0

Autrement:
 
maximiserZ = nj=1 ci xi minimiserW = m
P P
i=1 bi yi

 


 

Pn Pn
Primal : i=1 aij xj ≤ bi , ∀1 ≤ i ≤ m Dual : i=1 aij yi ≥ ci , ∀1 ≤ j ≤ n

 

 
xj ≥ 0 yi ≥ 0
 

Remarque:
38

1) Si la fonction objectif du primal doit être maximiser, celle du dual doit être minimiser
et inversement.

2) Les coefficients cj de la fonction objectif du primal oû les composantes de C deviennent


les seconds membres des contraintes du dual alors que les seconds membres des con-
traintes du primal où composantes de B deviennent les coefficients des variables duales
dans la fonction objectif.

3) Les coefficients des variables dans les contraintes du dual sont ceux du primal mais
transposés: les coefficients de la ième ligne du primal deviennent les coefficients de la
ième colonne du son dual.

4) A chaque contrainte du primal de type ≤, lui associe une variable du dual positive.

5) A chaque variable de décision non négative dans le primal, lui correspond une contrainte
non négative dans son dual.

6) La dualité est une notion symétrique: L’un des programmes au choix est appelé le
programme primal et l’autre le programme dual.

7) Le dual du dual est le programme primal.

III. Le dual d’une forme linéaire standard


Tout programme primal standart de type :



 maximiserZ = C T X

AX ≤ B



X≥0

On lui associe son dual canonique de la forme:



 minimiserW = B T Y



Y TA ≥ C



Y ≥0

39

Autrement:
 Pn  Pm


 maximiserZ = i=1 ci xi


 minimiserW = i=1 bi yi
 
Pn Pn
Primal : i=1 aij xj ≤ bi , ∀1 ≤ i ≤ m Dual : i=1 aij yi ≥ ci , ∀1 ≤ j ≤ m

 

 
xj ≥ 0 yi ≥ 0
 

Tout programme primal standart de type :





 maximiserZ = C T X

AX = B



X≥0

On lui associe son dual canonique de la forme:



 minimiserW = B T Y



Y TA ≥ C



Y sans restriction de signe

Autrement:
 
maximiserZ = ni=1 ci xi
P Pm





 minimiserW = i=1 bi yi
 
Pn Pn
Primal : i=1 aij xj = bi , ∀1 ≤ i ≤ m Dual : i=1 aij yi ≥ ci , ∀1 ≤ j ≤ m

 

 
xj ≥ 0 yi sans restriction de signe
 

En utilisant la symétrie de la dualité on déduit:


Tout programme primal standart de type :



 minimiserZ = C T X

AX ≥ B



X≥0

On lui associe son dual canonique de la forme:





 maximiserW = B T Y

Y TA ≤ C



Y ≥0

40

Autrement:
 
minimiserZ = ni=1 ci xi
P Pm





 maximiserW = i=1 bi yi
 
Pn Pn
Primal : a x ≥ bi , ∀1 ≤ i ≤ m Dual : aij yi ≤ ci , ∀1 ≥ j ≤ m
 i=1 ij j
 

i=1
 
xj ≥ 0 yi ≤ 0
 

IV. Le dual d’unne forme linéaire quelconque


Le modèle de programmation linéaire ne se présente pas toujours dans la forme canonique.
Comme nous le savons, un modèle peut se présenter avec des contraintes comportant les
symboles ≤, ≥ ou = .
IV.1. Rèles générales pour formuler le dual
Pour obtenir le dual d’un programme primal comportant les équations qui n’ont pas un
même sens on procède comme suit:

1) On cherche à standardiser le programme linéaire: soit trouvé sa forme canonique ou sa


forme standard.

2) Puis on utilise l’une des méthodes précédentes: formulation du dual.

IV.2. Description générale du dual-primal

• Maximiser Z où W dans l’ordre ⇐⇒ Minimiser Z où W dans l’ordre

•  



 Nombre de contraintes 


 Nombre de variables duales

 

A la contrainte i Correspond la variable yi

 


 

 
Contrainte de type ≤ ⇐⇒ yi ≥ 0

 

 
Contrainte de type ≥ yi ≤ 0

 


 


 

 Contrainte de type =
  y sans restriction de signe

i

•  



 Nombre de variables(décisions) 


 Nombre de contraintes

 

 xi ≥ 0
  Contrainte de type ≥

⇐⇒



 x i ≤ 0 


 Contrainte de type ≤

 

 xi sans restriction de signe
  Contrainte de type =

41

Etant donné un programme primal de programmation linéaire et son dual, on a exactement


l’un des trois cas suivant:

• Si X et Y sont deux solutions optimales du primal respectivement du son dual, alors


C T X = B T Y.

• Si un programme présente des solutions réalisables mais pas de solution optimale finie,
l’autre programme n’admet pas de solution réalisable.

• Aucun des deux programmes n’a pas de solution réalisable.


42

PARTIE 2: Optimisation Nonlinéaire


43

Chapitre I. Rappels
Notions sur la convexité
Définition de la convexité
Définition: Un ensemble K ⊂ Rn est dit convexe si pour tout couple (x, y) ∈ K 2 et ∀λ ∈ [0, 1]
on a
λx + (1 − λ)y ∈ K.

Cette définition peut s’interpréter en disant que le segment reliant x et y doit être dans K.
Fonctions convexes
Définition: On dit qu’une fonction f : K −→ R, définie sur un ensemble convexe K, est
convexe si elle vérifie:

∀(x, y) ∈ K 2 , ∀λ ∈ [0, 1], f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y)

Lorsque n = 1 cette définition s’interprète bien géométriquement: le graphe de la fonction


est toujours en dessous du segment reliant les points (x, f (x)) et (y, f (y)).
Corollaire: On définit pour ∀(x, y) ∈ K 2 , où K est un ensemble convexe, la fonction
ϕ : [0, 1] −→ R par
ϕ(t) = f (tx + (1 − t)y).

Alors on a l’équivalence ϕ(t) convexe sur [0, 1], ∀(x, y) ∈ K 2 ⇐⇒ f convexe sur K.
Calcul différentiel
Définition de la différentiabilité:
Dans Rn on note x le vecteur colonne
 
 x1 
 ..
 .
x=
 


 xn 

 

et la notation k · k désignera la norme euclidienne

n
! 21
X
kxk = x2k
k=1
44

Définition: Soit f : Rn −→ Rm , on dit que f est continue au point a ∈ Rn si pour tout réel
 > 0 il existe η > 0 tel que

kx − ak < η =⇒ kf (x) − f (a)k < .

Définition: Soit f : Rn −→ Rm représentée dans la base canonique de Rm par le vecteur


 
 f1 (x) 
 .. 
 . 
f (x) = 
 

 f (x) 
 m 
 

continue en a ∈ Rn . On dit que f est différentiable en a s’il existe une application linéaire,
notée f 0 (a), telle que pour tout h ∈ Rn on ait

f (a + h) = f (a) + f 0 (a)h + khk(h)

où (h) est une fonction continue en 0 vérifiant lim (h)h−→0 = 0. On appelle f 0 (a) dérivée de
f au point a.
Proposition: Soit f : Rn −→ Rm différentiable en a, alors

f (a + th) − f (a)
lim = f 0 (a)h.
t−→0 t

Proposition: Soit f : Rn −→ Rm différentiable en a, alors on peut représenter f 0 (a) par sa


matrice dans les bases canoniques de Rn et de Rm et on a

∂fi
[f 0 (a)]ij = (a).
∂xj

On appelle souvent f 0 (a) la matrice jacobienne de f au point a. Lorsque m = 1 on adopte


une notation et un nom particuliers: le gradient est le vecteur noté ∇f (a) et défini par

f 0 (a) = ∇f (a)T .

et on a
f (a + h) = f (a) + ∇f (a)T h + khk(h).

On se place maintenant dans le cas m = 1, soit f : Rn −→ R.


45

Définition: Soit f : Rn −→ R est dite deux fois différentiable s’il existe une matrice
symétrique ∇2 f (a) telle que

f (a + h) = f (a) + ∇f (a)T h + hT ∇2 f (a)h + khk2 (h).

On appelle ∇2 f (a) matrice hessienne de f au point a.

Formes quadratiques

Définition d’une forme quadratique:


Définition: Soit A une matrice symétrique n × n etb ∈ Rn . On appelle forme quadratique
la fonction f : Rn −→ R définie par

1
f (x) = xT Ax − bT x
2

Définition: Soit A une matrice symétrique n × n etb ∈ Rn . On dit que A est semi-définie
positive et on note A ≥ 0, quand

xT Ax ≥ 0, ∀x ∈ Rn .

On dit que A est définie positive et on note A > 0, quand

xT Ax > 0, ∀x ∈ Rn , x 6= 0.

Lorsque la matrice A est définie positive (resp. semi-définie positive), on dira que f (x) est
une forme quadratique définie positive (resp. semi-définie positive).
Critère de Sylvester:
Soit A(n × n) une matrice symetrique est définie positive ssi det(Ak ) > 0, 1 ≤ k ≤ n, et
Ak matrice (k × k) intersection des K premiéres lignes et K premiéres colonnes.
Théorème: Soit A une matrice symétrique n × n etb ∈ Rn , et soit f la forme quadratique
associée, définie par
1
f (x) = xT Ax − bT x
2
Soit x∗ le vecteur (unique) vérifiant Ax∗ = b, alors x∗ réalise le minimum de f, c’est à dire
f (x∗ ) ≤ f (x), ∀x ∈ Rn .
46

Caracterisation de la convexité en termes Hessien:

Dans le cas où f : R −→ R on a le resultat suivant:


Proprieté: Si f : R −→ R est deux fois continûment dérivable sur K convexe alors f est
00 00
convexe ssi f ≥ 0∀x ∈ K, strictement convexe ssi f > 0∀x ∈ K.
Ce résultat se généralise pour n > 1
Théorème: Soit f : K ⊂ Rn −→ R (K convexe) une fonction deux fois différentiable alors
f est convexe ssi ∇2 f (x) ≥ 0∀x ∈ K et strictement convexe ssi ∇2 f (x) > 0∀x ∈ K.
Exemple: Soit f : Rn −→ R une forme quadratique définie par f (x) = 21 xT Ax − bT x alors f
est convexe ssi A ≥ 0 et strictement convexe ssi A > 0.
Caracterisation de la convexité en termes gradient:
Dans le cas oú f n’est pas supposée qu’une fois différentiable alors on a le resultat suivant:
Théorème: Soit f : K ⊂ Rn −→ R (K convexe) une fonction une fois différentiable
alors f est convexe ssi f (y) ≥ f (x) + ∇f (x)T (y − x)∀(x, y) ∈ K 2 et strictement convexe ssi
f (y) > f (x) + ∇f (x)T (y − x)∀(x, y) ∈ K 2 .
Théorème: Soit f : K ⊂ Rn −→ R (K convexe) une fonction une fois différentiable
et convexe si ∇f (x∗ )T (x − x∗ ) ≥ 0 alors le problème min f (x), x ∈ K admet une solution
optimale qui vérifie donc f (x∗ ) ≤ f (x)∀x ∈ K.
Unicité
Théorème: Soit f : K −→ Rn strictement convexe sur K convexe. Le minimum de f sur
K, s’il existe, est unique.
47

Chapitre II. Conditions nécessaires d’optimalité en


l’absence de contraintes
Conditions nécessaires:
On va maintenant regarder de plus près le cas où K = Rn , c’est à dire le problème sans
contraintes (P). Dans le cas où f est différentiable, on a le résultat suivant
Théorème: Soit f : Rn −→ R différentiable et x∗ vérifiant f (x∗ ) ≤ f (x), ∀x ∈ Rn , alors on
a nécessairement ∇f (x∗ ) = 0.
Conditions nécessaires et suffisantes
La condition de gradient nul devient suffisante dans le cas où f est convexe:
Théorème: Soit f : Rn −→ R différentiable et convexe, si x∗ vérifie

∇f (x∗ ) = 0,

alors on a f (x∗ ) ≤ f (x), ∀x ∈ Rn .


Lorsque la fonction n’est pas convexe, on ne peut donner qu’une condition nécessaire et
suffisante d’optimalité locale. On désignera par minimum local (que l’on oppose au minimum
global) un vecteur vérifiant les conditions suivantes:
Définition: On appellera x∗ minimum local de f, s’il existe δ > 0 tel que

f (x∗ ) ≤ f (x), ∀x, kx − x∗ k ≤ δ.

Dans le cas où f est deux fois différentiable on peut alors donner le résultat suivant:
Théorème: Soit f : Rn −→ R deux fois différentiable. Si


 ∇f (x∗ ) = 0,
 ∇2 f (x∗ ) > 0,

alors x∗ est un minimum local de f.

Exercice: Déterminer les points stationnaires de la fonction

f (x, y) = 2x3 − 3x2 − 6xy(x − y − 1).

Parmi ces points lesquels sont min locaux, max locaux, ni l’un ni l’autre?
48

Chapitre III. Méthode de Newton

La méthode de Newton permet de construire un algorithme permettant de résoudre le


systéme d’equations non-linéaires: g(x) = 0 où g : Rn −→ R est différentielle:
On se donne x0 ∈ Rn et on fait les itérations suivantes:

xk+1 = xk − g 0 (xk )−1 g(xk ).

L’application de cette méthode au problème d’optimisation:

minf (x)x∈Rn .

Si on pose g(x) = ∇f (x), on obtient les itérations suivantes:

xk+1 = xk − ∇2 f (xk )−1 ∇f (xk ).

Proposition: Soit g une fonction deux fois continûment dérivable et soit x∗ vérifie:
g(x∗ ) = 0, g 0 (x∗ ) 6= 0 alors si x0 est suffisament proche de x∗ alors xk générée par la méthode
de Newton converges to x∗ .
Exercice: Soit le problème minf (x, y, z) = x2 + y 2 + 3xy + xz + 3yz + 6x + 19y − 5z.
Résoudre en utilisant la méthode de Newton à partir du point initial:
x0 = −10, y0 = 10, z0 = 0.
49

Chapitre IV. Conditions d’optimalité en optimisation


avec contraintes

Définition du lagrangien: Considérons le problème (PCE) avec contraintes d’égalité



 minf (x) x ∈ Rn
 h(x) = 0.

où h : Rn −→ Rp .
Définition: On appelle Lagrangien associé au problème (PCE) la fonction L : Rn ×Rp −→ R
définie par
L(x, λ) = f (x) + Σpi=1 λi hi (x).

Définition: On dit que x∗ est un point régulier pour la contrainte h(x) = 0 si

(a) h(x∗ ) = 0

(b) Les vecteurs ∇hi (x∗ ) sont lineairement indépendantes.

Théorème: Soit x∗ un point régulier solution de (PCE). Alors il existe λ∗ tel que

∇x L(x∗ , λ∗ ) = 0

et de plus pour y 6= 0 tel que ∇hi (x∗ )T y = 0 on a y T ∇2xx L(x∗ , λ∗ )y ≥ 0


Théorème: Soit x∗ ∈ Rn et λ∗ ∈ Rp vérifiant les conditions:

(a) h(x∗ ) = 0

Pp
(b) ∇f (x∗ ) + i=1 ∇λi hi (x∗ ) = 0.

(c) y T ∇2xx L(x∗ , λ∗ )y ≥ 0 pour tout y 6= 0 vérifiant


∇h(x∗ )T y = 0

alors x∗ est un minimum local du probléme (PCE).


Exercice.
On considère dans R3 le problème de minimisation suivant:
50

 
 minf (x, y, z),  f (x, y, z) = −xyz,
(P1 ) avec
 h(x, y, z) = 0  h(x, y, z) = xy + yz + xz − α
2

avec α > 0.

(1) Déterminer les points vérifiant les conditions nécessaires de minimalité du 1er ordre.

(2) Parmi ces points quels sont ceux qui vérifient les conditions nécessaires de minimalité
du 2eme ordre.

(3) En déduire la solution de (P1 ).

Considérons le problème (PCI) avec contraintes d’inégalité



 minf (x) x ∈ Rn
 g(x) ≤ 0.

où g : Rn −→ Rp .
Théorème: Soit x∗ un point régulier solution de (PCI). Alors il existe λ∗ tel que

∇x L(x∗ , λ∗ ) = 0

λ∗i ≥ 0, 1 ≤ i ≤ p.

λ∗i gi (x∗ ) = 0, 1 ≤ i ≤ p.

et de plus pour y 6= 0 tel que ∇gi (x∗ )T y = 0 on a y T ∇2xx L(x∗ , λ∗ )y ≥ 0


Théorème: Soit x∗ ∈ Rn et λ∗ ∈ Rp vérifiant les conditions:

(a) g(x∗ ) ≤ 0

Pp
(b) ∇f (x∗ ) + i=1 ∇gi (x∗ ) = 0.

(c) λ∗i ≥ 0, 1 ≤ i ≤ p.

(d) λ∗i gi (x∗ ) = 0, 1 ≤ i ≤ p.


51

(e) y T ∇2xx L(x∗ , λ∗ )y ≥ 0 pour tout y 6= 0 vérifiant


∇g(x∗ )T y = 0

alors x∗ est un minimum local du probleéme (PCI).

Exercice.
On considère dans R2 le problème de minimisation suivant:


 Minf (x1 , x2 ) = 2x1 + 3x2 − 1,
(P2 )
 g(x , x ) = x2 + 3 x2 − 6 ≤ 0.
1 2 1 2 2

(1) Déterminer les points vérifiant les conditions nécessaires de minimalité du 1er ordre.

(2) En déduire la solution de (P2 ).

Modélisation
Exemple
la compagnie Coca-Cola produit et distribue de la boisson gazeuse. Les contenants (canettes)
ont une forme cylindrique de hauteur h et de rayon r. Afin de réduire les coûts, Coca-Cola veut
minimiser la surface d’aluminium nécessaire à la construction des contenants. Cependant, ils
doivent s’assurer qu’un contenant ait un volume de 128 cm3 . Quels sont les dimensions du
contenant qui réalisent l’objectif et satisfait la contrainte ?
• Définir les différentes variables;
r : rayon de cylindre (r > 0)
h : hauteur du cylindre (h > 0)
• Ecrire l’objectif en fonction des variables;
Objectif : minimiser la surface du contenant

M inS(r, h) = 2πr2 + 2πrh

• Ecrire toutes les contraintes;


52

Contrainte :
volume = 128π

πr2 h = 128π

• Exprimer, en utilisant les contraintes, toutes les variables en termes d’une seule;
De l’expression πr2 h = 128π, la variable h est facilement isolée :
128π 128
h= 2
=⇒ h = 2
πr r
• Substituer ces expressions dans l’objectif;

S(r, h) = 2πr2 + 2πrh


 128 
S(r) = 2πr2 + 2πr 2
r
256π
S(r) = 2πr2 +
r
• Optimiser.

256π 0 256π
S 0 (r) = (2πr2 + ) =⇒ S 0 (r) = 4πr − 2
r r
Un point statinnaire est obtenu lorsque S 0 (r) = 0 :

256π
4πr − =0
r2
256π
4πr = 2
r
256π
r3 =

r3 = 64 =⇒ r = 4

Il faut s’assurer qu’on retrouve bien un minimum en ce point :


256π 512π
S 00 (r) = (4πr − ) =⇒ S 00
(r) = 4π +
r2 r3
Pour r > 0, la dérivée seconde est toujours positive. La fonction S est donc toujours convexe,
ce qui implique que le point stationnaire r = 4 constitue un minimum absolu. La valeur
correspondante de h est obtenu de la relation
128 128 128
h= 2
= 2 = =8
r 4 16
53

La surface est minimisée lorsque r = 4 et h = 8.

Vous aimerez peut-être aussi