Académique Documents
Professionnel Documents
Culture Documents
2016-2017
Plan du cours
Partie I : Programmation Linéaire
1. Introduction à la programmation linéaire.
2. Théorie de la programmation linéaire.
3. Algorithme primal du simplexe à une ou deux phases.
4. Dualité en PL.
5. Etude de sensibilité et techniques de post-optimisation.
Partie II: Théorie des graphes
1. Eléments de la théorie des graphes.
2. Problèmes d’arbre couvrant de poids minimum et de plus court
chemin.
3. Problème d’ordonnancement et de gestion de projet.
2016-2017
1
Introduction à la RO
2016-2017
Introduction à la RO
Méthodologie de la RO
Résultat non
optimal
2016-2017
2
Objectif du module:
La programmation linéaire (PL) est un des domaines les plus utilisés de la RO.
La (PL) permet de traiter un vaste ensemble de problèmes d’optimisation dans
des contextes divers comme: la gestion de stocks, flux de transport, distribution de
tâches à des personnels, recherche de plans de fabrication etc. . . La modélisation de
ces problèmes débouche sur des équations ou inéquations linéaires (exprimant les
différentes contraintes) dont on cherche les solutions permettant d’optimiser une
fonction économique elle-même linéaire.
N.B: 1. De plus on supposera que les variables considérées sont astreintes à être
positives (contraintes de positivité).
2. On appelle une telle formulation un programme linéaire (PL).
2016-2017
2016-2017
3
Chapitre 1: Introduction à la PL
Exemple: Une compagnie est spécialisée dans la production de deux types de
produits : des climatiseurs et des ventilateurs. Le tableau suivant donne les
informations nécessaires à la fabrication d’une unité de chacun de ces produits,
ainsi que le profit généré par la production d’une unité de ce produit. Le tableau
nous donne aussi le nombre total d’heures machines et d’heures main d’œuvre
disponibles.
Heures machine Main d’œuvre Profit
Climatiseur 2 h/unité 3 h/unité 25 DT/unité
Ventilateur 2 h/unité 1 h/unité 15 DT/unité
Total disponible 240 h 140 h
Objectif : Maximiser le profit
2016-2017
Chapitre 1: Introduction à la PL
Formulation du programme linéaire
a Variables de décision :
Les variables de décision doivent complètement décrire les décisions à prendre.
x1 = nombre de climatiseurs
x2 = nombre de ventilateurs
2016-2017
4
Chapitre 1: Introduction à la PL
c. Contraintes du modèle:
- Contraintes heure machine: 2x1 + 2x2 ≤ 240
- Contrainte main d’œuvre: 3x1 + x2 ≤ 140
- Contraintes de non-négativité: x1 ≥ 0, x2 ≥ 0
Chapitre 1: Introduction à la PL
Terminologie
Les variables x1, x2.,..xn sont appelées variables de décision du problème.
f0 est une fonctions à optimiser appelée fonction objectif ou fonction
coût: Max (ou Min): f0(x1, x2, …, xn)=f0(x), où: x= (x1, .., xn)
Les contraintes prennent la forme d’équations et d’inéquations.
f1(x1, x2, …, xn)b1
Sous-contraintes (s/c) :
fk(x1, x2, …, xn) bk
:
f m(x1, x2, …, xn) = bm
5
Chapitre 1: Introduction à la PL
Terminologie
Une solution est une affectation de valeurs aux variables du problème.
Une solution est admissible si elle satisfait toutes les contraintes du
problème.
La valeur d’une solution est la valeur de la fonction objectif dans cette
solution.
Le domaine admissible D d’un PL est l’ensemble des solutions
admissibles du problème.
La solution optimale d’un PL (si elle existe) est formée des valeurs
optimales des variables du problème et de la valeur associée de la
fonction objectif.
2016-2017
Chapitre 1: Introduction à la PL
Méthode de la résolution d’un PL
Deux méthodes sont utilisées dans la littérature:
1.Résolution par la méthode graphique (résolution graphique)
2. Résolution par la méthode du simplexe
Résultat d’une optimisation linéaire:
Le domaine admissible d’un PL peut être:
1. Vide: Dans ce cas le problème est sans solution admissible, et ainsi ne
possède pas de solution optimale.
2. Borné et non vide: Le problème possède toujours au moins une
solution optimale , quelle que soit la fonction objectif.
2016-2017
6
Chapitre 1: Introduction à la PL
2016-2017
Chapitre 1: Introduction à la PL
Application 1: Max Z = 25 x1 + 15 x2
2x1 + 2x2 ≤ 240
s/c: 3x1 + x2 ≤ 140
x1 ≥ 0, x2 ≥ 0
1ère étape :Déterminer les solutions admissibles
x2
140 3 x1 x2 140
120
2 x1 2 x2 240
120 x1
Domaine admissible 140/3
2016-2017
7
Chapitre 1: Introduction à la PL
25 x1 15 x2 Z
opt
25 x1 15 x2 Z 2
x1
25 x1 15 x2 Z1
2016-2017
Chapitre 1: Introduction à la PL
3ème étape : Déduire la solution optimale
{B} = D1 ∩ D2,
x2
Solution optimale
où: D1: 2x1 + 2x2 = 240
D2: 3x1 + x2 = 140
B
3 x1 x2 140
Donc: La solution optimale est donnée
par: x*1=10, x*2=110 et Z*opt=1900
25 x1 15 x2 Z opt
x1
2 x1 2 x2 240
2016-2017
8
Chapitre 1: Introduction à la PL
Résolution par la méthode graphique:
1. Représenter les lignes de niveau de la fonction objectif: sont des droites
parallèles dans IR2.
2. Il existe des solutions admissibles si la ligne de niveau associée à cette
valeur appartient au domaine admissible D du problème.
3. Pour déterminer la valeur maximale atteignable par une solution
admissible, il suffit de faire glisser le plus loin possible une ligne de
niveau de la fonction objectif, dans le sens du gradient jusqu’à ce que
qu’elle touche encore tout juste D.
4. Les points de contact ainsi obtenus correspondants aux solutions
optimales du PL.
2016-2017
Chapitre 1: Introduction à la PL
Application 2:
Impossible d’afficher l’image.
PL non borné
x1 2 x2 Z 2
Max Z = x1 + 2x2
7x1+2x2 ≥ 28
s/c: x1 + 6x2 ≥ 12
x1 ≥ 0, x2 ≥ 0
Domaine admissible
x1 6 x2 12
2016-2017
9
Chapitre 1: Introduction à la PL
Application 3:
PL a une infinité de solutions optimales
Domaine admissible
Max Z = x1 + 3x2
2x1+6x2 ≤ 30 (1)
s/c: x1 ≤ 10 (2) (3)
x2 ≤ 4 (3) (1)
x1 ≥ 0, x2 ≥ 0 (2)
Z=Zopt
Z=Z1
L’ensemble des solutions optimales est un segment Z=0
2016-2017
Chapitre 1: Introduction à la PL
Application 4:
PL non réalisable
(1)
Domaine réalisable vide donc PL non réalisable
2016-2017
10
Chapitre 1: Introduction à la PL
PL sous sa forme standard
Un PL est sous sa forme standard si:
toutes les contraintes sont des égalités
toutes les variables sont non négatives ( xi ≥ 0)
le second membre est non négatif (i.e bi ≥ 0).
Chapitre 1: Introduction à la PL
PL sous sa forme canonique
Un PL est sous sa forme canonique si:
toutes les contraintes sont des inégalités ()
toutes les variables sont non négatives ( xi ≥ 0)
le second membre est non négatif (i.e bi ≥ 0).
11
Chapitre 1: Introduction à la PL
Règles de transformation
Minimisation Maximisation:
Chapitre 1: Introduction à la PL
Règles de transformation
Inéquation équation: On ajoute une variable d’écart (de
surplus) Ax b Ax s b , s 0
Ax b Ax s b , s 0
x x x
x IR
x ,x 0
2016-2017
12
Chapitre 1: Introduction à la PL
Exemple: Mise sous forme standard
Max Z = 25 x1 + 15 x2 Max Z = 25 x1 + 15 x2
s.c. x1 - 2x2 +4x3≤ 12 s.c. x1 - 2x2 +4x3+ s1=12
-x1 + 4x2 +x3≥ 4 -x1 + 4x2 +x3-s2 =4
3x1 + x2 +x3≥ 2 3x1 + x2 +x3-s3= 2
x1, x2, x3 ≥ 0 x1, x2 , x3 , s1, s2, s3 ≥ 0
On note: Max Z = 25 x1 + 15 x2
s.c. x1 - 2x2 +4x3+ x4=12
x1,..x3: variables directes
-x1 + 4x2 +x3-x5 =4
3x1 + x2 +x3-x6=2 X4,…x6: variables d’écarts
x1,x2 … x6 ≥ 0
2016-2017
2016-2017 26
13
Chapitre 2: Algorithme du Simplexe
2016-2017 28
14
Chapitre 2: Algorithme du Simplexe
x
( B | H ) x ( B | H ) B b ;
xH
1 1
B (B | H )x B b x B B 1 Hx H B 1b
nm
x H IR , x B B 1 b B 1 Hx H
2016-2017 29
Max Z c B B 1b c x H
Sc : x B B 1 b B 1 Hx H
xB 0, xH 0
2016-2017 30
15
Chapitre 2: Algorithme du Simplexe
Définitions:
i.x* est dite solution de base ou solution basique si elle vérifie Ax* = b, et x* s’écrit:
x B 1b
x * B
xH 0
i. Si en plus xB 0 alors x* est une solution de base réalisable.
ii. x* est dite solution réalisable si elle vérifie les contraintes: Ax* = b et x* 0.
iii. Les colonnes formant B sont dites basiques les autres hors bases.
iv. Les variables associées aux colonnes de B sont dites basiques les autres variables
hors base.
v. On appelle base la liste ordonnée des variables basiques cette liste est notée B.
2016-2017 31
Exemple
0 1 2 2 1 1 2
A ; b B , B 2,4
1 1 2 3 1 1 3
x x
x H 1 x B 2
x3 x4
1 0
x B B 1 b ; x H
0
0
2016-2017 32
16
Chapitre 2: Algorithme du Simplexe
a . a1n 1 0 . . 0
La matrice a
11
rang plein. . . . . . . . .
. . . 0 0 . 1
a . a mn 0 0
m1 . 1
Max Z c B B 1b c x H
Sc : x B B 1 b B 1 Hx H
xB 0, xH 0
xB 0, xH 0
2016-2017 34
17
Chapitre 2: Algorithme du Simplexe
Algorithme
PLS initial
Sommet de départ
Augmenter une des variable hors base jusqu’à une des
contraintes de non négativité n’est plus satisfaite
Oui
Z optimal Fin
Non
Un nouveau Sommet
Pivotage
2016-2017 36
18
Chapitre 2: Algorithme du Simplexe
Tableau
19
Chapitre 2: Algorithme du Simplexe
Exemple
x1 x2 x3 x4 x5 x6 Z b
1 -2 4 1 0 0 0 12
-1 4 1 0 1 0 0 4
3 1 1 0 0 1 0 2
-2 -5 -3 0 0 0 1 0
2016-2017 39
Questions :
1. Quelle est la variable entrante à la base?
2. Quelle est la variable sortante de la base?
Réponses :
1. On choisit parmi les variables hors base celle, ayant le taux d’augmentation
maximal de z(x).
Dans le tableau:
-Si tous les cœfficients de la fonction coût (dernière ligne) sont strictement
positifs, l’optimum est atteint.
- si non la variable entrante est celle qui correspond au cœfficients le plus
petit, il faut qu’au moins un des cœfficients de Z (-cD) soit negatif.
2. En augmentant la variable entrante à partir de zéro, la variable sortante est
celle qui s’annule la première parmi les variables de base
2016-2017 40
20
Chapitre 2: Algorithme du Simplexe
Exemple
x1 x2 x3 x4 x5 x6 Z b
1 -2 4 1 0 0 0 12
-1 4 1 0 1 0 0 4
3 1 1 0 0 1 0 2
-2 -5 -3 0 0 0 1 0
Règle:
2016-2017 42
21
Chapitre 2: Algorithme du Simplexe
Matrice de pivotage
a
1e
. 0 0
am 1, j C j
a ke
0 1 . Cœfficients de la fonction coût
. .
1
. .
0 0
a ke
. 1 0
a m 1, e
0 0 0 1 Colonne e Colonne s
a ke
Colonne e Colonne s
a1e
. .
Colonne k . . a1e . . 0 . . . . 0 . . a ke
. . . .
. . . . . 0 . .
. 0 . .
. 1
Ligne k . a ke . . 1 . . . . 1 . . . .
a ke
. . . . . . . . . . . . . . . .
.
. . a m 1, e . . 0 . . . 0 . .
a m 1,e
. .
a ke
2016-2017 43
2016-2017 44
22
Chapitre 2: Algorithme du Simplexe
Pivotage: Passage d’un tableau à un autre
1 0 0 0 x1 x2 x3 x4 x5 Z b
0 1 -1 0 1 0 1 0 0 0 4
0 0 1/2 0 3 2 0 1 0 0 18
0 0 5/2 1 0 2 0 0 1 0 12
-3 -5 0 0 0 1 0
Point B sur le graphe
x1 x2 x3 x4 x5 Z b
B=(2,3,4)
1 0 1 0 0 0 4
3 0 0 1 -1 0 6
X=(0,6,4,6,0)
0 1 0 0 1/2 0 6
-3 0 0 0 5/2 1 30
2016-2017 45
0 1/3 0 0 1 0 1 0 0 0 4
0 0 1 0 3 0 0 1 -1 0 6
0 1 0 1 0 1 0 0 1/2 0 6
-3 0 0 0 5/2 1 30
Point C sur le graphe
x1 x2 x3 x4 x5 Z b
0 0 1 -1/3 1/3 0 2 B=(1,2,3)
1 0 0 1/3 -1/3 0 2
X=(2,6,2,0,0)
0 1 0 0 1/2 0 6
0 0 0 1 3/2 1 36
2016-2017 46
23
Chapitre 2: Algorithme du Simplexe
Pivotage: Passage d’un tableau à un autre
Étapes de chaque itération de l’algorithme du simplexe
Avec n nombre de variables et m nombre de contraintes (≤):
1. Construire le tableau initial T de dimension (m+1)x(n+m+2).
2. Déterminer la variable entrante et la variable sortante.
3. Déterminer la matrice de pivotage P de dimension (m+1)x(m+1).
4. Calculer P.T; T(m+1,m+n+2) est la nouvelle valeur de la fonction
coût.
5. Déterminer les nouvelles valeurs des variables xi, i=1,…,n+m. b
pour les variables de base et 0 pour les variables hors base.
6. s’arrêter si T(m+1,1:n+m) ≥ 0, si non aller dans 2.
2016-2017 47
24
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases
On introduit encore des variables dites artificielles à chaque contrainte
‘‘ et à chaque contrainte ‘=’, on obtient alors :
Max z = 4x1 + 3x2
s.c. 2x1 –x2 –x3 +a1= 15
x1 + x2 +a2= 10
2x1 – x2 + x4= 20
x1, x2, x3, x4 , a1, a2 0
La phase I consiste à résoudre
min z’ = a1 + a2
s.c. 2x1 –x2 –x3 +a1= 15
x1 + x2 +a2= 10
2x1 – x2 + x4= 20
x1, x2, x3, x4 , a1, a2 0
2016-2017 49
Les variables de bases sont x4, a1 et a2, mais pour démarrer avec la
phase I de simplexe les coefficients de la fonction coût correspondant
à a1 et a2 doivent s’annuler. Ceci revient à multiplier à gauche par le
tableau ci-dessus; on obtient:
2016-2017 50
25
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases (Phase I)
x1 x2 x3 x4 a1 a2 Z’ b
1/2 0 0 0
-1/2
2 -1 -1 0 1 0 0 15
1 0 0
1 1 0 0 0 1 0 10
-1 0 1 0
3/2 0 0 1 2 -1 0 1 0 0 0 20
-3 0 1 0 0 0 1 -25
x1 x2 x3 x4 a1 a2 Z’ b
1 1/3 0 0
0 2/3 0 0 1 -1/2 -1/2 0 1/2 0 0 15/2
x1 x2 x3 x4 a1 a2 Z’ b
1 0 -1/3 0 1/3 1/3 0 25/3
0 1 1/3 0 -1/3 2/3 0 5/3
0 0 1 1 -1 0 0 5
0 0 0 0 1 1 1 0
2016-2017 52
26
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases (Phase II)
x1 x2 x3 x4 z b
1 0 0 0
1 0 -1/3 0 0 25/3
0 1 0 0
0 1 1/3 0 0 5/3
0 0 1 0
4 3 0 1 0 0 1 1 0 5
-4 -3 0 0 1 0
1 0 1/3 0 x1 x2 x3 x4 z b
0 1 -1/3 0 1 0 -1/3 0 0 25/3
0 0 1 0 0 1 1/3 0 0 5/3
0 0 1/3 1 0 0 1 1 0 5
0 0 -1/3 0 1 115/3 53
x1 x2 x3 x4 z b
1 0 0 1/3 0 25/3
0 1 0 -1/3 0 0
0 0 1 1 0 5
0 0 0 1/3 1 40
2016-2017 54
27
Chapitre 2: Algorithme du Simplexe
Simplexe à deux phases
28