You are on page 1of 96

RECHERCHE OPERATIONNELLE

Cours et Travaux Dirigés

2ème Année Génie Industriel

Par

Prof. Atidel B. HADJ-ALOUANE

1998
(Dernière mise à jour : juillet 2009)
RECHERCHE OPERATIONNELLE 2AGI

TABLE DES MATIERES

CHAPITRE I Introduction à la Recherche Opérationnelle

1.1 Définition et origine ---------------------------------------------------------------- 3


1.2 Champs d’application -------------------------------------------------------------- 3
5
CHAPITRE II Introduction à la Programmation Linéaire

2.1 Définitions --------------------------------------------------------------------------- 5


2.2 Résolution géométrique ----------------------------------------------------------- 8
2.3 Notions de convexité et points extrêmes --------------------------------------- 9
Série d’exercices N°1 -------------------------------------------------------------- 12

CHAPITRE III La Programmation en Nombres Entiers

3.1 Introduction -------------------------------------------------------------------------- 15


3.2 Présentation des Programmes en nombres entiers ---------------------------- 16
3.3 Formulations standards ------------------------------------------------------------ 17
3.4 Problèmes à coûts fixes ------------------------------------------------------------ 20
3.5 Le problème de recouvrement ---------------------------------------------------- 23
3.6 Formulation des relations logiques ----------------------------------------------- 27
Série d’exercices N°2 -------------------------------------------------------------- 28

CHAPITRE IV La Méthode de Simplexe

4.1 Introduction -------------------------------------------------------------------------- 31


4.2 Analyse algébrique et géométrique ---------------------------------------------- 31
4.3 Méthode de Simplexe (Primal-Simplexe) --------------------------------------- 36
4.4 Méthode de Simplexe à deux phases --------------------------------------------- 46
4.5 Méthode de Big-M ------------------------------------------------------------------- 48
Série d’exercices N°3 -------------------------------------------------------------- 53

CHAPITRE V Dualité

4.1 Introduction -------------------------------------------------------------------------- 55


5.2 Interprétation économique de la dualité --------------------------------------- 55
5.3 Détermination du dual d’un programme linéaire ------------------------------ 59
5.4 Dualité et conditions d’optimalité ----------------------------------------------- 60
5.5 Méthode Dual-Simplexe ------------------------------------------------------------- 62
5.6 Solution du dual à partir du primal ---------------------------------------------- 66
Série d’exercices N°4 -------------------------------------------------------------- 67

CHAPITRE VI Analyse de Sensibilité dans la Programmation Linéaire

6.1 Introduction -------------------------------------------------------------------------- 69


6.2 Variation des coefficients de la fonction objectif ----------------------------- 69

A. B. HADJ-ALOUANE 1
RECHERCHE OPERATIONNELLE 2AGI

6.3 Variations du second membre d’une contrainte ------------------------------- 72


6.4 Variations des coefficients technologiques ------------------------------------- 73
6.5 Introduction d’une nouvelle activité -------------------------------------------- 75
6.6 Introduction d’une nouvelle contrainte ----------------------------------------- 76
6.7 Théorème des écarts complémentaires ------------------------------------------ 77
Série d’exercices N°5 -------------------------------------------------------------- 80
Travaux pratiques (LINDO/LINGO) ----------------------------------------------- 82

CHAPITRE VII La Méthode de Branch-and-Bound

7.1 Introduction -------------------------------------------------------------------------- 85


7.2 Les principes de Branch-and-Bound ---------------------------------------------- 85
7.3 Branch-and-Bound basé sur la relaxation linéaire ----------------------------- 88
Série d’exercices N°6 -------------------------------------------------------------- 94

REFERENCES BIBLIOGRAPHIQUES

A. B. HADJ-ALOUANE 2
RECHERCHE OPERATIONNELLE 2AGI

CHAPITRE I

Introduction à la Recherche Opérationnelle

1.1 Définition et origine


Qu’est-ce que c’est que la Recherche Opérationnelle (RO) ?
Quel est l’origine du terme RO ?
Durant la 2ème guerre mondiale, les chefs de l’armée britannique ont demandé aux
scientifiques et ingénieurs d’analyser une variété de problèmes militaires :
• Le déploiement de radar
• Le management de
ƒ bombardement
ƒ anti sous-marins
ƒ opérations de miniers

L’application des mathématiques et des méthodes scientifiques aux opérations


militaires était connue comme RO. Aujourd’hui, le terme RO (souvent appelé
Science de Management) signifie une approche scientifique à la prise des décisions,
qui cherche à déterminer comment concevoir et faire fonctionner un système d’une
façon optimale, sous des conditions nécessitant l’allocation de ressources limitées.

Parmi les techniques de la RO on distingue :


• La programmation mathématique
ƒ programmation linéaire
ƒ programmation quadratique
ƒ programmation en nombres entiers
ƒ programmation dynamique
• Analyses de réseaux et graphes
• Théories des files d’attentes
• Simulation
• Analyse statistique

1.2 Champs d'application


Le champ d’application de la RO n’est pas limité aux opérations militaires ou autres.
La RO avait été appliquée considérablement dans plusieurs domaines tels que :
• affaires (business)
• industries
• gouvernement
• agences
• hôpitaux
• institutions d’éducation…

A. B. HADJ-ALOUANE 3
RECHERCHE OPERATIONNELLE 2AGI

(1)
Identification du problème

(2)
Collecte de données

(3)
Modélisation (formulation
mathématique

(4) (5) (6)


Vérification du Recherche de Présentation du
modèle solution(s) optimale(s) résultat

(8)
Implémentation et
recommandations

Figure 1.1 Méthodologie de la Recherche Opérationnelle

A. B. HADJ-ALOUANE 4
RECHERCHE OPERATIONNELLE 2AGI

CHAPITRE II

Introduction à la Programmation Linéaire

2.1 Définitions

Programmation mathématique : c’est une technique de la RO concernée par les


problèmes d’allocation optimale des ressources limitées aux diverses activités d’une
organisation. Elle met en jeu :
• un objectif (fonction objectif),
• des variables, et
• des contraintes.

Rq : ici, le terme “ programmation ” ne veut pas dire programmation informatique ;


c’est utilisé comme un synonyme du mot “ planning ”

On distingue deux étapes essentielles dans la PM :


1. Formulation ou modélisation
2. Résolution

Programmation linéaire : c’est une branche de la PM où toutes les fonctions du


modèle mathématique sont linéaires.

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 :

Prix de vente Matière première Coût Menuiserie Finition


Soldat 27 D 10 D 14 D 1h 2h
Train 21 D 9D 10D 1h 1h

Chaque semaine, la compagnie peut obtenir toute la matière première nécessaire ;


cependant, seulement 80 hrs de menuiserie et 100 hrs de finition peuvent être
investies. La demande pour les trains est non limitée ; mais au plus 40 soldats sont
vendus chaque semaine. La compagnie désire maximiser son profit (revenus-coûts)

A. B. HADJ-ALOUANE 5
RECHERCHE OPERATIONNELLE 2AGI

hebdomadaire. On veut formuler un modèle mathématique de la situation de la


compagnie, qui peut être utilisé pour maximiser le profit hebdomadaire.
En développant le modèle, on va explorer les caractéristiques communes à tous les
programmes linéaires (PL) :

Variables de décisions : dans un PL, les variables de décisions doivent


complètement décrire les décisions à prendre. Evidemment, la compagnie doit
déterminer le nombre de soldats et de trains à fabriquer par semaine. On définit
alors :
x1 = nombre de soldats fabriqués par semaine,
x2 = // trains // //

Fonction objectif : dans n’importe quel programme linéaire, le responsable de


décision veut maximiser (en général, le revenue ou profit) ou minimiser (en général
le coût) une fonction des variables de décisions. Cette fonction est appelée
“ fonction objectif ”.

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)

Contribution au profit/soldat = 27-10-14 = 3 D


Contribution au profit/train = 21-9-10 = 2 D

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

Max z(x) = 3x1 + 2x2

Contraintes : Si la compagnie est libre de choisir n’importe quelles valeurs pour x1


et x2, elle peut avoir un très large profit en choisissant des grandes valeurs de x1 et
x2. Malheureusement, ces valeurs sont limitées par les contraintes suivantes :

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)

coefficients technologiques second membre (RHS)

Contrainte 4 dû à la limitation de la demande, au plus 40 soldats doivent être


produits par semaine :
x1 ≤ 40 (3)
Restriction de signe : Pour compléter la formulation d’un PL, on doit répondre à la
question suivante : Est-ce que les variables de décision peuvent prendre seulement
des valeurs non-négatives (≥ 0), ou est-ce qu’elles n’ont pas de restriction de signe ?
Dans le cas de cet exemple, il est clair que x1 et x2 ≥ 0.
Dans d’autres cas, par exemple, les variables de décision représentent le bilan de la
compagnie ; une variable peut être négative si la compagnie doit plus d’argent
qu’elle en possède. Dans ce cas, il n’y a pas de restriction de signe sur la variable.
En combinant la fonction objectif avec les contraintes (1), (2) et (3) et les
restrictions de signe, on obtient le modèle d’optimisation ou le programme linéaire

⎧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

Domaine réalisable et solutions optimales : Ce sont deux concepts fondamentaux


associés avec un PL. Pour les définir, on va utiliser le terme point (x1,x2), qui désigne
une spécification de la valeur de chaque variable de décision.
Le domaine réalisable (DR) est l’ensemble de tous les points satisfaisant toutes les
contraintes du PL. Dans notre exemple, le point (40,20) appartient au DR. Ce point
est dit réalisable. Par contre le point (15,70) n’y appartient pas, parce qu’il ne
satisfait pas la contrainte (1) : Ce point est dit non réalisable.
Pour un problème de maximisation (min), une solution optimale est un point du DR
qui donne la valeur la plus large de la fonction objective.

2.2 Résolution géométrique de PL1


x2

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

Dessiner la ligne d’isoprofit 3x1+2x2 = Cte en choisissant un point du DR et en


⎛ 3⎞
calculant sa valeur. Ici, on remarque que ⎜⎜ ⎟⎟ ⊥ line d’isoprofit.
⎝ 2⎠
Déplacer la ligne d’isoprofit dans la direction qui augmente la valeur de z (pour un
pb de maximisation). La dernière ligne qui touche le DR définit la plus large valeur

A. B. HADJ-ALOUANE 8
RECHERCHE OPERATIONNELLE 2AGI

de toutes les solutions réalisables, et contient la solution optimale (représentée,


dans cet exemple, par le point M).

2.3 Notions de convexité et points extrêmes

Définition : Un ensemble de points S ∈ℜn dans le plan de dimension n est dit


convexe si le segment, joignant n’importe quelle paire de points dans S, est
entièrement contenu dans S.
Mathématiquement :
S est convexe ⇔ ∀ y ∈ S, ∀ z ∈ S, ∀ λ ∈ [0,1], on a {λ y + (1-λ) z} ∈ S

Convexes

Polytopes

Polyèdres
(nbre fini d’arêtes)

Non convexes

Définition: ∀ S, un ensemble convexe, un point P dans S est appelé point extrême si


chaque segment de droite entièrement contenu dans S et contenant le point P, a P
comme une extrémité. Mathématiquement,

Soit S un ensemble convexe. x ∈ S est un point extrême


c
[∃ y ∈ S, z ∈ S et 0 < λ < 1 tels que x = λ y + (1-λ)z ] ⇒ x = y = z

Ex: chaque point sur la circonférence d’un disque est un point extrême.

A. B. HADJ-ALOUANE 9
RECHERCHE OPERATIONNELLE 2AGI

Sur le rectangle, E n’est pas un point extrême.

Caractéristique d’un PL: le DR d’un PL est ou bien vide ou un polyèdre


(c-à-d convexe).
Théorème: Pour un PL donné, si un optimum existe, au moins un point extrême est
optimal.
Corollaire: Si PL admet un optimum unique, alors cet optimum doit être un point
extrême.

Les démonstrations de ces résultats ne sont pas le sujet de ce cours.

Cas particuliers de PL:

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

Si la fonction objectif est min z = x1 + 2x2 ⇒ (18/5, 7/5) est optimal.

A. B. HADJ-ALOUANE 10
RECHERCHE OPERATIONNELLE 2AGI

PL à une infinité de solutions optimales


x2
⎧max z = 3 x1 + 2 x 2
⎪ s.c. 3 x1 + 2 x2 ≤ 120

⎨ x1 + x2 ≤ 50
⎪ x1 ≥ 0 , x2 ≥ 0


A

60

x1
10 B

x1+x2 = 50

Tous les points appartenant à [A,B] sont optimaux. 3x1+2x2 = 120

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

Série d’exercices N°1

Formulation de problèmes sous forme de programmes linéaires


&
Résolution graphique

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 :

Type de machine Temps disponible


(heures machine/semaine)
Machine de coupe 500
Tour 350
Fraiseuse 150

Le nombre d'heures machine nécessaire pour la fabrication d'une unité de chaque


type de produit est donné dans le tableau suivant :

Produit 1 Produit 2 Produit 3


Type de machine
Machine de coupe 9 3 5
Tour 5 4 0
Fraiseuse 3 0 2

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.

Formuler un Programme Linéaire pour déterminer les quantités à produire de chaque


type de produit afin de maximiser le profit de l'entreprise.

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.

L’entreprise veut déterminer le plan de production et de stockage pour les n mois à


venir de façon à minimiser le coût total de production et de stockage tout en
répondant aux besoins des clients.

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 :

Nombre d’unités nécessaires pour Nombre d’unités


produire une unité de disponibles
Ressources A B
R1 1 2 6000
R2 2 1 8000
Profit unitaire 7 5
Demande maximale 3500 2500

1. Formuler le problème de détermination des quantités à produire de A et de B


sous forme d’un PL.
2. Résoudre ce problème géométriquement.
3. Calculer l’augmentation du profit total qui résulte d’une unité supplémentaire de
R1.
4. Quelle serait l’augmentation du profit si on augmente R2 d’une unité.

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.

Formuler ce problème sous forme d’un programme linéaire.

A. B. HADJ-ALOUANE 14
RECHERCHE OPERATIONNELLE 2AGI

CHAPITRE III
Introduction à la Programmation en Nombres Entiers

3.1 Introduction

La programmation linéaire permet de modéliser de nombreux problèmes réels en


exprimant leur fonction objectif et leurs contraintes sous forme de fonctions
linéaires des variables de décision. Cependant, la programmation linéaire impose un
certain nombre de restrictions réduisant ainsi ses champs d’application. Ces
restrictions sont :
- la proportionnalité : les termes mesurant les coûts et les quantités de
ressources utilisées doivent être proportionnes au niveau de chaque activité.
- L’additivité : les coûts et les ressources engagés par l’utilisation conjointe de
deux activités doivent être égaux aux termes correspondants des activités
utilisées séparément.
- La continuité ou encore la divisibilité : les variables utilisées doivent être
continues et non restreintes à des valeurs entières.
- Le problème déterministe : tous les coefficients du modèle doivent être des
constantes connues et non des variables sujettes à variations.

Ainsi, la programmation linéaire ne permet pas de traiter des problèmes où les


variables de décision représentent des entités indivisibles telles que les individus, la
production des avions, la réalisation de projets, … à cause de la restriction sur la
continuité des variables. Il faut donc considérer une nouvelle classe de programmes
linéaires susceptibles d’intégrer de telles contraintes : ce sont les programmes
linéaires en nombres entiers (IP).

Applications : industrielles, économiques, financières :


- Distribution et Transport,
- Choix d’investissements,
- Gestion de portefeuilles en bourse,
- Localisation d’unités de production et de stockage,
- Problème de stockage,
- Affectation de personnel à des tâches,
- Affectation de machines,
- Ordonnancement des ateliers.

A. B. HADJ-ALOUANE 15
RECHERCHE OPERATIONNELLE 2AGI

3.2 Présentation des Programmes Linéaires en Nombres Entiers

Définitions :

♦ Un programme linéaire où toutes les variables de décision doivent être entières


est appelé Programme Linéaire en Nombres Entiers ou Pure Integer Program.

De façon générale, un programme linéaire en nombres entiers (IP : Integer Program)


s’écrit :

(IP) : Min cx
sc : Ax = b (1)
x≥0 (2)
x entier (3)

où A est une matrice (m x n) avec m ≤ n,


et b est un vecteur (m).

Exemple :
Max z = 3 x1 + 2 x 2
Sc x1 + x2 ≤ 6
x1, x2 ≥ 0
x1, x2 entiers

♦ Un programme linéaire où seulement quelques variables de décision doivent être


entières est appelé Programme Linéaire Mixte ou Mixed Integer Program.

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 = (x1, x2)t et x1 entier

♦ Un programme linéaire où toutes les variables de décision doivent être binaires


(=0 ou 1) est appelé Programme Linéaire Binaire ou 0-1 Integer Program.

Comme exemple, un programme linéaire binaire (BP : Binary 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

3.3. Formulations Standards


On considère le problème de choix d’investissements où 4 projets ont été
présélectionnés pour être réalisés. Les investissements nécessaires et les bénéfices
espérés pour chaque projet sont donnés par le tableau suivant (l’unité est le million
de dinars) :

Investissements Bénéfices
Projet 1 5 16
Projet 2 7 22
Projet 3 4 12
Projet 4 3 8

Tableau 2.1 : Investissements et Bénéfices de chaque projet

Actuellement, 14 millions de dinars sont disponibles pour ces investissements.


Le problème consiste à déterminer, parmi ces 4 projets retenus, ceux qui seront
effectivement réalisés de façon à maximiser les bénéfices espérés.

1. Les variables de décision


On définit une variable 0-1 pour chaque décision à prendre :
xi (i = 1, 2, 3, 4) = 1 si le projet i sera réalisé
= 0 sinon.
Par exemple, x2 = 1 si le projet 2 sera réalisé, et x2 = 0 si le projet 2 ne sera pas
réalisé.

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

On peut voir que si x1 = 1, la fonction objectif z comprendra le bénéfice


correspondant au projet 1 et que si x1 = 0, z ne comprendra pas le bénéfice du
projet 1.
Quelle que soit la décision prise, la fonction objectif z n’intégrera que les bénéfices
des projets retenus.
Si on décide d’investir dans les projets 1 et 4 par exemple, z sera égale à 16 + 8 = 24
MD.

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

Si on décide de retenir les projets 1, 3 et 4 (x2 = 0 et x1 = x3 = x4 = 1), on doit


investir 5 + 4 + 3 = 12 MD.

4. Programme linéaire binaire

(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

Tableau 2.2 : Rentabilité par projet

On peut se demander pourquoi la solution optimale ne comprend pas le projet le


plus rentable ?

On peut remarquer que la combinaison du projet 1 avec tout autre projet ne


nécessite pas plus que 12 MD d’investissements, ce qui veut dire qu’on ne va
exploiter notre budget au maximum et qu’il va nous rester 2 M non investis. (projets
1 et 2 ou projets 1, 3 et 4)
Par contre, le choix des projets 2, 3 et 4 permet d’utiliser la totalité du budget,
permettant ainsi d’augmenter les bénéfices espérés.

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.

♦ Modifier la formulation (IP.1) de façon à tenir compte des contraintes suivantes :


a. On peut investir dans au plus 2 projets.
b. Si on investit dans le projet 2, on doit aussi investir dans le projet 1.
c. Si on investit dans le projet 2, on ne peut plus investir dans le projet 4 : ça
revient à dire que l’on doit investir dans au plus l’un des deux projets 2 et 4.

a. On rajoute simplement la contrainte suivante à la formulation initiale :


x1 + x2 + x3 + x4 ≤ 2
Cette contrainte interdit le choix de plus que 2 projets puisque x1 + x2 + x3 + x4 ≥ 3
pour toute combinaison de 3 ou 4 projets.

b. La contrainte doit traduire le fait que si x2 = 1 alors x1 = 1. Ce qui s’écrit comme


suit :
x2 ≤ x1 ou encore x2 – x1 ≤ 0
L’analyse de cette contrainte montre que
- si x2 = 1, la contrainte devient 1 ≤ x1
Comme x1 = 0 ou 1, ceci implique que x1 = 1
- si x2 = 0, la contrainte devient 0 ≤ x1
Ce qui est n’implique aucune restriction supplémentaire sur la valeur de x1.

A. B. HADJ-ALOUANE 19
RECHERCHE OPERATIONNELLE 2AGI

c. La contrainte doit traduire le fait que si x2 = 1 alors x4 = 0. Ce qui s’écrit comme


suit :
x2 + x4 ≤ 1
L’analyse de cette contrainte montre que
- si x2 = 1, la contrainte devient 1 + x4 ≤ 1 ou encore x4 ≤ 0
Comme x4 = 0 ou 1, ceci implique que x4 = 0
- si x2 = 0, la contrainte devient x4 ≤ 1
Ce qui est n’implique aucune restriction supplémentaire sur la valeur de x4.

Si on investit dans le projet 4 : x4 = 1, la contrainte devient 1 + x2 ≤ 1 ou encore


x2 = 0 ; ce qui est logique du moment que, dans le cas inverse, on retombe dans le
cas où x2 = 1.

3.4. Formulation des Problèmes à Coût Fixe

La société TexMed peut produire 3 types de vêtements : Tee-shirts, Shorts et


Pantalons. La production de chaque type de vêtement nécessite des machines
spécifiques que la société TexMed doit louer aux tarifs présentés dans le tableau
2.3 (en dinars par semaine).

Tableau 2.3 : Ressources requises


Location Nbre d’heures Tissus
(D/semaine) de travail (pi)
Tee-shirts 200 3 4
Shorts 150 2 3
Pantalons 100 6 4

De plus, la production de chaque type de vêtement nécessite une certaine quantité


de tissus (matière première) et un certain nombre d’heures de travail pour chaque
unité à produire (voir tableau 2.3). Chaque semaine la société TexMed dispose de
150 heures de travail et de 160 mètres de tissus.
Le coût unitaire et le prix de vente unitaire de chaque type de vêtement sont
donnés en dinars dans le tableau 2.4

A. B. HADJ-ALOUANE 20
RECHERCHE OPERATIONNELLE 2AGI

Tableau 2.4 : Coûts et Prix de vente


Coûts Prix de vente
Tee-shirts 6 12
Shorts 4 8
Pantalons 8 15

Le problème consiste à déterminer le nombre de pièces à produire chaque semaine,


par type de vêtement, de façon à maximiser le profit hebdomadaire de la société
TexMed.

(1) Les variables de décision


On définit une variable entière pour chaque décision à prendre. La société TexMed
doit décider du nombre de pièces à produire chaque semaine, par type de vêtement.
On définit donc les variables de décision suivantes :

x1 : le nombre de tee-shirts à produire chaque semaine,


x2 : le nombre de shorts à produire chaque semaine,
x3 : le nombre de pantalons à produire chaque semaine.

On remarque que le coût relatif à la location des machines de production dépend


uniquement du type de vêtement à produire, et pas du nombre de pièces à produire
pour chaque type de vêtement. On doit donc introduire d’autres variables de
décision exprimant le fait qu’on produise ou pas de chaque type de vêtement :
y1 =1 si on produit un ou plusieurs tee-shirts,
=0 sinon,
y2 =1 si on produit un ou plusieurs shorts,
=0 sinon,
y3 =1 si on produit un ou plusieurs pantalons,
=0 sinon.

Ainsi, si xi > 0 alors yi = 1 et si xi = 0 alors yi = 0.

(2) La fonction Objectif


Il s’agit de maximiser le profit hebdomadaire de TexMed qui s’écrit :
(Profit hebdomadaire) = (chiffre d’affaire hebdomadaire) – (coûts hebdomadaires)
– (coût relatif à la location hebdomadaire des machines)

(chiffre d’affaire hebdomadaire) = 12 x1 + 8 x2 + 15 x3


(coûts hebdomadaires) = 6 x 1 + 4 x 2 + 8 x3
(coût relatif à la location hebdomadaire des machines) = 200 y1 + 150 y2 + 100 y3

A. B. HADJ-ALOUANE 21
RECHERCHE OPERATIONNELLE 2AGI

Il faut donc maximiser


z = 6 x1 + 4 x2 + 7 x3 - 200 y1 - 150 y2 - 100 y3

(3) Les contraintes :


La société TexMed se trouve face à deux contraintes :
- Contrainte 1 : Au plus 150 heures de travail sont disponibles par semaine,
- Contrainte 2 : Au plus 160 mètres de tissus sont disponibles par semaine.

Contrainte 1 s’écrit : 3 x1 + 2 x2 + 6 x3 ≤ 150


Contrainte 2 s’écrit : 4x1 + 3x2 + 4 x3 ≤ 160

(4) Programme linéaire en nombres entiers :

(IP.2) Max z = 6 x1 + 4 x2 + 7 x3 - 200 y1 - 150 y2 - 100 y3


SC 3 x1 + 2 x2 + 6 x3 ≤ 150
4 x1 + 3 x2 + 4 x3 ≤ 160
x1, x2, x3 ≥ 0 ; x1, x2, x3 entiers
y1, y2, y3 = 0 ou 1

Une solution optimale de ce programme linéaire en nombres entiers est : x1 = 30,


x3 = 10, x2 = y1 = y2 = y3 = 0. Or ceci ne peut pas être une solution optimale pour le
problème de TexMed car elle indique que la société doit produire des tee-shirts et
des pantalons sans pour autant tenir compte des coûts de location des machines
correspondantes. La formulation (IP.2) n’est donc pas correcte parce que les
variables y1, y2 et y3 n’apparaissent pas dans les contraintes. Ce qui veut dire qu’il
n’y a rien qui nous empêche de prendre y1 = y2 = y3 = 0. Du moment que le fait de
prendre yi = 0 est moins coûteux que yi = 1, toute solution de (IP.2) de coût minimal
mettra yi = 0.
On doit donc rajouter des contraintes qui assurent une valeur yi = 1 pour toute
valeur strictement positive de xi.
x1 ≤ M1 y1
x2 ≤ M2 y2
x3 ≤ M3 y3
avec M1, M2 et M3 trois nombres de valeurs élevées.

Avec ces contraintes,

A. B. HADJ-ALOUANE 22
RECHERCHE OPERATIONNELLE 2AGI

- si xi > 0 alors 0 < Mi yi . Et puisque yi = 0 ou 1, alors yi = 1 forcément.


Ces contraintes deviennent xi ≤ Mi. Ce qui ne doit pas restreindre la valeur de xi.
Mi doit être fixé à la valeur maximale que peut atteindre xi. Pour x1 par exemple, la
valeur maximale est de 40 tee-shirts à cause de la contrainte sur le tissu disponible.
On peut donc prendre M1 = 40. De même, on peut fixer M2 à 53 et M3 à 25.

- si xi = 0 alors 0 ≤ Mi yi . Ce qui permet à yi de prendre la valeur 0 ou 1 sans


aucune restriction. Et puisque yi = 0 est moins coûteux que yi = 1, la solution
optimale choisira de prendre yi = 0 si xi = 0.

Une solution optimale du problème de TexMed est : x3 = 25, y3 = 1, x1 = x2 = y1 =


y2 = 0 et z = 75 dinars. TexMed doit donc produire 25 pantalons par semaine.

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.

3.5 Formulation des Problèmes de Recouvrement


L’exemple suivant appartient à une importante classe des programmes en nombres
entiers connue sous le nom de problèmes de recouvrement ou set-covering
problems.

Un pays cherche à équiper 6 de ses villes de stations de pompiers. Il doit déterminer


où les construire de façon à ce que chaque ville puisse être desservie par au moins
une station, en moins de 15 minutes (temps de conduite). Le temps (en minutes)
nécessaire pour aller d’une ville à une autre est donné par le tableau 2.5.
Tableau 2.5 : Temps nécessaire pour aller d’une ville à une autre

De / vers Ville 1 Ville 2 Ville 3 Ville 4 Ville 5 Ville 6


Ville 1 0 10 20 30 30 20
Ville 2 10 0 25 35 20 10
Ville 3 20 25 0 15 30 20
Ville 4 30 35 15 0 15 25
Ville 5 30 20 30 15 0 14
Ville 6 20 10 20 25 14 0

A. B. HADJ-ALOUANE 23
RECHERCHE OPERATIONNELLE 2AGI

Le problème consiste à déterminer combien de stations de pompiers faut-il


construire et où faut-il les construire.

(1) Les variables de décision


Pour chaque ville, le pays doit décider s’il faut construire une station de pompier ou
pas. On définit donc une variable 0-1 pour chaque ville :

xi (i = 1, 2, 3, 4, 5, 6) = 1 si une station de pompier sera construite à la


ville i,
= 0 sinon.

(2) La fonction Objectif


Il s’agit de minimiser le nombre de stations de pompier à construire :
z = x1 + x2 + x3 + x4 + x5 + x6

(3) Les contraintes


Le pays doit s’assurer que chaque ville pourra être servie par au moins une station
de pompier, en moins de 15 minutes (temps de conduite). Pour chaque ville, le
tableau 2.6 indique les villes qui lui sont à moins de 15 minutes de conduite.
Pour la ville 1 par exemple, les villes avoisinantes qui peuvent la desservir en moins
de 15 minutes sont les villes 1 et 2. La contrainte correspondante s’écrit alors :
x1 + x2 ≥ 1

Cette contrainte interdit aux variables x1 et x2 de prendre des valeurs nulles


simultanément. Ainsi, au moins une station de pompier sera construite à une ville à
moins de 15 minutes de la ville 1.
Tableau 2.6
Ville 1 1; 2
Ville 2 1; 2; 6
Ville 3 3; 4
Ville 4 3; 4; 5
Ville 5 4; 5; 6
Ville 6 2; 5; 6

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

(4) Programme linéaire binaire

(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

Une solution optimale de ce problème est : x2 = x4 = 1, x1 = x3 = x5 = x6 = 0, z = 2. Il


faut donc construire 2 stations de pompier, une à la ville 2 et une autre à la ville 4.

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.

Cette classe de problèmes de recouvrement trouve son application dans divers


domaines comme l’affectation des équipages dans les compagnies aériennes.

3.6 Formulation des relations logiques

3.6.1 Les contraintes ″l’une ou l’autre″

Considérons un problème où deux contraintes sont du type :


f(x1, x2, …., xn) ≤ 0
g(x1, x2, …., xn) ≤ 0

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.

Pour cela, on rajoute les 2 contraintes suivantes à la formulation initiale :


f(x1, x2, …., xn) ≤ M y
g(x1, x2, …., xn) ≤ M (1 – y)

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.

Pour y = 0, les contraintes deviennent : f ≤ 0 et g ≤ M et ainsi la contrainte sur la


fonction f doit être vérifiée mais il n’y a pas de restriction sur la fonction g dont la
contrainte correspondante peut être vérifiée comme elle peut ne pas l’être.

Pour y = 1, les contraintes deviennent : f ≤ M et g ≤ 0 et ainsi la contrainte sur la


fonction g doit être vérifiée mais il n’y a pas de restriction sur la fonction f dont la
contrainte correspondante peut être vérifiée comme elle peut ne pas l’être.

3.6.2 Les contraintes ″si-alors″

Dans plusieurs applications, la situation suivante est rencontrée : On veut s’assurer


que :
si la contrainte f(x1, x2, …., xn) > 0 est vérifiée alors la contrainte g(x1, x2, …., xn)
≥ 0 doit être aussi vérifiée,
sinon la contrainte g(x1, x2, …., xn) ≥ 0 peut être vérifiée comme elle peut ne pas
l’être.
Ce type de contraintes est appelé contraintes si-alors ou bien if-then constraints.

Pour cela, on rajoute les 2 contraintes suivantes à la formulation initiale :


- g(x1, x2, …., xn) ≤ M y
f(x1, x2, …., xn) ≤ M (1 – y)
y = 0 ou 1.

A. B. HADJ-ALOUANE 26
RECHERCHE OPERATIONNELLE 2AGI

Comme d’habitude M est un nombre suffisamment grand pour que f ≤ M et -g ≤ M


soient respectées pour toutes les valeurs de x1, x2, …., xn qui vérifient l’ensemble
des autres contraintes.

Si f > 0 alors les contraintes ne peuvent être respectées que si y = 0,


Ce qui implique que -g ≤ 0 ou g ≥ 0 ; ce que nous désirons obtenir.
Si f > 0 n’est pas vérifiée alors y = 0 ou 1. En choisissant y = 1, -g ≤ M est
automatiquement respectée. Dans ce cas il n’y a aucune contrainte sur les variables
x1, x2, …., xn et g < 0 ou g ≥ 0 sont toutes les deux possibles.

A. B. HADJ-ALOUANE 27
RECHERCHE OPERATIONNELLE 2AGI

Série d’exercices N°2

Formulation de problèmes sous forme de programmes linéaires en


nombres entiers

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.

Une fois un immeuble achevé, il rapporte, suite à sa location le montant


indiqué dans le tableau 2.

Tableau 2 : Données relatives aux 3 immeubles


Durée Nombre Bénéfices annuels
(années) d’ouvriers (DT)
requis
Immeuble 1 2 30 50.000
Immeuble 2 2 20 30.000
Immeuble 3 3 20 40.000

L’entreprise doit prendre en considération toutes les contraintes suivantes :


- Les trois immeubles doivent être construits et complètement achevés au plus
tard à la fin de l’année 4,
- Durant chaque année, 60 ouvriers sont disponibles,
- Au début de chaque année, au plus un immeuble peut être commencé.

Formuler le programme linéaire en nombres entiers qui permettra à l’entreprise de


maximiser la somme totale des loyers encaissés durant les quatre prochaines années.

Exercice n°2

British Gaz produit 2 types d’essence (essence 1 et essence 2) à partir de 2 types de


pétrole (pétrole 1 et pétrole 2). Chaque gallon (= 4,546 litres) de l’essence 1 doit
contenir au moins 50% du pétrole 1, et chaque gallon de l’essence 2 doit contenir au
moins 60% du pétrole 1. Chaque gallon de l’essence 1 engendre un bénéfice unitaire

A. B. HADJ-ALOUANE 28
RECHERCHE OPERATIONNELLE 2AGI

de 12 pounds et chaque gallon de l’essence 2 engendre un bénéfice unitaire de 14


pounds. En ce moment, British Gaz dispose de 500 gallons du pétrole 1 et de 1000
gallons du pétrole 2. 1500 autres gallons du pétrole 1 peuvent être achetés aux
tarifs suivants : les premiers 500 gallons, 25 pounds/gallon, les 500 gallons suivants,
20 pounds/gallon, les 500 gallons suivants, 15 pounds/gallon.
Formuler le programme linéaire en nombres entiers qui permet de maximiser le
profit de British Gaz.

Exercice n°3

J.C. Dupont reçoit des payements par cartes de crédit de 4 régions


différentes. Les valeurs moyennes quotidiennes des payements envoyés par les
clients de chacune de ces régions sont : pour la région 1 : 70.000 Euros, pour la
région 2 : 50.000 Euros, pour la région 3 : 60.000 Euros et pour la région 4 : 40.000
Euros. Dupont doit décider où les clients doivent envoyer leurs payements. Vu que
Dupont peut percevoir 20% d’intérêts annuels en investissant ces revenus, il veut
recevoir ces payements le plus rapidement possible. Dupont considère l’ouverture
de comptes bloqués en 4 villes différentes. Le nombre moyen de jours (depuis
l’envoi du payement) pour que Dupont puisse toucher l’argent dépend de la ville à
laquelle le payement a été envoyé (voit tableau 1). Par exemple, si un chèque est
envoyé de la région 1 à la ville 4, il faut compter, en moyenne, 8 jours pour que
Dupont puisse commencer à bénéficier d’intérêts sur ce chèque. Le coût annuel de
gestion d’un compte bloqué est de 50.000 Euros, quelle que soit la ville.

1. Formuler le programme linéaire en nombres entiers de façon à minimiser la


somme des coûts dus à la perte d’intérêts et des coûts d’ouverture de comptes. On
supposera que chaque région doit envoyer tout son argent à un seul compte, à une
seule ville et qu’il n’y a pas de limites sur les sommes d’argents à épargner.

Tableau 1 : Le nombre moyen de jours depuis l’envoi d’un payement jusqu’à sa


réception
A
De Ville 1 Ville 2 Ville 3 Ville 4
Région 1 2 6 8 8
Région 2 6 2 5 5
Région 3 8 5 2 5
Région 4 8 5 5 2

A. B. HADJ-ALOUANE 29
RECHERCHE OPERATIONNELLE 2AGI

2. Supposons que si les clients de la région 1 envoient leurs payements à la ville 1,


aucun autre client ne pourra envoyer ses payements à la ville 1. Donner la nouvelle
formulation du problème en tenant compte de cette nouvelle contrainte.

Exercice n°4

Formuler le problème suivant :


Max z = 3 x1 + 2 f(x2) + 2 x3 + 3 g(x4)
Sc
2 x1 - x2 + x3 + 3 x4 ≤ 15
Au moins l’une des deux contraintes suivantes doit être vérifiée :
x1 + x2 + x3 + x4 ≤ 4
3 x1 - x2 - x3 + x4 ≤ 3
Au moins trois des quatre contraintes suivantes doit être vérifiée :
5 x1 + 3 x2 + 3 x3 - x4 ≤ 10
2 x1 + 5 x2 - x3 + 3 x4 ≤ 10
- x1 + 3 x2 + 5 x3 + 3 x4 ≤ 10
3 x1 - x2 + 3 x3 + 5 x4 ≤ 10
x3 = 1 ou 2 ou 3
xj ≥ 0, j = 1, 2, 3, 4

f(x2) = - 5 + 3 x2 si x2 > 0 et f(x2) = 0 si x2 = 0
et g(x4) = - 3 + 5 x4 si x4 > 0 et g(x4) = 0 si x4 = 0

A. B. HADJ-ALOUANE 30
RECHERCHE OPERATIONNELLE 2AGI

CHAPITRE IV
La Méthode de Simplexe
4.1 Introduction

On a vu jusqu’à maintenant comment résoudre un PL à deux variables,


graphiquement. Malheureusement, la majorité des problèmes réels ont plusieurs
variables. On a besoin d’une méthode algébrique pour résoudre des PLs à plus que 2
variables.
La méthode de Simplexe est l’une des méthodes les plus anciennes (Dantzig, 1947),
et la plus utilisée jusqu’à nos jours, pour résoudre même des problèmes de grandes
tailles.

Ex: applications industrielles milliers de variables


milliers de contraintes.
Puisqu’on sait que l’optimum, s’il existe, est un sommet, on se déplace d’un
sommet à un autre, de telle façon que le nouveau sommet soit au moins aussi bon
que le précédent, jusqu’à ce qu’il n’y ait plus d’amélioration.

4.2 Analyse algébrique et géométrique


4.2.1 Forme standard d’un PL

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.

Ex: max z = 4x1 + 3x2


s.c. x1 + x2 ≤ 40
2x1 + x2 ≥ 60
x1, x2 ≥ 0

Pour convertir la ième contrainte ≤ en une contrainte d’égalité, on définit la variable


d’écart, si (slack variables) qui représente la quantité de ressource non utilisée dans
cette contrainte.
s1 = 40 - x1 - x2 ⇒ x1 + x2 + s1 = 40

A. B. HADJ-ALOUANE 31
RECHERCHE OPERATIONNELLE 2AGI

On doit ajouter s1 ≥ 0 pour que (x1 , x2) satisfasse x1 + x2 ≤ 40.


Pour une contrainte ≥, on définit ei (excess variable), une autre variable d’écart, qui
est aussi ≥ 0.

On obtient alors:

max z = 4x1 + 3x2


s.c. x1 + x2 + s1 = 40
2x1 + x2 –e1 = 60
x1, x2, s1, e1≥ 0

En général,

max z = c1x1 + c2x2 + …+ cn xn


s.c. a11 x1 + a12 x2 + … + a1n xn = b1
a21 x1 + a22 x2 + … + a2n xn = b2

am1 x1 + am2 x2 + … + amn xn = bm


xi ≥ 0, (i=1, 2, …, n)

⎛ 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

4.2.2 Notion de Solution de Base


Soit le PL suivant (en forme standard)
(P) Max z = cx
s.c. Ax = b
x≥0
On suppose que rang(A) = m, c-à-d pas de contrainte (ou équation) redondante.

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.

Solution : On appelle solution tout point x qui satisfait Ax = b


(pas nécessairement x ≥ 0).

Solution réalisable : Une solution satisfaisant x ≥ 0 est dite solution réalisable.

Solution de Base Réalisable :


Soit DR le domaine réalisable de P.
Soient x ∈ DR et I(x) = {j : xj >0}. x est une solution de base réalisable ssi ∃ B une
base de R(A) telle que I(x) ⊂ B. c-à-d si les colonnes Aj, j ∈ I(x) sont linéairement
indépendants.
B est alors la base associée avec x. Les colonnes de A peuvent être partitionnées en
deux sous ensembles :
• le premier contient les colonnes de B, appelées colonnes de base, et
• le deuxième contient le reste des colonnes, appelées colonnes hors base.

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.

Ce théorème indique qu’il suffit d’explorer le sous-ensemble de DR constitué des


SBRs. Le nombre de bases distinctes = Cnm ; on sait que chaque SBR est associée à

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.

4.2.3 Calcul d’une SBR


On veut calculer la valeur d’une solution x associée à une base B. Soit H la matrice
contenant les colonnes hors base. Avec un réarrangement des variables et des
vecteurs colonnes de A, si nécessaire, on obtient :
B xB + H xH = b
xB ≥ 0 xH ≥ 0
B inversible ⇔ xB + B-1 H xH = B-1 b
xH étant nul, alors xB = B-1 b
la solution de base associée à B est : xB = B-1 b
xH = 0
Si B-1 b ≥ 0, x est alors SBR, sinon, on l’appelle simplement solution de base.
Ex: max z = 2x1 + 3 x2 Forme standard :
s.c. x1 + 2x2 ≤ 6 max z = 2x1 + 3 x2
2x1 + x2 ≤ 8 s.c. x1 + 2x2 + s1 = 6
x1≤ 2 2x1 + x2 + s2 = 8
x1, x2≥ 0 x1 + s 3 = 2
x1, x2, s1, s2, s3 ≥ 0

8 x2

1
E
x1
A 1

2x1+x2 = 8 x1+2x2 = 6

A. B. HADJ-ALOUANE 34
RECHERCHE OPERATIONNELLE 2AGI

A = (0,0) ⇒ (x1, x2, s1, s2, s3) = (0, 0, 6, 8, 2) : SBR


B = (0, 3) ⇒ (x1, x2, s1, s2, s3) = (0, 3, 0, 5, 2) : SBR
E= (1, 0) ⇒ (x1, x2, s1, s2, s3) = (1, 0, 5, 6, 1) : 4 var non nulles ⇒ Solution
réalisable, pas un point extrême.

4.2.4 Conditions d’optimalité d’une SBR :


xB
⎛ B −1b ⎞ ←⎯⎯ ⎯
Soit ⎯x une SBR associée à la base B. On a alors x = ⎜⎜ ⎟⎟
xH
⎝ 0 ⎠ ←⎯⎯ ⎯

Soit x une solution réalisable quelconque de P.


On a z(x)= c x et z(⎯x) = c⎯x = cB B-1 b

Calculons z(x) - z(⎯x)


On a: b=Ax ; Par conséquent :
z(x) - z(⎯x) = c x-c⎯x = cx - cB B-1 b = cx - cB B-1 Ax = (c - cB B-1 A)x

Appelons Δ (⎯x) = (c - cB B-1 A), alors z(x) - z(⎯x) = Δ (⎯x). x

Théorème : Soit ⎯x une SBR de P. Δ(⎯x) ≤ 0 ⇒ ⎯x est optimal.


Démonstration :
Rq: Pour simplifier la notation, nous allons utiliser la notation Δ au lieu de Δ(⎯x)
soit x une solution réalisable de P. z(x) peut s’écrire : z(x) = cB B-1 b + Δ. x
= z(⎯x) + Δ. x

Δ ≤ 0 ⇒ z(⎯x) ≥ z(x), puisque x ≥ 0.


Ceci est vrai pour ∀ x solution réalisable; d'où ⎯x est optimal.
Rq : c’est une condition suffisante. Elle devient aussi nécessaire si la SBR est non
dégénérée.

Pourquoi un algorithme pour résoudre un PL ?

Algorithme : un ensemble de règles employées pour obtenir des résultats à partir de


données spécifiques, dans lequel chaque étape est bien définie et peut être traduite
sous forme d’un programme informatique.

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.

4.3 Méthode de Simplexe

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.

Rq : La méthode de Gauss-Jordan pour la résolution d’un système d’équations


linéaires ne peut pas être directement appliquée à un PL car elle ne garantit pas de
trouver une solution non-négative.

3.3.1 Tableau (ou forme) canonique relatif à une SBR

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 ⎠

ou, sous forme de tableau :

1er membre Second


membre
xB -z xH
B 0 H b
cB 1 cH 0

Le tableau canonique relatif à la base B est obtenu en transformant la matrice sous


les variables xB et –z en une matrice identité d’ordre m+1. Ceci en multipliant à
gauche chaque colonne du tableau par la matrice :

−1
⎛B 0⎞ ⎛ B−1 0⎞
T = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟
⎝ cB 1⎠ ⎝ − c BB
−1
1 ⎟⎠

A. B. HADJ-ALOUANE 36
RECHERCHE OPERATIONNELLE 2AGI

donnant le tableau canonique relatif à B

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

Δ = (ΔB ΔH) = (cB – cB B-1B cH – cB B-1H) = (0 cH – cB B-1H)

4.3.2 Itérations de Simplexe

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 ⎠

Variables de Valeurs des


base x1 …xm -z xm+1 … xn var de base

x1 1…0 0 ⎯a1,m+1 … ⎯a1,n ⎯b1


. .
. .
xm 0…1 0 ⎯am,m+1 … ⎯am,n ⎯bm
-z 0…0 1 Δ m+1 … Δ n – cB B-1b

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,

Variables de Valeurs des


base x1 …xs …xm -z xm+1 … xe … xn var de base

x1 1…0 …0 0 ⎯a1,m+1 …⎯ a1,e …⎯a1,n ⎯b1


. .
xs 0…1… 0 0 ⎯as,m+1 …⎯ as,e …⎯as,n ⎯bs
. .
xm 0…0 … 1 0 ⎯am,m+1 ⎯am,e …⎯ am,n ⎯bm

-z …0… 0 1 Δ m+1 … Δe… Δn – cB B-1b =- z

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 ?

1- Le choix de la variable entrante est basé sur sa contribution éventuelle à la


fonction objectif ⇒ 1er critère de DANTZIG :
Puisque z(x) = z(⎯x) + Δ. x alors ∂ z(x)/ ∂xj= Δj = taux de variation de z par rapport
xj. Par conséquent on choisit la variable, xe, ayant le taux d’augmentation maximal
de z(x) (PL de max), c-à-d le Δj maximal :

xe telle que Δe = max{ Δj , où j= m+1, …, n ; Δj > 0}

2- On désire augmenter xe le maximum possible, tout en satisfaisant les contraintes.


On sait que le PL sous la forme canonique est ⇔ au problème de départ. Donc, les
valeurs des variables de base doivent changer tout en satisfaisant les contraintes
suivantes :

xi + ⎯ai,m+1 xm+1 + …+ ⎯ai,e xe…⎯ai,n xn = ⎯bi ∀ i = 1, …, m

xe = λ ⇒ xi = ⎯bi - ⎯ai,e λ

A. B. HADJ-ALOUANE 38
RECHERCHE OPERATIONNELLE 2AGI

La valeur de λ doit être choisie telle que : xi = ⎯bi - ⎯ai,e λ ≥ 0 ∀ i = 1, …, m


• Pour tout tel que ⎯ai,e≤ 0, on a bien⎯bi - ⎯ai,e λ ≥ 0 ∀ λ ≥ 0 (car ⎯bi ≥ 0 :
puisqu’on part d’une SBR).
• Pour i tel que ⎯ai,e> 0, on doit choisir λ telle que λ ≤ ⎯bi/⎯ai,e
La valeur maximale de λ qui satisfait ces contraintes est

λmax = min {⎯bi/⎯ai,e : ∀ i = 1, …, m et ⎯ai,e > 0} ⇒ 2eme critère de DANTZIG


(critère du ratio minimal)
On en déduit la variable sortante :
xs telle que⎯bs/⎯as,e = min {⎯bi/⎯ai,e : ∀ i = 1, …, m et ⎯ai,e > 0}

En effet, pour la ligne s : xs = ⎯bs - ⎯as,e (⎯bs/⎯as,e) = 0

• ⎯as,e est appelé élément pivot


• Ligne s : ligne pivot
• Colonne e : colonne pivot

La nouvelle base B’ = {1, …, e, …, m} ; xs étant une nouvelle variable hors base. On


doit représenter le PL sous la forme canonique associée à B’.
La colonne de xe doit être transformée :

⎛ a1 ,e ⎞ ⎛0 ⎞
⎜ ⎟ ⎜ ⎟
⎜ M ⎟ ⎜M⎟
⎜ a ⎟ → ⎜ 1 ⎟ ← Ligne s
⎜ s ,e ⎟ ⎜ ⎟
⎜ M ⎟ ⎜M⎟
⎜a ⎟ ⎜0 ⎟
⎝ m ,e ⎠ ⎝ ⎠

Ceci en appliquant des opérations élémentaires (Gauss-Jordan) :

• Op1 : Division de la ligne pivot par l’élément pivot ⎯as,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 :

Variables Valeurs des var de


de base x1 … xs … xm -z xm+1 …xe … xn base

x1 1 … -⎯a1,e (1/⎯as,e) … 0 0 ⎯a1,m+1 ‘…0 …⎯a1,n’ ⎯b1–⎯a1,e (⎯bs/⎯as,e)


. .
xs 0… 1/⎯as,e … 0 0 ⎯as,m+1’ …1 …⎯as,n’ ⎯bs/⎯as,e
. .
xm 0 … -⎯am,e (1/⎯as,e)… 1 0 am,m+1’ …0 …⎯am,n’ ⎯bm’

-z 0 … - Δe (1/⎯as,e) 0 1 Δ m+1 ‘… 0 … Δ n’ – z - Δe (bs/⎯as,e)

Rq : la colonne de (-z) peut être éliminée du 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

m=3, n=5 ; rang(A)=3.

Une SBR apparaît d'une façon évidente : s1 = 80; s2 = 100; s3 = 40

VB = {s1, s2, s3}; alors VHB = {x1, x2} , c-à-d x1 = x2 = 0 ⇒ z = 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

Sous la forme canonique ? Oui

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

Augmenter x1 d'une unité engendre un accroissement de 3 unités pour z, comparé à


2 pour x2 ⇒ x1 possède le taux d'augmentation le plus élevé. Alors, on choisit
d'augmenter x1. Autrement dit, x1 entre dans la base.

Cependant, on veut augmenter la valeur de x1 le maximum possible, tout en


respectant les contraintes du problème, à savoir :
L 1: s1 = 80 - x1 ≥ 0 (puisque x2 = 0, VHB)
L 2: s2 = 100 -2x1 ≥ 0
L 3: s3 = 40 -x1 ≥ 0
⇒ x1 ≤ 80/1
x1 ≤ 100/2 ⇔ x1 ≤ min{80, 50, 40}
x1 ≤ 40
min {80, 50, 40} = 40 ⇒ s3 sort (devient nulle)

#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.

Critère du ratio minimal → min {20/1, 40/1} = 20 ⇒ s2 sort de la base.

#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

4.3.4 Interprétation des Δj


Rq: Dans le tableau initial, la dernière ligne comporte les coefficients cj, alors qu'à
partir du 2ème tableau, il y a l'apparition d'une nouvelle ligne: les Δj, appelés "coûts
marginaux". Relativement au 1er tableau,
Δj = cj –ce(asj/ase)
(xe vient d'entrer dans la base)

• 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:

+ ... + xe + ... asj/ase xj+ ... = bs

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).

Dans l'exemple, Δ2 = 2 = c2 - c1 (a32/a31) = 2 - 3 (0/1) = 2


Δs 3 = -3 = 0 - 3 (1/1) = -3

4.3.5 Autre exemple:

max z = 4x1 + 2x2


s.c. x1 + 2x2 ≤ 40
3x1 + x2 ≤ 60
x1, x2 ≥ 0

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

Tableau optimal; solution optimale : x1 = 16, x2 = 12 et z = -88

4.3.6 Cas particuliers

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.

Soit xe la variable vérifiant le 1er critère de DANTZIG :

xe = λ ⇒ xi = ⎯bi - ⎯ai,e λ ∀ i= 1, …, m

Si pour tout i, ⎯ai,e ≤ 0, on pourra augmenter la valeur de xe infiniment tout en


respectant xi = ⎯bi - ⎯ai,e λ ≥ 0. Le rayon extrémal est donné par le point de

⎛ 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

(PASSEZ DIRECTEMENT AU DERNIER TABLEAU)

#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)

Une infinité de solutions (solutions multiples):

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.

Un autre tableau optimal :

#3 x1 x2 s1 s2 bi
x1 1 0 1 -2 20
x2 0 1 -1 3 30 →
Δj 0 0 -1 0 -120

4.3.7 Résumé de l’algorithme de Simplexe

1. Mettre le PL sous la forme standard.


2. Trouver une solution initiale de base.
3. Ecrire le PL sous la forme canonique relative à la SBR initiale.
4. Itérations :
a) Si l'un des critères d'arrêt est satisfait, donner le résultat final (solution
optimale ou rayon extrémal) ; sinon aller à l'étape 4-b.
b) Déterminer la variable entrante (ou la colonne pivot) selon le 1er critère de
DANTZIG
c) Déterminer la variable sortante (ou la ligne pivot) selon le 2ème critère de
DANTZIG
d) Calculer le nouveau tableau en effectuant une opération de pivot. Retour
à 4-a.

A. B. HADJ-ALOUANE 45
RECHERCHE OPERATIONNELLE 2AGI

4.4 Méthode de Simplexe à deux phases

On a déjà indiqué que la méthode de Simplexe part d’un PL sous la forme


canonique. Cela suppose qu’on peut facilement identifier une SBR initiale. Parfois,
ceci n’est pas évident, par exemple
Max z = 4x1 + 3x2
s.c. 2x1 –x2 ≥ 15
(P) x1 + x2 = 10
2x1 – x2 ≤ 20
x1, x2 ≥ 0

En mettant ce PL sous la forme standard, on obtient


Max z = 4x1 + 3x2
s.c. 2x1 –x2 –e1 = 15
x1 + x2 = 10
2x1 – x2 + s3= 20
x1, x2, e1, s3 ≥ 0
Il est difficile de trouver intuitivement/rapidement une SBR. Alors, qu’est-ce qu’on
fait ? On introduit encore des variables dites artificielles à chaque contrainte ‘≥‘et à
chaque contrainte ‘=’, on obtient alors :

Max z = 4x1 + 3x2

s.c. 2x1 –x2 –e1 + ⎯s1= 15


(P’) x1 + x2 +⎯⎯s2= 10
2x1 – x2 + s3 = 20
x1, x2, e1, s3, ⎯s1,⎯s2 ≥ 0

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

Min zI = ∑⎯si var artificielle ⎯si = ⎯s1 +⎯s2

s.c. 2x1 –x2 –e1 + ⎯s1= 15


(PI) x1 + x2 +⎯s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, ⎯s1, ⎯s2 ≥ 0
→ Phase I : Résoudre PI par la méthode de Simplexe
Résultats possibles de la phase I :
Cas 1 : zI ≠ 0 ⇒ au moins une ⎯si ≠ 0 ⇒ P non réalisable (DR vide)

Cas 2 : zI = 0 et aucune variable artificielle n’est une VB. Dans ce cas, on


omet toutes les colonnes du tableau optimal de la phase I, qui correspondent
aux variables artificielles. On combine la fonction objectif de P avec les
autres lignes de ce tableau. On met à jour la dernière ligne de telle manière à
avoir Δj = 0 pour les VB. On obtient ainsi un tableau canonique initial de P. On
continue alors la résolution avec la méthode de Simplexe (Phase II).

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

Ligne 2 peut être éliminée.

Application à P :

Max zI = - ⎯s1 - ⎯s2

s.c. 2x1 –x2 –e1 + ⎯s1= 15


(PI) x1 + x2 +⎯ s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, ⎯s1, ⎯s2 ≥ 0

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

4.5 Méthode de Big-M (‘’Phases I et II confondues’’)

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

s.c. 2x1 –x2 –e1 + ⎯s1= 15


(PI) x1 + x2 +⎯s2= 10
2x1 – x2 + s3= 20
x1, x2, e1, s3, ⎯s1, ⎯s2 ≥ 0
#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
4 3 0 0 -M -M 0
Mise à 4+3M 3 -M 0 0 0 25M
jour

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

Résultats possibles de Big-M :

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.

Cas 3 : (PM) est non borné ∀ M suffisamment large. Le critère d’optimalité


étant satisfait ∀ M suffisamment large, (P) est non borné s’il est réalisable →
On doit alors vérifier s’il est réalisable. Ceci en continuant l’algorithme après
remplacement de la fonction objectif (dans le dernier tableau) par Z’M = - ∑i
M⎯si (en annulant les constantes dans l’expression (Δj + M Δj*) de la dernière
ligne). Si la solution optimale obtenue est telle que ⎯s = 0, alors (P) est
réalisable donc non-borné, sinon (P) est non-réalisable.

A. B. HADJ-ALOUANE 50
RECHERCHE OPERATIONNELLE 2AGI

Exemple :

Max zM = x1 + x2-M ⎯s1 -M⎯s2

(PM) s.c. x1 + x2 –e1 + ⎯s1= 1


x1 - x2 – e2 +⎯s2= 0
x1, x2, e1, e2,⎯s1, ⎯s2 ≥ 0
#1 x1 x2 e1 e2 ⎯s1 ⎯s2

⎯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

(PM) non borné ⇒

#3 x1 x2 e1 e2 ⎯s1 ⎯s2

x2 0 1 -½ ½ ½ -½ ½→
x1 1 0 -½ -½ ½ ½ ½
0 0 0 0 -M -M 0

Z’M = 0 ⇒ ⎯ s1* = ⎯ s2* = 0 ⇒ (P) réalisable ⇒ (P) non borné.

A. B. HADJ-ALOUANE 51
RECHERCHE OPERATIONNELLE 2AGI

Il est pratiquement impossible de conclure si la méthode de Big-M résout les PL avec


moins de calcul que l'approche à deux phases. L'expérience pratique semble indiquer
que les deux approches ont approximativement le même effort de calcul.

Pour résumer :

La résolution d'un PL à l'aide de l'algorithme de simplexe nécessite une SBR initiale.


C'est un problème qui peut être résolu de trois manières différentes :

1) Introduction de variables artificielles et l'application de Simplexe à deux phases


(phase I trouve une SBR)

2) Introduction de variables artificielles et l'application de la méthode de Big-M


(basée sur l'algorithme de Simplexe)

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

Résolution de programmes linéaires

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.

2 PB1 1 PB1 2 PB2


P1 P2 3 CR2 P3 2 CR3
3 PB2 1 CR2 3 PB2 3 CR2
Les coûts d’exécution d’une heure des trois procédés sont : $5, $4 et $ 1
respectivement. Chaque semaine 200 barils de PB1, pour $2/baril, et 300 barils de
PB2, pour $3/baril peuvent être achetés. Toute la quantité de carburant fabriquée
peut être vendue. Les prix de vente par baril des trois carburants sont : $9, $10 et
$24, respectivement. La compagnie possède une seule cuve catalytique qui est
disponible pendant 100 heures par semaine.

1. Formuler un programme linéaire qui permet d’optimiser le profit total de la


compagnie. (Idée : Définir, parmi les variables de décision, la durée
d’exécution de chaque procédé).

2. Simplifier la formulation établie dans (1) le maximum possible.

3. Résoudre avec Simplexe la formulation simplifiée pour trouver un planning


optimal d’une semaine.

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

max z = 3x1 + 4x2 + x3


s.c. x1 + 2x2 + 2x3 ≤ 8/3
x1 + 2x2 + 3x3 ≥ 7/3
x1 ≥ 0, x2 ≥ 0 x3 ≥ 0

1. Trouver une solution de base réalisable de PL. Ecrire le PL sous la forme


canonique correspondante.

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.

5.2 Interprétation économique de la dualité


5.2.1 Le dual d'un problème de maximisation
Considérons l'exemple suivant. Une compagnie, appelé MEUBLE, produit des
• bureaux
• tables
• chaises
La fabrication de chaque type de produit nécessite de la matière première (bois) et
deux types d’activités : menuiserie et finition. La quantité requise de chaque
ressource est donnée comme suit :

A. B. HADJ-ALOUANE 55
RECHERCHE OPERATIONNELLE 2AGI

Produit Bureau Table Chaise Quantité disponible


Ressource de ressource
Bois (plaque) 8 6 1 48
Menuiserie (heure) 2 1.5 0.5 8
Finition (heure) 4 2 1.5 20
Prix de revient (D) 60 30 20

On désire maximiser le revenu. On définit


x1 = nombre de bureaux fabriqués
x2 = nombre de tables fabriquées
x3 = nombre de chaises fabriquées
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
Supposons qu'un entrepreneur veut acheter toutes les ressources de MEUBLE. Il veut
certainement que le prix total de ces ressources soit minimal. On définit alors :
y1 = prix d'une plaque de bois
y2 = prix d'une heure de menuiserie
y3 = prix d'une heure de finition
L'entrepreneur doit payer : w(y) = 48y1 + 8 y2 + 20 y3 et désire minimiser w, mais il
doit payer suffisamment pour convaincre MEUBLE de vendre ses ressources. Par
exemple, il doit payer au moins 60D pour une combinaison de
8 plaques de bois
2 heures de menuiserie
et 4 heures de finition
car MEUBLE peut utiliser ces ressources pour fabriquer un bureau et le vendre pour
60D. L'entrepreneur doit payer au moins 60D, sinon MEUBLE ne verra aucune raison
de lui vendre ses ressources ⇒ 8y1 + 2 y2 + 4 y3 ≥ 60
De même on a : 6y1 + 1.5 y2 + 2 y3 ≥ 30
et y1 + 0.5 y2 + 1.5 y3 ≥ 20
de plus y 1, y 2, y 3 ≥ 0
↑← coûts fictifs ou prix ombre (resource shadow price)
Alors le problème dual peut être donné comme :

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)

On définit : xj kg de l'aliment j, j = 1, ..., 6. Alors


min z = 35x1 + 30 x2 + 60 x3 + 50 x4 + 27 x5 + 22 x6
(P) s.c. x 1 + 2 x 3 + 2 x 4 + x5 + 2 x 6 ≥ 9 (Vitamine A)
x2 + 3 x3 + x4 + 3 x5 + 2 x6 ≥ 19 (Vitamine C)
xj ≥ 0 ∀ j = 1, ..., 6

Un fabriquant compte lancer un projet dans le domaine alimentaire. Il propose de


fabriquer des comprimés de chaque vitamine et de les vendre à la famille. Pour que
cette affaire se réalise et prospère, le fabricant doit persuader la famille d'obtenir
les quantités requises des vitamines en utilisant les comprimés au lieu des aliments.
La famille, étant consciente de l'aspect monétaire, n'utilisera les comprimés que si
leurs prix sont compétitifs par rapport aux prix des aliments. Ceci impose plusieurs
contraintes sur les prix des comprimés que le fabriquant doit fixer.

A. B. HADJ-ALOUANE 57
RECHERCHE OPERATIONNELLE 2AGI

Soient y1 et y2 les prix des vitamines A et C, respectivement, à déterminer. Prenons


par exemple l'aliment 5. Un kg de ceci contient 1 unité de A et 3 unités de C. ⇒ du
point de vue du fabricant, Le kg de l'aliment 5 vaut y1 + 3 y2. Un kg de 5 coûte 27. A
moins que y1 + 3 y2 ≤ 27, la famille réalisera que les prix du fabriquant ne sont pas
compétitifs. De l'autre côté, puisque le fabricant veut gagner dans cette affaire, y1 et
y2 doivent être ≥ 0. De plus, si la famille décide d'utiliser les comprimés, elle en
achètera juste le nécessaire (9 et 19 unités), sinon, sa coûtera cher étant donné que
y1 et y2 ≥ 0.
Le revenu du fabricant sera alors w(y) = 9 y1 + 19 y2, et par conséquent, les prix que
le fabricant va fixer sont obtenus en trouvant la solution optimale du problème
suivant :
max w(y) = 9 y1 + 19 y2
s.c. y1 ≤ 35
y2 ≤ 30
2 y1 + 3 y 2 ≤ 60
2 y1 + y 2 ≤ 50
y1 + 3 y 2 ≤ 27
2 y1 + 2 y 2 ≤ 22
y 1, y 2 ≥ 0
5.2.3 Constatations sur les formes du primal et du dual
1. La relation de dualité est involutive puisque le dual du dual est identique au
primal
2. La matrice des coefficients des contraintes de D (P) est la transposée de
celle de P (D).
3. Les composants du second membre de D (P) sont les coefficients de la
fonction objectif de P (D).
4. Chaque colonne (ou variable) de P (D) résulte en une contrainte dans D (P).
5. Lorsque P est un problème de maximisation avec des contraintes de type ≤,
D est un problème de minimisation avec des contraintes de type ≥, et vice
versa.
6. Considérons le 2ème exemple, c'est évident que la famille ne va acheter les
comprimés que s’ils comprennent la quantité nécessaire de vitamines tout
en étant au plus au même prix que les aliments naturels.

⇒ max w(y) ≤ min z(x)

Ceci résulte du théorème de dualité faible qu'on va démontrer


ultérieurement.

A. B. HADJ-ALOUANE 58
RECHERCHE OPERATIONNELLE 2AGI

5.3 Détermination du dual d’un programme linéaire

5.3.1 Le dual d'un PL sous la forme normale


Un PL est dit sous la forme normale si c'est un problème de
• max avec des contraintes ≤; x ≥0 (max x ; s.c. x ≥ b : infini)
ou
• min avec des contraintes ≥ ; x ≥0 (min x ; s.c. x ≤ b : infini)
Soit P un PL sous la forme normale :
max z = cx
(P) s.c. Ax ≤ b A (mxn), b ∈ℜm
x≥0 c, x ∈ℜn
Alors le dual est:
min w = yb
(D) s.c. yA ≥ c
y≥0 y ∈ℜm où y est un vecteur ligne.

5.3.2 Le dual d'un PL à contraintes mixtes


Si le primal P est sous forme générale, on peut construire son dual D de deux
manières possibles :
1. Mettre P sous la forme normale. Supposons qu'on part d'un problème de
maximisation. On peut :
− multiplier chaque contrainte ≥ par (-1)
− remplacer aix = bi par { aix ≤ bi et -aix ≤ -bi }
− remplacer chaque xj<> 0 par xj+ - xj- avec xj+ ≥0 et xj- ≥ 0
2. Appliquer les règles suivantes :
Primal (Dual) 3. Dual (Primal)
4. Fonction à minimiser
Fonction à maximiser
ième contrainte ≤ ième variable ≥ 0
ième contrainte ≥ ième variable ≤ 0
ième contrainte = ième variable <> 0
jème variable ≥ 0 jème contrainte ≥
jème variable ≤ 0 jème contrainte ≤
jème variable <> 0 jème contrainte =

Exemples:
1. Problème de maximisation:

max z = 2x1 + x2 min w = 2y1 + 3 y2 + y3


(P) s.c. x1 + x2 = 2 (D) s.c. y1 + 2 y 2 + y 3 ≥ 2
2 x1 - x2 ≥ 3 y1 - y2 - y3 = 1
x1 - x2 ≤ 1 y1<> 0, y2 ≤ 0, y3 ≥ 0
x1 ≥ 0, x2 <>0

A. B. HADJ-ALOUANE 59
RECHERCHE OPERATIONNELLE 2AGI

2. Problème de minimisation:

min z = 5x1 - 6 x2 + 7 x3 + x4 max w = -7 y1 + 14 y2 -3 y3


(P) s.c. x1 + 2 x2 - x3 - x4 = -7 (D) (D) s.c. y1 + 6 y2 -2 y3 ≥ 5
6 x1 - 3x2 + x3 + 7 x4 ≥ 14 2y1 - 3 y2 - 17 y3 ≤ -6
-2 x1 -17 x2 + 4 x3 + 2 x4 ≤ -3 -y1 + y2 + 4 y3 = 7
-y1 + 7y2 + 2 y3 = 1
x1≤ 0 , x2 ≥ 0; x3<>0, x4<>0 y1<> 0, y2 ≥ 0, y3 ≤ 0

5.4 Dualité et conditions d'optimalité

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

Implications : w* ≥ z(x) ∀x ∈ DRP; et w(y) ≥ z* ∀y ∈ DRD; et w* ≥ z*.


Par conséquent, si on a solution réalisable quelconque de l'un des problèmes (P ou
D), la faible dualité peut être utilisée pour obtenir un borne (inf ou sup) sur la valeur
de la fonction objectif de l'autre.
Exemple: Problème de MEUBLE; x1 = x2 =x3 = 1 est réalisable pour P
⇒ z(1,1,1) = 110 ⇒ 48 y1 + 20 y2 + 8 y3 ≥ 110 ∀ (y1, y2, y3) ∈ DRD ⇒ w* ≥ 110

De même, y1 = 10; y2 = 10, y3 = 0 réalisable pour D ⇒ w(10, 10, 0) = 680


⇒ z* ≤ 680.
cx 110 680 yb

A. B. HADJ-ALOUANE 60
RECHERCHE OPERATIONNELLE 2A GI

Théorème de forte dualité (strong duality):


La solution x*∈ DRP est l'optimum de P ⇔ il existe des solutions x*∈ DRP et y* ∈ DRD
/ cx* = y*b

(on peut démontrer dans ce cas que y* n'est qu'un optimum de D)

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*.

Pour démontrer que y* est optimal pour D,


y * réalisable pour D ⇒ w * ≤ y * b ⎫
⎬ ⇒ w * = y * b ⇒ y * est un optimum de D
De plus, d' après la faible dualité w * ≥ z* = y * b ⎭

(⇐ Condition suffisante de l'optimalité de x*)


il existe des solutions x*∈ DRP et y*∈ DRD / cx* = y*b.
Soit x ∈ DRP ; D'après la faible dualité : cx ≤ y*b. Puisque y*b = cx*, on a alors: cx ≤
cx* ← vrai ∀ x ∈ DRP ⇒ x* est l'optimum de P.

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*.

Corollaires du théorème de forte dualité:


♦ P infini ⇒ D non réalisable
♦ D infini ⇒ P non réalisable
♦ P non réalisable et D réalisable ⇒ D infini
♦ D non réalisable et P réalisable ⇒ P infini

Critère d'optimalité d'une base: (On part de P sous la forme standard).


Soit B une base associée avec x. On dit que B est primale réalisable si xB ≥ 0, ce qui
veut dire que B-1 b≥ 0. D'après la démonstration du théorème de forte dualité, cB B-1
est une solution potentielle du dual. Pour que cette solution soit réalisable pour D,
on doit avoir: cB B-1 A ≥ c ; on dit alors que B est duale réalisable.
mais cB B-1 A ≥ c ⇔ c - cB B-1 A ≤ 0 ⇔ ΔB ≤ 0 ← condition d'optimalité de P.

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.

5.5 METHODE DUALE DU SIMPLEXE

On cherche à résoudre le PL suivant :


(P) Max cx
s.c. Ax =b
x ≥0

Le programme dual correspondant est :


(D) Min w = yb
s.c. yA ≥ c

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.

Deux cas peuvent se présenter :


1. Si la base B est également primale réalisable, autrement dit le vecteur xB = B-1b
vérifie xB ≥ 0, alors B est évidemment une base optimale et x = (xB, 0) et y sont
respectivement les solutions optimales de (P) et de (D).

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

Posons y’ = y + θas on a : y’b = yb + θ asb


Donc, pour tout θ ≥ 0 on a : y’b < yb

La nouvelle solution doit être duale réalisable, càd que y’Aj ≥ cj ∀ j = 1, …, n


On sait que pour Aj colonne de base, yAj = cj (Δj =0) ; asAj = 0 si j≠s et asAs = 1.

Donc, la condition de faisabilité de la solution duale s’écrit :

C1. y’As = yAs + θasAs et donc y’As = cs + θ ≥ cs car θ ≥ 0

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

La condition C3 montre que deux cas qui doivent être distingués


1. Pour tout j tel que Aj colonne hors base, on a : ⎯asj ≥ 0, il est clair que dans ce
cas y’ est dual réalisable pour toute valeur de θ > 0. Dans ce cas, on peut
immédiatement conclure que le problème dual est non borné, et que par
conséquent, le problème primal est non réalisable.

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}

Supposons que le minimum est atteint pour j = e, dans ce cas on a


θ* = (ce – yAe)/ ⎯ase et d’après C3, on a y’Ae = ce (xe variable entrante)

Considérons alors la nouvelle base B’ déduite de B en remplaçant la colonne As par


Ae. La nouvelle solution duale y’ est solution du système y’ = cB’ B’-1.

A. B. HADJ-ALOUANE 63
RECHERCHE OPERATIONNELLE 2A GI

Cette solution améliore la valeur de la fonction objectif du problème d’une valeur


égale à θ ⏐asb⏐= θ ⏐xs⏐. C’est pour cette raison, qu’en pratique, on choisit la
variable xs qui est la plus négative.

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.

En absence de dégénérescence, l’algorithme dual du simplexe est fini. Soit il


converge vers une solution optimale, soit il permet de conclure que le problème
primal est non réalisable.

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.

Pour appliquer la méthode duale du simplexe, on part d’un tableau du simplexe où


les conditions suivantes sont satisfaites :
- Tous les coefficients de la ligne de la fonction objectif sont non négatifs
(condition d’optimalité satisfaite),
- Certains coefficients du vecteur b dans les contraintes sont négatifs
(contraintes de faisabilité non satisfaites). La solution de base du primal
donnée par le tableau est non réalisable.

Pour déterminer la variable sortante de la base, il suffit de sélectionner la ligne s


ayant un second membre négatif et de valeur minimale.

Pour déterminer la variable entrante à la base, on calcule le minimum parmi les


ratios (cj - yAj)/ ⎯asj, avec (cj - yAj)= Δj (coefficient de la colonne j dans la dernière
ligne du tableau), et ⎯asj est le coefficient de la colonne j et ligne s (⎯asj < 0).

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

(P) Max -z = -x1 - x2


sc -2 x1 - x2 + e1 = -4
-x1 - 7 x2 + e2 = -7
x1, x2, e1, e2 ≥ 0

On prend comme solution initiale x1 = x2 = 0, e1 = -4, e2 = -7. La base {e1,e2 } est


duale réalisable mais elle n’est pas primale réalisable.
On part du tableau canonique suivant :

#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

La solution optimale est x1 = 21/13, x2 = 10/13 , x3 = x4 = 0, z*=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

On prend comme solution initiale x1 = x2 = x3 = 0, e1 = -7, e2 = -10. La base {e1,e2 }


est duale réalisable mais elle n’est pas primale réalisable.

A. B. HADJ-ALOUANE 65
RECHERCHE OPERATIONNELLE 2A GI

5.6 Solution du dual à partir du primal


(cas de P problème de max à contraintes mixtes)

On a vu que Δj = cj - cB B-1 aj.


En posant y = cB B-1, on sait que:
• Si B est primale optimale alors y = (y1, ..., ym) est la solution optimale du
dual.
• à chaque contrainte de P est associée une variable de D.
Alors selon le type de contraintes on peut donner les valeurs des composants de y.

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⎟
⎝ ⎠

♦ Si contrainte i est de type ≥, on doit avoir ei dans le primal. On a

⎛ 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

3. Vérifier le théorème de dualité dans ce cas.

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

1. Mettre ce programme linéaire sous la forme standard (PS).


2. Ecrire le dual de P et celui de PS trouvé dans (1). Montrer que le dual de P et
celui de PS sont équivalents.

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

1. Trouver la solution optimale du dual


2. Vérifier que la solution optimale du dual, y, satisfait la relation cj-yAj ≤ 0

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.

6.2 Variations des coefficients de la fonction objectif


C’est l’étude de l'effet des variations de l'un des cj tout en maintenant les mêmes
valeurs pour toutes les autres données du problème.
ck → ck + λ = ck(λ) (ck est paramétré)
Comme la complexité de cette étude varie selon que la variable xk appartient ou non
à la base optimale, on commence par le cas le plus simple : celui où xk est hors
base.

6.2.1 Variable xk est hors base


Quel sera l’effet d’un changement de ck sur la solution optimale du problème ?
Soit B la base optimale. Pour quelle valeur de λ cette base reste-elle optimale ?
On remarque que dans le tableau optimal, modifié par le nouveau coefficient ck+ λ:
1. B-1b ne change pas ⇒ 2nd membre est le même ⇒ B est primal-
réalisable

2. Le seul changement possible sera au niveau des coûts marginaux,


notamment Δk

⇒ B restera optimale si Δk (λ) ≤ 0 ⇔ Δk (λ) = ck + λ – (cBB-1) Ak ≤ 0


⇔ λ ≤ - ck + (cBB-1) Ak = -Δk (0)

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

Le tableau optimal est le suivant :


x1 X2 x3 s1 s2 s3
s1 0 -2 0 1 -8 2 24
x1 1 1.25 0 0 1.5 -0.5 2
x3 0 -2 1 0 -4 2 8
Δj 0 -5 0 0 -10 -10 -280

x1 ≡ bureaux ; x2 ≡ tables ; x3 ≡ chaises


B = {s1, x1, x3} ; x2 variable hors base
Considérons : c2 → c2 + λ ⇒ Δ2 = λ - 5 ⇒ B restera optimale si λ ≤ 5

Si λ ≤ 5 (ou c2(λ)≤ 35):


le prix d’une table diminue (λ < 0) ou augmente d’au plus 5 D, la base actuelle reste
optimale. De plus, les valeurs des variables ainsi que celle de la valeur de la fonction
objectif restent les mêmes (x1 = 2, x3 = 8, x1 = 0, z* = 280).

Si λ > 5 (ou c2(λ) > 35):


B n’est plus optimale. Par exemple, λ = 10. Dans ce cas, on peut trouver la nouvelle
solution optimale en remplaçant Δ2 = -5 par Δ2 (10)= 10 -5 = 5. ⇒ Nouveau tableau :
x1 x2 x3 s1 s2 s3
s1 0 -2 0 1 -8 2 24
x1 1 1.25 0 0 1.5 -0.5 2
x3 0 -2 1 0 -4 2 8
Δj 0 5 0 0 -10 -10 -280
⇒ x2 entre et x1 sort.

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

6.2.2 Cas de xk variable de base


Dans ce cas, cBB-1 change ⇒ Plus qu’un coefficient dans la dernière ligne peuvent
changer.

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 :

Δj (λ) ≤ 0 pour toute variable hors base xj. (*)

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 ⎟⎠
⎝ ⎠ ⎝

⇒ cB (λ)B-1 = (0 10+1.5λ 10-0.5λ) = y*(λ) = ( y1* ( λ ), y 2* ( λ ), y 3* ( λ ))

Δs1 (λ)= Δ1(λ) = Δ3(λ) = 0

Pour les variables hors base :

⎛ 6 ⎞
⎜ ⎟
Δ2(λ) = c2 - y*(λ) A2 = 30 - (0 10+1.5λ 10-0.5λ) ⎜1.5 ⎟ = -5 – 1.25 λ
⎜ 2 ⎟
⎝ ⎠

Δs2(λ) = - y 2* ( λ ) = -10 – 1.5 λ

Δs3(λ)= - y 3* ( λ ) = -10 + 0.5 λ

→ B reste optimale ssi

A. B. HADJ-ALOUANE 71
RECHERCHE OPERATIONNELLE 2A GI

Δ2(λ)≤ 0 -5 – 1.25 λ ≤ 0 λ ≥ -4

Δs2(λ)≤ 0 ⇔ -10 – 1.5 λ ≤ 0 ⇔ λ ≥ -20/3

Δs3(λ)≤ 0 -10 + 0.5 λ ≤ 0 λ ≤ 20

B reste optimale ssi -4 ≤ λ ≤20 (ou 56 ≤ c1(λ) ≤ 80)

Dans ce cas, la nouvelle z*(λ) = 280 + 2λ

→ 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).

6.3 Variations du second membre d’une contrainte

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.

ou (b) Appliquer l'algorithme Primal Simplexe à deux phases, après


multiplication de la ième contrainte par (-1) et introduction d’une
variable artificielle comme variable initiale de base associée à cette
contrainte.
Exemple :
b3 → b3 + λ

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

Considérons une autre valeur : λ = 6


⎛ 36 ⎞ ⎛ 36 ⎞
⎜ ⎟ ⎜ ⎟
Β-1 b(6) = ⎜ −1 ⎟ ; et cB Β b(6) = (0 60 20) ⎜ −1 ⎟ = 340
-1

⎜ 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

Nouvelle solution : x1 = x2 = 0 ; x3 = 16 ; z(0,0,16)=320.

6.4 Variation des coefficients technologiques


Jusqu'à présent, la fabrication d'une table nécessite
6 plaques de bois

A. B. HADJ-ALOUANE 73
RECHERCHE OPERATIONNELLE 2A GI

1.5 heures de menuiserie


et 2 heures de finition
Supposons qu'un changement de technologie de production a réduit les nombres
d'heures opératoires → 1 heure de menuiserie
1 heure de finition
⎛6⎞
donc A.2' = ⎜⎜ 1 ⎟⎟ ; Est-ce que ceci change la décision optimale?
⎜1 ⎟
⎝ ⎠
Constatations sur la base actuelle :

• B (et B-1), b et c ne changent pas


• Uniquement Δ2 = c2 - (cB B-1)A2 change

Par conséquent, la base actuelle reste optimale si Δ’2 = c2 - (cB B-1)A'2 ≤ 0


⎛6⎞
⎜ ⎟
Δ 2 = 30 − ( 0 10 10 ) 1 = 10 > 0 ⇒ la base n'est plus optimale.
'
⎜ ⎟
⎜1 ⎟
⎝ ⎠
⇒ On modifie le tableau en calculant la nouvelle colonne B-1A'2 et en remplaçant Δ2
par Δ'2

⎛ 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

Comparée à la solution optimale précédente, cette nouvelle solution optimale a


remplacé les deux bureaux par deux tables et quatre chaises.

Pour résumer,

A. B. HADJ-ALOUANE 74
RECHERCHE OPERATIONNELLE 2A GI

Si la colonne d'une variable hors base xj change, la base actuelle reste


optimale si Δ'j ≤ 0 (dans ce cas la solution et la fonction objectif restent les
mêmes); sinon (Δ'j > 0), la base n'est plus optimale et xj sera une variable de
base dans la nouvelle solution.

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.

6.5 Introduction d’une nouvelle activité (ou variable)


Dans plusieurs situations, on peut avoir l'opportunité d'introduire des nouvelles
activités. Par exemple, dans le problème de MEUBLE, on peut considérer le
lancement d'un nouveau produit : le tabouret (la quantité de ce produit est
désignée par x4). On veut savoir si la base reste optimale en introduisant cette
activité.

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 :

→ Si Δ4 ≤ 0, B restera optimale et x4 reste hors base ⇒ x4 = 0, il ne faut pas


introduire les tabourets

→ Sinon, B n’est plus optimale et x4 va entrer dans la base ⇒ il faut l'introduire


comme activité
⎛1 ⎞
Supposons que c4 = 15D et A4= ⎜⎜1 ⎟⎟ , le problème initial sera
⎜1 ⎟
⎝ ⎠

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é.

6.6 Introduction d’une nouvelle contrainte


Parfois on s’intéresse à l’ajout d’une nouvelle contrainte (par nécessité ou dû à un
oubli lors de la formulation). On désire déterminer son effet sur la base optimale.

Soit ∑ j
am +1,j x j = bm +1 la nouvelle contrainte (transformée en une égalité)

Nous distinguons deux cas :

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.

6.7 Théorème des écarts complémentaires


(P) max cx (D) min yb
s.c. Ax ≤ b s.c. yA ≥ c
x≥0 y≥0
x1, …, xn y1, …, ym
m contraintes n contraintes
↓ ↓
s1, …, sm e1, …, en

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)

Rq : ce résultat ne concerne que les variables ≥0 et le contraintes correspondantes


dans l’autre problème (dual ou primal).

Interprétation : Analyse marginale


Ex : Problème de MEUBLE.

De point de vue Fabricant :

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

la ressource i a de valeur, il ne faut pas laisser du stock non utilisé

De point de vue Entrepreneur :

∑ aij x j < bi ⇒ ressource i partiellement utilisée,


j
ce qui reste n' a plus de valeur ⇒ y i = 0

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

Utilisation dans le calcul de l’optimum du dual (primal)


Le résultat de complémentarité, comme la dualité, permet de trouver la solution
optimale du dual sachant celle du primal.

Exemple : MEUBLE
s1 > 0 ⇒ y1 = 0
y 2 > 0 ⇒ s2 = 0

Si la solution du primal ou du dual est connue, on peut déterminer la solution


optimale du problème complémentaire.

Ici, on sait que x1 = 2 ⇒ e1 = 0


x2 = 0
x3 = 8 ⇒ e3 = 0 ⇒ solution du dual
s1 = 24 ⇒ y1 = 0
s2 = 0
s3 = 0

Rq : Comment Déterminer B-1 à partir du tableau de Simplexe ?


On peut constater que l’étude de la sensibilité réalisée ci-dessus nécessite le calcul
de l’inverse de la matrice de base. Or, ce n’est pas nécessaire de faire ce calcul
puisque l’inverse de cette matrice peut se lire directement du tableau de Simplexe !

La méthode de Gauss-Jordan emploie une série d’opérations élémentaires (types 1


et 2) pour transformer B⏐Im en Im⏐B-1. Soit T l’opérateur représentant cette série
d’opérations. On a T(B⏐Im) = Im⏐B-1. En fait T est un opérateur linéaire et on a bien
T ≡ B-1•
Considérons l’exemple de MEUBLE :
Lorsqu’on a résolu PL avec Simplexe, on a transformé les colonnes des variables de
la base optimale B{s1, x1, x3} en colonnes de l’identité. En parallèle, les mêmes
opérations effectuées ont nécessairement transformé la base initiale
B{s1, s2, s3} . Par conséquent,

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.

Ex : soit Bk la matrice de base du tableau #k


#1 x1 x2 x3 s1 s2 s3
s1 8 6 1 1 0 0 48
s2 2 3/2 1/2 0 1 0 8
s3 4 2 3/2 0 0 1 20
Δj 60 30 20 0 0 0 0
-1
B1 = I3 ; B1 = I3

#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

Formulation - Résolution de PL - Analyse de sensibilité

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.

min z = 15x1 + 7x2 + 3x3 + 39x4 + 51x5 + 35x6


s.c. 5x1 + 2 x2 + x3 + 10x4 + 13x5 + 11x6 = 41 (b1)
x1 + x2 + 3x4 + 3x5 + 3x6 = 12 (b2)
4x1 + 2x2 + x3 + 9x4 + 11x5 + 10x6 = 38 (b3)
x1, x2, x3, x4, x5, x6 ≥ 0

1. Dresser le tableau canonique associé à la base {x1, x2, x3}.

2. Est-ce que cette base est optimale ? Sinon trouver le tableau optimal.

3. Donner la solution optimale du dual de ce problème (sans résoudre le dual)

4. La compagnie a le choix de diminuer la quantité de l’une des ressources bi par


rapport à sa valeur actuelle. Est-ce que c’est avantageux de le faire ? Si oui,
lesquelles des ressources est-elle la plus prioritaire d’être diminuée ? Toutes les
réponses doivent être justifiées.

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 :

Lait de Lait de Lait de Profit


chèvre brebis vache unitaire
Chevron 1 5 35 6.5

Brebon 1 15 20 11.5

Quantité disponible 120 1440 3570

1. Déterminer le programme de production qui maximise le profit.

A. B. HADJ-ALOUANE 80
RECHERCHE OPERATIONNELLE 2A GI

2. Ecrire le problème dual et déterminer la solution duale optimale à partir de celle


du primal.

3. La SOFNO a la possibilité d’acquérir des quantités supplémentaires de lait. Quel


est le prix maximal à payer pour les différents types de laits ?

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:

Coût unitaire Marge unitaire Demande/mois

A1 270 30 7000

A2 210 20 10000

1. Déterminer le programme de production de profit maximal.

2. On peut augmenter la production en ayant recours à la sous-traitance, le coût


horaire est 1400, est ce que l’entreprise a intérêt à augmenter sa production ?

A. B. HADJ-ALOUANE 81
RECHERCHE OPERATIONNELLE 2A GI

TRAVAUX PRATIQUES

Utilisation d’un Logiciel d’Optimisation

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

Nombre de Nombre de Quantité d’acier


journées sur la journées sur la (tonnes)
machine de type 1 machine de type 2
Voiture 0 .8 0.6 2
Camion 1 0.7 3

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.

Introduction du modèle dans l’environnement de LINDO/LINGO :


Puisque LINDO/LINGO permet l’utilisation de noms des variables, on va définir les
variables de décision ainsi :
Voitures: nombre de voitures fabriquées/jour
Camions: nombre de camions fabriqués/jour
Machines1: nombre de machines de type 1 louées/jour.

On peut alors créer un fichier modèle (par exemple : Carco.lg4) en saisissant le


programme linéaire Carco de comme suit :

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

Partie 2 : Résolution du modèle

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.

3. Analyse des Résultats


Les résultats de la résolution ainsi que le rapport de la sensibilité de l’optimum aux

variations des données des problèmes permettent de répondre à plusieurs questions,

telles que :

1. Si la contribution d’une voiture au profit de Carco devient 310 D, quelle sera


la nouvelle solution optimale du problème.

2. Quel est le maximum que Carco doit payer pour une autre tonne d’acier ?

3. Si Carco devrait produire au moins 86 voitures, que deviendra son profit ?

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.

7.2 Les principes de Branch-and-Bound (B&B)

Considérons le programme suivant :


Max f(x)
x∈D

avec f(x) une fonction réelle quelconque de x ∈ ℜn,


et D le domaine des solutions réalisables D ⊂ ℜn.

Branching (séparation)

Le premier principe d’une procédure d’exploration par B&B est d’explorer


l’ensemble des solutions réalisables D en le divisant en des sous-ensembles de plus
en plus petits de façon à isoler une solution optimale dans l’un de ces sous-
ensembles.

Soit fi* la valeur de la solution optimale sur le sous-ensemble Di de D, et f* la valeur


de la solution optimale sur l’ensemble D. Alors f* = max i fi*

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.

Pour représenter cette exploration, on construit une arborescence dont le sommet


de base correspond à l’ensemble D des solutions réalisables et dont les autres
sommets (appelés également nœuds) correspondent à des sous-ensembles, Di, de D.

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

Figure 7.2 : Représentation arborescente de l’exploration

Définition : Une arborescence (ou Branch-and-Bound tree) est un graphe orienté


dont les nœuds correspondent aux sous-problèmes crées par la procédure de
« branching ».

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

L’intérêt principal de cette évaluation par défaut est le suivant :


- si nous connaissons une solution réalisable du problème (⎯x ∈ D), et
- si ev(Di) ≤ f(⎯x)
-
il n’existe pas alors de solution meilleure dans le sous-ensemble Di.
Cela est évident car ∀ x ∈ Di, on a : f(x) ≤ ev(Di) ≤ f(⎯x)
On n’a donc plus besoin de continuer l’exploration de la branche correspondant au
sous-ensemble Di : la branche a été parcourue implicitement. C’est ″l’évaluation″ ou
encore le ″Bounding″.

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.

7.2.1. Evaluation par Défaut


Pour chaque sous-problème, on doit chercher une ″bonne″ évaluation par défaut.
Pour cela diverses techniques peuvent être utilisées mais la plus simple reste la
relaxation linéaire du problème considéré (c-à-d la version du problème où les
contraintes d’intégrité sont ignorées ou relâchées). En effet, la valeur de la solution
optimale du programme linéaire relaxé représente une borne supérieure (un
majorant si la solution est entière) de f(x) sur le sous-ensemble correspondant.
Soit⎯P la relaxation linéaire de P et⎯f* la valeur optimale de fonction objectif de ⎯P.
On a alors (pour un problème de max) :

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

7.2.2. Règles de Séparation


Un ensemble Di peut être séparé en plusieurs sous-ensembles Di1, Di2, …, Dip tels que
Di = Di1 ∪ Di2 ∪ …∪ Dip. Le plus souvent, l’ensemble Di est séparé en deux sous-
ensembles disjoints : Di = Di1 ∪ Di2, Di1 ∩ Di2 = ∅

Algorithme de Dakin ⇒ création de nouvelles branches par ajout de contraintes de


bornes : xj ≤ ni où ni est un entier.
En effet, supposons que la résolution du programme linéaire relaxé donne pour x1 =
13/3. On peut créer deux sous-problèmes de façon à avoir :

x1 ≤ 4 : sous-problème 1

x1 ≥ 5 : sous-problème 2

7.2.3. Déplacement Dans L’arborescence


On distingue essentiellement deux règles de déplacement dans l’arborescence,
engendrant des procédures de séparation et d’évaluation différentes :

- Procédures de séparation et d’évaluation progressive (S.E.P) : elle consiste à


prendre parmi les noeuds non encore étudiés, celui d’évaluation maximale.
Cela revient à faire une exploration en ″largeur d’abord″ (ou ″breadth-first
search″). Elles sont en général assez lourdes mais restent intéressantes
lorsque le problème est peu contraint et que l’on sait trouver de bonnes
solutions réalisables.
-
- Procédure de séparation et évaluation séquentielle (S.E.S) : elle consiste à
prendre parmi les noeuds non encore étudiés, le plus proche du dernier noeud
séparé. Cela revient à faire une exploration en ″profondeur d’abord″ (ou
″depth-first search″ ou ″backtracking″ ou LIFO). Cette méthode permet
d’économiser en espace de stockage et elle est particulièrement intéressante
lorsqu’il est difficile de trouver une solution réalisable.

7.3 Branch-and-Bound basé sur la Programmation Linéaire


7.3.1 Définitions
Considérons le programme linéaire en nombres entiers suivant :

Max cx
(P) sc Ax ≤ b
x ≥ 0, x entier

avec A une matrice (m x n)

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.

Remarque : si la résolution d’un sous-problème relaxé conduit à une solution


entière de valeur meilleure que celle trouvée jusque là, le nœud correspondant est
aussi coupé. La meilleure solution entière sauvegardée est alors mise à jour.

* Un nœud qui n’a pas été examiné ou qui n’a pas été coupé est dit ″pendant″ ou
encore ″dangling node″.

7.3.1 L’algorithme de DAKIN (pour un problème de maximisation)

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}.

Etape 1 : Initialisation : z* = -∞ ou la valeur d’une borne inférieure de la fonction


objectif (fournie, par exemple, par n’importe quelle solution réalisable).

Résoudre ⎯P (relaxation du problème initial):


- si le problème est non réalisable, (P) est aussi non réalisable. Stop.
- si la solution optimale x* est entière, alors x* est aussi la solution
optimale de (P). Stop.
- sinon, S = ∅ (P ⇔ P0∅) Aller à l’étape 2.
Etape 2 :
Séparation : A partir de la solution optimale de ⎯PiS, choisir xk une variable
dont la valeur, ⎯xk, est non entière et ajouter les contraintes suivantes pour
obtenir 2 nouveaux sous-problèmes :
xk ≤ ⎣⎯xk⎦ (partie entière) S ← S∪{ xk} et i = 1
xk ≥ ⎣⎯xk⎦ + 1 S ← S∪{ xk} et i = 2

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.

c. sinon, le nœud reste pendant.

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.

b. S’il y a encore des nœuds pendants, aller à l’étape 4.

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

z* = 14 pour x = (2 ; 2) z = 15 pour x = (3 ; 1,5)


x2 ≤ 1 x2 ≥ 2

z = 14,5 pour x = (3,5 ; 1) non réalisable


x1 ≤ 3 x1 ≥ 4

z = 13 pour x = (3 ; 1) z = 14 pour x = (4 ; 0,5)

Figure 7.3 : Arborescence du B&B

Par exemple, le premier sous problème :


Max z = 3 x1 + 4 x2
S.c. x1 + x2 ≤ 4,5
x2 ≤ 2
x1 ≤ 2
x1, x2 ≥ 0 et x1, x2 entiers.

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

Mise à jour de la ligne de s3 (L3 ← L3-L1):

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

D (2 ;2) B (2.5 ;2)


x2=2
A (0 ; 2) F (3 ;1.5)
I (3.5 ;1) x2=1
HH(3 ;1)
J(4 ; 0.5)

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

(GHIC) non réalisable


I (3,5 ; 1)
x1 ≤ 3 x1 ≥ 4

[GH] (KJC)
G (3 ; 1) J(4 ; 0,5)

Figure 7.4 : Arborescence du B&B relative à la représentation graphique

7.3.2 Résolution des programmes linéaires mixtes par la méthode de B&B

Pour la résolution des programmes linéaires mixtes, on utilise l’algorithme de Dakin


en séparant sur les variables entières uniquement.

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 z* = 3.5

Solution Candidate

A. B. HADJ-ALOUANE 93
RECHERCHE OPERATIONNELLE 2A GI

Série N°6

Branch-and-Bound

Exercice n° 1.

Utiliser Branch-and-Bound, graphiquement, pour résoudre le problème suivant :

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.

Une compagnie fabrique des composants électroniques de types A , B et C qui


peuvent être vendus en des quantités non limitées, pour 10D, 56D et 100D,
respectivement. La fabrication d’une unité de A nécessite 1 heure de main d’œuvre;
une unité de B nécessite, 2 heures de main d’œuvre plus 2 unités de A ; une unité de
C, 3 heures de main d’œuvre et 1 unité de B. Evidemment, les quantités du produit
A utilisées pour fabriquer B ne peuvent pas être vendues. De même pour les
quantités du produit B utilisées pour fabriquer C. La compagnie dispose de 40 heures
de main d’œuvre.

Formuler et résoudre le PLE qui permet de maximiser les revenus de la compagnie.

A. B. HADJ-ALOUANE 94
RECHERCHE OPERATIONNELLE 2A GI

REFERENCES

• M.S. Bazaraa, J. J. Jarvis and H. D. Sherali, 1990. Linear Programming


and Network Flows, Wiley.
• I. Charon, A. Germa et O. Hudry, 1996. Méthodes d’Optimisation
Combinatoire, Masson, Paris.
• F. S. Hillier and G. J. Lieberman, 1980. Introduction to Operations
Research, Third edition, Holden Day.
• K. G. Murty, 1995. Operations Research: Deterministic Optimization
Models, Prentice Hall.
• K. G. Murty, 1983. Linear Programming, Wiley.
• K. G. Murty, 1992. Network Programming, Prentice Hall.
• Roseaux (collectif d’auteurs), 1986. Exercices et Problèmes Résolus de
Recherche Opérationnelle, T1 : Graphes, T3 : Programmation Linéaire,
Masson.
• W. L. Winston, 1997. Operations Research Applications and Algorithms,
third edition, Dixbury Press.

A. B. HADJ-ALOUANE 95

You might also like