Polycopie PL GME22-23
Polycopie PL GME22-23
Programmation Linéaire
Mohamed BENDAOUD
Email : [Link]@[Link]
..........................................................................................................................
École Nationale Supérieure d’Arts et Métiers, Marjane II, B.P. 15290, Al Mansour, Meknès
Tél : +212(0)535457160/61- +212(0)648313896
Fax : +212(0)535467163
Table des matières
Introduction 4
1 Programmation linéaire 6
1.1 Introduction à la recherche opérationnelle . . . . . . . . . . . . . . . . . 6
1.1.1 Enjeux de la recherche opérationnelle . . . . . . . . . . . . . . . 8
1.1.2 Formulation d’un problème d’optimisation . . . . . . . . . . . . 8
1.1.3 Méthodes et outils de la recherche opérationnelle . . . . . . . . . 9
1.2 Modélisation d’un programme linéaire . . . . . . . . . . . . . . . . . . . 9
1.3 Méthode graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.1 Algorithme du Simplexe . . . . . . . . . . . . . . . . . . . . . . 24
1.4.2 Tableaux Simplexe . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4.3 Détérmination d’une solution de base admissible . . . . . . . . . 35
1.4.4 Utilisation de la méthode du simplexe dans un problème de mini-
misation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.5 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.5.1 Définition et exemples . . . . . . . . . . . . . . . . . . . . . . . 40
1.5.2 Propriétés de la dualité . . . . . . . . . . . . . . . . . . . . . . . 42
1.5.3 Correspondances entre les tableaux simplexes optimaux Dual et
Primal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.5.4 Interprétation économique de la dualité . . . . . . . . . . . . . . 44
1.6 Analyse de sensitivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.6.2 Paramétrisation de la fonction économique . . . . . . . . . . . . 46
1.6.3 Paramétrisation du second membre des contraintes . . . . . . . . 47
1.7 Mises-en oeuvre sur un solveur . . . . . . . . . . . . . . . . . . . . . . . 49
2
Table des figures
3
Introduction
Introduction
La recherche opérationnelle est une discipline qui a pour rôle d’assurer la compré-
hension et la modélisation des systèmes industriels et du secteur public et de les traduire
au monde théorique fondé principalement par des mathématiques, des statistiques et de
l’informatique.
Comme objectif de ce cours est de présenter l’un des méthodes de recherche opéra-
tionnelle à savoir la programmation linéaire. Le premier objectif de ce cours est de ce
concentrer sur la formulation et la modélisation des problèmes d’optimisation continue
ou discrètes où les contraintes et le critère (ou la fonction objective) s’expriment linéai-
rement. Dans cette partie, nous commencerons par la collecte des données et des infor-
mations fournies par le problème traité. Ensuite nous présentons les différentes étapes à
suivre pour donner une vision mathématique globale. Le deuxième objectif concerne la
présentation des différentes techniques de résolution de ces problèmes dont le but est de
trouver la meilleure solution (appelée solution optimale) ou pour le problème étudié.
Le premier chapitre est est organisé en cinq sections. La première section est des-
tiné à la présentation de la recherche opérationnelle, son utilisation et les domaines qui
font appel à cette discipline. Les autres sections sont consacré à la formulation et la ré-
solution d’une programmation linéaire, c’est-à-dire les problèmes où les contraintes et la
fonction objective sont linéaires. Dans ce chapitre nous apprendrons comment translater
et formuler des problèmes sous forme d’un programme linéaire, puis nous présenterons
les méthodes de résolution d’un programme linéaire à savoir la résolution graphique et la
résolution analytique, plus précisément l’algorithme du simplexe qui est la méthode prin-
cipale pour la résolution de programmes linéaires en nombres réels. Nous conclurons en
donnant un petit aperçu sur la dualité et ses principales applications dans les programmes
linéaires. L’analyse de la sensibilité ainsi que et la mise en oeuvre un solveur libre et/ou
professionnel sont aussi présentées.
Mohamed BENDAOUD 4
Chapitre 1 1.1 Introduction à la recherche opérationnelle
Ces notes de cours ne vous seront profitables que si vous préparez régulièrement et
sérieusement les T.D.s et ne vous dispensent bien évidement pas d’assister au cours.
Mohamed BENDAOUD 5
Chapitre 1
Programmation linéaire
Autrement définie, la RO traduit des énoncés ou des cahiers de charges liés à des
problématiques spécifiques sous forme de méthodes et des démarches à base d’équation
mathématique, des algorithmes et des outils statistiques.
Deux îles de la ville de Königsberg sont reliées entre elles par 1 pont. D’autre part
6 autres ponts relient les îles à la ville. La question posée est la suivante : à partir d’un
6
Chapitre 1 1.1 Introduction à la recherche opérationnelle
point de départ quelconque, existe-t-il un chemin passant une et une seule fois par chaque
pont et qui revient au point de départ ?
La réponse (apportée par Euler) est non. La preuve utilise un graphe : les arêtes
du graphe représentent les ponts et les sommets correspondent aux différents endroits
de la ville (les rives gauche et droite et les deux îles ; voir figure Figure 1.2 ci-dessous).
Supposons qu’un tel chemin existe. Un tel chemin est appelé chemin eulérien. Alors né-
cessairement en chacun des noeuds du graphe il y a toujours un nombre pair d’arêtes
reliées au noeud : s’il y a une arête qui arrive au noeud, il y en a nécessairement une
autre (différente) qui le quitte. Or, on constate que le graphe possède des noeuds (tous
en fait !) reliés à un nombre impair d’arêtes. Par conséquent, il n’existe pas de chemin
eulérien.
Mohamed BENDAOUD 7
Chapitre 1 1.1 Introduction à la recherche opérationnelle
Problème concret
Modélisation
Prise de décision
La R0 est utilisée dans les domaines ou la prise de décision fait appel à la résolution
des problèmes d’optimisation, qui sont des problèmes d’analyse fonctionnelle qui cherche
l’extremum d’une fonction, telle que les problèmes de :
• Dimensionnement,
• localisation
• Détection de dysfonctionnements : diagnostics, réparation, maintenance.
• Gestion de ressources
• Partage des ressources
• Rentabilisation des investissements
• Etc...
• Analyse : Dans cette phase, on commence toujours par l’identification des don-
nées nécessaires à la résolution du problème, les valeurs de consommations ou les
fiches techniques des articles, la quantité des ressources disponibles, les coûts de
transport, la capacité de production, les gains engendrés par chaque article ou les
Mohamed BENDAOUD 8
Chapitre 1 1.2 Modélisation d’un programme linéaire
dépenses établies pour la réalisation d’une action. Dans cette phase, on détermine
les composantes, les enjeux et les limites du problème.
Comme outils, on peut citer de nombreux logiciels payants ou libres pour la résolution
des problèmes de de la recherche opérationnelle :
Mohamed BENDAOUD 9
Chapitre 1 1.2 Modélisation d’un programme linéaire
Exemple 1.2.2 Une entreprise fabrique des tables et des chaises à partir de deux ma-
tières : le bois et la peinture, sachant que la réalisation d’une table nécessite 3 m de bois
et 4 kg de peinture la réalisation d’une chaise nécessitent 2 m de bois et 1 kg de peinture.
Les moyens financiers de l’entreprise acceptent un approvisionnement de 100 m de bois
et 120 kg de peinture par semaine. Les produits ainsi fabriqués fournissent un bénéfice de
500 DH par table et 300 DH par chaise vendu.
On souhaite maximiser le bénéfice total de l’entreprise venant de la vente des tables et
des chaises.
Question : formuler le problème.
Mohamed BENDAOUD 10
Chapitre 1 1.2 Modélisation d’un programme linéaire
P1 P2 Ressource disponible
Heure / Machine 3 9 81
main d’oevre 4 5 55
emballage 2 1 20
Mohamed BENDAOUD 11
Chapitre 1 1.2 Modélisation d’un programme linéaire
Solution.
• Choix des variables :
x1 et x2 sont respectivement les quantités de D1 et D2 dans le menu à compo-
ser.
• Formulation des contraintes :
Contraintes diététiques : Le menu doit comporter au minimum 5 unités de V ,
4 unités de C, 6 unités de P . Les coûts unitaires sont 20 pour D1 et 25 pour
D2 .
x1 + 5x2 ≥ 5
Réalisation du menu : x1 + 2x2 ≥ 4
3x1 + 2x2 ≥ 6
Positivité des variables : x1 , x2 ≥ 0.
• La fonction objective à minimiser est z(x1 , x2 ) = 20x1 + 25x2 .
Ainsi, le problème de d’alimentation se modélise sous forme :
Mohamed BENDAOUD 12
Chapitre 1 1.2 Modélisation d’un programme linéaire
D2) et que les magasins A, B et C ont commandés 200 containers chacun. Les coûts de
transport par containers sont les suivants :
Le but est de minimiser le coût total de transport des containers des dépôts vers les ma-
gasins en respectant les disponibilités et les demandes. Formuler mathématiquement le
problème.
Solution.
• Choix des variables :
xij le nombre de containers transportés du dépôt i vers le magasin j (i = 1, 2
et j = A, B, C).
• Formulation des contraintes
:
x1A + x1B + x1C ≤ 250
Disponibilité :
x2A + x2B + x2C ≤ 450
x1A + x2A = 200
Demande : x1B + x2B = 200
x1C + x2C = 200
Positivité des variables : xij ≥ 0, à valeurs entières.
• La fonction objective à minimiser
z(xij , i = 1, 2, j = A, B, C) = 3, 4x1A +2, 2x1B +2, 9x1C +3, 4x2A +2, 4x2B +2, 5x2C .
Dans ce problème on dispose de n objets et d’un sac à dos pouvant supporter un poids
maximal P . A chaque objet est associé un poids et une valeur. On souhaite remplir le sac
de sorte à maximiser la somme des valeurs des objets qu’il contient sans dépasser le poids
total autorisé.
Solution.
• n le nombre d’objets ;
• vi la valeur de l’objet i = 1, 2, . . . n ;
• pi le poids de l’objet i = 1, 2, . . . n ;
• P le poids total supporté par le sac ;
• xi la variable de décision qui vaut 1 si l’objet i est choisi, 0 sinon.
Mohamed BENDAOUD 13
Chapitre 1 1.2 Modélisation d’un programme linéaire
max(min)z
= c1 x1 + ... + cn xn
a11 x1 + ... + a1n xn ≤ (ou = ou ≥) b1
a21 x1 + ... + a2n xn ≤ (ou = ou ≥) b2
. .
s.c. . .
. .
a x + ... + amn xn ≤ (ou = ou ≥) bm
m1 1
x1 , ..., xn ≥ 0.
En tenant compte du fait que, pour tout a, b ∈ R,
• min z = − max(−z),
• a = b ⇐⇒ a ≤ b et a ≥ b,
• a ≥ b ⇐⇒ −a ≤ −b,
on en déduit que le PL s’écrit sous la forme suivante dite forme canonique :
max z = ct x
s.c. Ax ≤ b
x≥0
Mohamed BENDAOUD 14
Chapitre 1 1.3 Méthode graphique
x1 a11 a12 ··· a1n b1 c1
x2 a21 a22 ··· a2n b2 c2
où x = , A = , b = , c = et ct
.. .. .. ... .. .. ..
. . . . . .
xn am1 am2 · · · amn bm cn
désigne le transposé du vecteur c.
Résoudre le programme linéaire consiste à déterminer les n-uplets (x1 , x2 , ..., xn ) qui
optimisent z (c.-à-d., maximisent ou minimisent z).
Définition 1.2.8 On appelle :
• solution réalisable (ou admissible) du PL tout n-uplet (x1 , x2 , ..., xn ) vérifiant le
système d’inéquations précédent ;
• solution optimale toute solution réalisable qui optimise z ;
• fonction objectif la forme linéaire z(x1 , x2 , ..., xn ) = c1 x1 + c2 x2 + ... + cn xn ;
• polyèdre de Rn tout partie Q de Rn qui s’écrit sous la forme Q = {x ∈ Rn :
Ax ≤ b} où A est une matrice m × n et b ∈ Rm .
L’ensemble des solutions réalisables du PL est appelé domaine des solutions réalisables.
Lorsque ce domaine est non vide, on dit que le PL est réalisable.
Définition 1.2.9 On dit qu’un PL est sous forme standard s’il s’écrit sous la forme
max z = ct x
s.c. Ax = b
x ≥ 0.
Proposition 1.2.10 Tout PL sous forme standard s’écrit de façon équivalente en un PL
sous forme canonique et inversement.
Exemple 1.2.11 Formuler le programme linéaire suivant sous forme canonique et stan-
dard.
minz = 2x1 − x2
4x1 + x2 ≥ 55
s.c. x1 + 3x2 = 27
x1 ≥ 0, x2 ∈ R.
− −
où z = −z et x2 = x+ +
2 − x2 avec x2 = max(x, 0) et x2 = − min(x, 0).
Forme standard :
−
maxz = −2x1 + x+ 2 − x2
+ −
−4x1 − x2 + x2 + e1 = −55
−
s.c. x1 + 3x+ 2 − 3x2 = 27
+ −
x1 , x2 , x2 ≥ 0;
− −
où x2 = x+ +
2 − x2 , z = −z et e1 = −55 − (−4x1 − x2 + x2 ) appelé variable d’écart.
Mohamed BENDAOUD 15
Chapitre 1 1.3 Méthode graphique
À partir de ces deux points on trace la première droite qui partage le plan en deux
demi-plans. Notons que pour tout point M (x1 , x2 ) appartenant au demi plan qui contient
le centre O(0, 0), on a 4x1 +5x2 ≤ 55 puisque pour le centre O on a 4×0+5×0 = 0 ≤ 55.
Ainsi, on conserve ce qui est en dessous de la droite, et on élimine la partie supérieure
puisque la contrainte est une contrainte d’infériorité ; voir figure Figure 1.3 ci-dessous :
On applique le même principe pour toutes les contraintes y compris les contraintes de
positivité. L’intersection de toutes les contraintes forme le domaine plan convexe, délimité
par le polygone OABCD, tel qu’il est donné par la partie hachurée dans la Figure 1.4.
La question qui se pose maintenant est : quel est le point qui donne la valeur optimale
pour ce problème ? C.-à-d., quels sont les couples (x1 , x2 ) de solutions réalisables tels que
z(x1 , x2 ) = 600x1 + 400x2 soit maximum ?
Pour répondre à cette question, on suit la procédure suivante : Pour tout nombre z, on
note Dz la droite d’équation z = 600x1 + 400x2 ou encore x2 = −3/2x1 + z/400 appe-
lée généralement droite d’isovaleur (ou de niveaux) de la fonction objectif. Cette droite a
pour coefficient directeur −3/2 et d’ordonnée à l’origine z/400.
Mohamed BENDAOUD 16
Chapitre 1 1.3 Méthode graphique
Mohamed BENDAOUD 17
Chapitre 1 1.3 Méthode graphique
Lorsque z varie, ces droites Dz ayant même coefficient directeur sont parallèles entre
elles. L’ordonnée à l’origine des droites Dz est z/400. Maximiser z est équivalent à maxi-
miser z/400. Le problème consiste donc à déterminer une ou plusieurs droites Dz qui
rencontrent le domaine des solutions réalisables et ayant une ordonnée à l’origine maxi-
male. Lorsque z augmente, la droite Dz se déplace parallélement à elle même vers le haut.
Ainsi, on trace d’abord la droite D0 pour z = 0 qui est la plus petite valeur pour la fonc-
tion objective, puis on effectue une translation parallèle à la direction de la droite du bas
vers le haut jusqu’à rencontrer le dernier point de la région réalisable.
La droite Dz qui rencontre la région réalisable et qui a une ordonnée à l’origine maxi-
male est celle qui passe par le point B, voir Figure 1.5.
On obtient ainsi le point qui correspond à la solution optimale. Par la projection de ce
point sur les axes du repère (ou en utilisant le fait que B est l’intersection de la première
et la troisième contrainte) on obtient ces coordonnées : x1 = 7, 5 et x2 = 5.
Ainsi, le programme linéaire a une seule solution maximale, le couple (7, 5; 5) qui est
un sommet de la région réalisable, pour laquelle la fonction objectif est optimale et vaut
z = 600x1 + 400x2 = 6500.
Les écarts de l’optimum sont données comme suit :
Mohamed BENDAOUD 18
Chapitre 1 1.3 Méthode graphique
Remarque 1.3.4 Pour trouver la solution optimale d’un P L, il suffit d’évaluer la fonction
objective en chaque sommet de la région réalisable du problème, et de sélectionner la
solution optimale. Cette méthode s’appelle la méthode de l’énumération.
Exemple 1.3.5 Dans l’Exemple 1.3.1 ci-dessus, les sommets du polyèdre de la région
réalisable sont O(0; 0), A(10; 0), B(7, 5; 5), C(30/7; 53/7) et D(0; 10) et on a le tableau
suivant :
O A B C D
x1 0 10 7,5 30/7 0
x2 0 0 5 53/7 10
z 0 6000 6500 5600 4000
La solution optimale est alors obtenue au sommet B pour laquelle la fonction objective
vaut 6500.
Exemple 1.3.6 Soit le programme linéaire suivant :
maxz = 40x1 + 50x2
4x1 + 5x2 ≤ 55
x1 + 3x2 ≤ 27
s.c.
2x1 + x2 ≤ 20
x1 , x2 ≥ 0.
Mohamed BENDAOUD 19
Chapitre 1 1.3 Méthode graphique
La région réalisable du problème est donnée graphiquement par la Figure 1.7. Les droites
Dz sont parallèles au côté (BC). Il y a une infinité de solutions optimales représentées
par tous les points du segment [BC] défini par :
4x1 + 5x2 = 55
[BC] :
30/7 ≤ x1 ≤ 7, 5.
4x1 + 5x2 = 55
Tous les couples (x1 , x2 ) tels que sont des solutions optimales
30/7 ≤ x1 ≤ 7, 5
pour lesquelles la fonction objectif est maximale et vaut 550.
Mohamed BENDAOUD 20
Chapitre 1 1.3 Méthode graphique
Lorsque z varie, ces droites Dz ayant même coefficient directeur sont parallèles entre
elles. L’ordonnée à l’origine des droites Dz est z/5. Minimiser z est équivalent à mi-
nimiser z/5. Le problème consiste donc à déterminer une ou plusieurs droites Dz qui
rencontrent la région réalisable et ayant une ordonnée à l’origine minimale.
La droite Dz qui rencontre la région réalisable et qui a une ordonnée à l’origine mini-
male est celle qui passe par le point A de coordonnées : x1 = 7, 5 et x2 = 5.
Ainsi, le programme linéaire a une seule solution minimale, le couple (7, 5; 5), pour
laquelle la fonction objectif est minimale et vaut z = −2x1 + 5x2 = 10.
La droite Dz qui rencontre la région réalisable et qui a une ordonnée à l’origine mini-
3
male est celle qui passe par le point C(1, ).
2
3
Ainsi, le programme linéaire a une seule solution minimale, le couple (1; ), pour
2
3 115
laquelle la fonction objectif est minimale et vaut z = 20 × 1 + 25 × = .
2 2
Mohamed BENDAOUD 21
Chapitre 1 1.3 Méthode graphique
La région réalisable du problème est vide, voir Figure 1.10. Ce programme n’a pas donc
de solution réalisable, et le problème est à solution impossible.
Mohamed BENDAOUD 22
Chapitre 1 1.4 Méthode du simplexe
maxz = 5x1 + x2
4x1 + 5x2 ≥ 55
s.c.
−5x1 + 7x2 ≥ 35
La région réalisable du problème est non bornée Figure 1.11, et la fonction objective est
alors non bornée.
La méthode graphique pour la résolution d’un problème linéaire à deux variables est
très facile à appliquer. Sa difficulté augmente par l’augmentation des variables dans le
système. Elle devient difficile pour trois variables et, voire impossible, au delà de trois
inconnus dans le système étudié.
Afin d’ôter la difficulté du fait que la méthode graphique est limitée à deux variables,
une méthode appelée méthode du simplexe a été développée afin de résoudre des pro-
blèmes de programmation linéaire avec plusieurs variables ; ceci ferra l’objet de la section
suivante.
Mohamed BENDAOUD 23
Chapitre 1 1.4 Méthode du simplexe
la solution optimale.
Nous présenterons dans cette section une résolution analytique en détaillant deux pro-
cédures : méthode (ou algorithme) Simplexe et tableaux Simplexe.
Mohamed BENDAOUD 24
Chapitre 1 1.4 Méthode du simplexe
3. Région réalisable :
4. Forme standard :
On introduit les variables d’écart ei avec i ∈ {1, 2, 3} positives ou nulles.
Mohamed BENDAOUD 25
Chapitre 1 1.4 Méthode du simplexe
6. Première itération :
La solution de base de départ consiste à ne rien produire soit x1 = x2 = 0. On
étudie ensuite, à partir de cette solution, jusqu’à quel niveau on peut porter x1 ou
x2 conformément aux contraintes de façon à accroître au maximum le profit. Il se
pose le problème du choix de la variable x1 ou x2 qui va passer de la valeur 0 à
une valeur strictement positive. La variable choisie sera appelée variable entrante.
- Critère de sélection de la variable entrante :
Cette sélection doit s’accompagner d’une augmentation de la fonction écono-
mique
z(x1 , x2 ) = 7x1 + 5x2 .
La sélection portera sur x1 qui par unité rapporte le plus. Cette règle est ap-
pelée règle du plus grand gain marginal :
Le critère de sélection de Dantzig de la variable entrante consiste, dans la
fonction économique exprimée exclusivement en fonction des variables
hors-base, à sélectionner la variable affectée du coefficient strictement
positif le plus élevé.
- On exprime ensuite e1 , e2 , e3 et z en fonction des variables hors-base x1 et x2 :
e1 = 400 − x2
e2 = 500 − x1 − x2
e 3 = 700 − 2x1 − x2
z = 7x1 + 5x2 .
Mohamed BENDAOUD 26
Chapitre 1 1.4 Méthode du simplexe
La variable e3 est devenue nulle, elle est sortie de la base, e3 est appelée va-
riable sortante. Les variables x1 et e3 ont permuté.
x2 + e1 = 400
e1 = 400 − x2
x1 + x2 + e 2 = 500 e2 = 500 − (350 − 12 x2 − 12 e3 ) − x2
⇔
2x 1 + x 2 + e 3 = 700
x1 = 350 − 12 x2 − 12 e3
1 1
z = 7x1 + 5x2 . z = 7(350 − 2 x2 − 2 e3 ) + 5x2 .
x2 + e1 = 400
1 1
x
2 2
+ e2 − e
2 3
= 150
⇔ 1 1
x1 + 2 x2 + 2 e 3 = 350
z = 32 x2 − 27 e3 + 2450.
VDB x1 x2 e1 e2 e3 cste
e1 0 1 1 0 0 400
e2 0 1/2 0 1 -1/2 150
x1 1 1/2 0 0 1/2 350
z 0 3/2 0 0 -7/2 - 2450
On a pris la colonne des VDB du premier tableau et on y a remplacé e3 par x1 .
Pour la fonction économique z, le coefficient constant 2450 est affecté impérative-
ment du signe "-" et on place −2450.
Cette itération conduit au sommet A1 (350, 0) pour lequel la fonction économique
vaut 2450.
7. Deuxième itération :
Mohamed BENDAOUD 27
Chapitre 1 1.4 Méthode du simplexe
Jusqu’à quel niveau peut-on porter x2 ? La valeur maximale prise par x2 est
300. Dans ce cas,
e1 = 100, e2 = 0 et x1 = 200.
La variable sortante est e2 .
Les variables hors-base sont alors e2 et e3 , les variables dans la base sont x1 , x2
et e1 . Cette itération conduit au sommet A2 (200, 300) pour lequel la fonction éco-
nomique vaut 2900.
x2 et e2 ont permuté. On exprime les variables dans la base en fonction des nou-
velles variables hors-base e2 et e3 :
x 2 + e1 = 400
e1 = 400 − (300 − 2e2 + e3 )
x1 + x2 + e2 = 500 x1 = 200 + e2 − e3
⇔
2x1 + x2 + e3 = 700
x2 = 300 + 2e2 − e3
z = 7x1 + 5x2 . z = 7(200 + e2 − e3 ) + 5(300 + 2e2 − e3 ).
e1 − 2e2 + e3 = 100
x2 + 2e2 − e3 = 300
⇔
x 1 − e 2 + e3 = 200
z = −3e2 − 2e3 + 2900.
VDB x1 x2 e1 e2 e3 cste
e1 0 0 1 -2 1 100
x2 0 1 0 2 -1 300
x1 1 0 0 -1 1 200
z 0 0 0 -3 -2 - 2900
On a pris la colonne des VDB du deuxième tableau et on y a remplacé e2 par x2 .
Pour la fonction économique z, le coefficient constant 2900 est affecté du signe "-"
et on place −2900.
Conclusion :
z = 2900 − 3e2 − 2e3 ,
e2 et e3 sont hors-base donc nulles, toute augmentation de e2 ou e3 entraîne une
diminution de z. Il n’est plus possible d’améliorer la fonction économique, la so-
lution (x1 = 200, x2 = 300) est la solution optimale.
On interprète les résultats de la manière suivante :
• x1 = 200 bureaux de modèle luxe,
• x2 = 300 bureaux de modèle standard,
• e1 = 100, il reste une possibilité de fabriquer 100 bureaux de modèle standard,
Mohamed BENDAOUD 28
Chapitre 1 1.4 Méthode du simplexe
maxz = ct x
Ax = b
s.c.
x ≥ 0,
on a
δxj = cj − zj , ∀j = 1, 2, ..., n,
m
X
où zj = ci aij est appelé le coût fictif (ou d’opportunité) associé à la variable
i=1
correspondante j.
VDB x1 x2 e1 e2 e3 cste
e1 0 1 1 0 0 400
e2 1 1 0 1 0 500
e3 2 1 0 0 1 700
z 7 5 0 0 0 0
x1 = x2 = 0 représente le sommet origine et z = 0. On a de plus, e1 = 400,
e2 = 500 et e3 = 700.
On sélectionne dans la fonction économique z = 7x1 + 5x2 la variable affectée du
coefficient strictement positif le plus grand (le plus grand coût réduit). La variable
x1 entre en base. Quelle est la variable sortante ?
On considère la colonne RT (ratio test) obtenue en divisant les coefficients constants
par la colonne des coefficients de la variable x1 qui entre en base.
x1 constante RT
e1 0 400 400/0 = +∞
e2 1 500 500/1 = 500
e3 2 700 700/2 = 350.
Mohamed BENDAOUD 29
Chapitre 1 1.4 Méthode du simplexe
On sélectionne dans cette colonne le plus petit nombre strictement positif 350. La
variable e3 sort de la base. Les deux variables x1 et e3 ont permuté. La colonne de
la variable entrante x1 s’appelle la colonne pivot, et la ligne de la variable sortante
e3 s’appelle la ligne pivot. L’intersection de la colonne pivot et de la ligne pivot
s’appelle le pivot et est égal à 2.
2. Deuxième tableau :
Impérativement dans la colonne des variables dans la base du tableau initial, on
remplace la variable e3 qui sort de la base par la variable x1 qui entre en base, on
recopie les autres variables d’où la disposition du second tableau
VDB x1 x2 e1 e2 e3 cste
e1
e2
x1
z
x1 x2 e1 e2 e3 cste
Le1 0 1 1 0 0 400
1
Lp 1 1/2 0 0 1/2 350
2
1
Le1 − 0 × Lp 0 1 1 0 0 400
2
On recopie cette nouvelle ligne Le1 :
x2 + x3 = 400.
x1 x2 e1 e2 e3 cste
Le2 1 1 0 1 0 500
1
Lp 1 1/2 0 0 1/2 350
2
1
Le2 − 1 × Lp 0 1/2 0 1 -1/2 150
2
Mohamed BENDAOUD 30
Chapitre 1 1.4 Méthode du simplexe
Mohamed BENDAOUD 31
Chapitre 1 1.4 Méthode du simplexe
Par des combinaisons avec la ligne pivot, on exprime le système en fonction des
variables hors-base e2 et e3 , c.-à-d., qu’on élimine la variable x2 qui est entrée en
base :
• Pour la ligne Le1 ,
x1 x2 e1 e2 e3 cste
Le1 0 1 1 0 0 400
2Lp 0 1 0 2 -1 300
Le1 − 1 × 2Lp 0 0 1 -2 1 100
• Pour la ligne Lx1 ,
x1 x2 e1 e2 e3 cste
Lx1 1 1/2 0 0 1/2 350
2Lp 0 1 0 2 -1 300
L x1 − (1/2) × 2Lp 1 0 0 -1 1 200
• Pour la ligne Lz ,
x1 x2 e1 e2 e3 cste
Lz 0 3/2 0 0 -7/2 -2450
2Lp 0 1 0 2 -1 300
3
Lz − × 2Lp 0 0 0 -3 -2 - 2900
2
On obtient donc le troisième tableau suivant :
VDB x1 x2 e1 e2 e3 cste
e1 0 0 1 -2 1 100
x2 0 1 0 2 -1 300
x1 1 0 0 -1 1 200
z 0 0 0 -3 -2 - 2900
Conclusion :
La fonction économique s’écrit z = 2900 − 3e2 − 2e3 ; où e2 et e3 sont les
variables hors-base donc nulles. Toute augmentation de e2 et e3 conduit à une
diminution de z. Donc x1 = 200, x2 = 300, e1 = 100, e2 = 100 et z = 2900.
La fonction économique atteint son maximum au point A2 (200, 300) et vaut
2900.
Remarque 1.4.2
1. Le tableau simplexe ne prend en compte que les variables positives x ≥ 0.
Si par exemple l’une des variables xi est ≤ 0 (resp. quelconque) on procède au
−
changement xi = −x0i avec x0i ≥ 0 (resp. xi = x+ i − xi ).
Aussi si par exemple −3x1 + 2x2 ≥ −2 est une contrainte à second membre
négatif, on peut la modifier avant de mettre le programme sous forme standard, et
la réécrire comme suit : 3x1 − 2x2 ≤ 2.
2. La présence d’un zéro dans la ligne pivot entraîne l’invariance de la colonne cor-
respondante.
Mohamed BENDAOUD 32
Chapitre 1 1.4 Méthode du simplexe
z = axi + bxj + c
avec a = 0 et b < 0, alors la variable xi peut entrer dans VDB et donner une
nouvelle solution (un autre sommet Ak+1 ) sans changer la valeur de la fonction
objective, c.-à-d., z est maximum pour deux sommets adjacents Ak et Ak+1 . Dans
ce cas, la fonction économique atteint son maximum en tous les points du segment
[Ak Ak+1 ], et en particulier la solution n’est pas unique.
5. Si touts les ratio test sont négatifs ou infinis, c.-à-d., la colonne RT ne donne
aucune valeur positive non infinie, alors on arrive pas à sélectionner la variable
sortante. Dans ce cas la variable entrante peut augmenter indéfiniment, et la fonc-
tion objectif z est non bornée.
6. Si à une certaine itération, la solution de base est dégénérée, c.-à-d., le sommet
correspondant Ak admet une composante (ou variable) de base nulle, alors on
peut avoir dans l’itération subséquente la même solution de base, c.-à-d., Ak+1 =
Ak : c’est le phénomène de cyclage qui peut empêcher l’algorithme de converger.
(Si un tel cas se produit pendant plusieurs itérations successives, il est possible
de retrouver une base déjà obtenue précédemment et, à partir de là, de cycler
indéfiniment sur une même séquence de bases).
7. On montre que si toutes les solutions de base produites par l’algorithme du sim-
plexe sont non dégénérées, alors l’algorithme du simplexe converge en un nombre
fini d’itérations.
Remarque 1.4.3 Si deux coefficients positifs dans la fonction économique sont égaux, on
pourra déterminer dans chaque colonne correspondante le pivot éventuel et le rapport
(ratio test) associé. On choisira comme pivot celui qui correspond au plus grand rapport
(ratio test).
VDB x1 x2 e1 e2 e3 cste
e2 3 5 1 1 0 150
e3 1 4 2 0 1 80
z 2 2 1 0 0 - 2000
x1 constante RT
e2 3 150 150/1 = 50
e3 1 80 80/1 = 80
Mohamed BENDAOUD 33
Chapitre 1 1.4 Méthode du simplexe
x2 constante RT
e2 5 150 150/1 = 30
e3 4 80 80/1 = 20
Remarque 1.4.5
La règle d’entrée du plus grand gain marginal nous propose une méthode qui permet
d’obtenir la valeur optimale de z, mais rien n’indique que cette méthode propose le plus
court chemin.
Exemple 1.4.6 Il est facile de voir que la règle du plus grand gain marginal appliquée
au programme standard suivant :
Si on n’utilise pas la règle du plus grand gain marginal et si on décide de faire entrer x3
en base, x6 sort de base et le pivot est 1 :
VDB x1 x2 x3 x4 x5 x6 cste
x4 1 0 0 1 0 0 5
x5 4 1 0 0 1 0 25
x3 8 4 1 0 0 1 125
z -4 -2 0 0 0 -1 -125
Mohamed BENDAOUD 34
Chapitre 1 1.4 Méthode du simplexe
Mohamed BENDAOUD 35
Chapitre 1 1.4 Méthode du simplexe
On remarque qu’il n’existe pas de base naturelle évidente pour amorcer les calculs puisque
si x1 = x2 = 0, la première contrainte n’est pas vérifiée, de plus la troisième contrainte
entraine que e2 = −30 < 0 ; ce qui contredit la de non-négativité des variables.
C’est pourquoi une procédure plus méthodique consiste :
1. A introduire dans chaque contrainte k qui pose problème une variable artificielle
ak affectée d’un coefficient égal à 1.
2. A infliger à chaque variable artificielle une pénalité sous la forme d’un coefficient
négatif (dans le cas d’un problème de maximisation) et de valeur absolue très élevée
−G dans la fonction économique originelle.
VDB x1 x2 e1 e2 a1 a2 cste RT
a1 1 -1 0 0 1 0 20 20
e1 -1 2 1 0 0 0 40 -40
a2 1 0 0 -1 0 1 30 30
z 3 + 2G -2 -G 0 -G 0 0 50G
Mohamed BENDAOUD 36
Chapitre 1 1.4 Méthode du simplexe
VDB x1 x2 e 1 e2 a1 a2 cste RT
x1 1 -1 0 0 1 0 20 -20
e1 0 1 1 0 1 0 60 60
a1 0 1 0 -1 -1 1 10 10
z 0 1+G 0 -G -3 - 2G 0 -60 + 10G
VDB x1 x2 e1 e2 a1 a2 cste RT
x1 1 0 0 -1 0 1 30 -30
e1 0 0 1 1 2 -1 50 50
x2 0 1 0 -1 -1 1 10 -10
z 0 0 0 1 -2 - G - 1 - G -70
Ainsi, les variables artificielles a1 et a2 sont hors base et une solution de base admis-
sible est obtenue : x1 = 30, x2 = 10, e1 = 50 et e2 = 0. Cette solution de base n’est plus
artificielle mais réelle.
Les couts réduits des variables artificielles a1 et a2 sont négatifs et de valeurs absolus
très grands, donc elles ne pourront pas être sélectionnées ultérieurement. Par suite, on peut
supprimer du tableau les colonnes correspondants à a1 et a2 et poursuivre la procédure
jusqu’à l’obtention de l’optimum.
VDB x1 x2 e1 e2 cste
x1 1 0 1 0 80
e2 0 0 1 1 50
x2 0 1 1 0 60
z 0 0 -1 0 -120
Le tableau ci-dessus est alors optimale, la solution optimale est x1 = 80 et x2 = 60
pour laquelle la fonction objective est maximale et vaut z = 120.
Mohamed BENDAOUD 37
Chapitre 1 1.4 Méthode du simplexe
VDB x1 x2 e1 e2 cste RT
e1 0 2 1 1 2 1
x1 1 -1 0 1 1 -1
z 0 -1 0 2 2
VDB x1 x2 e1 e2 cste
x2 0 1 1/2 1/2 1
x1 1 0 1/2 3/2 2
z 0 0 1/2 3/2 3
L’algorithme s’arrête, la solution optimale est x1 = 2 et x2 = 1 pour laquelle la fonction
objective vaut z = −3.
Mohamed BENDAOUD 38
Chapitre 1 1.5 Dualité
Il n’est pas nécessaire de réécrire la première contrainte sous forme −x1 + 3x2 + e2 = 1
afin d’avoir le second membre positive.
En appliquons l’algorithme du simplexe à cet exemple et en partant de la solution de
base (x1 , x2 ) = (0, 0), on obtient les tableaux successifs suivants :
VDB x1 x2 e1 e2 cste RT
e1 1 -3 -1 0 -1 -1
e2 1 -1 0 1 1 1
-z 2 -1 0 0 0
VDB x1 x2 e1 e2 cste RT
e1 0 -2 -1 -1 -2 1
x1 1 -1 0 1 1 -1
-z 0 1 0 -2 -2
VDB x1 x2 e1 e2 cste
x2 0 1 1/2 1/2 1
x1 1 0 1/2 3/2 2
-z 0 0 -1/2 -5/2 -3
L’algorithme s’arrête, la solution maximale est −z = 3 si x1 = 2 et x2 = 1. La solution
minimale sera donc z = −3 si x1 = 2 et x2 = 1.
Mohamed BENDAOUD 39
Chapitre 1 1.5 Dualité
1.5 Dualité
La dualité est un concept fondamental en programmation linéaire et conduit à des
résultats de grande portée théorique et pratique.
maxz = ct x
Ax ≤ b
s.c.
x ≥ 0,
Supposons, par exemple, que ce PL est issu d’un problème de production pour une
entreprise E1 , fabricant n biens j, j ∈ {1, ..., n} et faisant intervenir m ressources i,
i ∈ {1, ..., m}, qui veut maximaliser son profit z sachant la disponibilité bi pour chaque
ressource i et le profit unitaire cj pour chacun des biens j. Alors le PL s’écrit
n
X
max z = cj x j
nj=1
X
aij xj ≤ bi ; i = 1, 2, ..., m
s.c. j=1
xj ≥ 0, j = 1, 2, ..., n
Soit E2 une autre entreprise, en rupture de stock, veut racheter les ressources de l’en-
treprise E1 . A quels prix doit-elle le faire pour tout racheter au coût w minimum ?
On note yi le prix de la ressource i. E2 doit fixer les yi de manière à ce que
m
X
aij yi ≥ cj ; j = 1, 2, ..., n.
i=1
En effet, pour tout j, cela garantit que E1 a intérêt à vendre les ressources nécessaires
pour produire une unité de j plutôt que de la produire. D’où le programme mathématique
suivant auquel se trouve confronté E2 .
m
X
min w = bi y i
m i=1
X a y ≥ c ; j = 1, 2, ..., n
ij i j
s.c. i=1
yi ≥ 0, i = 1, 2, ..., m
min w = bt y
At y ≥ c
s.c.
y ≥ 0.
Ce deuxième PL s’appelle le PL dual du premier, et le premier s’appelle le PL primal.
Mohamed BENDAOUD 40
Chapitre 1 1.5 Dualité
et par suite
max z ≤ min w. (1)
Intuitivement on voit que le minimum atteint par le dual doit être égal au maximum
du primal. La théorie montre que c’est le cas quand le problème a des solutions. Dans ce
cas, résoudre le primal est équivalent à résoudre le dual, et parfois, il est plus simple de
résoudre le dual que de résoudre le primal.
Exemple 1.5.1
Primal
Dual
maxz = x1 + 3x2
minw = 14y1 + 12y2 + 12y3
x1 + x2 ≤ 14
y1 − 2y2 + 2y3 ≥ 1
−2x1 + 3x2 ≤ 12
s.c. s.c. y1 + 3y − y3 ≥3
2x1 − x2 ≤ 12
y1 , y2 , y3 ≥ 0.
x1 , x2 ≥ 0.
Remarque 1.5.2 En général le primal n’est pas sous sa forme canonique. En écrivant le
primal sous forme canonique avant de déterminer son dual, on obtient le tableau suivant
qui résume toutes les situations possibles pour les correspondances primal/dual :
Maximisation ←→ Minimisation
Nombre de variables Nombre de contraintes
Nombre de contraintes Nombre de variables
Matrice A Matrice At
Membre de droite b Membre de droite c
Fonction objective max c x Fonction objective min bt y
t
Exemple 1.5.3
Primal
Dual
maxz = 2x1 − 3x2
minw = 12y1 − 8y2 + 16y3
2x1 + x2 ≥ 12
2y1 − 4y2 + y3 ≥ 12
−4x1 + 3x2 ≤ −8
s.c. s.c. y1 + 3y + y3 =9
x1 + x2 = 16
y1 ≤ 0, y2 ≥ 0, y3 ∈ R.
x1 ≥ 0, x2 ∈ R.
Mohamed BENDAOUD 41
Chapitre 1 1.5 Dualité
Exemple 1.5.4
Primal
Dual
min z = −2x1 + 9x2
maxw = 10y1 + 8y2 − 6y3
3x1 + x2 ≥ 10
3y1 + 4y2 − y3 ≤ −2
4x1 − 3x2 ≤ 8
s.c. s.c. y1 − 3y2 + y3 ≤9
−x1 + x2 ≥ −6
y1 ≥ 0, y2 ≤ 0, y3 ≥ 0.
x1 , x2 ≥ 0.
Théorème 1.5.8 Etant donné un problème primal et son dual, une et une seule des trois
situations suivantes peut se produire.
(i) les deux problèmes possèdent chacun des solutions optimales (à l’optimum, les
coûts sont égaux).
(ii) un des problèmes possède une solution rèalisable avec un optimum infini, l’autre
n’a pas de solution.
(iii) aucun des deux problèmes ne possède de solution réalisable.
Exemple 1.5.9
Primal
Dual
maxz = 7x1 + 5x2
minw = 400y1 + 500y2 + 700y3
x2 ≤ 400
y2 + 2y3 ≥7
x1 + x2 ≤ 500
s.c. s.c. y1 + y2 + y3 ≥ 5
2x1 + x2 ≤ 700
y1 , y2 , y3 ≥ 0.
x1 , x2 ≥ 0.
Mohamed BENDAOUD 42
Chapitre 1 1.5 Dualité
Primal
Dual
VDB x1 x2 e1 e2 e3 cste
VDB y1 y2 y3 u1 u2 cste
e1 0 0 1 -2 1 100
y2 2 1 0 1 -2 3
x2 0 1 0 2 -1 300
y3 -1 0 1 -1 3 2
x1 1 0 0 -1 1 200
w 100 0 0 200 300 - 2900
z 0 0 0 -3 -2 - 2900
Remarque 1.5.10 La solution optimale du dual peut être déduite à un signe près de celle
du primal comme suit :
Dual ←→ Primal
y1 = 0 ←→ δe1 = 0
y2 = 3 ←→ δe2 = −3
y3 = 2 ←→ δe3 = −2
u1 = 0 ←→ δx1 = 0
u2 = 0 ←→ δx2 = 0
δy1 = 100 ←→ e1 = 100
δy2 = 0 ←→ e2 = 0
δy3 = 0 ←→ e3 = 0
δu1 = 200 ←→ x1 = 200
δu2 = 300 ←→ x2 = 300
w = 2900 ←→ z = 2900
où e∗j et u∗i sont respectivement les variables d’écarts des PL primal et dual.
Les règles complémentarité des écarts permettent de trouver une solution optimale y ∗
du dual à partir de la connaissance de celle x∗ du primal.
Mohamed BENDAOUD 43
Chapitre 1 1.5 Dualité
Primal Dual
min z = ct x min w = bt y
s.c. Ax ≤ b s.c. At y ≥ c
x ≥ 0. y ≥ 0.
• Données :
— cj : profit par unité d’activité j.
— bi : disponibilité de la ressource i.
— aij : consommation de la ressource i par unité d’activité j.
• Variables :
— xj : niveau d’activité j.
— yi : valeur d’une unité de la ressource i.
• Dualité :
— faible : z ≤ w, c.-à-d., profit ≤ valeur des ressources.
— forte : Le profit maximal est atteint si les ressources ont été exploitées complè-
tement, c.-à-d., jusqu’à épuisement de leur valeur.
• Si le PL est à :
— maximiser un profit, on parle de gain marginal.
— minimiser un coût, on parle de coût marginal.
• Coûts réduits :
— Le coût réduit δxj est la valeur marginale de l’activité j, c.-à-d., la variation de
z suite à l’augmentation d’une unité de cette activité j.
Mohamed BENDAOUD 44
Chapitre 1 1.6 Analyse de sensitivité
Primal
VDB x1 x2 e1 e2 cste
x2 4/3 1 1/30 0 12
e2 -20 0 -1 1 120
z -1300/3 0 -70/3 0 -8400
Mohamed BENDAOUD 45
Chapitre 1 1.6 Analyse de sensitivité
On en déduit que
m
X m
X
λ0 (c00j − c00i aij ) + (c0j − c0i aij ) ≤ 0, j = 1, 2, ..., n.
i=1 i=1
Pm Pm
Posons Cj0 = c0j − i=1 c0i aij et Cj00 = c00j − i=1 c00i aij .
La solution x∗ (λ) restera optimale si toutes les quantités correspondantes zj − cj restent
négatives, c.-à-d., pour toutes les valeurs de λ qui vérifient :
0
λ ≤ αj = −C00j , pour tout j = 1, 2, ..., n avec Cj00 > 0
C j
−Cj0
λ ≥ βj =
Cj00
, pour tout j = 1, 2, ..., n avec Cj00 < 0
Mohamed BENDAOUD 46
Chapitre 1 1.6 Analyse de sensitivité
Remarque 1.6.1 Le changement des coûts ci ne modifie pas la région admissible, seule
la fonction économique varie. Dans le cas d ?un problème à deux variables, si un point
extrême P est solution optimale, on cherche la pente des droites définies par la fonction
économique pour lesquels P reste une solution optimale.
maxz = x1 + (3 − 3λ)x2
x1 + x 2 ≤ 14
−2x1 + 3x2 ≤ 12
s.c.
2x1 − x2 ≤ 12
x1 , x2 ≥ 0,
Pour λ = 0 la solution optimale a déjà été calculée. Sur chaque intervalle de stabilité, les
valeurs de x1 et x2 sont fixées, la valeur optimale de la fonction économique devient donc
une fonction affine par morceaux de la variable λ.
Mohamed BENDAOUD 47
Chapitre 1 1.6 Analyse de sensitivité
VDB x1 x2 e1 e2 e3 cste
x1 1 0 3/5 -1/5 0 6
x2 0 1 2/5 1/5 0 8
e3 0 0 -4/5 3/5 1 8
z 0 0 (−9 + 6λ)/5 (−2 + 3λ)/5 0 −30 + 24λ
(−9 + 6λ)/5 ≤ 0
⇒ 0 ≤ λ ≤ 2/3, (x1 , x2 ) = (6, 8), z = 30 − 24λ.
(−2 + 3λ)/5 ≤ 0
La colonne pivot de cette itération est celle qui a le plus grand coût réduit en suppo-
sons maintenant que λ ≥ 2/3 ; ce qui donne le deuxième tableau suivant :
VDB x1 x2 e1 e2 e3 cste
x1 1 0 -1/3 0 1/3 26/3
x2 0 1 2/3 0 -1/3 16/3
e2 0 0 -4/3 3/5 0 5/3
z 0 0 −7/3 + 2λ 0 2/3 − λ −74/3 + 16λ
−7/3 + 2λ ≤ 0
⇒ 2/3 ≤ λ ≤ 7/6, (x1 , x2 ) = (26/3, 16/3), z = 74/3 − 16λ.
2/3 − λ ≤ 0
Mohamed BENDAOUD 48
Chapitre 1 1.7 Mises-en oeuvre sur un solveur
Mohamed BENDAOUD 49
Chapitre 1 1.7 Mises-en oeuvre sur un solveur
Cette section portera sur l’utilisation de MATLAB pour résoudre certains PL.
Pour résoudre un programme linéaire à l’aide de MATLAB, tout d’abord il faut créer
un projet d’exécution MATLAB dans lequel on pourra définir notre PL. Pour cela dans
MATLAB il faut cliquer sur EDITOR / Nouveau "+". Une fenêtre s’ouvre. Enregistrer le
Mohamed BENDAOUD 50
Chapitre 1 1.7 Mises-en oeuvre sur un solveur
fichier sous MATLAB code files.m : entrez un nom de projet, choisissez son emplacement
(dossier parent) et cochez "enregistrer" (voir capture d’écran Figure 1 ci-dessosu).
Dans le fichier modèle (.m) on entre le PL : les variables, les contraintes et la fonction
objective (voir capture d’écran Figure 2 ci-dessous).
Pour lancer la résolution il faut faire un clic sur Exécuter "Run" situé à droite dans
l’onglet EDITOR. Le bouton exécuter "Run" dans la barre d’outils permet de lancer une
nouvelle fois la dernière configuration exécutée. Une fois le modèle résolu, la solution
du PL s’affiche dans l’onglet "Command Window" situés en bas de la fenêtre principale
(sous le fichier modèle (.m)).
Exemple 1.7.1 On considère le PL suivant :
maxz = 3x1 + 2x2 + 2x3 + x4
x1 + x4 ≤4
x2 ≤6
s.c. 6x1 + 4x2 ≤ 36
x3 ≤7
7x1 + 2x2 ≤ 47
ans =
34
c.-à-d., la première réponse "ans" donne le vecteur solution, et la deuxième "ans" donne
la valeur correspondante de la fonction objective : z = 34.
Mohamed BENDAOUD 51
Chapitre 1 1.7 Mises-en oeuvre sur un solveur
ans =
4.0000
6.0000
5.0000
10.0000
ans =
49.0000
c.-à-d., la première réponse "ans" donne le vecteur solution, et la deuxième "ans" donne
la valeur correspondante de la fonction objective : z = 49.0000.
Mohamed BENDAOUD 52
Chapitre 2
2.1 Introduction
Pour résoudre un programme linéaire de manière efficace, on utilise généralement
l’algorithme du simplexe. Cependant les solutions obtenues sont des valeurs réelles tandis
que, pour des raisons pratiques, dans un PL une solution à valeurs entières est souvent
exigée.
On pourrait penser que, pour avoir des valeurs entières à ce problème, il suffit de
faire un arrondi de la solution réelle obtenue. Ainsi et le problème serait réglé. Cette
technique d’arrondissement peut fournir directement la solution optimale pour certains
cas. Toutefois, pour d’autres cas, cette combine par arrondissement serait loin d’être la
solution optimale, voire désastreuse par rapport à la solution optimale apportée par la
résolution d’un programme linéaire en variables entières.
La solution optimale x est donnée par x = (x1 ; x2 ) = (5, 9; 0). En effet, x1 ≤ 5, 9−1, 2x2 ,
et on obtient la solution optimale en posant x1 = 5, 9 et x2 = 0. Mais la solution x0 =
(6, 0) n’est pas réalisable et la solution x00 = (5, 0) n’est pas optimale parmi les solutions
à valeurs entières. La solution optimale à valeurs entières est donnée par x = (1, 4).
53
Chapitre 2 2.2 La méthode de séparation et d’évaluation (Branch and Bound)
Remarque 2.2.2
• La valeur de la solution optimale du P L est une borne supérieure sur la valeur de
la solution optimale de P .
• La valeur d’une solution admissible du P fournit une borne inférieure sur la valeur
de la solution optimale de P .
• Si la solution optimale du P L est entière (donc admissible pour P ), elle est éga-
lement la solution optimale de P .
Mohamed BENDAOUD 54
Chapitre 2 2.2 La méthode de séparation et d’évaluation (Branch and Bound)
Etapes du branchement :
Mohamed BENDAOUD 55
Chapitre 2 2.2 La méthode de séparation et d’évaluation (Branch and Bound)
Mohamed BENDAOUD 56
Chapitre 2 2.2 La méthode de séparation et d’évaluation (Branch and Bound)
−2x1 + 3x2 = 9
5
B(1,55; 4,03) 5x1 + 8x2 = 40
3
C(0; 3)
2
z=0 1
0 1 2 3 4 8
A(8; 0)
Mohamed BENDAOUD 57
Chapitre 2 2.2 La méthode de séparation et d’évaluation (Branch and Bound)
x1 + x2 = 5
0 3 4
z=0
- La solution de LP1 est une solution admissible de P et donc z = 23 est une borne
inférieure de la valeur de la solution optimale de P .
- Le noeud correspondant peut être éliminé vu qu’une solution entière optimale sa-
tisfaisant x1 ≤ 3 a été trouvée (solution de LP1 ).
- La valeur de la solution de LP , z = 23, 75 est une borne supérieure de la valeur
de la solution optimale de P .
- Vu que tout les coefficients sont entiers, on peut en déduire que la valeur de la
solution optimale de P est inférieure ou égale à 23.
- La solution de LP1 est donc optimale pour P . Ainsi, la solution optimale à valeurs
entières est donc x = (3, 2) pour laquelle z(x) = 23.
Mohamed BENDAOUD 58
Chapitre 2 Exercices
Exercices
Exercice 1. Une usine fabrique deux types de ciments : un ciment pour les constructions
personnelles C1 et un pour les ouvrages d’art C2 . L’usine a pour cela une ligne de pro-
duction et deux matières premières M1 et M2 . Les deux types de ciments passent par la
même ligne et utilisent M1 et M2 selon le tableau suivant :
De plus la capacité de la ligne pour le ciment C2 ne dépasse pas 2 tonnes par jour et la
production de C2 ne peut dépasser celle de C1 que d’une tonne par jour.
1. Ecrire le modèle en PL qui maximisera le profit de l’usine.
2. Résoudre le PL graphiquement.
3. Résoudre le PL par la méthode d’énumération.
4. Résoudre le PL par la méthode du simplexe, et spécifier à chaque itération le point
extrème (ou le sommet) visité.
5. Trouver la solution optimale dans le cas où l’usine s’impose de ne produire que
des quantités entières (en tonnes par jour) des ciments C1 et C2 en utilisant la mé-
thode de Branch and Bound.
Exercice 2. Une entreprise fabrique une certaine pièce qui nécessite, au stade de l’assem-
blage final, trois parties. Ces trois parties peuvent être produites par deux unités différentes
et parallèlles, comme indiqué ci-dessous :
N.B. Chaque unité est conçue pour produire les trois paties et ne peut être dédiée à 1 ou 2
parties seulement. C’est à dire pendant une heure de travail l’unité 1 produit exactement
7 unités de la partie 1, 6 unités de la partie 2 et 9 unité de la partie 3. Il en est de même
pour l’unité 2.
Supposons que cette semaine, 1050 produits finis (assemblés) sont nécessaires pour
satisfaire les commandes (mais on peut en produire jusqu’à 1200 maximum si nécessaire).
Supposons, de plus, que l’unité 1 dispose de 100 heures de travail et que l’unité 2 en
dispose 110.
Mohamed BENDAOUD 59
Chapitre 2 Exercices
Mohamed BENDAOUD 60