Académique Documents
Professionnel Documents
Culture Documents
Dr Olivier ADOUKONOU
IAE La Rochelle
La Rochelle Université
Septembre 2019
Objectifs du cours
Objectifs principaux :
Résoudre différents problèmes d’optimisation sous contraintes
Connaître les rudiments de la théorie des graphes
Organiser un planning d’exécution des tâches d’un projet
Programme du cours
4 Chapitres :
1 Programmation linéaire
2 Problèmes de transport
3 Introduction à la théorie des graphes
4 Ordonnancement de tâches
Volume horaire
30 heures :
Documentation
1 Programmation linéaire
Introduction
Présentation du problème
Modélisation du problème
Résolution graphique
Résolution par l’algorithme du simplexe
Le programme dual
3 Problèmes de transport
4 Ordonnancement de tâches
Objectifs
La programmation linéaire
Programmation linéaire
La programmation linéaire est une méthode d’optimisation d’une fonction linéaire sous
contraintes.
Cas :
Une entreprise utilise deux matières premières (M1 et M2 ) pour produire deux produits
(P1 et P2 ).
Le bénéfice est de 200 e par unité de P1 et de 150 e par unité de P2 .
Les quantités à produire dépendent de la disponibilité des matières premières. Le tableau
ci-dessous indique les quantités de matières premières en stock et les proportions requises
pour produire une unité de P1 et P2 .
P1 P2 Qtés disponibles
M1 2 1 80
M2 1 1 60
Problème : Quelles sont les quantités à produire pour maximiser le bénéfice ?
Trois étapes :
Avec
zi : la marge ou le coût d’une unité de Xi
2x1 + x2 ≤ 80
x1 + x2 ≤ 60
x1 ≥ 0
x2 ≥ 0
Résolution du problème
Résolution graphique :
simple à mettre en œuvre
valable pour des programmes à deux variables uniquement
Résolution graphique
Mise en œuvre :
Résolution graphique
Les contraintes :
2x1 + x2 ≤ 80
x1 + x2 ≤ 60
Ces contraintes sont représentées par deux droites D1 et D2 dont les équations sont :
2x1 + x2 = 80 (D1 )
x1 + x2 = 60 (D2 )
Solution graphique
2x1 + x2 ≤ 80
x1 + x2 ≤ 60
1, 5x1 + x2 ≤ 65
2x1 + x2 = 80 (D1 )
x1 + x2 = 60 (D2 )
1, 5x1 + x2 = 65 (D3 )
La méthode du simplexe :
algorithme permettant de résoudre un programme linéaire
utile lorsque le nombre de variables est supérieur à 2
Les contraintes :
a11 x1 + a21 x2 + ... + an1 xn + e1 = C1
a12 x1 + a22 x2 + ... + an2 xn + e2 = C2
a1n x1 + a2n x2 + ... + ann xn + en = Cn
On ajoutera les contraintes de non-négativité :
xi , ei ≥ 0
la ligne pivot :
I ligne de la variable où (C /Colonne pivot) est minimale
j
I cette variable sort de la base
pour la variable entrant dans la base : diviser les cellules de la ligne pivot par le pivot
pour les autres lignes : un calcul combinant les cellules de la ligne pivot et permettant
d’obtenir des valeurs nulles dans la colonne pivot
4 Identification de l’optimum :
On répète les opérations exposées à l’étape 3
l’optimum est atteint lorsque toutes les valeurs de la ligne "Marge/coût" sont négatives
ou nulles
le maximum/minimum est directement lu dans la dernière cellule du dernier tableau
les valeurs permettant d’atteindre cet optimum sont lues dans la dernière colonne (Li-
mites)
Les contraintes :
2x1 + x2 + e1 = 80
x1 + x2 + e2 = 60
x1 et x2 ≥ 0
e1 et e2 ≥ 0
Le tableau initial :
Écarts x1 x2 e1 e2 Limites C1 /Colonne Pivot
e1 2 1 1 0 80 80/2 = 40
e2 1 1 0 1 60 60/1 = 60
Marge 200 150 0 0 0 -
Colonne pivot : colonne x1 (marge est la plus élevée pour P1 ), x1 entre dans la base
Ligne pivot : Ci /Colonne pivot est la plus faible pour e1 qui sort de la base
Pivot : 2 (intersection de la ligne pivot et de la colonne pivot)
D’après le tableau initial : x1 entre dans la base et e1 sort de la base. On doit donc
retrouver dans le tableau 2, x1 et e2 dans la colonne "Écarts".
Les opérations sont les suivantes :
Pour x1 : on divise l’ancienne ligne pivot e1 par le pivot (2)
Pour e2 , l’opération est e2 − 0, 5 × e1
Pour la marge , l’opération est (Marge − 100 × e1 )
Tableau 2
Écarts x1 x2 e1 e2 Limites C1 /Colonne Pivot
x1 1 0,5 0,5 0 40 40/0, 5 = 80
e2 0 0,5 -0,5 1 20 20/0, 5 = 40
Marge 0 50 -100 0 −8 000 -
Colonne pivot : colonne x2 (marge est la plus élevée pour P2 ), x2 entre dans la base
Ligne pivot : Ci /Colonne pivot est la plus faible pour e2 qui sort de la base
Pivot : 0,5 (intersection de la ligne pivot et de la colonne pivot)
D’après le tableau 2 : x2 entre dans la base et e2 sort de la base. On doit donc retrouver
dans le tableau 3, x1 et x2 dans la colonne "Écarts".
Les opérations sont les suivantes :
Pour x2 : on divise l’ancienne ligne pivot e2 par le pivot (0,5)
Pour x1 , l’opération est x1 − e2
Pour la marge , l’opération est (Marge − 100 × e2 )
Tableau 3
Écarts x1 x2 e1 e2 Limites
x1 1 0 1 -1 20
x2 0 1 -1 2 40
Marge 0 0 -50 -100 −10 000
On remarque que toutes les valeurs des cellules de la dernière du tableau 3 sont négatives
ou nulles. L’optimum est atteint pour x1 = 20 et x2 = 40, quantités qui maximisent le
bénéfice (Z = 10 000)
Application 1 :
L’entreprise Oméga produit et vend trois tables de bureau : Tb1, Tb2 et Tb3 fabriquées
par deux employés Jean et Paul.
Jean ne peut travailler que 200 heures par mois alors que Paul peut fournir 300 heures
de travail mensuel.
Les marges unitaires sont respectivement de 80 e , 60 e et 80 e pour les tables Tb1,
Tb2 et Tb3.
Tb1 nécessite 4 heures de travail de Jean et 5 heures de Paul
Tb2 nécessite 2 heures de travail de Jean et 4 heures de Paul
Tb3 nécessite 6 heures de travail de Jean et 2 heures de Paul
Quelles quantités de tables Tb1, Tb2 et Tb3 Oméga doit-elle produire pour maximiser
sa marge ?