Professional Documents
Culture Documents
Par
1998
(Dernière mise à jour : juillet 2009)
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE V Dualité
A. B. HADJ-ALOUANE 1
RECHERCHE OPERATIONNELLE 2AGI
REFERENCES BIBLIOGRAPHIQUES
A. B. HADJ-ALOUANE 2
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE I
A. B. HADJ-ALOUANE 3
RECHERCHE OPERATIONNELLE 2AGI
(1)
Identification du problème
(2)
Collecte de données
(3)
Modélisation (formulation
mathématique
(8)
Implémentation et
recommandations
A. B. HADJ-ALOUANE 4
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE II
2.1 Définitions
Exemple : Une compagnie fabrique deux types de jouets en bois: des soldats et des
trains. Un soldat est vendu pour 27 D et utilise l’équivalent de 10D de matière
première. Chaque soldat fabriqué augmente le coût de main d’œuvre et les frais
généraux de 14 D. Un train peut être vendu pour 21 D et utilise 9 D de matière
première. Chaque train augmente le coût de MO et les frais généraux de 10 D.
La fabrication de ces deux jouets nécessite deux types d’opération spécialisées :
menuiserie et finition, comme indiqué dans le tableau suivant :
A. B. HADJ-ALOUANE 5
RECHERCHE OPERATIONNELLE 2AGI
Rq :
profit hebdomadaire = contribution des soldats au profit hebd. + contribution des
trains au profit hebd.
= (contr. Au profit/soldat) x1 + contr. Au profit/train) x2
⇒ Propriétés d’additivité et de proportionnalité (pas d’économie d’échelle)
D’où :
Profit hebdomadaire z(x)= 3x1 + 2 x2, où x = (x1, x2)
L’objectif de la compagnie consiste à choisir les quantités x1 et x2 qui maximisent la
fonction 3x1 + 2x2
A. B. HADJ-ALOUANE 6
RECHERCHE OPERATIONNELLE 2AGI
Contrainte 1 chaque semaine, pas plus que 80 heures de menuiserie peuvent être
effectuées :
x1 + x2 ≤ 80 (1)
Contrainte 2 chaque semaine, pas plus que 100 heures de finition peuvent être
effectuées :
2x1 + x2 ≤ 100 (2)
⎧max z = 3x 1 + 2 x 2
⎪ s.c. x 1 + x 2 ≤ 80
⎪
⎪⎪ 2 x 1 + x 2 ≤ 100
(PL) ⎨
⎪ x1 ≤ 40
⎪ x 1 ≥ 0, x 2 ≥ 0
⎪
⎩⎪
suivant :
“ s.c. ” ou « sous les contraintes » veut dire que x1 et x2 doivent répondre à toutes
les contraintes.
A. B. HADJ-ALOUANE 7
RECHERCHE OPERATIONNELLE 2AGI
100
80
(20,60) => z* = 180
Domaine
Réalisable
(40,20) => z = 160
(-20,30)
x1
-20 40 50 80
x1+x2 = 80
Fonction objectif
(courbe de niveau : (Hyperplan)
isoprofit / isocoût) 2x1+x2 = 100
A. B. HADJ-ALOUANE 8
RECHERCHE OPERATIONNELLE 2AGI
Convexes
Polytopes
Polyèdres
(nbre fini d’arêtes)
Non convexes
Ex: chaque point sur la circonférence d’un disque est un point extrême.
A. B. HADJ-ALOUANE 9
RECHERCHE OPERATIONNELLE 2AGI
PL non borné
⎧max z = x1 + 2 x2
⎪ s.c. 7 x 1 + 2 x 2 ≥ 28
⎪
⎨ x 1 + 6 x 2 ≥ 12
⎪ x 1 ≥ 0 , x2 ≥ 0
⎪
⎩
14
x2 2 12
7x1+2x2 = 28 x1+6x2 = 12
x1
A. B. HADJ-ALOUANE 10
RECHERCHE OPERATIONNELLE 2AGI
60
x1
10 B
x1+x2 = 50
PL non réalisable
DR vide ⇒ PL non réalisable.
x2
(20,30)
⎧min z = 3 x1 + 2 x2
50 ⎪ s.c. 3 x1 + 2 x2 ≥ 120
⎪
⎪ x1 + x2 ≤ 50
⎨ x1 ≥ 30
⎪ x2 ≥ 20
⎪ x1 ≥ 0 , x2 ≥ 0
⎪
⎩
10 x1
B
x1+x2 = 50
3x1+2x2 = 120
A. B. HADJ-ALOUANE 11
RECHERCHE OPERATIONNELLE 2AGI
Exercice n° 1.
Une entreprise a arrêté la production d'un certain produit non profitable. Ceci a crée
un excès considérable de capacité de production. Les responsables considèrent
consacrer cet excès de capacité aux produits suivants: 1, 2 et 3. Les capacités
disponibles sur les machines à utiliser sont données dans le tableau suivant :
Le service commercial indique que les possibilités de vente sont presque non
limitées pour les produits 1 et 2, et que le volume des ventes du produit 3 est de 20
unités par semaine. Le profit unitaire de chacun des produits 1, 2, et 3 est de 30D,
12D, et 15D, respectivement.
A. B. HADJ-ALOUANE 12
RECHERCHE OPERATIONNELLE 2AGI
Exercice n° 2.
On désire déterminer la composition, à coût minimal, d'un aliment pour bétail qui
est obtenu en mélangeant au plus trois produits bruts: orge, arachide, et sésame.
L'aliment ainsi conditionné devra comporter au moins 22% de protéines et au plus
3.6% de graisses, pour se conformer aux exigences de la clientèle. Le tableau ci-
dessous indique les pourcentages de protéines et de graisses contenus,
respectivement, dans l'orge, les arachides et le sésame, ainsi que le coût par tonne
de chacun des produits.
1 2 3
Produit brut Orge Arachide Sésame
% requis
% protéines 12 52 42 22
% graisses 2 2 10 3.6
Coût/tonne 25 41 39
1. Soit xj (j =1,2,3) la fraction de tonne de produit brut j contenue dans une tonne
d'aliment. Formuler le problème sous forme d’un programme linéaire.
2. Montrer qu'il est possible de réduire la dimension du problème. Le résoudre
géométriquement.
Exercice n° 3.
Un fabriquant doit produire une certaine marchandise en vue de satisfaire des
commandes pour les n mois à venir. Pour le mois i, la demande est de ri unités, et la
production est de xi unités. La commande du mois i peut être satisfaite soit à partir
de la production du mois i soit du stock disponible en début de période.
Les coûts de production sont variables d’un mois à l’autre et valent ci unités
monétaires par unité de produit pendant le mois i. Il n’y a pas de contraintes de
capacité de production, sauf que le niveau de production au cours de chaque mois
doit être au moins égal à celui du mois précédent. Par ailleurs, l’augmentation de
production d’un mois à l’autre revient à di unités monétaires par unité de produit
supplémentaire. L’entreprise peut avoir intérêt à produire pendant un certain mois
plus d’unités que nécessaire pour satisfaire la demande de ce mois, et stocker
l’excès en vue de satisfaire la demande pendant un mois ultérieur. Elle doit,
A. B. HADJ-ALOUANE 13
RECHERCHE OPERATIONNELLE 2AGI
cependant, subir des frais de stockage de ei unités monétaires par unité stockée du
mois i au mois i+1.
En supposant que le stock initial est nul, écrire le programme linéaire correspondant
à ce problème.
Exercice n° 4.
Une compagnie fabrique deux types de mélange pour gâteau : A et B en utilisant
deux ressources : R1 et R2. Le tableau suivant résume les données pertinentes :
Exercice n° 5.
Un financier dispose d’un capital de 10.000 DT qu’il peut placer dans deux types
d’investissements A et B. Le type A est disponible tous les ans et rapporte un intérêt
de 15% par an. Le type B nécessite un placement pour 2 ans et rapporte un intérêt
de 90% pour les deux années. Le financier désire récupérer tout son capital après 3
ans et veut trouver le plan d’investissement qui maximise son capital après 3
années.
A. B. HADJ-ALOUANE 14
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE III
Introduction à la Programmation en Nombres Entiers
3.1 Introduction
A. B. HADJ-ALOUANE 15
RECHERCHE OPERATIONNELLE 2AGI
Définitions :
(IP) : Min cx
sc : Ax = b (1)
x≥0 (2)
x entier (3)
Exemple :
Max z = 3 x1 + 2 x 2
Sc x1 + x2 ≤ 6
x1, x2 ≥ 0
x1, x2 entiers
Comme exemple, un programme linéaire mixte (MIP : Mixed Integer Program) s’écrit
comme un programme linéaire en nombres entiers (IP) en remplaçant la contrainte
(3) par la contrainte suivante :
x binaire
A. B. HADJ-ALOUANE 16
RECHERCHE OPERATIONNELLE 2AGI
Investissements Bénéfices
Projet 1 5 16
Projet 2 7 22
Projet 3 4 12
Projet 4 3 8
2. La fonction Objectif
Il s’agit de maximiser la somme des bénéfices espérés :
z = 16 x1 + 22 x2 + 12 x3 + 8 x4
A. B. HADJ-ALOUANE 17
RECHERCHE OPERATIONNELLE 2AGI
3. Les contraintes
Les fonds disponibles actuellement s’élèvent à 14 MD. On ne peut donc dépasser
cette somme dans nos investissements, ce qui se traduit par :
5 x1 + 7 x2 + 4 x3 + 3 x4 ≤ 14
(IP.1) Max z = 16 x1 + 22 x2 + 12 x3 + 8 x4
SC 5 x1 + 7 x2 + 4 x3 + 3 x4 ≤ 14
xi = 0 ou 1 (i = 1, 2, 3, 4)
Remarque 1 :
La résolution de ce programme linéaire binaire donne comme solution optimale x1 =
0 et x2 = x3 = x4 = 1 avec z = 42 MD. On doit donc investir dans les projets 2, 3 et 4
et pas dans le projet 1.
Si on calcule la rentabilité de chaque projet càd le bénéfice par dinar investi,
d’après le tableau suivant, le projet 1 est le plus rentable.
Rentabilité
Projet 1 3,2
Projet 2 3,14
Projet 3 3
Projet 4 2,67
A. B. HADJ-ALOUANE 18
RECHERCHE OPERATIONNELLE 2AGI
Remarque 2 :
La résolution du programme linéaire relaxé fournit une solution optimale
fractionnaire : x1 = x2 = 1, x3 = 0,5 et x4 = 0 avec zc = 44 MD. Le projet 1 est
retenu. Ceci montre que la modélisation de ce type de problème en tant que
programme linéaire ou en tant que programme linéaire en nombres entiers peut
affecter d’une manière significative la solution optimale du problème.
Remarque 3 :
Tout programme linéaire en nombres entiers de la forme (IP.1) est appelé problème
du sac à dos ou Knapsack problem. Supposons que Mehdi va partir en vacances et
que son sac à dos ne peut pas prendre plus que 3 kg. Qu’est ce qu’il mettra dans son
sac à dos de façon à maximiser sa fonction de satisfaction sans dépasser le poids
maximal que peut supporter son sac à dos.
A. B. HADJ-ALOUANE 19
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 20
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 21
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 22
RECHERCHE OPERATIONNELLE 2AGI
Remarque :
Ce problème est un exemple de problème de coût fixe ou fixed-charge problem où
un coût fixe est associé à la réalisation d’une activité tout en étant indépendant du
niveau de cette activité. D’autres exemples : problèmes de localisation : où
construire un dépôt, une usine ou un centre de distribution.
A. B. HADJ-ALOUANE 23
RECHERCHE OPERATIONNELLE 2AGI
Un raisonnement analogue permet d’écrire les contraintes pour les autres villes :
x1 + x2 + x6 ≥ 1 : Ville 2
x3 + x4 ≥ 1 : Ville 3
A. B. HADJ-ALOUANE 24
RECHERCHE OPERATIONNELLE 2AGI
x3 + x4 + x5 ≥ 1 : Ville 4
x4 + x5 + x6 ≥ 1 : Ville 5
x2 + x5 + x6 ≥ 1 : Ville 6
(IP.3) Min z = x1 + x2 + x3 + x4 + x5 + x6
SC x 1 + x2 ≥1
x1 + x 2 + x6 ≥1
x 3 + x4 ≥1
x3 + x4 + x5 ≥1
x4 + x5 + x6 ≥1
x2 + x5 + x6 ≥1
xi = 0 ou 1, pour i = 1,…, 6
Remarque :
Ce problème représente une classe de programmes linéaires en nombres entiers
appelée problème de recouvrement ou set-covering problem où chaque élément
d’un ensemble donné (ensemble 1) doit être couvert par un élément d’un certain
ensemble (ensemble 2). L’objectif de ce problème est de minimiser le nombre
d’éléments de l’ensemble 2 qui sont nécessaires pour couvrir tous les éléments de
l’ensemble 1. Dans notre exemple, l’ensemble 1 comprend les 6 villes du pays et
l’ensemble 2 est celui des stations de pompier à construire. La station de la ville 2
couvre les villes 1, 2 et 6 et la station de la ville 4 couvre les villes 3, 4 et 5.
A. B. HADJ-ALOUANE 25
RECHERCHE OPERATIONNELLE 2AGI
Et on veut s’assurer qu’au moins l’une de ces contraintes est respectée. Ce sont des
contraintes du type l’une ou l’autre ou bien either-or constraints.
où y est une variable binaire et M est un nombre suffisamment grand pour que f(x1,
x2, …., xn) ≤ M et g(x1, x2, …., xn) ≤ M soient respectées pour toutes les valeurs de
x1, x2, …., xn qui vérifient l’ensemble des autres contraintes.
A. B. HADJ-ALOUANE 26
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 27
RECHERCHE OPERATIONNELLE 2AGI
Exercice n°1
Une entreprise immobilière est entrain de planifier la construction de trois
immeubles durant les quatre prochaines années. La durée nécessaire pour compléter
chaque immeuble ainsi que le nombre d’ouvriers requis sont donnés dans le tableau
ci-dessous. On remarque que pour chaque immeuble, les ouvriers requis lui sont
entièrement consacrés tout le long de la période de sa construction.
Exercice n°2
A. B. HADJ-ALOUANE 28
RECHERCHE OPERATIONNELLE 2AGI
Exercice n°3
A. B. HADJ-ALOUANE 29
RECHERCHE OPERATIONNELLE 2AGI
Exercice n°4
A. B. HADJ-ALOUANE 30
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE IV
La Méthode de Simplexe
4.1 Introduction
Un PL peut avoir des contraintes d’égalité (=) et des contraintes d’inégalité (≤ et ≥).
Avant l’application de Simplexe, le PL doit être converti en un PL équivalent où
toutes les contraintes sont des égalités, toutes les variables sont non négatives (≥),
et le second membre est non négatif (b≥0). Un tel PL est dit sous la forme standard.
A. B. HADJ-ALOUANE 31
RECHERCHE OPERATIONNELLE 2AGI
On obtient alors:
En général,
⎛ x1 ⎞ ⎛ b1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ x2 ⎟ ⎜b ⎟
On définit A = (aij), x =⎜ ⎟ ; b =⎜ 2⎟ ⇒ Ax = b
M M
⎜ ⎟ ⎜ ⎟
⎜x ⎟ ⎜b ⎟
⎝ n⎠ ⎝ m⎠
⎛ c1 ⎞
⎜ ⎟
⎜c ⎟
c = ⎜ 2 ⎟ (on suppose que n ≥ m).
M
⎜ ⎟
⎜c ⎟
⎝ n⎠
Rq : pour avoir la forme standard, les équations doivent, si nécessaire, être
multipliées par (-1) pour avoir b ≥ 0
Espace colonne : R(A) = {y : ∃ x ∈ Rn tel que y = Ax} , c-à-d y est une combinaison
linéaire des colonnes de A (notées Aj, j=1, …, n)
A. B. HADJ-ALOUANE 32
RECHERCHE OPERATIONNELLE 2AGI
Base : IB ⊂ {1, …, n} est appelé une base ssi les vecteurs {Aj, j ∈ IB} forment une
base de l’espace colonne R(A) de A.
Ainsi, les colonnes Aj , j ∈ IB, sont appelées colonnes de base, et forment une
matrice de base, notée B.
De même, les variables associées avec les colonnes de base sont appelées variables
de base (données par le vecteur xB), le reste des variables sont hors base (xH).
Rq :
• si x est une solution de base réalisable, alors au plus m variables sont
différentes de zéro (|I(x)| ≤ (|B| = m).
• Si |I(x)| < |B|, la SBR est dite dégénérée (peut être associée à plus qu’une
base).
Théorème :
Considérons le problème P. x ∈ DR est un point extrême de DR ssi x est une SBR.
A. B. HADJ-ALOUANE 33
RECHERCHE OPERATIONNELLE 2AGI
au moins une base. Alors, nombre de SBR ≤ Cnm , c-à-d fini, mais peut être très
large.
8 x2
1
E
x1
A 1
2x1+x2 = 8 x1+2x2 = 6
A. B. HADJ-ALOUANE 34
RECHERCHE OPERATIONNELLE 2AGI
Soit f(c, A, b) la valeur optimale de la fonction objectif d’un PL. Il est pratiquement
impossible de calculer f(c, A, b) à partir d’une formule compacte. Il est nécessaire
de faire une recherche d’une base pour laquelle b = Bx, pour un certain x ≥ 0 (b est
une combinaison linéaire positive des colonnes de B). Puisque le nombre de telles
A. B. HADJ-ALOUANE 35
RECHERCHE OPERATIONNELLE 2AGI
bases peut être très large, il faut utiliser un algorithme systématique (procédure
itérative) de recherche.
⇒ Simplexe : algorithme ou méthode de recherche qui garantit de trouver un
optimum d’un PL (s’il existe) en un nombre fini d’itérations.
Principe : En commençant par une SBR, on se déplace d’une SBR vers une autre en
utilisant des opérations basées sur la méthode de Gauss-Jordan, jusqu’à ce que le
critère d’optimalité (Δ ≤ 0, pour un PL de max) soit satisfait.
Après avoir partitionné les variables et le vecteur c, selon les colonnes de base
d’une SBR ⎯x, le programme linéaire P (sous la forme standard) peut être présenté
comme suit :
B xB + 0 (-z) + H xH = b ⎛x ⎞
⎛B 0 H ⎞⎜ B ⎟ ⎛ b⎞
⎜ ⎟ −z = ⎜ ⎟
cB xB + (- z) + c xH = 0 ⎝ cB 1 cH ⎠ ⎜⎜ ⎟⎟ ⎝ 0 ⎠
⎝ xH ⎠
−1
⎛B 0⎞ ⎛ B−1 0⎞
T = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟
⎝ cB 1⎠ ⎝ − c BB
−1
1 ⎟⎠
A. B. HADJ-ALOUANE 36
RECHERCHE OPERATIONNELLE 2AGI
xB -z xH
I 0 B-1H B-1b
0 1 cH – cB B-1H – cB B-1b
Où B-1b ≥ 0.
-1
Remarque : cH – cB B H = ΔH, où Δ est partitionné en ΔB et ΔH selon la SBR ⎯x
Déf : soient xB1 et xB2 deux vecteurs de base. xB1 et xB2 sont dits adjacents ssi ils
diffèrent d’exactement une variable. Leurs bases respectives B1 et B2 diffèrent alors
d’une seule colonne.
L’algorithme de simplexe commence par une SBR exprimée sous la forme canonique.
Si ΔH = cH – cB B-1H ≤ 0, il se déplace vers un point extrême adjacent, c-à-d une base
adjacente. En fait, il se déplace d’une base à une autre adjacente :
• Si la SBR est non dégénérée, le déplacement implique un point extrême
adjacent ;
• Si la SBR est dégénérée la base change mais on reste au même point extrême
(une nouvelle variable nulle).
⎛ x1 ⎞ ⎛ x m +1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ x2 ⎟ ⎜ x m +2 ⎟
Sans perte de généralité, on va supposer que xB = ⎜ ⎟ et xH = ⎜
M M ⎟
⎜ ⎟ ⎜ ⎟
⎜x ⎟ ⎜ x ⎟
⎝ m⎠ ⎝ n ⎠
A. B. HADJ-ALOUANE 37
RECHERCHE OPERATIONNELLE 2AGI
⎛ a1 , j ⎞ ⎛ a1 , j ⎞
⎜ ⎟ ⎜ ⎟
⎜ a2 , j ⎟ ⎜ a2 , j ⎟
Où ⎜ ⎟ = B −1 ⎜
M M ⎟
⎜ ⎟ ⎜ ⎟
⎜ am , j ⎟ ⎜ am , j ⎟
⎝ ⎠ ⎝ ⎠
Pour se déplacer d’une SBR à une autre adjacente, une variable hors base (variable
entrante xe) va prendre la place de l’une des variables de base (xs). Ainsi,
Dans une SBR toutes les variables hors base sont nulles, en particulier xe. Pour faire
entrer xe, on augmente sa valeur, par ex de λ ≥ 0 tout en maintenant à zéro toutes
les autres variables hors base.
Questions :
• Quelle est la variable entrante ?
• Quelle sera la valeur λ de la variable entrante ?
• Quelle est la variable sortante ?
xe = λ ⇒ xi = ⎯bi - ⎯ai,e λ
A. B. HADJ-ALOUANE 38
RECHERCHE OPERATIONNELLE 2AGI
⎛ a1 ,e ⎞ ⎛0 ⎞
⎜ ⎟ ⎜ ⎟
⎜ M ⎟ ⎜M⎟
⎜ a ⎟ → ⎜ 1 ⎟ ← Ligne s
⎜ s ,e ⎟ ⎜ ⎟
⎜ M ⎟ ⎜M⎟
⎜a ⎟ ⎜0 ⎟
⎝ m ,e ⎠ ⎝ ⎠
⎯asj ‘ = ⎯as,j/⎯as,e ∀j
En particulier, ⎯ase ‘ = 1.
• Op2 : pour ∀ i ≠s, soustraction d’un multiple approprié de la ligne pivot pour
annuler le coefficient de la ligne i , colonne e.
⎯aij ‘ = ⎯aij - ⎯aie ⎯as,j/⎯as,e ∀ j = 1 , …, n+1 (n var plus RHS)
En particulier, ⎯aie ‘ = 0
Δj’ = Δj - Δe ⎯as,j/⎯as,e ∀ j = 1, …, n+1 (n var plus -⎯z )
A. B. HADJ-ALOUANE 39
RECHERCHE OPERATIONNELLE 2AGI
Le nouveau tableau :
4.3.3 Exemple
Reprenons l’exemple de jouets, sous la forme standard :
max z = 3x1 + 2x2
s.c. x1 + x2 + s1 = 80
2 x1 + x2 + s2 = 100
x1 + s3 = 40
x1, x2, s1, s2, s3 ≥ 0
Forme Tabulaire du PL :
Tab #1 x1 x2 s1 s2 s3 bi (RHS)
ligne 1 s1 1 1 1 0 0 80
ligne 2 s2 2 1 0 1 0 100
ligne 3 s3 1 0 0 0 1 40
ligne 4 (cj) 3 2 0 0 0 0
Rq : Parfois, il faut effectuer des opérations de type Op2 pour la mise-à-jour (price-
out) de la dernière ligne (fonction objectif).
Maintenant, on se pose la question : Est-ce que cette SBR est optimale? Non.
A. B. HADJ-ALOUANE 40
RECHERCHE OPERATIONNELLE 2AGI
On essaie de voir s'il y a une SBR adjacente qui donne à z une valeur plus élevée.
Ceci se fait en augmentant la valeur de l'une des variables hors base. Si on examine
la fonction objectif, on s'aperçoit que
si x1 ↑ 1, avec x2 = 0, z ↑ 3
si x2 ↑ 1, avec x1 = 0, z ↑ 2
#2 x1 x2 s1 s2 s3 ⎯bi
s1 0 1 1 0 -1 40
s2 0 1 0 1 -2 20 ⇒
x1 1 0 0 0 1 40
Δj 0 2 0 0 -3 -120
⇑ -z
Si on continue de la même manière, on voit que la solution actuelle n'est pas
optimale :
x2 = 3
s2 = 5 x 1 = s1 = 0
s3 = 2
car Δ2 > 0 → faire entrer x2.
#3 x1 x2 s1 s2 s3 ⎯bi
s1 0 0 1 -1 1 20 ⇒
x2 0 1 0 1 -2 20
x1 1 0 0 0 1 40
Δj 0 0 0 -2 1 -160
⇑
Solution non optimale; s3 entre dans la base; critère du ratio minimal ⇒ s1 sort
A. B. HADJ-ALOUANE 41
RECHERCHE OPERATIONNELLE 2AGI
#4 x1 x2 s1 s2 s3 bi
s3 0 0 1 -1 1 20
x2 0 1 2 -1 0 60
x1 1 0 -1 1 0 20
Δj 0 0 -1 -1 0 -180
Tous les Δj ≤ 0 ⇒ tableau optimal, avec x1* = 20 ; x2* = 60 et z* = 180
• Pour les variables de base: les coûts marginaux sont nuls par construction
• Pour les variables hors base: cj: rendement net de l'introduction de xj dans la
base. Si on fait entrer xj dans la base, l'effet direct est égal à cj. Mais toute
augmentation unitaire de xj diminue xe de asj/ase car la contrainte associée avec
la variable de base xe:
Compte tenu du rendement direct de xe, qui est ce, l'effet indirect "négatif" est de
ce(asj/ase) ; d'où l'effet net = cj –ce(asj/ase).
Forme standard :
max z = 4x1 + 2x2
s.c. x1 + 2x2 + s1 = 40
3x1 + x2 + s2 = 60
x1, x2, s1, s2 ≥ 0
A. B. HADJ-ALOUANE 42
RECHERCHE OPERATIONNELLE 2AGI
#1 x1 x2 s1 s2 bi
s1 1 2 1 0 40
s2 3 1 0 1 60 →
cj 4 2 0 0 0
↑
#2 x1 x2 s1 s2 bi
s1 0 5/3 1 -1/3 20 →
x1 1 1/3 0 1/3 20
Δj 0 2/3 0 -4/3 -80
↑
#3 x1 x2 s1 s2 bi
x2 0 1 3/5 -1/5 12
x1 1 0 -1/5 2/5 16
Δj 0 0 -2/5 -6/5 -88
LP non borné: Des solutions ont été trouvées mais la valeur de z peut toujours être
améliorée. Dans le cadre de Simplexe, ce cas est représenté par le fait qu'il est
impossible de faire entrer dans la base des variables telles que Δ} > 0. Cette
impossibilité est due au fait que dans chacune de ces colonnes j, aij ≤ 0 pour tout i.
Les Δj > 0 montrent bien qu'il est possible d'augmenter z, mais le fait que tous les aij
≤ 0 montre qu'il n'existe pas de SBR susceptible d'augmenter z. Or le théorème
indique que l'optimum, s'il existe, se réalise au moins une fois en une SBR.
Géométriquement, on a découvert un rayon extrémal (une demi-droite) sur lequel
z(x) peut augmenter infiniment.
xe = λ ⇒ xi = ⎯bi - ⎯ai,e λ ∀ i= 1, …, m
⎛ b1 ⎞ ⎛ − a1 , e ⎞
⎜ ⎟ ⎜ ⎟
coordonnées ⎜ M ⎟ et la direction ⎜ M ⎟
⎜⎜ ⎟⎟ ⎜− a ⎟
⎝ bm ⎠ ⎝ m ,e ⎠
A. B. HADJ-ALOUANE 43
RECHERCHE OPERATIONNELLE 2AGI
Exemple:
max z = x1 + 2x2
s.c. 7x1 + 2x2 ≥ 28
x1 + 6x2 ≥ 12
x1, x2 ≥ 0
#1 x1 x2 e1 e2 ⎯s1 ⎯s2 bi
⎯s1 7 2 -1 0 1 0 28 →
⎯s2 1 6 0 -1 0 1 12
cj 0 0 0 0 -1 -1 0
mise à jour 8 8 -1 -1 0 0 40
↑
#2 x1 x2 e1 e2 ⎯s1 ⎯s2 bi
x1 1 2/7 -1/7 0 1/7 0 4
⎯s2 0 40/7 1/7 -1 -1/7 1 8→
Δj 0 -40/7 1/7 -1 -8/7 0 8
↑
#2 x1 x2 e1 e2 ⎯s1 ⎯s2 bi
x1 1 6 0 -1 0 1 12
e1 0 40 1 -7 -1 7 56 →
Δj 0 -80/7 0 0 -1 -1 0
#3 x1 x2 e1 e2 bi
x1 1 6 0 -1 12
e1 0 40 1 -7 56
cj 1 2 0 0 0
mise à jour 0 -4 0 1 12
↑
(mais pas de var sortante)
Exemple:
max z = 3x1 + 2x2
s.c. 3x1 + 2x2 ≤ 120
x1 + 1x2 ≤ 50
x1, x2 ≥ 0
A. B. HADJ-ALOUANE 44
RECHERCHE OPERATIONNELLE 2AGI
#1 x1 x2 s1 s2 bi
s1 3 2 1 0 120 →
s2 1 1 0 1 50
cj 3 2 0 0 0
↑
#2 x1 x2 s1 s2 bi
x1 1 2/3 1/3 0 40
s2 0 1/3 -1/3 1 10 →
Δj 0 0 -1 0 -120
↑
C'est un tableau optimal, mais on remarque la présence d'une variable hors base à
Δj = 0. Cela veut dire que si on la fait entrer dans la base, on va obtenir une autre SB
optimale sans que la valeur de z ne change ⇒ le segment formé par ces deux SB
optimales contient toutes les solutions optimales du problème.
#3 x1 x2 s1 s2 bi
x1 1 0 1 -2 20
x2 0 1 -1 3 30 →
Δj 0 0 -1 0 -120
A. B. HADJ-ALOUANE 45
RECHERCHE OPERATIONNELLE 2AGI
Une SBR de P’ est donnée par VB = {⎯s1,⎯s2, s3}. Cependant, les variables artificielles
non seulement ont un effet nul dans la fonction objectif mais aussi doivent être
nulles dans une SBR de P. Alors, lorsqu’une variable artificielle est non nulle, ceci
indique que la solution est non réalisable dans P. On doit essayer d’annuler les
variables artificielles dans P’. Ceci est réalisé en appliquant l’algorithme de
Simplexe au problème suivant :
A. B. HADJ-ALOUANE 46
RECHERCHE OPERATIONNELLE 2AGI
Cas 3 : zI= 0 et au moins une ⎯si est une VB du tableau optimal de la phase I ⇒
Le problème original P a au moins une contrainte redondante → Eliminer les
contraintes redondantes ; réintroduire z(x) et commencer la phase II.
Rq : dans le cas 3, on trouve une ou plusieurs lignes où tous les coefficients sont nuls
sauf ceux des variables artificielles → telles lignes sont redondantes et peuvent être
éliminées.
Ex :
x1 x2 x3 x4 x5 ⎯s2
x3 3 -1 1 1 0 0 6
⎯s2 0 0 0 0 0 1 0
x5 2 1 0 2 1 0 5
Application à P :
A. B. HADJ-ALOUANE 47
RECHERCHE OPERATIONNELLE 2AGI
#1 x1 x2 e1 s3 ⎯s1 ⎯s2
⎯s1 2 -1 -1 0 1 0 15
⎯s2 1 1 0 0 0 1 10
s3 2 -1 0 1 0 0 20
0 0 0 0 -1 -1 0
Variables de base (⎯s1 et ⎯s2) ayant des coûts marginaux non nuls ⇒ mise à jour du
tableau : L4 → L4 + L1 + L2
#1 x1 x2 e1 s3 ⎯s1 ⎯s2
⎯s1 2 -1 -1 0 1 0 15
⎯s2 1 1 0 0 0 1 10
s3 2 -1 0 1 0 0 20
3 0 -1 0 0 0 25
#2 x1 x2 e1 s3 ⎯s1 ⎯s2
x1 1 -1/2 -1/2 0 1 /2 0 15/2
⎯s2 0 3/2 1/2 0 -1/2 1 5/2
s3 0 0 1 1 -1 0 5
0 3/2 1/2 0 -3/2 0 5/2
#3 x1 x2 e1 s3 ⎯s1 ⎯s2
x1 1 0 -1/3 0 1/3 1/3 25/3
x2 0 1 1/3 0 -1/3 2/3 5/3
s3 0 0 1 1 -1 0 5
0 0 0 0 -1 -1 0
Tableau optimal de la phase I (cas 2) : VB = {x1, x2, s3}
Rq: On peut éliminer du tableau la colonne d'une variable artificielle dès que celle-
ci sort de la base.
Phase II :
#4 x1 x2 e1 s3
x1 1 0 -1/3 0 25/3
x2 0 1 1/3 0 5/3
s3 0 0 1 1 5
4 3 0 0
L4 – 4L1 –3 L2 0 0 1/3 0 -115/3
A. B. HADJ-ALOUANE 48
RECHERCHE OPERATIONNELLE 2AGI
#5 x1 x2 e1 s3
x1 1 0 0 1/3 10
x2 0 1 0 -1/3 0
e1 0 0 1 1 5
0 0 0 -1/3 -40
Tableau optimal → x1 = 10
x2 = 0
z* = 40
Si le PL est tel que des variables artificielles doivent être introduites pour obtenir un
tableau canonique, on peut aussi le résoudre avec la méthode de Big-M
Principe : introduire les variables artificielles dans la fonction objectif, avec des
coefficients arbitrairement larges (M >>0, pour un problème de minimisation), puis
résoudre le problème résultant à l’aide de Simplexe (en une seule phase).
En général,
Max zM = cx - ∑i M⎯si
(PM) s.c. Ax + ⎯s = b
x ≥ 0, ⎯s ≥ 0
Exemple :
Max zM= 4x1 + 3x2-M ⎯s1 -M⎯s2
A. B. HADJ-ALOUANE 49
RECHERCHE OPERATIONNELLE 2AGI
#2 x1 x2 e1 s3 ⎯s1 ⎯s2
x1 1 -1/2 -1/2 0 1/2 0 15/2
⎯s2 0 3/2 1/2 0 -1/2 1 5/2→
s3 0 0 1 1 -1 0 5
0 5+3/2M 2+1/2M 0 -2-3/2M 0 -30+5/2M
↑
#3 x1 x2 e1 s3 ⎯s1 ⎯s2
x1 1 0 -1/3 0 1/3 1/3 25/3
x2 0 1 1/3 0 -1/3 2/3 5/3
s3 0 0 1 1 -1 0 5→
0 0 1/3 0 -1/3-M 0 -115/3
↑
#4 x1 x2 e1 s3 ⎯s1 ⎯s2
x1 1 0 0 1/3 0 0 10
x2 0 1 0 -1/3 0 2/3 0
e1 0 0 1 1 -1 0 5
0 0 0 -1/3 -M 0 -40
Tableau optimal
Cas 1 : Simplexe donne une solution optimale (x*, ⎯s*) avec ⎯s* = 0. Alors x*
est optimal pour le problème de départ (P).
Cas 2 : Simplexe donne une solution optimale (x*, ⎯s*) avec ⎯s* ≠ 0. Le critère
d’optimalité étant satisfait ∀ M suffisamment large, (P) est donc non-
réalisable.
A. B. HADJ-ALOUANE 50
RECHERCHE OPERATIONNELLE 2AGI
Exemple :
⎯s1 1 1 -1 0 1 0 1
s2 1 -1 0 -1 0 1 0 →
1 1 0 0 -M -M 0
Mise à 1+2M 1 -M -M 0 0 M
jour
↑
#2 x1 x2 e1 e2 ⎯s1 ⎯s2
⎯s1 0 2 -1 1 1 -1 1→
x1 1 -1 0 -1 0 1 0
0 2+2M -M 1+M 0 -1-2M M
↑
#3 x1 x2 e1 e2 ⎯s1 ⎯s2
x2 0 1 -½ ½ ½ -½ ½→
x1 1 0 -½ -½ ½ ½ ½
0 0 1 0 -1-M -M -1
#3 x1 x2 e1 e2 ⎯s1 ⎯s2
x2 0 1 -½ ½ ½ -½ ½→
x1 1 0 -½ -½ ½ ½ ½
0 0 0 0 -M -M 0
A. B. HADJ-ALOUANE 51
RECHERCHE OPERATIONNELLE 2AGI
Pour résumer :
3) Trouver intuitivement une SBR, écrire le PL sous la forme canonique, puis passer
directement à la phase II (l’approche la moins pratique).
A. B. HADJ-ALOUANE 52
RECHERCHE OPERATIONNELLE 2AGI
Série N°3
Exercice n° 1.
Une compagnie pétrolière utilise trois procédés différents pour fabriquer trois types
de carburants (CRi). Chaque procédé consiste à mélanger et traiter des divers types
de pétrole dans une cuve catalytique, pour en extraire les carburants. La compagnie
utilise deux types de pétrole brut (PBj). Les schémas suivants montrent les
inputs/outputs (exprimés en barils), relatifs à l’exécutions de chacun des trois
procédés P1, P2 et P3, pendant une heure.
Exercice n° 2.
Résoudre le programme linéaire suivant :
Max z = 2x1 - x2 + x3
SC 3x1 + x2 + x3 ≤ 60
x1 - x2 + 2x3 ≤ 10
x1 + x2 - x3 ≤ 20
x1, x2, x3 ≥ 0
A. B. HADJ-ALOUANE 53
RECHERCHE OPERATIONNELLE 2AGI
Exercice n° 3.
Le tableau suivant est relatif à un problème de maximisation :
x1 x2 x3 x4 x5 x6
0 0 1 1 -1 -5 17
1 0 0 -1 -1 -3 19
0 1 0 -1 -1 0 11
z 0 0 0 -9 -3 4 -53
Continuer la résolution.
Exercice n° 4.
Déterminer une solution vérifiant le système suivant :
3x1 - x2 + 4x3 + x4 ≥ 60
x1 + 3x2 - x4 ≤ 10
2x1 + x2 + x3 = 12
x1, x2, x3, x4 ≥ 0
Exercice n° 5.
Soit le programme linéaire PL
2. Résoudre le PL.
Exercice n° 6.
Soit le programme linéaire PL
max z = x1 + x2
s.c. 2x1 + x2 ≥ 3
3x1 + x2 ≤ 3.5
x1 + x 2 ≤ 1
x1 ≥ 0, x2 ≥ 0
Résoudre ce programme par la méthode de simplexe à deux phases.
Exercice n° 7.
Soit le programme linéaire PL
min z = 4x1 + 4x2 + x3
s.c. x1 + x2 + x3 ≤ 2
2x1 + x2 ≤3
2x1 + x2 + 3x3 ≥ 3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
Résoudre ce programme par la méthode de simplexe à deux phases.
A. B. HADJ-ALOUANE 54
RECHERCHE OPERATIONNELLE 2AGI
CHAPITRE V
La dualité en programmation linéaire
5.1 Introduction
On considère encore le PL suivant
max cx
(P) s.c. Ax = b
x≥0
Lorsqu'un optimum d'un PL est obtenu, les coûts marginaux, Δ= (Δj), relatifs à la
solution optimale sont ≤ 0. Pour P, on a aussi montré que si B est une base réalisable,
alors Δ = c - cvb B-1A. En traitant les coefficients cvb B-1 comme des variables, on peut
construire un autre PL appelé le problème dual (D) associé au problème d'origine P
(ce dernier est appelé dans ce contexte: problème primal). Les variables dans le
problème dual sont des multiplicateurs des contraintes du problème primal.
La relation de dualité est très importante pour le mathématicien, car elle permet de
préciser les caractéristiques de l'optimum et de proposer des algorithmes de
résolution rapide. Pour l'économiste et le gestionnaire, la dualité admet une
interprétation économique élégante.
A. B. HADJ-ALOUANE 55
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 56
RECHERCHE OPERATIONNELLE 2AGI
min w = 48y1 + 8 y2 + 20 y3
s.c. 8y1 + 2 y2 + 4 y3 ≥ 60
(D) 6y1 + 1.5 y2 + 2 y3 ≥ 30
y1 + 0.5 y2 + 1.5 y3 ≥ 20
y1, y 2, y 3 ≥ 0
5.2.2 Le dual d'un problème de minimisation
Exemple: Problème de régime alimentaire.
Une famille désire préparer un menu équilibré à coût minimal. Ce menu doit être
constitué de 6 aliments (appelés 1, 2, 3, 4, 5 et 6) et doit contenir au moins 9 unités
de vitamine A et 19 unités de vitamine C.
Nombre d'unités de vitamine /Kg Nombre minimum
d'aliment d'unités requises /jour
1 2 3 4 5 6
Vitamine A 1 0 2 2 1 2 9
Vitamine C 0 1 3 1 3 2 19
Coût de l'aliment 35 30 60 50 27 22
(x10M/kg)
A. B. HADJ-ALOUANE 57
RECHERCHE OPERATIONNELLE 2AGI
A. B. HADJ-ALOUANE 58
RECHERCHE OPERATIONNELLE 2AGI
Exemples:
1. Problème de maximisation:
A. B. HADJ-ALOUANE 59
RECHERCHE OPERATIONNELLE 2AGI
2. Problème de minimisation:
Soit max z = cx
(P) s.c. Ax = b (Forme standard)
x≥0
Alors le dual est:
min w = yb
(D) s.c. yA ≥ c
y <> 0
Lemme fondamental (faible dualité):
Soient DRP et DRD les domaines réalisables de P et D, respectivement.
∀ x ∈ DRP, ∀ y ∈ DRD, yb≥ cx
Démonstration:
y ∈ DRD ⇒ yA ≥ c
x ∈ DRP ⇒ x ≥ 0
Par conséquent : yAx ≥ cx; puisque Ax = b, alors yb ≥ cx
A. B. HADJ-ALOUANE 60
RECHERCHE OPERATIONNELLE 2A GI
Démonstration :
(⇒ Condition nécessaire de l'optimalité de x*) x* optimum de P
⇒ Δ = c -cB B-1A ≤ 0 ⇒ cB B-1A ≥ c
La valeur de z* = cB B-1 b = cx*
posons y* = cB B-1, on a bien y*A ≥ c (réalisable pour D) et y*b = cB B-1 b = cx*.
Résultat important:
Si x* est optimale pour P alors cVB B-1 est une solution optimale D, où B est la base
associée avec x*.
A. B. HADJ-ALOUANE 61
RECHERCHE OPERATIONNELLE 2A GI
Remarques:
• L'algorithme de simplexe qu'on a étudié maintient toujours des bases primales
réalisables, mais toutes ces bases ne sont pas duales réalisables (quelques Δj > 0)
à l'exception de la base finale. Lorsqu'on tombe sur une base qui est aussi duale
réalisable l'algorithme s'arrête. Cette version de Simplexe, traitant toujours des
bases primales réalisables, est alors appelé Méthode Primale du Simplexe.
• La version de Simplexe traitant des bases duales réalisables mais non primales
réalisables est appelée Méthode Duale du Simplexe.
• La condition d'optimalité de l'algorithme Primal Simplexe n'est que le critère de
dual-réalisabilité de la base en question.
• Une base B de P est appelée base optimale si elle est en même temps primale
réalisable et duale réalisable.
Soit B une base du programme (P) telle que le vecteur y = cBB-1 soit dual réalisable,
càd que la condition suivante soit vérifiée : yA ≥ c ou encore yH ≥ cH.
2. Si la base B n’est pas primale réalisable, autrement dit qu’il existe au moins une
variable de base xs telle que xs < 0. Nous allons montrer qu’il est possible dans ce
cas de mettre en évidence une nouvelle solution duale y’ vérifiant y’b< yb.
Soit as la ligne s de B-1. On a donc par hypothèse, asb = xs < 0 (xs variable sortante).
A. B. HADJ-ALOUANE 62
RECHERCHE OPERATIONNELLE 2A GI
C2. Pour tout Aj colonne de base avec j≠s, on a : y’Aj = yAj + θasAj et donc y’Aj = cj
C3. Pour tout Aj colonne hors base, on a : y’Aj = yAj + θasAj et donc y’Aj = yAj + θ⎯asj
avec ⎯aj = B-1Aj
2. Il existe j tel que Aj colonne hors base et: ⎯asj < 0, alors d’après C3, y’ est dual
réalisable si et seulement si
yAj + θ⎯asj≥ cj pour tout Aj colonne hors base tel que ⎯asj < 0.
Autrement dit:
θ ≤( cj - yAj)/ ⎯asj = Δj/⎯asj pour tout Aj colonne hors base tel que ⎯asj < 0.
La plus grande valeur qui peut être attribuée à θ est alors :
θ* = Minj∉B, ⎯asj<0 {Δj / ⎯asj}
A. B. HADJ-ALOUANE 63
RECHERCHE OPERATIONNELLE 2A GI
Si B’ est primale réalisable, alors elle est optimale, sinon, il est possible de
sélectionner une variable strictement négative et déterminer une nouvelle solution
duale réalisable de meilleure valeur de la fonction objectif.
Remarque :
La méthode duale du simplexe s’applique aussi bien pour un problème dual que
pour un programme linéaire vérifiant certaines conditions. On considère son
utilisation pour la résolution d’un programme primal.
Une fois le pivot déterminé, la mise à jour du tableau est effectuée grâce à une
transformation similaire à celle qui a été décrite pour l’algorithme primal du
simplexe.
A. B. HADJ-ALOUANE 64
RECHERCHE OPERATIONNELLE 2A GI
Exemple 1 :
(P) Min z = x1 + x2
sc 2 x 1 + x2 ≥ 4
x1 + 7 x2 ≥ 7
x1, x2 ≥ 0
#1 x1 x2 e1 e2
e1 -2 -1 1 0 -4
e2 -1 -7 0 1 -7
-1 -1 0 0
Ratios (-1)/(-1) (-1)/(-7)
#2 x1 x2 e1 e2
e1 -13/7 0 1 -1/7 -3
x2 1/7 1 0 -1/7 1
-6/7 0 0 -1/7 1
Ratios 6/13 1
#3 x1 x2 e1 e2
x1 1 0 -7/13 1/13 21/13
x2 0 1 1/13 -2/13 10/13
0 0 -6/13 -1/13 31/13
Exemple 2:
(P) Min z = x1 + x2 + 2 x3
sc 3 x 1 + x2 + 2 x 3 ≥ 7
x1 + 4 x2 + x3 ≥ 10
x1, x2, x3 ≥ 0
A. B. HADJ-ALOUANE 65
RECHERCHE OPERATIONNELLE 2A GI
Pour i = 1, ..., m
♦ Si contrainte i est de type ≤, on doit avoir si dans le primal. On a
⎛0⎞
⎜ ⎟
⎜M⎟
Δsi = 0 − y ⎜ 1 ⎟ ← i e = − y i ⇒ y i = − Δsi
⎜ ⎟
⎜M⎟
⎜0⎟
⎝ ⎠
⎛ 0 ⎞
⎜ ⎟
⎜ M ⎟
Δe = 0 − y ⎜ − 1⎟ ← i e = y i ⇒ y i = Δei
i ⎜ ⎟
⎜ M ⎟
⎜ 0 ⎟
⎝ ⎠
♦ Si contrainte i est de type =, on doit avoir ⎯si dans le primal. On a (dans le cas
de Big-M)
⎛0⎞
⎜ ⎟
⎜M⎟
Δsi = − M − y ⎜ 1 ⎟ ← i e = − M − y i ⇒ y i = − M − Δsi
⎜ ⎟
⎜M⎟
⎜0⎟
⎝ ⎠
A. B. HADJ-ALOUANE 66
RECHERCHE OPERATIONNELLE 2A GI
Série N°4
Dualité
Exercice n° 1.
Soit le PL suivant (cas de jouets : soldats et trains)
Max z = 3 x1 + 2 x2
(P) s.c. x1 + x2 ≤ 80
2x1 + x2 ≤ 100
x1 ≤ 40
x1, x2 ≥ 0
1. Trouver le dual de P.
2. Utiliser le tableau optimal de P pour trouver la solution optimale du dual.
x1 x2 s1 s2 s3
s3 0 0 1 -1 1 20
x2 0 1 2 -1 0 60
x1 1 0 -1 1 0 20
∆j 0 0 -1 -1 0 -180
Exercice n° 2.
max z = -2 x1 - x2 + x3
(P) s.c. x1 + x2 + x3 ≤3
x2 + x 3 ≥ 2
x1 + x3 =1
x1, x2, x3 ≥ 0
3. Quel est le dual de P ?
4. Trouver la solution du dual.
A. B. HADJ-ALOUANE 67
RECHERCHE OPERATIONNELLE 2A GI
Exercice n° 3.
On considère le PL suivant :
max z = 2 x1 + x2 + 3x3 + x4
(P) s.c. x1 + x2 + x3 + x4 ≤ 3
2x1 - x2 + 3x3 = -4
x1 - x3 + x4 ≥1
x1≥ 0, x2<>0, x3≥ 0, x4 <> 0
Exercice n° 4.
Les tableaux initial et final d’un programme linéaire (à maximiser) sont les suivants :
Tableau initial
x1 x2 x3 x4 x5 x6
x5 4 9 7 10 1 0 6
x6 1 1 3 40 0 1 4
12 20 18 40 0 0 0
Tableau final
x1 x2 x3 x4 x5 x6
x1 1 7/3 5/3 0 4/15 -1/15 4/3
x4 0 -1/30 1/30 1 -1/150 2/75 1/15
∆j 0 -20/30 -10/3 0 -44/15 -4/15 -56/3
A. B. HADJ-ALOUANE 68
RECHERCHE OPERATIONNELLE 2A GI
CHAPITRE VI
Analyse de sensibilité en programmation linéaire
6.1 Introduction
On va étudier dans ce qui suit la sensibilité de l'optimum aux variations des données
du problème. Souvent, les coefficients de la fonction objectif, le second membre ou
les coefficients technologiques aij subissent des changements (fluctuations des prix,
disponibilités des ressources, ...). Alors on est intéressé par la stabilité de l'optimum
par rapport à ces paramètres, afin de savoir dans quels intervalles la solution
optimale, la base optimale ou la valeur optimale de la fonction objectif ne changent
pas.
A. B. HADJ-ALOUANE 69
RECHERCHE OPERATIONNELLE 2A GI
→ Déf : -Δj d’une variable hors base est le maximum dont on peut augmenter cj
avant que la base actuelle ne soit plus optimale.
Dans le cas où λ > -Δk (0), B n’est plus optimale. On peut trouver la nouvelle solution
optimale en remplaçant Δk(0) par Δk(λ) dans le tableau optimal. Puisque Δk(λ) > 0,
xk va entrer à la base. Alors, on continue l’algorithme de Simplexe.
Exemple :
Reprenons l'exemple de MEUBLE.
max z = 60 x1 + 30 x2 + 20 x3
(P) s.c. 8 x1 + 6 x2 + x3 ≤ 48 (ressource bois)
2 x1 + 1.5 x2 + 0.5 x3 ≤ 8 (ressource menuiserie)
4 x1 + 2 x2 + 1.5 x3 ≤ 20 (ressource finition)
x1, x2, x3 ≥ 0
A. B. HADJ-ALOUANE 70
RECHERCHE OPERATIONNELLE 2A GI
x1 x2 x3 s1 s2 s3
s1 1.6 0 0 1 -5.6 1.2 27.2
x2 0.8 1 0 0 1.2 -0.4 1.6
x3 1.6 0 1 0 -1.6 1.2 11.2
Δj -4 0 0 0 -16 -8 -288
Question : dans quel intervalle λ peut varier tout en maintenant la même base ?
Cet intervalle est donné par le système d’inégalités suivant :
1. Si λ vérifie (*), alors B reste optimale ; Dans ce cas B-1b ne change pas ⇒ même
valeurs des variables. Mais la valeur optimale de z change :
z*(λ) = cB(λ)B-1b = cB(λ)xB* = cBxB + λ xk = z*(0) + λ xk
2. Sinon : l’une des variables hors base, xj, aura un coût marginal Δj(λ) > 0, et B
n’est plus optimale. Dans ce cas, xj entre et une variable de base sort (pas
nécessairement xk) ; et la résolution se continue.
Exemple :
c1 → c1 + λ
⎛1 8 1⎞ ⎛1 − 8 2 ⎞
⎜ ⎟ ⎜ ⎟
CB (λ)= (0 60+λ 20) ; B = ⎜ 0 2 0.5 ⎟ ⇒ Β = ⎜ 0 1 .5 − 0.5 ⎟
-1
⎜ 0 4 1.5 ⎟ ⎜0 − 4 2 ⎟⎠
⎝ ⎠ ⎝
⎛ 6 ⎞
⎜ ⎟
Δ2(λ) = c2 - y*(λ) A2 = 30 - (0 10+1.5λ 10-0.5λ) ⎜1.5 ⎟ = -5 – 1.25 λ
⎜ 2 ⎟
⎝ ⎠
A. B. HADJ-ALOUANE 71
RECHERCHE OPERATIONNELLE 2A GI
Δ2(λ)≤ 0 -5 – 1.25 λ ≤ 0 λ ≥ -4
→ Si c1(λ) < 56 : le prix d’un bureau devient trop bas ⇒ n’est plus optimal d’en
produire. Dans ce cas, Δ2 > 0 → x2 entre à la place de x1.
→ Si c1(λ) > 80 : le prix d’un bureau est assez élevé → on veut en produire plus.
Dans ce cas, x1 doit rester dans la base. En effet, Δs2(λ) > 0, alors s2 entre et x3 sort
(on ne produit plus de chaises, mais que des bureaux).
bi → bi + λ= bi(λ)
Dans le tableau optimal, seulement B-1b et (cBB-1)b peuvent changer. Donc, changer
bi peut :
(1) donner une autre solution réalisable (tous les xj ≥ 0) associée à la même base.
Cette dernière va rester optimale puisque les Δj ne dépendent pas de bi.
Cependant, les valeurs des variables de base (xB = B-1b ) ainsi que la valeur de la
fonction objectif changent.
z* (λ) = cBB-1b(λ) = y*b(λ) ⇔ z* (λ) = y*b + λy*i = z*(0) + λy*i
En effet: y*i = δz/δbi: le taux de variation de z par rapport à la variation de bi.
ou
(2) aboutir à une solution non-réalisable (un xj < 0). Evidemment la base actuelle
n'est plus optimale. Dans ce cas, on peut procéder de deux manières possibles :
(a) Appliquer l'algorithme Dual Simplexe, qui maintient une base duale
réalisable mais pas nécessairement primale réalisable.
A. B. HADJ-ALOUANE 72
RECHERCHE OPERATIONNELLE 2A GI
⎛ 48 ⎞ ⎛ 48 ⎞
⎜ ⎟ ⎜ ⎟
b= ⎜ 8 ⎟ → b(λ) = ⎜ 8 ⎟
⎜ 20 ⎟ ⎜ 20 + λ ⎟
⎝ ⎠ ⎝ ⎠
⎛1 − 8 2 ⎞⎛ 48 ⎞ ⎛ 24 + 2λ ⎞
⎜ ⎟⎜ ⎟ ⎜ ⎟
Β-1 b( λ ) = ⎜ 0 1.5 − 0.5 ⎟⎜ 8 ⎟ = ⎜ 2 − 0.5 λ ⎟
⎜0 − 4 2 ⎟⎠⎜⎝ 20 + λ ⎟⎠ ⎜⎝ 8 + 2λ ⎟⎠
⎝
Pour que la base reste optimale (c-à-d réalisable) on doit avoir B-1 b(λ) ≥ 0
24 + 2λ ≥ 0
⇔ 2 - 0.5λ ≥ 0 ⇔ -4 ≤ λ ≤ 4 (ou 16 ≤ b3(λ) ≤ 24).
8 + 2λ ≥ 0
Dans ce cas, les valeurs des variables de base et de la fonction objectif changent.
Par exemple, Pour λ = -2; s*1 = 20
x*1 (λ)= 3
x*3 (λ)= 4
z*(λ) = 280 + λy*3 = 280 + (-2)10 = 260
⎜ 20 ⎟ ⎜ 20 ⎟
⎝ ⎠ ⎝ ⎠
(Dual Simplexe)
x1 x2 x3 s1 s2 s3
s1 0 -2 0 1 -8 2 36
x1 1 5/4 0 0 3/2 -1/2 -1
x3 0 -2 1 0 -4 2 20
Δj 0 -5 0 0 -10 -10 -340
Ratio -10/-0.5=20
x1 sort et s3 entre.
x1 x2 x3 s1 s2 s3
s1 4 3 0 1 -2 0 32
s3 -2 -5/2 0 0 -3 1 2
x3 4 3 1 0 2 0 16
Δj -20 -30 0 0 -40 0 -320
A. B. HADJ-ALOUANE 73
RECHERCHE OPERATIONNELLE 2A GI
⎛ 1 −8 2 ⎞⎛6⎞ ⎛ 0 ⎞
B A'2= ⎜ 0 1.5 −0.5 ⎟⎟ ⎜⎜ 1 ⎟⎟ = ⎜⎜ 1 ⎟⎟
-1 ⎜
⎜ 0 −4 2 ⎟⎠ ⎜⎝ 1 ⎟⎠ ⎜⎝ −2 ⎟⎠
⎝
x1 x2 x3 s1 s2 s3
s1 0 0 0 1 -8 2 24
x1 1 1 0 0 1.5 -0.5 2 →
x3 0 -2 1 0 -4 2 8
Δj 0 10 0 0 -10 -10 -280
↑
x2 entre et x1 sort
x1 x2 x3 s1 s2 s3
s1 0 0 0 1 -8 2 24
x2 1 1 0 0 1.5 -0.5 2
x3 2 0 1 0 -1 1 12
Δj -10 0 0 0 -25 -5 -300
Pour résumer,
A. B. HADJ-ALOUANE 74
RECHERCHE OPERATIONNELLE 2A GI
Remarque: si la colonne qui change est celle d'une variable de base, généralement
c'est difficile de déterminer si la base actuelle reste optimale car ceci implique le
changement B, B-1 et cB ⇒ 2nd membre et tous les Δj changent.
⇒ Il faut reprendre tout le calcul.
Nous pouvons traiter ceci comme le cas précédent, en supposant que le tabouret
correspond à une variable hors base dans le tableau précédent. En introduisant la
nouvelle colonne des tabourets : A4, et le coefficient c4, et en calculant Δ4, on peut
savoir si la base reste optimale. Dans ce cas :
max z = 60 x1 + 30 x2 + 20 x3+ 15 x4
(P4) s.c. 8 x1 + 6 x2 + x3 + x4 ≤ 48 (ressource bois)
2 x1 + 1.5 x2 + 0.5 x3 + x4 ≤ 8 (ressource menuiserie)
4 x1 + 2 x2 + 1.5 x3 + x4 ≤ 20 (ressource finition)
x1, x2, x3, x4 ≥ 0
De même que lors du changement d'une colonne, seul Δ4 peut changer. En effet,
Δ 4 = c4 - (cBB-1)A4 et la base reste optimale si Δ4 ≤ 0.
A. B. HADJ-ALOUANE 75
RECHERCHE OPERATIONNELLE 2A GI
⎛1 ⎞
Δ4 = 15 - (0 10 10) ⎜⎜1 ⎟⎟ = -5 < 0 ⇒ la base actuelle reste optimale
⎜1 ⎟
⎝ ⎠
⇒ on ne doit pas introduire les tabourets.
En résumé :
− Si Δ j (de la nouvelle activité) ≤ 0, la base actuelle étant encore optimale, ne pas
introduire la nouvelle activité
− Sinon, xj sera une variable de base dans la nouvelle solution optimale, c-à-d, il est
opportun d'introduire la nouvelle activité.
Soit ∑ j
am +1,j x j = bm +1 la nouvelle contrainte (transformée en une égalité)
Cas 1 : la solution actuelle satisfait la nouvelle contrainte. Par conséquent elle reste
encore optimale.
Cas 2 : la solution ne vérifie pas la contrainte. Donc ce cas la base actuelle n’est
plus optimale. On introduit alors la contrainte dans le tableau de simplexe et on
continue la résolution. Si on peut facilement identifier une variable de base pour
cette contrainte, on procèdera par la méthode duale Simplexe après avoir remis le
tableau sous la forme canonique tout en gardant un second membre négatif pour la
nouvelle ligne. Sinon on procèdera par la méthode à deux phases en multipliant la
nouvelle contrainte par (-1), si nécessaire, et en y introduisant une variable
artificielle.
Exemple : Introduisons dans MEUBLE une autre contrainte de demande agrégée sur
les bureaux et les chaises : x1 + x3 ≥ 12
La solution optimale est telle que x*1 + x*3 = 10 < 12 : non satisfaite
→ x1 + x3 –e1 = 12 ⇒ - x1 - x3 +e4= -12
x1 x2 x3 s1 s2 s3 e4
s1 0 -2 0 1 -8 2 0 24
x1 1 5/4 0 0 1.5 -1/2 0 2
x3 0 -2 1 0 -4 2 0 8
e4 -1 0 -1 0 0 0 1 -12
Δj 0 -5 0 0 -10 -10 0 -280
A. B. HADJ-ALOUANE 76
RECHERCHE OPERATIONNELLE 2A GI
Il faut annuler les coefficients des variables de base dans la nouvelle contrainte,
pour obtenir la forme canonique.
x1 x2 x3 s1 s2 s3 e4
s1 0 -2 0 1 -8 2 0 24
x1 1 5/4 0 0 3/2 -1/2 0 2
x3 0 -2 1 0 -4 2 0 8
e4 0 -3/4 0 0 -5/2 3/2 1 -2
Δj 0 -5 0 0 -10 -10 0 -280
Ratio 20/3 4
e4 sort et s2 entre
x1 x2 x3 s1 s2 s3 e4
s1 0 14/5 0 1 0 -14/5 0 152/5
x1 1 4/5 0 0 0 -1/10 0 4/5
x3 0 -4/5 1 0 0 -2/5 -8/5 56/5
s2 0 3/10 0 0 1 -3/5 -2/5 4/5
Δj 0 -2 0 0 0 -16 -4 -272
Tableau optimal.
x réalisable de P ; y réalisable de D.
x et y sont optimaux pour P et D, respectivement ssi
si y i = 0 i=1, …, m
ej xj = 0 j =1, …, n
Démonstration : (exercice)
A. B. HADJ-ALOUANE 77
RECHERCHE OPERATIONNELLE 2A GI
∑y a
i
i ij > c j ⇒ il n'est plus rentable de fabriquer le produit j ⇒ x j = 0
y i > 0 ⇒ si = 0 ⇔ ∑a
j
ij x j = bi
x j > 0 ⇒ il ne faut pas offrir des prix assez élévés ( ∑ yi aij ) sinon ça va lui coûter cher
i
⇒ ∑ yi aij = cj ou ej = 0
i
Exemple : MEUBLE
s1 > 0 ⇒ y1 = 0
y 2 > 0 ⇒ s2 = 0
A. B. HADJ-ALOUANE 78
RECHERCHE OPERATIONNELLE 2A GI
s1 s2 s3
⎛ 1 −8 2 ⎞
T(B{s1, x1, x3}| B{s1, s2, s3}) = I3|T(B{s1, s2, s3}) = I3| ⎜
0 3/2 −1/2
⎟ ⇔
⎜ ⎟
⎜ 0 −4 2 ⎟⎠
⎝
B-1{s1, x1, x3} (B{s1, x1, x3}| B{s1, s2, s3}) = I3|B-1{s1, x1, x3}B{s1, s2, s3}
s1 s2 s3
⎛1 −8 2 ⎞
= I 3| ⎜ ⎟
−1/2
⎜0 3/2
⎟
⎜0 −4 2 ⎟⎠
⎝
s1 s2 s3
⎛1 −8 2 ⎞
Or B{s1, s2, s3} = I3, par conséquent ⎜ ⎟ = B{−s1 ,x ,x } I3 = B{−s1 ,x ,x }
3/2 −1/2
⎜0
1 1 3 1 1 3
⎟
⎜0 −4 2 ⎟⎠
⎝
Pour résumer : pour n’importe quel tableau de Simplexe (pas seulement le tableau
optimal), B-1 est la matrice mxm dont les colonnes sont celles du tableau actuel qui
correspondent aux variables de base du tableau initial.
#2 x1 x2 x3 s1 s2 s3
s1 0 0 -1 1 -4 0 16
x1 1 3/4 1/4 0 1/2 0 4
s3 0 -1 1/2 0 -2 1 4
Δj 0 -15 20 0 -30 0 -240
⎛1 8 0 ⎞ ⎛ 1 −4 0 ⎞
B2 = ⎜ 0 2 0 ⎟ ; B2 = ⎜⎜ 0 1/2 0 ⎟⎟
⎜ ⎟ -1
⎜0 4 1 ⎟ ⎜ 0 −2 1 ⎟
⎝ ⎠ ⎝ ⎠
#3 x1 x2 x3 s1 s2 s3
s1 0 -1 0 1 -8 2 24
x1 1 5/4 0 0 3/2 -1/2 2
x3 0 -2 1 0 -4 2 8
Δj 0 -5 0 0 -10 -10 -280
⎛1 8 1 ⎞ ⎛1 −8 2 ⎞
B3 = ⎜ 0 2 1/2 ⎟ ; B-13 = ⎜⎜ 0
⎜ ⎟ 3/2 −1/2
⎟
⎟
⎜ 0 4 3/2 ⎟ ⎜0 −4 2 ⎟⎠
⎝ ⎠ ⎝
A. B. HADJ-ALOUANE 79
RECHERCHE OPERATIONNELLE 2A GI
Série N°5
Exercice n° 1.
On considère le programme linéaire suivant représentant un problème de mixage de trois
ressources b1, b2 et b3, d’une compagnie, pour produire 6 produits finis.
2. Est-ce que cette base est optimale ? Sinon trouver le tableau optimal.
Exercice n° 2.
La Société Fromagère du Nord Ouest (SOFNO) est spécialisée dans la production de
deux types de fromage : le chevron et le brebon. Ces fromages sont produits à partir
de lait de brebis, de chèvre et de vache. Les quantités nécessaires à la fabrication
d’une tomme (d’un poids moyen de 6,2 Kg), les quantités de lait disponibles par
jour, ainsi que les profits unitaires sont indiqués dans le tableau ci-dessous :
Brebon 1 15 20 11.5
A. B. HADJ-ALOUANE 80
RECHERCHE OPERATIONNELLE 2A GI
4. Des études marketing menées par la SOFNO ont prouvé la nécessité de lancer un
nouveau fromage fabriqué essentiellement à base de lait de vache. Ce nouveau
produit sera appelé “le vacheron”. La fabrication d’une tomme de ce fromage
nécessite 27 litres de lait de vache et 9 litres de lait de brebis. Son coût unitaire
est estimé à 18 D. Quel sera son prix de vente minimal ?
Exercice n° 3.
Compte tenu des heures d’entretien, une machine est disponible 170 heures par mois. On
peut fabriquer avec cette machine l’article A1 à la cadence de 50 unités/heure, et
l’article A2 à la cadence de 80 unités/heure. Les principales données respectives aux
articles A1 et A2 sont résumés dans le tableau ci-dessous:
A1 270 30 7000
A2 210 20 10000
A. B. HADJ-ALOUANE 81
RECHERCHE OPERATIONNELLE 2A GI
TRAVAUX PRATIQUES
LINDO/LINGO
1. INTRODUCTION
LINDO (Linear INteracractive and Discrete Optimizer) est un logiciel d’optimisation
qui a été développé par Linus Schrage (1981). Il permet la résolution des
programmes linéaires à variables continues ou entières ainsi que celle des
programmes quadratiques. La première version de LINDO étant sous DOS, une
nouvelle version, beaucoup plus conviviale, a été développée sous Windows offrant,
de plus, un environnement de modélisation intuitif. Interactif et facile à utiliser,
LINDO permet d’écrire et d’éditer les programmes mathématiques en utilisant le
style direct d’équations.
Ce logiciel est accompagné d’un menu HELP détaillant toutes les commandes et
options utiles à la construction du modèle considéré et à sa résolution.
LINGO est une extension de LINDO et d’un autre logiciel : GINO. C’est un
environnement de modélisation et de résolution plus puissant et plus convivial que
LINDO. A part les programmes linéaires et quadratiques, il permet également de
résoudre certains programmes non linéaires.
2. Utilisation de LINDO/LINGO
Partie 1 : Formulation d’un problème
Enoncé du problème :
Carco est une compagnie qui fabrique des voitures et des camions. La contribution
de chaque voiture au profit de Carco est de 300 D ; celle d’un camion est de 400 D.
Les ressources nécessaires pour produire une voiture et un camion sont données par
le tableau suivant :
A. B. HADJ-ALOUANE 82
RECHERCHE OPERATIONNELLE 2A GI
Chaque jour, Carco peut louer au maximum 98 machines de type 1 pour un prix de
50D/machine. Actuellement, la compagnie possède 73 machines de type 2 et 260
tonnes d’acier. Le service Marketing indique qu’au moins 88 voitures et au moins 26
camions doivent être fabriqués.
Formuler le problème comme un programme linéaire.
MODEL:
TITLE CARCO;
MAX = 300 *Voitures + 400* Camions - 50* Machines1;
0.8*Voitures + Camions - Machines1 <= 0;
Machines1 <= 98;
0.6*Voitures + 0.7*Camions <= 73;
2*Voitures + 3*Camions <= 260;
Voitures >= 88;
Camions >= 26;
END
A. B. HADJ-ALOUANE 83
RECHERCHE OPERATIONNELLE 2A GI
Une fois le modèle est crée, la résolution se fait à l’aide de la commande SOLVE. Un
rapport de solution (primale, duale, coûts marginaux, variables d’écart) est
automatiquement généré. La commande RANGE permet d’effectuer une analyse de
sensibilité après la résolution (il faut tout d’abord l’activer en choisissant « prices &
ranges » du menu LINGO/options). Les résultats de la commande RANGE
comprennent les intervalles des coefficients cj ainsi que ceux des seconds membre bi
à l’intérieur desquelles la base actuelle reste optimale.
telles que :
2. Quel est le maximum que Carco doit payer pour une autre tonne d’acier ?
4. On considère l’introduction des jeeps. Le profit unitaire d’une jeep est estimé
à 600 D. La fabrication de ce véhicule nécessite 1.2 jours sur une machine de
type 1, 2 jours sur une machine de type 2 et 4 tonnes d’acier. Est-ce que
Carco a intérêt à introduire ce véhicule ?
A. B. HADJ-ALOUANE 84
RECHERCHE OPERATIONNELLE 2A GI
CHAPITRE VII
La méthode de Branch-and-Bound
7.1 Introduction
Soit le programme linéaire en nombres entiers suivant (PE) : {min cx, sc Ax = b, x ≥ 0
et x entier}. En utilisant la méthode de Simplexe pour résoudre PE, il n’y a aucune
garantie d’avoir une solution entière car la solution (B-1b, 0) peut être réelle non
entière si B-1 comprend des éléments ∉ Z et/ou b ∉ Z .
Pour remédier à cela, nous présentons, dans ce chapitre, une méthode de résolution
appropriée aux programmes linéaires en nombres entiers appelée Branch-and-Bound
(séparation et évaluation). Cette méthode consiste schématiquement à décrire
l’ensemble des solutions sous la forme d’une arborescence et à parcourir cette
arborescence sans oublier aucun nœud.
Branching (séparation)
A. B. HADJ-ALOUANE 85
RECHERCHE OPERATIONNELLE 2A GI
D31 D4
D1
D3
D32 D2
D33
Figure 7.1 : Le domaine des solutions réalisables D est divisé en 4 sous-ensembles qui sont à
leur tour divisés en des sous-ensembles plus petits.
Problème initial
D
Sous-problème 1 Sous-problème 4
Sous-problème 2 Sous-problème 3
D1 D4
D2 D3
Sous-problème 33
Sous-problème 31
D33
D31 Sous-problème 32
D32
Bounding (évaluation)
Le second principe d’une procédure de B&B est de déterminer pour chaque sous-
ensemble Di ⊂ D ainsi défini, un majorant (aussi faible que possible) de f(x) sur Di.
Ce majorant peut être considéré comme une évaluation par défaut de f(x) sur Di;
on la notera ev(Di). On a donc :
f(x) ≤ ev(Di) ∀ x ∈ Di
A. B. HADJ-ALOUANE 86
RECHERCHE OPERATIONNELLE 2A GI
Pratiquement, cela impose de savoir calculer rapidement une ″bonne″ évaluation par
défaut de f(x) sur tous les sous-ensembles Di et d’obtenir rapidement une ″bonne″
solution réalisable de f(x) sur D.
La notion d’évaluation par défaut permet donc, lorsque l’on possède déjà d’une
″bonne″ solution réalisable, de parcourir implicitement des branches entières de
l’arborescence sans en examiner chacun des nœuds. Etudions en détail ces
différents points.
f* ≤ ⎯f*
⎯f* est un majorant de f* et on appelle la différence (⎯f* - f*) : Gap de dualité, qui
peut être non nul.
A. B. HADJ-ALOUANE 87
RECHERCHE OPERATIONNELLE 2A GI
x1 ≤ 4 : sous-problème 1
x1 ≥ 5 : sous-problème 2
Max cx
(P) sc Ax ≤ b
x ≥ 0, x entier
A. B. HADJ-ALOUANE 88
RECHERCHE OPERATIONNELLE 2A GI
Définitions :
* Un nœud pour lequel on peut prouver qu’aucune solution entière avec une
meilleure valeur de la fonction objectif ne peut être obtenue, est considéré comme
inactif ou coupé et ne sera plus considéré pour d’autres séparations.
* Un nœud qui n’a pas été examiné ou qui n’a pas été coupé est dit ″pendant″ ou
encore ″dangling node″.
Soient ⎯P1S et ⎯P2S les problèmes obtenus par la relaxation linéaire des 2 sous-
problèmes créés à partir du branchement sur les variables de S ⊂{1,…,n}.
Evaluation :
a. pour chaque nouveau nœud, si l’évaluation par défaut ou encore la valeur
optimale de la fonction objectif du programme linéaire relaxé,⎯PiS, est
inférieure ou égale à z* (≤ z*), ou si le programme linéaire relaxé est non
réalisable, couper le nœud. Dans le premier cas, on ne peut pas trouver de
solutions meilleures que celle correspondant à z*.
b. pour chaque nouveau nœud, si ⎯PiS admet une solution optimale entière de
valeur strictement supérieure à z* (> z*), sauvegarder la nouvelle valeur de
la meilleure solution entière trouvée, mettre à jour z* et couper le nœud.
Aller à l’étape 3.
A. B. HADJ-ALOUANE 89
RECHERCHE OPERATIONNELLE 2A GI
Etape 3 :
a. s’il n’y aucun nœud pendant et qu’une solution entière de valeur z* a été
trouvée, cette solution est optimale. Sinon, (P) est non réalisable. Stop.
Etape 4 : Choisir le nœud pendant présentant la plus grande évaluation par défaut.
Soit S l’ensemble des variables à partir desquelles il y a eu des branchements. Aller
à l’étape 2
Exemple 1:
Max z = 3 x 1 + 4 x2
S.c. x1 + x2 ≤ 4,5
x2 ≤ 2
x1, x2 ≥ 0 et x1, x2 entiers.
z* = -∞
Tableau de Simplexe du premier problème :
x1 x2 s1 s2
s1 1 1 1 0 9/2
s2 0 1 0 1 2
Δj 3 4 0 0 0
x2 entre et s2 sort.
x1 x2 s1 s2
s1 1 0 1 -1 5/2
x2 0 1 0 1 2
Δj 3 0 0 -4 -8
x1 entre et s1 sort
x1 x2 s1 s2
x1 1 0 1 -1 5/2
x2 0 1 0 1 2
Δj 0 0 -3 -1 -31/2
A. B. HADJ-ALOUANE 90
RECHERCHE OPERATIONNELLE 2A GI
(x1, x2)
z = 15,5 pour x = (2,5 ; 2)
x1 ≤ 2 x1 ≥ 3
x1 x2 s1 s2 s3
x1 1 0 1 -1 0 5/2
x2 0 1 0 1 0 2
s3 1 0 0 0 1 2
Δj 0 0 -3 -1 0 -31/2
x1 x2 s1 s2 s3
x1 1 0 1 -1 0 5/2
x2 0 1 0 1 0 2
s3 0 0 -1 1 1 -1/2
Δj 0 0 -3 -1 0 -31/2
Ratios (Dual Simplexe) 3 ⇒ s1 entre
x1 x2 s1 s2 s3
x1 1 0 0 0 1 2
x2 0 1 0 1 0 2
s1 0 0 1 -1 -1 1/2
Δj 0 0 0 -4 -3 -14
A. B. HADJ-ALOUANE 91
RECHERCHE OPERATIONNELLE 2A GI
x2
x1+x2=4.5
x1=2 x1=3 x1=4
O C (4.5 ; 0) x1
E (0 ;2) G(3 ; 0) K (4 ; 0)
Fn Obj : 3x1+4x2=0
(0ABC)
B (2,5 ; 2)
x1 ≤ 2 x1 ≥ 3
(OADE) (GFC)
D (2 ; 2) F(3 ; 1,5)
x2 ≤ 1 x2 ≥ 2
[GH] (KJC)
G (3 ; 1) J(4 ; 0,5)
Exemple :
Max z = 2 x 1 + x2
sc 5 x1 + 2 x2 ≤ 8
x 1 + x2 ≤ 3
x1, x2 ≥ 0 et x1 entier.
z* = -∞
A. B. HADJ-ALOUANE 92
RECHERCHE OPERATIONNELLE 2A GI
(x1, x2)
z = 11/3 pour x = (2/3 ; 7/3)
x1 ≤ 0 x1 ≥ 1
z=3 z = 7/2
x1 = 0 x1 = 1
x2 = 3 x2 = 3/2
Solution Candidate
A. B. HADJ-ALOUANE 93
RECHERCHE OPERATIONNELLE 2A GI
Série N°6
Branch-and-Bound
Exercice n° 1.
Min z = 4 x 1 + 5 x2
s.c. x1 + 4 x 2 ≥ 5
3 x1 + 2 x 2 ≥ 7
x1, x2 ≥ 0
x1, x2 entiers
Exercice 2.
Utiliser B&B, avec les tableaux de Simplexe, pour résoudre le problème suivant :
Max z = 3 x 1 + x2
s.c. 5 x1 + 2 x2 ≤ 10
4 x1 + x 2 ≤ 7
x1, x2 ≥ 0
x2 entier
Exercice 3.
A. B. HADJ-ALOUANE 94
RECHERCHE OPERATIONNELLE 2A GI
REFERENCES
A. B. HADJ-ALOUANE 95