Programmation Linéaire et Non Linéaire
Programmation Linéaire et Non Linéaire
Abdelkader BELAHCENE
12 mars 2017
Table des matières
1 Programmation Linéaire 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Méthodes de Résolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 La Méthode du Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Recherche d'une Solution de Base Réalisable . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Concepts Avancés de la PL 17
2.1 Modèles Particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 La Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Analyse Post Optimale et Sensitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.1.1 Dénition :
Un programme linéaire est un problème qui consiste à optimiser (maximiser ou minimiser) une fonction
linéaire à plusieurs variables soumise à un ensemble de contraintes linéaires. D'une manière générale,
un programme linéaire s'écrit sous la forme suivante :
max F = c1 x1 +...+ cn xn
a11 x1 ...........+ a1n xn R1 b1
a21 x1 ...........+ a1n xn R2 b2 (1.1)
....
am1 x1 ...........+ amn xn Rm bm
Les relations R1 , R2 , ..., Rm sont soient des égalités ou des inégalités. Les coecients c1 et cn dans
la fonction objective sont des nombres réels. De même que tous les coecients dans le système des
contraintes sont des réels. Ce programme général peut aussi être exprimé sous la forme matricielle
suivante :
max F = C x
Ax Rb
1.1.1. Introduction A.Belahcene
où A est la matrice m × n des coecients des variables dans le système des contraintes, i.e.,
a11 ... a1n
A = . . .
am1 ... amn
C est le vecteur des coecients dans la fonction objective C = (c , ..., cn ) , X est le vecteur re-
présentant les variables de décision ( x1 , x2 , ..., xn ) et b le vecteur second membre du système des
contraintes ( b1 , b2 , ..., bm ) = bt .
Dans le cas du programme de l'exemple1.1.1, le nombre de variables n est 2 et le nombre de contraintes
m est egal a 5 . Les éléments de la matrice A sont résumés comme suit :
Les vecteurs b et C sont : C = (2, 3) et bt = (40, 40, 40, 0, 0) . Les trois premières relations R1 , R2 , et R3
sont sous forme ≤ . Par contre, les relations R4 et R5 sont sous la forme ≥ . Ces deux dernières
contraintes assurent la non-négativité des variables.
Remarque 1.1.2. Comme tout programme linéaire peut se ramener à la forme standard d'un système
d'équations voir système, nous allons uniquement nous intéressé à la résolution de ce type de pro-
gramme.
n
X
max F = cj xj
j=1
n
X
aij xj = bi i = 1, m
j=1
xj ≥ 0
Cette forme impose aussi que les seconds membres des contraintes soient des nombres réels positifs
ou nuls, c'est-à-dire, b1 ≥ 0 , i = 1, 2, ..., m . La traduction matricielle de la forme standard d'un
programme linéaire est :
max F = CX
AX = b X≥0
Lorsque le programme n'est pas donné sous la forme standard, il est utile d'utiliser les transformations
suivantes :
1. La fonction objective consiste à minimiser une fonction linéaire F . Ceci est équivalent à maxi-
miser G = −F et on a la relation suivante : min F = − max (G)
2. Lorsque une contrainte (par exemple la i ème ) n'est pas une égalité, deux cas peuvent se
produire :
a) ai1 x1 + .... + ain xn ≤ bi , on introduit une variable d'écart ei ≥ 0 pour avoir ai1 x1 + .... +
ain xn + ei = bi
b) ai1 x1 + .... + ain xn ≥ bi , on introduit une variable d'écart ei ≥ 0 pour avoir ai1 x1 + .... +
ain xn − ei = bi
3. Il arrive parfois qu'un ou plusieurs seconds membres des contraintes soit négatif. Pour mieux
xer les idées, supposons que la contrainte i possède un bi négatif, en d'autres termes : ai1 x1 +
.... + ain xn = bi avec bi < 0, Il sut, dans ce cas, de multiplier les deux termes de cette
contrainte par (−1) et on obtient :
4. Supposons que la j eme variable soit quelconque. Il faut, dans ce cas, faire des changements de
variables et poser xj = x1j − x2j avec x1j ≥ 0, x2j ≥ 0 .
Écrivons la forme standard du programme linéaire associé à l'exemple précèdent. On introduit une
variable d'écart pour chacune des trois contraintes on obtient :
Dans la littérature existante on distingue deux classes de méthodes de résolution d'un programme
linéaire à savoir la méthode graphique et la méthode du simplexe avec ses diérentes variantes.
Nous allons résoudre ce programme de 2 manières :
Méthode graphique nous servira simplement a comprendre la procédure et énumérer les concepts
de base importants, qui de toute façon est limitée a 2 variables.
Méthode algébrique qui est évidemment celle utilisée dans les algorithmes de résolution. Il faut
dire aussi que les méthodes implémentées dièrent quelque peu de celle présentée ici. Elle a été
simpliée pour l'ecacité de l'utilisation de l'outil informatique.
3. le demi-plan supérieur ensemble des couples de points (x1 , x2 ) vériant l'inequation : 0.25x1 +
0.5x2 > 40.
Les 2 premières parties sont solutions au problème, la troisième ne l'est pas. Par conséquent un point
(x1 , x2 ) est solution au problème si vérie toutes les contraintes, et donc appartient a l'intersection des
domaines. De façon pratique prendre un point et voir s'il est ou non dans le domaine. Par exemple le
point (0, 0) vérie toutes les contraintes.
La droite D0 est au fait un faisceau de droites parallèles. Le déplacement de cette droite fait changer
la valeur de la fonction objective, déterminer donc le sens de l'amélioration de la fonction objective.
Par exemple pour le point (0, 0) la valeur de la fonction est 0 pour (30, 20) la valeur est 120 donc le
déplacement de la droite vers la droite améliore la solution.
On voit donc facilement la solution optimale, le dernier point du domaine réalisable en déplaçant D0
vers la droite , ici le point C. Voir le graphe 1.1.
D0 2x1 +3x2 =z
max F = 2x1 + 3x2
D1 0.25x1 +0.5x2 = 40
0.25x1 +0.5x2 ≤ 40
D2 0.4x1 +0.2x2 = 40
0.4x1 +0.2x2 ≤ 40
D3 +0.8x2 = 40
0.8x2 ≤ 40
x1 ≥ 0 et x2 ≥ 0 D4 x1 =0
D5 x2 =0
Le domaine ainsi représenté est un polyèdre convexe, qui a des propriétés très intéressantes que nous
allons voir ci après.
Dans le cas de l'exemple 1.1.1, le polyèdre convexe correspondant est représenté sur la gure 1.1. Ce
polyèdre possède 5 sommets O, A, B, C, D de coordonnées respectives (0,0), (0,50), (60,50), (80,40)
et (100,0). Les valeurs de la fonction objective en ces points sont respectivement 0, 150, 270, 280 et
270. Il est donc évident que le sommet C est la solution optimale, correspondant aux valeurs : x1 = 80,
x2 = 40 et F = 280.
La Signication Algébrique
Algébriquement, un sommet (toujours dans le plan) correspond une solution de base, c'est a dire, 2
variables (au moins) sont nulles. Si on revient a notre exemple, voir le système de la section 1.1.3 page 5.
La solution optimale est donc une solution de base, correspondant a 2 variables nulles et les autres
sont calculées par résolution du système d'équations 3X3. Par exemple le point O(0, 0) correspond aux
valeurs (x1 = 0 , x2 = 0, e1 = 40, e2 = 40 et e3 = 40). Le point A(0, 50) correspond a la solution
( x1 = 0, x2 = 50, e1 = 15, e2 = 30 et e3 = 0). On dira que la variable x2 est entrée dans la base,
devenue non nulle et la variable e3 est sortie de la base avec la valeur 0; De plus c'est deux sommets
sont adjacents.
Direction de Déplacement
La procédure d'optimisation est donc de se déplacer d'un sommet à un autre sommet adjacent en
s'assurant de l'amélioration de la solution.
Exercice 1.2.1. Donner pour notre exemple, le nombre de sommets, de sommets réalisables et com-
ment trouver leur coordonnées. Généraliser pour un PL avec N variables principales et M contraintes.
A deux sommets adjacents correspond deux solutions de base qui varient uniquement par une variable.
Les sommets O et A sont adjacents, leur solutions de base (e1 , e2 , e3 ) et ( e1 , e2 , x2 ) varient par les
variables e3 et x2 . C'est a dire e3 est sortie de la base et x2 est entrée.
Ici nous avons choisi de nous déplacer dans la direction x2 , c'est à dire on a choisi de faire rentrer cette
variable dans la base, car on sait qu'elle améliore 1 la solution.
Critère d'arrêt
Lorsqu'il n'y a plus d'amélioration possible, si la solution est réalisable alors elle est
optimale sinon elle n'existe pas.
Etape 1 A B Etape 2
C Fin
Debut O D
Figure 1.2 Cheminement de la méthode du simplexe
Nous allons illustrer à travers l'exemple 1.1.1 le fonctionnement de la méthode du simplexe et déduire
par la suite l'algorithme de résolution d'une manière générale et donner les justication des règles
utilisées. Reprenons la forme standard vue a la section 1.1.3 et donnons le tableau du simplex associé :
XB CB P1 P2 P3 P4 P5 b
e1 0 0.25 0.5 1 0 0 40
e2 0 0.4 0.2 0 1 0 40
e3 0 0 0.8 0 0 1 40
Cj 2 3 0 0 0
Yj 0 0 0 0 0
∆j 2 3 0 0 0 Z=0
Cette solution de base (ce tableau) correspond sur le graphe à l'origine O = (0,0). Nous avons noté
par :
1.1.3. La Méthode du Simplex A.Belahcene
XB , XN Variables de base et hors base. Rappelons que les variables hors base sont toujours nulles
CB , CN Coecients de ces variables dans la fonction objective, respectivement des variables de
base et hors base.
AB , AN Matrice des coecients des contraintes scindée en colonnes des variables de base et hors
base.
Yj = CB .Pj est le produit scalaire des vecteurs colonnes Pj et CB . Il représente l'inuence des
variables de base dans la fonction objective.
∆j est le gain réduit causé par la variable hors base j si elle rentrait dans la base.
Z Valeur de la fonction objective.
Exercice 1.3.1. Donner le tableau suivant et vérie qu'il est optimal, et correspond au sommet C sur
le graphe 1.1 page 7. La variable d'écart e3 n'est pas nulle à l'optimum. En pratique, cela signie que
la troisième contrainte n'est pas serrée. Ceci veut dire que l'utilisation hebdomadaire de la troisième
machine n'a pas atteint la limite qui est de 40 heures.
1.1.3. La Méthode du Simplex A.Belahcene
La variable candidate à entrer dans la base est celle qui possède un coecient réduit ∆j positif,
en général on choix le plus élevé dans l'espoir d'arriver plus vite, ce qui n'est pas toujours vrai. En
d'autres termes la nouvelle variable de base xr est telle que : ∆r = max{∆j , |∆j > 0} où ∆j représente
le coecient de la variable xj dans le vecteur F , son expression sera explicitée ultérieurement. Ainsi,
la variable x2 à la première étape de résolution du programme linéaire rentre en base car elle possède
le coecient le plus élevé dans ∇j .
Nous allons donner la justication de ce choix. A une étape quelconque, disons p, de notre algorithme,
nous pouvons éclater notre espace en variables de base XB , B ensemble de variables de base, et hors
base XN , N ensemble de variables hors base, ces dernières sont nulles. Regardons la condition sur une
variable hors base xk avec k ∈ N , notons N = N − {k}, les variables hors base qui restent donc nulles.
Nous donnons ici le debut de la démonstration, Le reste est laissé en exercice.
(1.3)
X X X
Z= ci xi + ci xi + ck xk = ci xi
i∈B i∈N i∈B
(1.4)
X X X
Z= ci x̄i + ci xi + ck x̄k = ci x̄i + ck x̄k
i∈B i∈N i∈B
Dans la pemiere equation 1.3 toutes les variables de i ∈ N , sont nulles, dans la seconde 1.4 la variable
xk prend une valeur, de meme les variables de base changent de valeur.
(1.5)
X
xi = bi − aik xk − aij xi = bi − aik xk
j∈N
Cette equation correspondant à la ligne xi du tableau du simplex est établie car variables j ∈ N restent
nulles. En d'autres termes la quantité aik xk est la modication de la valeur de la variable xi (elle était
bi ) lorsque xk devient positive. Pour l'ensemble du problème, faire la somme pour toutes les variables
de base. Ainsi l'équation 1.4 devient
(1.6)
X X X
Z = ci (bi − aik xk ) + ck xk = ci bi + ck xk − ci aik xk
i∈B i∈B i∈B
(1.7)
X
= Z + (ck − ci aik )xk = Z + (ck − CB Pk )xk = Z + ∆k xk
i∈B
Critère de sortie
Pour déduire la formule permettant de trouver la variable xs qui sort de la base, il serait utile de
reprendre l'illustration de la méthode du simplexe et de voir comment, par exemple, à la première
étape la variable e3 est sortie de la base :
e1 = 40 −0.5x2 ≥ 0
e2 = 40 −0.2x2 ≥ 0 (1.8)
e3 = 40 −0.8x2 ≥ 0
1.1.3. La Méthode du Simplex A.Belahcene
Rappelons que le tableau du simplexe a n + m colonnes correspondant aux variables initiales et d'écart
et une colonne correspondant au second membre.
Critère d'arrêt
Nous avons vu que la méthode du simplexe dans le cas d'un problème de maximisation se termine
lorsque les coecients des variables hors-base dans le vecteur F sont tous négatifs ou nuls. En d'autres
termes, on doit avoir : ∇j ≤ 0, ∀j ∈ N où N ) représente les indices des variables hors-base.
Résumé
Tous les mécanismes de calcul que nous venons d'eectuer peuvent être résumés dans un tableau,
appelé, tableau du simplexe. Reprenons le programme 1.1.3 page 5
max F = 2x1 +3x2
0.25x1 +0.5x2 +e1 = 40
0.4x1 +0.2x2 +e2 = 40
0.8x2 +e3 = 40
x1 , x2 , e1 , e2 , e3 ≥ 0
On remarque que tous les coecients ∆j sont négatifs ou nuls, la solution courante est donc optimale.
L'algorithme du simplexe s'énonce comme suit :
1. Mettre le programme linéaire sous sa forme standard.
2. Recherche d'une solution de base réalisable de départ.
3. Construire le premier tableau du simplexe.
Tester si : ∇j ≤ 0, ∀j ∈ {1, ..., n}
4. si oui ; terminer la solution est optimale
si non ; aller en (5)
5. Soit ∇r = max{∆j |∆j > 0} la variable xr entre en base
Tester si : air ≤ 0 ∀i ∈ {1, ..., m}
si oui ; terminer le problème ne possède pas de solution optimale nie.
si non ; aller en (6)
1.1.4. Recherche d'une Solution de Base Réalisable A.Belahcene
Il est impératif d'avoir une solution de base réalisable de départ pour pouvoir utiliser la méthode du
simplexe. Dans plusieurs situations, celle-ci n'est pas toujours facile à obtenir. La méthode des deux
phases que nous allons exposer dans ce paragraphe est une variante de la méthode du simplexe. La
première phase consiste à associer un problème auxiliaire au programme-standard pour déterminer
une solution de base réalisable. La deuxième phase utilise la méthode du simplexe pour optimiser cette
solution obtenue.
En général on utilise 2 méthodes :
methode du BigM : consiste a ajouter des variables articielles pour obtenir une solution de
base , avec un cout tres negatif penalisant donc ces variables de sorte a les faire sortir de
la base. On fait sortir les variables articielles grace au cout tres negatif. On obtient une base
de depart, bien sur non realisable. On utilise l'algorithme de facon tout a fait ordinaire. Voir
exercice 1.4.2 page suivante.
methode du programme auxiliaire. Nous la présentons ici en détail.
Considérons le problème linéaire sous sa forme standard :
max F = cx
(1.11)
Ax = b x≥0
m
X
min ϕ= yi
i=1
Ax +y =b
x≥0 , y≥0
x désigne le vecteur variable du programme d'origine ainsi que les variables d'écarts et y le vecteur
représentant les variables articielles. Le programme auxiliaire 1.4 est obtenu a partir du programme
1.11 après ajout des variables yi appelées variables articielles. On rajoute les variables articielles
uniquement aux contraintes du programme 1.4 qui ne contiennent pas de variable de base. La solution
de base ne peut être réalisable que si les valeurs des Y sont nulles. Le principe de la méthode des deux
phases est :
Phase 1 : Résoudre le problème auxiliaire par la méthode du simplexe. Si ce problème possède une
solution optimale nie, alors cette solution est de base réalisable pour le problème initial.
Phase 2 : Résoudre le problème initial en utilisant comme solution de base réalisable de départ, celle
trouvée à la n de la phase 1.
Exemple 1.4.1. Donner la forme standard du programme lineaire suivant :
min f = x1 + 2x2 max f 0 = −x1 −2x2
2x1 + x2 ≤ 6 2x1 +x2 +e1 =6
x1 + x2 = 4 x1 +x2 =4 (1.12)
x1 + 3x2 ≥ 8 x1 +3x2 −e2 =8
x1 , x 2 ≥ 0 x1 , x2 , e1 , e2 ≥ 0
1.1.4. Recherche d'une Solution de Base Réalisable A.Belahcene
Exercice 1.4.2. Faire la résolution graphique, puis utiliser la méthode du BigM puis des deux
phases pour résoudre ce problème
Il n'est pas nécessaire de rajouter une variable articielle à la première contrainte. En eet, en écrivant
la forme standard du programme (P.L.2) on obtient :
La première contrainte contient la variable e1 comme variable de base. Par contre, on doit rajouter
une variable articielle à la deuxième et à la troisième contrainte. Le problème auxiliaire (P.L.A) du
problème (P.L 2) s'écrit comme :
min ϕ = y1 +y2
2x1 +x2 +e1 =6
x1 +x2 +y1 =4 (1.13)
x1 +3x2 −e2 + y2 = 8
x1 , x 2 , e 1 , e 2 , y1 , y2 ≥0
Avant d'utiliser la méthode du simplexe pour résoudre le programme 1.13. on se gardera de ne pas
oublier d'exprimer la fonction objective de ce programme en termes de variables hors-base.
A la n de la phase 1, s'il existe une solution optimale nie alors elle doit être nécessairement
nulle avec yi = 0 ∀ i ∈ I(A), où I(A) représente l'ensemble des indices des variables articielles. Nous
discuterons dans le prochain chapitre le cas où il n'existe pas de solution optimale nie.
Pour accroître la rapidité de résolution du problème, il est conseillé d'introduire dans le tableau du
simplexe, lors de la résolution de la phase 1 du programme 1.13, la fonction objective du programme
1.12. et lui faire subir les mêmes mécanismes de calcul que ceux eectués pour la fonction objective ϕ.
Utilisons la méthode des deux phases pour résoudre le problème 1.13. Pour cela, exprimons la fonction
objective du problème en terme de variable hors-base x1 , x2 et e2 . Ce problème est équivalent au
problème suivant 2 :
XB CB x1 x2 e1 e2 b XB CB x1 x2 e1 e2 b
1
e1 0 0 0 1 −
1
0 e1 0 0 0 1 − 0
2 2
1
x1 2 1 0 0
1
2 x1 -1 1 0 0 2
2 2
1
x2 4 0 1 0 −
1
2 x2 -2 0 1 0 − 2
2 2
Cj 2 4 0 -1 Cj -1 -2 0 0
1
Yj 2 4 0 -1 12 Yj -1 -2 0 -6
2
∆j 0 0 0 0 ∆j 0 0 0 -
1
2
Les coecients des variables dans la fonction objective étant tous négatifs ou nuls, la solution courante
(x∗1 = 2, x∗2 = 2, e∗1 = e∗2 = 0 et F ∗ = 6) est donc optimale.
1.5 Exercices
1. Déterminer la forme standard associée aux programmes linéaires suivants : et donner la forme
matricielle.
3x1 −3x2 +7x3 min 6x1 −3x2 +2x3 min
x1 +x2 +3x3 ≤ 40 x1 +3x2 +x3 ≥ 40
x1 +9x2 −7x3 ≥ 50 2x1 +3x2 +3x3 ≤ 50
5x1 +3x2 = 20 4x1 +2x2 +x3 ≤ 20
5x2 +8x3 ≤ −100
x1 ≥ 0 x2 ≥ 0 x3 ∈ R x1 ≤ 0 x2 ≥ 0 x3 ≥ 0
2. Reprendre le texte de
a) Résoudre graphiquement ce problème.
b) Résoudre ce problème par la méthode du simplexe.
3. Reprendre le Texte de
a) Écrire la forme standard associée.
b) Résoudre graphiquement ce problème. Conclure.
c) Résoudre ce programme linéaire en utilisant la méthode des deux phases.
d) Resoudre ce programme avec la methode du BigM.
e) reprendre le meme probleme (meme contraintes), en remplacant l'objectif minimisation des
couts par maximisation des prots.
4. .
min W = 3u1 + u2
Résoudre graphiquement puis avec la methode
u1 −u2 ≥2
du BigM, et enn avec la methode des 2 phases
u1 +u2 ≥1
le programme
u1 , u2 ≥ 0
1.1.5. Exercices A.Belahcene
x1
droite de F
L'ensemble des solutions optimales est O = { (x1 , x2 ) | 3 x1 + 2 x2 = 18. Le lecteur est invité
à montrer algébriquement ce résultat.
2 Concepts Avancés de la PL
Nous allons exposer quelques modèles particuliers de programmation linéaire et nous donnons les
méthodes adéquates de résolution. Ensuite nous abordons l'analyse sensitive et post-optimale qui est
d'un intérêt capital dans la vie pratique. Une autre partie sera consacrée à la notion de dualité en
programmation linéaire. L'accent sera mis sur l'intérêt pratique de la dualité surtout en analyse sensitive
et post-optimale.
x1 + x2 ≥ 7 et x1 + x2 ≤ 2.
Ce programme est irréalisable, puisque il n'a pas de solution. Lorsqu'un tel cas se présente la formulation
du problème doit être revue. On peut reconnaître un tel cas par la présence d'une variable articielle
dans la base à la n de la phase 1.
XB CB x1 x2 x3 e1 e2 e3 e4 e5 b
4
x3 0 2 1 -3 0 2 0 0 1
3
e2 0 0 -1 0 3 1 -1 0 0 4
11
x1 − 1 0 0 0 0 2 0 0 3
6
e4 0 0 0 0 1 0 -1 1 0 2
e5 0 0 1 0 -1 0 1 0 1 0
11 23 4
Cj − 0 0 0 0 0
6 3 3
11 8 4
Yj − -4 0 −1 0 0
6 3 3
∆j 0 5 0 4 0 1 0 0
A S2
S1 S1 = S2
B C A C
B
a) Situation normale b) Situation degeneree
n
X
j
b(ε) = b + ε Pj
j=1
max F = x1 +x2
x1 −x2 ≤ 1 Domain
(2.1) (0.3)
−2 x1 +x2 ≤ 3
x1 , x2 ≥ 0
x1
(1.0)
Résoudre ce programme linéaire en utilisant la méthode du simplexe. Retrouver le resultat en vous
inspirant de la gure.
Base CB x1 x2 e1 e2 b
les variables d'écart e1 et e2 , en utilisant la x1 1 1 -1 1 0 1
méthode du simplexe et après une itération, e2 0 0 -1 2 1 5
on obtient le tableau suivant :
∆1 0 2 -1 0 -1
La variable x2 est candidate à entrer dans la base. Mais, le vecteur P2 est négatif. On ne peut sortir
une variable, car la variable x2 peut être augmentée indéniment sans que l'une des variables de base
devienne négative. En eet, la première ligne s'écrit :
x1 − x2 + e 1 = 1 ou encore, x1 = 1 + x2 − e1
max F = 3 x1 + 2 x2
(0.6) (2.6)
3x1 +2 x2 ≤ 18
x1 ≤4 (2.2)
(4.3)
x2 ≤6
x1 , x2 ≥0
x1
droite de F
Montrer, en utilisant la méthode graphique, que ce programme linéaire possède une innité de solutions.
Le domaine convexe de ce programme linéaire est donné par la gure.
2.2.2. La Dualité A.Belahcene
Les sommets B = (2, 6) et C = (4, 3) sont solutions optimales. Donc toute combinaison convexe de
ces deux solutions optimales est aussi optimale.
L'ensemble des solutions optimales est O = { (x1 , x2 ) | 3 x1 + 2 x2 = 18 }. Le lecteur est invité à
montrer algébriquement ce résultat.
2.2 La Dualité
En pratique, il arrive que la résolution d'un programme linéaire par la méthode du simplexe soit
dicile en raison du nombre important de contraintes dans le programme linéaire. Le passage à la
forme duale réduit la taille des solutions de base, la résolution traitera des matrices réduites. La
dualité joue un rôle important en analyse post-optimale et sensitive, à cause surtout du théorème des
écarts complémentaires que nous verrons à la soussection 2.2.2
Considérons les programmes linéaire duaux : primal et dual suivants. A chaque contrainte i du primal
on associe une variable duale
Associons a chaque contrainte i une variable duale uj . nous obtenons le programme dual :
La façon la plus simple d'obtenir le programme dual à partir du primal est de le mettre sous l'une des
formes standards, on peut passer de l'un à l'autre et inversement.
max Z = C x min W = ub
(P ) Ax ≤b (D) uA ≥c
x≥ 0 u ≥0
Par exemple les 2 programmes suivant sont duaux :
1. Cette transformation est involutive (le dual du dual est primal). Vérier cela en Exercice.
2. Une variable primale non-négative correspond à une contrainte-inégalité dans le dual.
3. Une variable primale non astreinte correspond à une contrainte-égalité dans le dual.
4. La matrice des contraintes du dual est la transposée de la matrice du primal.
5. Les coecients de la fonction objective du primal sont le second membre du dual.
6. Un problème de maximisation primal devient un problème de minimisation dual.
lemme 2 : Si la solution optimale du primal est innie positive, alors le dual n'a pas de solution.
La réciproque n'est pas vraie. (La démonstration de ce lemme est laissée en exercice).
On ne mettra pas l'exposant t pour la transposition de la matrice ou des vecteurs pour alléger l'écriture.
Il est évident que les opérations doivent être possibles, par exemple, c x = u b devrait être écrite.
ct x = ut b où c et u sont des vecteurs-colonnes.
Si la solution optimale du primal est innie positive, alors le dual n'a pas de solution. La réciproque
n'est pas vraie.
Démonstration :
Considérons les problèmes duaux :
min Z = C x max W = ub
(P1 ) Ax =b (D1 ) uA ≤c
x≥ 0 u ∈R
Si x∗ est solution réalisable du primal et u∗ solution du dual vériant : u∗ b = c x∗ , alors x∗ et u∗ sont
des solutions optimales.
En eet, posons :
P = { x | A x = b et x ≥ 0 }
D={u | uA ≤c}
Ax∗ − b = 0 , x∗ ≥ 0 (2.8)
et
c − u∗ A ≥ 0 (2.9)
ξ1 = u∗ (A x∗ − b) = 0 et ξ2 = (c − u∗ A) x∗ ≥ 0
Variables
Programme Primal principales d'écarts
x1 xs e1 ep
⇓ ⇓ ⇑ ⇑
Programme Dual v1 vs u1 up
d'écarts principales
La solution du dual représente les coecients marginaux du primal à un signe près. On identie les
variables de base et hors-base du programme dual puis on exprime, en utilisant le tableau du simplexe,
les variables de base en fonction des variables hors-base en inversant le signe des coecients.
Soit le programme linéaire de l'exemple 2.3 page 20 et son programme dual voir les programmes 2.5
et 2.6.
Écrire le programme dual qui lui est associé, déduire le dernier tableau du simplexe de ce programme
dual puis donner sa solution optimale.
Les variables de base duale sont donc u1 et u2 . Par contre les variables u3 , v1 , v2 sont hors-base.
Exprimons les variables de base en fonction des variables hors base :
De façon pratique on procède comme suit :
Placer la matrice identité après avoir déterminé les variables de bases, correspondant respec-
tivement ( variable d'ecart primale donne variable principale duale et inversement) donne aux
variables hors base du primal.
Mettre les coecients en changeant le signe des lignes y compris le Delta et Second membre.
Compléter la ligne des coecients de la fonction objective. Ne pas oublier que nous résolvons
toujours un problème de maximisation ;
Vérier le calcul des delta en les recalculant à partir du tableau obtenu
D'où les derniers tableaux du simplexe du programme (D) et primal (P) sont : (on note P les vecteurs
colonnes)
Le programme dual de l'exemple 1.1.3 page 4est :
Xb Cb x1 x2 e1 e2 e3 b
Xb Cb u1 u2 u3 v1 v2 b
x1 2+a 1 0 −4/3 10/3 0 80
u1 -40 1 0 32/15 4/3 -8/3 16/3
e3 0 0 0 −32/15 4/3 1 8
u2 -40 0 1 -4/3 -10/3 5/3 5/3
x2 3 0 1 8/3 −5/3 0 40 .
C -40 -40 -40 0 0
C 2 3 0 0 0
Y -40 -40 -32 80 40
Y 2 3 16/3 5/3 0
∆j 0 0 -8 -80 -40
∆i 0 0 −16/3 -5/3 0
Exercice 2.2.4. En tirant les u1 et u2 du tableau Dual, et en les remplacant dans le programme initial,
vérier que le tableau correspond réellement au programme D, et qu'il est optimal.
Les variables duales représentent les contributions unitaires des ressources au prot (voir Exercice ).
Autrement dit, la variable duale ui représente la variation de la fonction objective en fonction de la
disponibilité de la ressource i (bi ). Elle est souvent appelée coût marginal et représente la somme que
nous sommes prêts à payer pour augmenter la disponibilité de la ressource i.
En d'autres termes, si une personne tierce nous propose le service d'augmenter notre disponible bi ,
dans quelle mesure ( à quel cout ? ) sommes nous pret a accepter son ore ? quel est le cout unitaire
du service est acceptable ?.
Ce qui explique la minimisation de la fonction objective du dual qui représente le plus faible prix à payer
pour augmenter la disponibilité des ressources et par conséquent augmenter le prot. La contrainte j
du dual signie que la contribution au prot des ressources consommées par une unité de l'activité j
doit être au moins égale au prot unitaire de cette activité.
En particulier si une variable duale ui est nulle, le coût à payer pour l'augmentation du disponible
bi est nul ; ce qui est évident puisque le disponible n'est pas entièrement consommé car la contrainte
primale correspondante est inactive
C
A’
B B’
DR
DR
x1 y1
O A O’
Les variables duales permettent donc d'établir un ordre de paramétrisation du second membre des
contraintes du primal. Autrement dit, en analyse post-optimale et sensitive la priorité est donnée aux
contraintes du primal dont les variables duales correspondantes ont une valeur importante.
Dans les précédents paragraphes notre souci majeur était la recherche de solution optimale lorsqu'elle
existe. En réalité, certaines valeurs utilisées lors de la formulation du problème ne sont pas exactes. Il est
d'un grand intérêt de savoir si la solution trouvée reste optimale pour une variation de certaines valeurs
du programme et de déterminer un intervalle pour lequel cette solution reste optimale. Ces problèmes
sont appelés "Analyse sensitive" ou programmation paramètre. Un cas de problème intéressant en
pratique est l'étude de l'eet du changement des coecients de la fonction objective sur la solution.
Ce problème est aussi appelé "Analyse post-optimale".
Dans ce paragraphe, nous nous limitons aux changements dans le second membre des contraintes et
des coecients de la fonction objective. L'exemple 2.3 suivant illustrera ce paragraphe :
Reprendre le programme linéaire (P.L. 1) :
Discuter l'eet sur la solution optimale et sur l'optimum, dun changement du problème sur :
prot unitaire du produit P1 de 2 à (2 + a).
second membre de la deuxième contrainte : 0.4x1 + 0.2x2 ≤ 40 + b
Base CB x1 x2 e1 e2 e3 b
x1 2+a 1 0 -4/3 10/3 0 80
e3 0 0 0 -7/3 4/3 1 8
x2 3 0 1 2.67 -5/3 0 40
4j 0 0 -16/3+4/3a -5/3-10/3a 0 -280-80a
Base CB x1 x2 e1 e2 e3 b
x1 2 1 0 -4/3 10/3 0 80
e3 0 0 0 -7/3 4/3 1 8
x2 3 0 1 8/3 -5/3 0 40
4j 0 0 -16/3 -5/3 0 280
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene
-5.33 + 1.33a≤0
-1.67 - 3.33a≤0
Valeur de a −∞ -2 -0.5 4 +∞
Variable entrant e2 e2 aucune e1
Variables de base e1 , e2 ,x2 x1 ,x2 , e2 x1 , x2 , e3 x1 , e1 , e3
Solution ( 0,50 ) ( 60,50 ) (80,40 ) ( 100,0 )
Valeur de Z 150 270 + 60 a 280+80a 200 + 100 a
CB Base b u1 u2 u3 v1 v2
-40 u1 5.33 1 0 2.13 1.33 -2.67
-40 u2 1.67 0 1 -1.13 -3.33 1.67
4j -280 0 0 -8 -80 -40
Le coecient de u2 (variable associée a cette contrainte dans le dual) est donc −40 − b (le signe est
négatif à cause du problème de minimisation ramené à la maximisation).
Rappelons que les coûts réduits ∆j sont obtenus à partir des coecients de la fonction objective par la
transformation suivante ∆j = cj − CB Pj dans laquelle CB représente les coecients des variables
de base et Pj le vecteur colonne du tableau.
La dernière ligne du tableau peut être alors obtenue directement du tableau précédent :
−CB Base b u1 u2 u3 v1 v2
-40 u1 5.33 1 0 2.13 1.33 -2.67
-40-b u2 1.67 0 1 -1.13 -3.33 1.67
4j -280-5/3b 0 0 -8-1.33b -80-3.33b -40+1.67b
Ce qui donne : −6 ≤ b ≤ 24 .
b ∈ [−6, 24] la solution précédente reste optimale, en d'autres termes pour la contrainte 2 variant de :
0.4x1 + 0.2x2 ≤ 34 à 0.4x1 + 0.2x2 ≤ 64.En dehors de ces valeurs le tableau doit être changé.
b < −6 : La variable u3 rentre dans la base et la variable u1 en sort.
b > 24 : La variable v2 rentre et u2 sort.
De la même façon que pour le cas du primal, nous faisons les changements de tableau. Regardons ce
que devient le tableau précédant pour le cas b > 24, les autres cas sont laissés au soin du lecteur, nous
donnons cependant le tableau récapitulatif.
b > 24, ce cas correspond au second membre supérieur à 64, de la deuxième contrainte. Après avoir
fait entrer la variable v2 et sortir u2 on obtient le tableau optimal suivant :
CB Base b u1 u2 u3 v1 v2
-40 u1 8 1 8/5 0 1.33 0
0 u2 1 0 3/5 -4/5 -2 1
4j -320 0 24-b -40 -160 0
2.2.3. Analyse Post Optimale et Sensitive A.Belahcene
A B
C
Fonct. Objective
2 ieme contrainte
D x1
2.4 Exercices
x1
droite de F
L'ensemble des solutions optimales est O = { (x1 , x2 ) | 3 x1 + 2 x2 = 18 . Le lecteur est invité
à montrer algébriquement ce résultat.
4. Soit le programme linéaire suivant :
max F = x1 + x2 + x3 + x4
a) Faire une analyse graphique x1 + x2 ≤2
b) Utiliser le Simplex. Que Conclure ? x3 + x4 ≤5
x1 , x2 , x3 ,x4 ≥0
2.2.4. Exercices A.Belahcene
Base x1 x2 x3 e1 e2 e3 b Base x1 x2 x3 e 1 e 2 a1 b
x1 1 0 1.5 4 1 0 10 x1 1 0 3 2 -1 0 1
x2 0 1 2 1 -3 0 5 x2 0 1 2 1 -3 0 5
e3 0 0 3 0 2 1 7 a1 0 0 -1 0 0 1 4
∆ 0 0 -4.5 -13 0 0 ∆ 0 0 M-9 0 6 0
8. Etudier graphiquement le changement du coecient dans la fonction objective de la variable
X1 puis de la contrainte Une dans le programme suivant :
max X1 + X2
0 ≤ X1 ≤ 1
0 ≤ X2 ≤ 1
La programmation linéaire même si elle couvre un vaste domaine d'applications, est loin de répondre
aux exigences de beaucoup de situations dont la formulation donne les programmes non linéaires ou
encore des programmes en nombres entiers. Nous donnons ci-après un exemple de problème se formulant
en programme non-linéaire
Exemple 3.1.1. Une entreprise de commercialisation possède m magasins de vente, d'un certain
produit, répartis à travers le pays. Ses magasins doivent être réapprovisionnés à partir des dépôts de
stockage. Elle veut déterminer l'emplacement de ses dépôts de sorte à minimiser les coûts de transport
du produit des dépôts vers les magasins. Un magasin peut être alimenté par n'importe quel dépôt.
Ce probleme se formule comme un programme Non lineaire à plusieurs Variables avec Contraintes.
Nous ne verrons pas de résolution pour ce genre de problemes, nous nous limitons ici aux programmes
non lineaires sans contraintes.
Notons d'abord que l'optimisation doit porter sur le coût global de transport, lequel dépend des quanti-
tés transportées de chaque dépôt à chaque magasin et de la distance séparant les dépôts des magasins.
Soient
n : le nombre de dépôts
m : le nombre de magasins.
xi , yi les coordonnées du dépôt i
aj , bj les coordonnées du magasin j.
ci la capacité du dépôt i
rj la demande du magasin j.
dij la distance du dépôt i au magasin j.
qij la quantité transporté du dépôt i au magasin j
Le problème se formule alors comme suit :
n X
X m
qij dij
i=1 j=1
Xm
qij <= ci i = 1, .., m
j=1
Xn
qij ≥ rj j = 1, ..., n
i=1
qij ≥ 0et dij ≥ 0 ∀i ∈ (1, n) ∀j ∈ (1, m)
Après remplacement de dij par son expression, la fonction objective devient non linéaire par rapport
aux variables indépendantes xi , yj . C'est donc un programme non-linéaire avec contraintes.
De plus, si la quantité à transporter est le nombre d'unités, le problème devient encore plus dicile à
résoudre, puisqu'il devient un programme en nombres entiers. La résolution d'un tel problème ne peut
se faire avec le simplexe (voir chapitre 2). Il faut développer d'autres techniques de programmation
non linéaire en nombres entiers.
Un programme non linéaire se présente sous la forme :
Où n est le nombre de variables, m et p sont les nombres de contraintes égalités et inégalités. F est
un sous ensemble de Rn . Les fonctions vectorielles h et g sont dénies par les fonctions f, gi et hi de
Rn dans R.
Si les fonctions f, gi et hi sont linéaires, le programme est alors linéaire. Les résultats de la program-
mation non linéaire sont aussi valables pour un programme linéaire.
Si E ⊆ Zn le programme est alors en nombres entiers.
Nous étudions uniquement les problèmes de minimisation ; un problème de maximisation se ramène à
un problème de minimisation en changeant le signe de la fonction objective.
3.2.1 Dénitions
Dénition 3.2.1. Un programme non linéaire à une variable réelle se présente sous la forme : Optimiser
f (x)tel que x ∈ [a, b]. Ce problème est dit avec contrainte, il sera sans contrainte pour x ∈ R.
Dénition 3.2.2. Une fonction f admet un minimum local en x0 , s'il existe un voisinage de x0 (noté
V( x0 ) ) tel que : f (x0 ) ≤ f (x)∀x ∈ V (x0 ). Un minimum global sur un intervalle correspond au plus
petit des minimums locaux.
Dénition 3.2.3. Une fonction f est convexe sur l'intervalle I si ∀x, y ∈ I et α ∈]0, 1[ alors f (αx +
(1 − α)y) ≤ αf (x) + (1 − α)f (y). Si l'inégalité est stricte, f est strictement convexe. Si f (x) est convexe
alors −f (x) est concave.
3.2.2 Théorèmes
Théorème 3.2.4. Si f est continue sur un intervalle fermé et borné, alors elle admet sur cet intervalle
un minimum et un maximum.
Théorème 3.2.5. Soit f ∈ C 1 (I), c'est à dire que sa dérivée première f 0 est continue sur I ouvert. Si
f (y) est un optimum local alors f 0 (y) = 0. C'est une condition nécessaire d'optimalité (non susante).
Théorème 3.2.6. Soient f ∈ C n (I) et y ∈ I vériant : f 0 (y) = f 00 (y) = ...... = f k−1 (y) = 0 et
f k (y) 6= 0
si k est impaire f (y) n'est pas un extremum ( ni maximum, ni minimum) ;
si k est pair et f k (y) > 0 , f (y) est un minimum local
si k est pair et f k (y) < 0 , f (y) est un maximum local.
3.3.2. Fonction à une seule variable A.Belahcene
Théorème 3.2.7. Soit f ∈ C 2 (I) alors f est convexe sur I si et seulement si f 00 (x) ≥ 0 ∀x ∈ I . Si
f00 (x) > 0 ∀x ∈ I alors f est strictement convexe, la réciproque n'est pas vraie, (par exemple f (x) = x4
est strictement convexe dans R mais f 00 (0) = 0.
Théorème 3.2.8. Si f est convexe sur I alors la condition nécessaire est susante, c'est à dire que le
minimum local est global sur I. Si en plus I est fermé et borné, le maximum de f est à l'une des bornes
de I.
Théorème 3.2.9. Sur un intervalle fermé et borné une fonction peut atteindre son optimum :
soit au point où la fonction n'est pas dérivable.
soit au point où la dérivée est nulle,
soit aux bornes de l'intervalle.
Les résolutions itératives permettent simplement la resolution de l'équation f ' (x) = 0, c'est a dire
la recherche d'un point condidat (vériant la condition nécessaire). C'est la raison pour laquelle nous
supposons l'unimodularité de la fonction.
Nous présentons dans ce qui suit deux des méthodes les plus utilisées : La méthode des 3 points et la
méthode de Fibonacci. Ces méthodes seront illustrées par l'exemple 3.2.10.
Exemple 3.2.10. Résoudre le problème suivant : g(x) = x2 tel que x ∈ [−1, 3] en utilisant :
La méthode des trois points avec une erreur inférieure à ε = 0.01.
La méthode de Fibonacci avec ε = 0.1
Initialisation : Plaçons trois points x, y, t à l'intérieur de [a,b] de sorte que les intervalles [a,x], [x,y],
[y,t], [t,b] soient de même longueur L/4.
Procédure courante : Le nouvel intervalle de recherche est de longueur L/2 et centré sur z tel que :
Pour se xer les idées on suppose que le minimum de f soit en x ,f (x) = min f (x) = min(f (x), f (y), f (t)).
Le nouvel intervalle de recherche sera [x, t], on reprend la procédure avec cet intevalle. Voir le schema
a x y t b x y t
Critère d'arrêt : Soit zN la valeur approchée, à l'étape n, de la vraie valeur z* pour laquelle f(z*) est
L
minimum. L'algorithme s'arrête si l'erreur |zn −z ∗| ≤ ε. L'erreur commise est alors |zn −z ∗| ≤ .
2n + 1
log(L) − log(e)
Le nombre d'itérations est la partie entière de y = log 2
.
Utilisons la méthode des trois points pour résoudre le problème de l'exemple 3.2.10. Soit l'intervalle
I = [-1, 3] de longueur L= 4. On place les points x=0, y=1 et t=2. Ce qui donne f(x)=0, f(y)=1 et
f(t)=4. Le nouvel intervalle centre en 0 est I1 = [-1, 1] de longueur 2.
On reprend la procédure avec les nouveaux points x = −0.5 , y = 0 , t = 0.5. Le minimum est obtenu
pour y =0 donc nouvel intervalle est I2 = [0.5, 0.5].
A la 8ieme itération nous obtenons une erreur inférieure à L/29 = 0.008.
La fonction atteint son minimum au milieu de l'intervalle I, c'est à dire, au point 0.
Méthode de Fibonacci
Procédure courante : Placer xj à une distance FN −j+1 β du dernier point extrémité placé de l'inter-
valle obtenu. Garder de l' intercalle Ij = [aj , bj ], l'intervalle contenant les meilleurs points. Le nouvel
intervalle est renommé Ij = [aj , bj ] pour la prochaine itération.
3.3.2. Fonction à une seule variable A.Belahcene
Critère d'arrêt : La procédure est arrêtée quand LN ≤ 2ε Ln ≤ 2 e , ce qui est le cas quand j = N −1.
Le nombre d'itérations est donc N − 1.
Utilisons la méthode de Fibonnaci avec ε = 0.1 pour résoudre le problème de l'Exemple précédant.
On a : a = −1, b = 3 et L1 = 4 F9 = 55 ≥ 4/0.1 . Il s'ensuit que N = 9 et β = 0.073.
On place : x1 = a + F8 β , c'est à dire, : x1 = 1.47 et x2 = b − F8 β , donc x2 = 0.28.
Or f(-1)=1, f(0.53) =0.28, f(1.47)= 2.16 et f(3) = 9. On garde donc l'intervalle contenant x = 0.53. Le
nouvel intervalle est [-1, 1.47].
On place x3 à F7 β = 1.53 de 1.47, (dernière extrémité de l'intervalle) c'est à dire x3 = 0.06. Nous
avons f(-1)=1, f(-0.06)=0.0036, f(0.53)=0.28 et f(1.47)=2.16. On retient l'intervalle contenant -0.006.
Le nouvel intervalle est [-1, 0.53].
A l'itération 8 on retient I8 = [−0.127, 0.019] de longueur L8 = 20 , la valeur approchée de x* est x9
=-0.054 milieu de I8 (placé à 0 de chacune des bornes ). L' erreur est inférieure à 0.073, on arrête la
procédure..
La méthode de Fibonacci nécessite plus d'itérations que la méthode des 3 points, puisque LN =
0.6LN − 1 au lieu de LN = 0.5 LN − 1 pour l'autre méthode. Cependant, dans une itération de la
méthode de Fibonacci on calcule un seul nouveau point alors que pour l'autre méthode on calcule
2 nouveaux points. La longueur de l'intervalle est divisée par 2 à chaque itération dans le cas de la
méthode des trois points. Par contre dans la méthode de Fibonacci LN et LN -1 sont telles que :
F
Ln = Ln−1 F N−n avec lim FFn = 0, 618, n→ ∞
N−n+1 n+1
Ordre de convergence
Soit une suite {rn } convergente vers r* . L'ordre de convergence de {rn } est déni par p≥0 tel que :
| RK+1 − R∗ |
0 ≤ lim <∞
| RK − R∗ |P
La séquence rK = aK pour 0 < a < 1 est convergente vers 0 avec l'ordre 1. En eet :
| (αK−1 − 0 |
lim = α Dans ce cas p = 1.
| αK − 0 |1
Cette limite est le taux de réduction de l'erreur d'une itération à une autre. Notons qu 'en général la
limite n'est pas connue aussi on utilise alors les majorant de cette erreur.
Soit par exemple a = 0.02 alors r3 = 8 10−6 , r4 = 1.6 10−7 et r5 = 3.2 10−9
K
La séquence RK = a2 0 < a < 1 est convergente vers 0 avec l'ordre 2. En eet :
| RK+1 − 0 |
lim = 1 Dans ce cas p = 2.
| RK − 0 |2
Soit par exemple a = 0.5 alors r3 = 3.9 10−3 , r4 = 1.5 10−5 et r5 = 2.3 10−10
Il est clair que l'erreur dans ce cas tend plus vite vers 0 que dans le premier exemple bien que la valeur
de a est beaucoup plus grande que dans l'exemple 1.
La convergence linéaire est dite de taux t si la limite du rapport est égal à t. Dans l'exemple 1 le taux
est t = 0.02.
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene
Nous nous intéressons dans ce chapitre à la résolution des problèmes suivants : min f (x) où x est un
vecteur de Rn et f une fonction de Rn −→ R. Rappelons que maximiser f revient à minimiser −f .
Commençons par donner un exemple de problème se formulant en programme non-linéaire.
Exemple 3.3.1. Une entreprise achète trois produits qu'elle utilise dans un processus de fabrication.
Ses besoins annuels sont connus et constants D = {d1 , d2 , d3 }. Les prix d'achat unitaires des produits
sont U = {u1 , u2 , u3 }. Le coût d'un approvisionnement est supposé indépendant de la quantité com-
mandée et vaut A = {a1 , a2 , a3 }. L'entretien des produits engendre un coût de stockage estimé à 20%
de la valeur des produits en stock. L'entreprise veut connaître les volumes à commander pour chaque
produit à chaque réapprovisionnement. Formuler ce problème comme un programme sans contraintes.
Application numérique : D = {480, 500, 300}; U = {24, 10, 10}; A = {50, 40, 27}
Le réapprovisionnement est fait périodiquement. La période est supposée constante, mais reste à dé-
terminer. La quantité à commander est aussi à déterminer à chaque période. Notons :
qi : la quantité du produit i à commander.
di : le nombre de réapprovisionnement par an.
qi
Ci : le coût d'entretien du stock par unité de temps et par unité de produit.
K(q) : Le coût global formé des coûts de réapprovisionnement et des coûts de stockage.
La consommation étant supposée constante, la quantité moyenne en stock pour le produit i est 0.5 qi .
Pour une année et pour un produit i nous obtenons : coût de stockage égal à 0.5 qi Ci avec Ci = 20%Ui
, le coût d'approvisionnement égal à ai dqii . En résumé, le problème revient à minimiser la fonction non
linéaire K donnée par :
3
X di
K(q1 , q2 , q3 ) = (ai , + 0.5 q, ci )
qi
i=1
Notons que le coût d'achat n'a pas été inclu dans la fonction objective K puisque le coût total d'achat
est une constante et n'inue donc pas sur la solution.
Nous donnons ci-après un ensemble de dénitions et de théorèmes qui nous permettent de mieux
comprendre les développements des méthodes de recherche d'optimums.
Les démonstrations des théorèmes ne sont pas présentées pour éviter d'alourdir le texte, certains
sont donnés en exercice pour d'autres, le lecteur intéressé peut consulter les livres de mathématiques
avancées comme [WYL75], [HUR80], [BAZ79] ou [LUE89].
3.3.1 Dénitions
Dénition 3.3.2. On appelle un ε-voisinage de x0 , V (x0 ), les vecteurs x vériant : (x−x0 )t (x−x0 ) ≤ ε.
La fonction f admet un minimum au point x0 s'il existe un V (x0 ) tel que f (x0 ) ≤ f (x) pour tout x
dans V (x). Dans le cas où ε est inni alors le minimum est global.
∂f
Dénition 3.3.3. On appelle gradient de f le vecteur ∇f ∂f ∂f
=( ,
∂x1 ∂x2
, ... ). La matrice Hessienne
∂xn
∂2f
de f est la matrice Hf dénie comme suit : Hf = (hij ) où hij =
∂xi ∂xj
Dénition 3.3.4. Une matrice A est dénie positive (respectivement semi-dénie) dans un sous en-
semble E de Rn si la forme quadratique X t AX est positive (respectivement positive ou nulle ) pour
tout X 6= 0 et X ∈ E .
Dénition 3.3.5. La fonction f est dite convexe sur un domaine convexe D, si elle vérie la condition
suivante :
∀X, Y ∈ D et λ ∈ [0, 1] f (λX + (1 − λ)Y ≤ λf (X) + (1 − λ)f (Y )
3.3.3. Optimisation de fonction à plusieurs variables A.Belahcene
3.3.2 Théorèmes
Théorème 3.3.6. Une matrice est dénie positive (respectivement semi-positive) si ses valeurs propres
sont positives (respectivement positives ou nulles)
Théorème 3.3.7. Une matrice symétrique A est dénie positive si et seulement si, les déterminants
| Ai | sont positifs, elle est dénie négative si −1i | Ai | sont positifs. Ai est une sous matrice de A
formée de ses i premières lignes et i premières colonnes.
Les théorèmes qui suivent sont la généralisation des théorèmes de la section 3.2.2 , des fonctions à une
seule variable.
Théorème 3.3.8. Si f est continue dans une région fermée et bornée, alors elle admet un maximum
et un minimum dans cette région.
Théorème 3.3.9. Si f (x0 ) est un minimum et si Of existe sur un O(x0 ) alors Of (x0 ) = 0. ( condition
nécessaire d'ordre 1 ).
Théorème 3.3.10. Soient f ∈ C2 (I) et x ∈, Of (x) = 0. Si f (x) est un minimum alors Hf (x) est
semi-dénie positive (condition nécessaire d'ordre 2). Cette condition est susante si Hf (x) est dénie
positive.
Théorème 3.3.11. Soit f ∈ C2 (D) , f est convexe sur un domaine convexe D si et seulement si sa
matrice Hf est semi dénie positive en tout point de D. Si Hf est dénie positive, f est strictement
convexe, la réciproque n'est pas vraie.
Théorème 3.3.12. Si f est convexe sur un domaine convexe D, alors les conditions nécessaires
d'optimalité sont aussi susantes, de plus l'optimum est global sur D.
C'est la méthode la plus ancienne et la plus largement utilisée. Soit X0 une solution réalisable initiale.
On choisit la direction d'amélioration dk telle que dk = − 5f (Xk ). La plus grande pente est donnée par
la direction du gradient. Le point Xk+1 , solution à l'étape k + 1, est obtenu par l'algorithme suivant :
Xk+1 = Xk − α 5f (Xk ). Le paramétre α, est un réel positif, il est déterminé de sorte que f (Xk+1 )
soit minimum. La marge d'erreur étant choisie, l'algorithme s'arrête lorsque | f (Xk ) − f (Xk+1 ) |≤ .
Soit le problème min f (x, y) = x2 + y 2 − xy + y − x Utiliser la méthode de la plus forte descente pour
résoudre ce problème. Prendre X0 = (1, 2) comme solution réalisable initiale et = 0.001.
On note Xk la solution à l'étape k, f (Xk ) la valeur de la fonction objective à l'étape k, Ek = f (Xk ) −
f (Xk+1 ) l'erreur pour critère d'arrêt et dk direction de déplacement à partir du point Xk .
g(α) = f (Xk + αdk ) avec g(αk ) = min g(α) telque α ≥ 0
Nous avons f (X0 ) = 4 et 5f (1, 2) = (−1, 4). Donc la meilleure direction de recherche à partir de X0
est d1 = − 5 f (1, 2) = (1, −4).
Soit X1 le meilleur point sur cette direction. On a X1 = X0 + α1 d1 , où α1 minimise f (X1 ) =
f (α + 1, 2 − α) = g(α) donc g(α) = 21α2 − 17α + 4. Notons que g est convexe sur R puisque
g 0 (α) = 42α − 17 et g 00 (α) = 42. Par conséquent g(0.4) est un minimum global puisque g 0 (α) = 0 et
g 00 (α) > 0. On retient α1 = 0.4
Ce qui donne X1 = (1.4, 0.38), f (X1 ) = 0.56 et E0 = f (X0 ) − f (X1 ) = 3.44 > . On cherche alors
X2 . La direction de recherche est d2 = −∇f (X1 ) = (−1.1, −0.36) et X2 = X1 + α2 d2 où α2 minimise
g(α2 ) = f (X2 ).
La Table 3.1 résume les résultats obtenus. Voir
Si la fonction g(α) possède plusieurs minima sur la direction dk , on choisit le plus petit d'entre eux.
K XK f (XK ) EK dK αk
0 (1, 2) 4 - ( 1 , -4 ) 0.4
1 (1.4, 0.38) 0.56 3.44 ( -1.1 , -0.36 ) 0.8
2 (0.5 , 0.1) -0.19 0.75 ( 0.1 , -0.7 ) 0.5
3 (0.55 , -0.25) -0.3 0.1 ( -0.35 , -0.05 ) 0.44
4 (0.39 , -0.23) -0.325 0.025 ( -0.01 , -0.15 ) 0.51
5 (0.38 , -0.31) -0.332 0.007 ( -0.11 , 0 ) 0.34
6 (0.34 , -0.31) -0.333 0.001
X0
X0(1, 2)
X1(1.4, 0.38)
X2(0.5, 0.1)
X3(0.55, −0.25)
X*(0.33, −0.33)
X1
X2
11
00 X3
00
11
00
11
X*
le i eme axe à partir du point Yi . Autrement dit, di = (0, 0, · · · 0, 1, · · · 0). Le nombre 1 est à la ieme
position. αi est la valeur de α minimisant l'expression f (Yi + αdi ).
On n'a pas besoin d'ajouter un indice k (correspondant au point Xk ) au vecteur di car celui ci est
toujours le même pour toutes les itérations de Xk . On garde le même critère d'arrêt que la méthode
précédente.
Ainsi, dans le cas d'une fonction f à 2 variables on obtient :
X0 = Y0 → Y1 → Y2 = X1
X1 = Y0 → Y1 → Y2 = X2
...
Xk = Y0 → Y1 → Y2 = Xk+1
Cette procédure se répète jusqu'à ce que l'amélioration d'une étape à une autre soit jugée susamment
petite.
Utiliser la méthode des directions cycliques pour résoudre le problème min f (x, y) = x2 +y 2 −xy+y−x.
Prendra pour solution réalisable initiale X0 = (1, 2) et une erreur = 0.001
Nous partons du même point que pour la méthode précédente, et on utilise le même critère d'arrêt de
manière à faire une comparaison entre les 2 méthodes. Voir la gure
Soit X0 = (1, 2), les directions de déplacement sont d1 = (1, 0) puis d2 = (0, 1) à partir de n'importe
quel point Xk .
On initialise Y0 par Xk . On détermine Y1 et Y2 en utilisant les directions d1 et d2 ,Y2 prendra la valeur
de Xk+1 .
On a Y0 = X0 = (1, 2) et Y1 = Y0 + α1 d1 . Le minimum global de g(α) = f (1 + α, 2) = α2 − α + 4 est
donné par α = 0.5 d' où Y1 = (1.5, 2).
3.3.4. Série d'exercices A.Belahcene
k Xk f (Xk ) Ek dk Y
0 (1,2) 4 - 1, 0 1.5 , 2
0, 1 1.5 , 0.25
1 ( 1.5 , 0.25 ) 0.69 3.31 1, 0 0.62 , 0.25
0, 1 0.62 , -0.19
2 ( 0.62 , -0.19 ) -0.27 0.96 1, 0 0.4 , -0.19
0, 1 0.4 , -0.3
3 ( 0.4 , -0.3 ) -0.31 0.04 1, 0 0.35 , -0.3
0, 1 0.35 , -0.32
4 ( 0.35 , -0.32 ) -0.33 0.02 1, 0 0.33 , -0.33
0, 1 0.33 , -0.33
5 ( 0.33 , -0.33) -0.333 0.00
X0
X0(1, 2) Y
Y(1.5, 2)
X1(1.5,0.25)
Y(0.62, 0.25)
X2(0.62, −0.19)
Y X1
X2
X*
4. Démontrer les théorèmes du cours concernant l'optimalié locale et globale des fonctions à une
variable n fois dérivables.
5. Utiliser la méthode des trois points pour résoudre les problèmes : max Z = x(5π − x) sur[0, 20]
avec une erreur sur la variable inférieure à 1. min Z = x5 −5x sur [1, 2] puis sur [−1, 2] avece = 0.5
. Que peut on conclure ? Donner le nombre d'itérations susantes dans chaque cas.
6. Reprendre les exercices 1 et 2 en utilisant la méthode de Fibonacci, e = 0.5.
7. Chercher le minimum de f (x) = x3 − 6x2 + 9x + 6 sur [−3, 7]et [−1.5, 6.5] avec les méthodes
des 3 points et de Fibonacci. Expliquer les résultats.
√ √
8. Montrer que le terme général de la suite de Fibonacci peut s'ecrire : Fn = √1 ([ 1+ 5 ]N +1 -[ 1− 5 ])
5 2 2
√
En déduire que lim FFn−1
n
= [ 1+2 5 ]= 0.618
9. Donner l'ordre et le taux de convergence de la méthode des trois points et de Fibonacci. En
supposant la convergence de la suite {xn } avec a > 0 , quelle est son ordre de convergence de
1
la suite Xn−1 = (Xn + Xa )
2 n
10. Etudier la convexité et la concavité des fonctions données dans les exercices 1 et 2. Les optimums
sont-ils globaux ?
11. Montrer que l'intersection de 2 ensembles convexes est convexe. Montrer que tout demi-espace
AX ≤ b est convexe. (A est une matrice n ∗ n, x et b des n-vecteurs). Montrer que le polyèdre,
domaine de réalisation d'un programme linéaire, est convexe.
12. Utiliser la dénition pour montrer la convexité de f(x) = x2 , ∀ x∈ R. Montrer que f(x) = x4
est strictement convexe dans R bien que f(0)= 0.
13. Soit fi pour i ∈ I , un ensemble de fonctions convexes sur un domaine convexe D. Montrer que
la fonction g dénie par g(x) = sup fi (x) est convexe sur D.
14. Soient g une fonction à une variable, monotone non décroissante, convexe et f une fonction
convexe, dénie sur une région D. Montrer que g(f ) dénie par g(f (X)) pour X ∈ D est
convexe.
15. Donner, si possible le domaine de convexité ou de concavité des fonctions suivantes, et utiliser
la méthode algébrique pour trouver les minimums, s'ils existent, des fonctions de l'exercice
précédent.
x + y2
sin(xy) − cos(x − y)
x2 + y
(2x − 5)2 − (y − 3)2 − (5z − 2)2
10 − 2(y − x2 )2
x2 (y − 1) + z 3 − 3z
(x − 2)2 + (y − π) + 10
16. Résoudre graphiquement le problème :
Sachant que la solution sature la contrainte (1), max Z = (250 − x)x + (250 − y)y
rendre le problème sans contrainte, puis le résoudre.
x + y ≤ 100
Reprendre le problème avec la fonction max Z =
(300 − x)x + (100 − y)y . 8x + 3y ≤ 600
(x, y) ∈ R2
17. Soit le problème max Z = −6x + y 2 tel que x2 + y 2 = 4. Trouver le problème à une variable
équivalent, puis le résoudre.
18. Utiliser la méthode de la plus forte descente pour trouver les minima s'ils existent, des fonctions
suivantes. Les valeurs initiales sont données par x0 . On prend ε = 0.05. Faire d'abord une
résolution algebrique si possible. Donner d'autres directions améliorantes. (x − 2)4 − (x − 2y)2
pour x0 = (0, 3), (x − 2)2 − (y − π)2 + 10 pour x0 = (1, 1) et sin(xy) + cos(x − y) pour
x0 = (0.5, −0.4)
19. Reprendre l'exercice précédent en utilisant la méthode des directions cycliques.
3.3.4. Série d'exercices A.Belahcene
0
23. Soit la fonction f (x, y) = 5x2 + 5y 2 − xy − 11x + 11y + 11. Mettre f (X) sous forme matricielle, Q
1
est symétrique, f (X) = XQX + AX + C . Soit t = E(Xk+1 )/E(Xk ) la vitesse de convergence
2
de la méthode du gradient. Pour un problème quadratique on montre que t ≤ (A − a)2 /(A + a)2 .
Trouver t pour ce problème où A et a sont la plus grande et la plus petite valeur propre de Q.
si X∗ est la solution optimale et E(Xk ) est l'erreur f (X∗) − f (Xk ).
Soit X0 = (0, 1) le point initial. Combien d'étapes sont elles susantes pour amener la valeur
de f à 10−10 ? Que se passe-t-il dans le cas où Q admet les mêmes valeurs propres ? Trouver
Xk telle que f (Xk ) ≤ 10−5 avec la méthode du gradient puis avec la méthode des coordonnées
cycliques. Comparer vos résultats. Donner la solution algébriquement.