Vous êtes sur la page 1sur 50

10/10/2019

PROGRAMMATION LINÉAIRE

Université de Ghardaïa
Faculté des sciences et de la technologie
Département de Mathématiques et d'Informatique
P ro g r a m m a t i o n l i n é a i re L 3

Introduction
• Les prises de décision concernant une action donnée deviennent l’objet de
véritables recherches qui ne peuvent être menées sans l’aide d’outils
mathématiques.

• C’est ainsi que s’est développé un domaine des mathématiques basé sur
l’activité de décision, appelé recherche opérationnelle.

• Les méthodes de recherche opérationnelle sont surtout appliquées aux


problèmes économiques et commerciaux.

1
10/10/2019

Introduction
• Ces méthodes se sont imposées auprès des dirigeants des grands
organismes économiques et industriels comme les seuls outils permettant
de prévenir aussi objectivement que possible les conséquences de leurs
actions.

• Une des parties essentielle de la recherche opérationnelle est la


programmation linéaire,

• qui étudie la maximisation ou la minimisation de fonction linéaire


soumise à des contraintes linéaires.

• Le terme programmation linéaire a été introduit, en même temps que la


méthode du simplexe.

Introduction
• L’importance de l’optimisation et la nécessité d’un outil simple pour
modéliser des problèmes de décision que soit économique, militaire ou
autres

• Ces méthodes ont fait de la programmation linéaire un des champs de


recherche les plus actifs au milieu du siècle précédent.

• Les premiers travaux (1947) sont celle de George B. Dantzig et ses


associés du département des forces de l’air des États Unis d’Amérique.

2
10/10/2019

Introduction
• Les problèmes de programmations linéaires sont généralement liés à des
problèmes d’allocations de ressources limitées, de la meilleure façon
possible, afin de maximiser un profit ou de minimiser un coût.

• Le terme meilleur fait référence à la possibilité d’avoir un ensemble de


décisions possibles qui réalisent la même satisfaction ou le même profit.

• Ces décisions sont en général le résultat d’un problème mathématique.

PROGRAMMATION LINÉAIRE
Programme :
• Rappels d’algèbre linéaire
• Introduction à la programmation linéaire
• Formulation d’un programme linéaire (PL)
• Interprétation géométrique et résolution graphique des programmes linéaires
• Méthode du simplexe
• Problèmes de minimisation et problèmes irréguliers
• Dualité
• Analyse de sensibilité
• Problème de transport

3
10/10/2019

Recherche opérationnelle
Définition
• Ensemble de méthodes (algorithmiques, mathématiques, modélisation)
• aide à prendre des décisions optimales ou proches de l’optimum dans des
problèmes complexes, qui traitent de la maximisation d’un profit ou la
minimisation d’un coût.

Exemple:
• Comment aller le plus vite de Ghardaïa à Annaba, en voiture ?
• Comment ordonnancer les tâches d’un projet en fonction de la main
d’œuvre, tout en minimisant sa durée ?
• Comment investir ses 1000 euros d’économie de sorte à maximiser le profit
obtenu après deux ans ?

Des problèmes de RO que vous savez résoudre


• Trouver un (plus court) chemin entre deux villes
 plus courts chemins dans les graphes
• Broadcast de coût minimum dans un réseau
 arbres recouvrant de poids minimum.
• Envoi d’un maximum d’information dans un réseau
 problème du flot maximum.
Programmation linéaire
• La programmation linéaire est une branche de l'optimisation permettant de
résoudre de nombreux problèmes économiques et industriels.
• Les problèmes de programmation linéaire (PL) sont des problèmes
d’optimisation où la fonction objective et les contraintes sont toutes linéaires.
Modélisation d’un problème réel
• Si l’on constate que ce problème s’exprime comme un PL, le résoudre

4
10/10/2019

Objectif d’un cours sur la programmation linéaire:

• apprendre à modéliser les problèmes réels et à résoudre les programmes


linéaires.
• De nombreux problèmes réels peuvent être exprimés comme des
programmes linéaires.
• Les programmes linéaires peuvent être résolus efficacement par certains
algorithmes.

Exemples de Problèmes PL:

1- La Cafétéria :

• Cafétéria ouverte toute la semaine.


• Statistique sur le personnel requis :

Jour Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche


Nombre 14 13 15 16 19 18 11

• Un employé travaille 5 jour d’affilée puis a 2 jours de repos.


• Problème : nombre minimal d’employé requis.

10

5
10/10/2019

Exemples de Problèmes PL:

• Quelles inconnues :
 xi le nombre d’employés le jour i. Pas pratique : comment
définir le nombre d’employés ?
 xi le nombre d’employés qui commencent le jour i.

Modèle :

• est le nombre d’employés à minimiser : fonction objectif

11

Exemples de Problèmes PL:

Les contraintes :
i. Le nombre de travailleurs commençant leur service est positif ou
nul : xi ≥ 0 i = 1, . . . , 7
ii. Les xi sont des entiers.
iii.Pour chaque jour le nombre de travailleur est supérieur ou égal
à celui requis. Le jour i, le nombre de travailleurs est (en
comptant modulo 7) : xi + xi−1 + . . . + xi−4

12

6
10/10/2019

Exemples de Problèmes PL:

• D’où:
x1 + x7 + x6 + x5 + x4 ≥ 14
x2 + x1 + x7 + x6 + x5 ≥ 13
x3 + x2 + x1 + x7 + x6 ≥ 15
x4 + x3 + x2 + x1 + x7 ≥ 16
x5 + x4 + x3 + x2 + x1 ≥ 19
x6 + x5 + x4 + x3 + x2 ≥ 18
x7 + x6 + x5 + x4 + x3 ≥ 11
• Ce problème est un problème de programmation linéaire en nombre entiers
• Le problème peut se mettre sous la forme :
Max z = c.x
A.x ≤ b
x≥0

13

Exemples de Problèmes PL:

2- L'artisan chocolatier:

• un artisan chocolatier veut confectionner des œufs en chocolat.


• En allant inspecter ses réserves, il constate qu'il lui reste 18 kg de cacao, 8 kg
de noisettes et 14 kg de lait.
• Il a deux spécialités : l'œuf Extra et l'œuf Sublime.
o Un œuf Extra nécessite 1 kg de cacao, 1 kg de noisettes et 2 kg de lait.
o Un œuf Sublime nécessite 3 kg de cacao, 1 kg de noisettes et 1 kg de lait.
• Il fera un profit de 20 DA. en vendant un œuf Extra, et de 30 DA. en vendant
un œuf Sublime.
• Combien d'œufs Extra et Sublime doit-il fabriquer pour faire le plus grand
bénéfice possible ?

14

7
10/10/2019

Exemples de Problèmes PL:

Formulation du problème
• Notons x1 le nombre d'œufs Extra et x2 le nombre d'œufs Sublime à produire.
• Le chocolatier cherche à maximiser la fonction objectif :
max z = 20x1 + 30x2
• Étant données les réserves du chocolatier, les contraintes suivantes devront
être satisfaites :
x1 + 3x2 ≤ 18
x1 + x2 ≤ 8
2x1 + x2 ≤ 14

• Évidemment, on a encore les deux contraintes : x1 ≥ 0 et x2 ≥0.

15

Exemples de Problèmes PL:

Résolution graphique
• Le point optimal est (3 ; 5),
ce qui signifie que x1=3 et
x2=5.
• S'il veut maximiser son
bénéfice, le chocolatier doit
donc confectionner 3 œufs
Extra et 5 œufs Sublime.
• Son bénéfice sera de 20·3 +
30·5 = 210 DA.
• Il utilisera 18 kg de cacao, 8
kg de noisettes et 11 kg de
lait.

16

8
10/10/2019

Rappels d’algèbre linéaire


Les matrices :
Un tableau rectangulaire de la forme ci-dessous est appelé matrice.

𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
𝐴= = 𝑎 , 𝑖 = 1, 𝑚 , 𝑗 = 1, 𝑛
⋮ ⋮ ⋮
𝑎 𝑎 ⋯ 𝑎

L’élément aij ∈ ℝ de la matrice se trouve à l’intersection de la ième ligne et


de la jème colonne.
Exemple :
1 3 −1
𝐴 = , est un matrice d’ordre (2 × 3).
4 0 2
5 −1 1
𝐴 = 1 0 3 , est un matrice d’ordre 3.
3 3 2
17

Matrices particulières :
Matrice unité :
La matrice unité d’ordre n (notée In) est une matrice carrée d’ordre n, dont
les termes de la diagonale principale sont aij=1, i=1, 𝑛 et tous les autres
termes aij=0, i≠j.
Exemple :
1 0 0
𝐼 = 0 1 0 , est un matrice unité d’ordre 3.
0 0 1
Matrice diagonale :
Une matrice diagonale est une matrice carrée (aij) d’ordre n telle que
aij=0, pour i≠j et aij≠0 pour au moins un indice.
Exemple :
1 0 0
𝐴 = 0 0 0 , est un matrice diagonale d’ordre 3.
0 0 3

18

9
10/10/2019

Matrice ligne :
Une matrice ligne est une matrice ayant une seule ligne.
Exemple :
𝐴 = 3 2 0 2 , est un matrice ligne d’ordre (1×4).
Matrice colonne :
Une matrice colonne est une matrice ayant une seule colonne.
Matrice triangulaire :
Une matrice triangulaire est une matrice carrée dont les éléments au-
dessous (ou au-dessus) de la diagonale principale sont tous nuls.
Exemple :
1 2 3
𝐴 = 0 4 9 est une matrice triangulaire supérieure.
0 0 2
1 0 0
𝐵 = 2 3 0 est une matrice triangulaire inférieure.
4 8 2
19

Opérations sur les matrices :


La somme :
Si A et B sont deux matrices de même ordre (m × n) alors la somme A+B est une
matrice C=A+B=(aij+bij) d’ordre (m × n).
Exemple :
2 3 1 2 3 5
Soient 𝐴 = 4 2 et 𝐵 = 0 1 , alors 𝐴 + 𝐵 = 4 3
1 0 1 4 2 4

Le produit :
Soient A=(aik) une matrice d’ordre (m × p) et B=(akj) une matrice d’ordre (p × n)
le produit des deux matrices C=AB a pour dimension (m × n) et s’écrit :
C=(cij) avec 𝑐 = ∑ 𝑎 𝑏
Ce produit n’est possible que si le nombre de colonnes de A est égal au
nombre de lignes de B.

20

10
10/10/2019

Exemple :
1 4 2
0 3 −1 3 −3 4
Soient 𝐴 = et 𝐵 = 2 −1 3 , alors 𝐴. 𝐵 =
2 1 4 16 7 27
3 0 5
Le produit B.A est impossible.

Matrice transposée :
Si dans une matrice A d’ordre (m × n) on remplace les lignes par les
colonnes respectives, on obtient une matrice A'=tA dite transposée, d’ordre
(n × m), qui vérifie les propriétés suivantes :
(At)t =A (A+B)t=At + Bt (AB)t=At Bt.

Exemple :
0 2
0 3 −1
La matrice transposée de 𝐴 = est 𝐴 = 3 1
2 1 4
−1 4

21

Déterminant d’une matrice carrée :

Déterminant d’une matrice carrée d’ordre 2 :


𝑎 𝑐 𝑎 𝑐
Soit 𝐴 = . 𝐴𝑙𝑜𝑟𝑠 det 𝐴 = = 𝑎 × 𝑑 − 𝑏 × 𝑐.
𝑏 𝑑 𝑏 𝑑

Déterminant d’une matrice carrée d’ordre 3 :


Règle de Sarrus
Cette règle n’est valable que pour des matrices carrées d’ordre 3, et n’est
absolument pas généralisable. Mieux vaut donc lui préférer la règle
générale énoncée dans le paragraphe suivant.
𝑎 𝑏 𝑐
Soit 𝑀 = 𝑎 𝑏 𝑐 . 𝑎 𝑏 𝑐
𝑎 𝑏 𝑐 𝑎 𝑏 𝑐
𝑎 𝑏 𝑐
𝑎 𝑏 𝑐
𝑎 𝑏 𝑐

det( M )= a1b2c3 + a2b3c1 + a3b1c2 – a3b2c1 - a1b3c2 – a2b1c3


22

11
10/10/2019

Généralisation, déterminant d’ordre n :


Méthode des cofacteurs :
L’astuce consiste à se ramener à des déterminants d’ordre inférieur jusqu’à
obtenir des déterminants d’ordre 2. Pour cela, on développe le déterminant
par rapport à une ligne ou une colonne.
𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
Soit ∆= un déterminant d’ordre n.
⋮ ⋮ ⋮
𝑎 𝑎 ⋯ 𝑎

∆= ∑ 𝑎 𝑋 , développement par rapport à la ligne i


∆= ∑ 𝑎 𝑋 , développement par rapport à la colonne j

Où Xij est le cofacteur de l’élément aij : Xij=(-1)i+j∆ij


∆ij est le mineur de aij c’est-à-dire le déterminant d’ordre (n-1) extrait de ∆ en
enlevant la ième ligne et la jème colonne.
23

Remarque
La répartition des signes à prendre devant les mineurs (-1)i+j , est alternée à
partir du signe + pour l’élément a11.
Par exemple, pour un déterminant d’ordre 5 :
+ − + − +
− + − + −
+ − + − +
− + − + −
+ − + − +
Application au déterminant d’ordre 3
𝑎 𝑏 𝑐
∆= 𝑎 𝑏 𝑐
𝑎 𝑏 𝑐
𝑏 𝑐 𝑏 𝑐 𝑏 𝑐
∆= 𝑎 −𝑎 +𝑎
𝑏 𝑐 𝑏 𝑐 𝑏 𝑐
∆= 𝑎 (𝑏 𝑐 − 𝑏 𝑐 ) − 𝑎 (𝑏 𝑐 − 𝑏 𝑐 ) + 𝑎 (𝑏 𝑐 − 𝑏 𝑐 )
24

12
10/10/2019

Propositions
a)
Si A a une ligne (ou une colonne) de zéros alors det(A)=0
Si A a deux lignes (ou deux colonnes) identiques alors det(A)=0
b) Si on échange deux lignes (deux colonnes) d’un déterminant alors on
obtient - det(A)
𝑎 𝑐 𝑐 𝑎
= 𝑎𝑑 − 𝑏𝑐 et 𝑑 𝑏 = 𝑏𝑐 − 𝑎𝑑 = −(𝑎𝑑 − 𝑏𝑐)
𝑏 𝑑
c) On ne modifie pas un déterminant si on ajoute à une ligne (resp. une
colonne) une combinaison linéaire des autres lignes (resp. des autres
colonnes) :
𝑎 𝑏
= 𝑎𝑑 − 𝑏𝑐
𝑐 𝑑
𝑎+𝑏 𝑏
= 𝑎 + 𝑏 𝑑 − 𝑏 𝑐 + 𝑑 = 𝑎𝑑 + 𝑏𝑑 − 𝑏𝑐 − 𝑏𝑑 = 𝑎𝑑 − 𝑏𝑐
𝑐+𝑑 𝑑

25

d) Si on multiplie une ligne (resp. une colonne) d’un déterminant par un


scalaire λ, alors le déterminant est lui-même multiplié par λ.
𝑎 𝑏
= 𝑎𝜆𝑑 − 𝑏𝜆𝑐 = 𝜆(𝑎𝑑 − 𝑏𝑐)
𝜆𝑐 𝜆𝑑
e) Si A=(aij) est une matrice triangulaire d’ordre n alors 𝐴 = ∏ 𝑎 (produit
des termes diagonaux). Il en résulte que det(I)=1.
𝑎 0 0
Exemple : 𝐴 = 0 𝑎 0 ⇒ det 𝐴 = 𝑎 𝑎 𝑎
0 0 𝑎

f) det(AB)=det(A)det(B) → det(An)=[det(A)]n
Le déterminant est une fonction multiplicative.
g) det(tA)=det(A)
h) det(𝐀 ) =
(𝐀)
i) det(λA)=λn det(A)
26

13
10/10/2019

Inversion de matrices :

Matrice adjointe
Considérons une matrice carrée A d’ordre n, la matrice des cofacteurs Xij
des éléments de aij de A notée adjA est appelée matrice adjointe de A ou
co-matrice de A.
adjA= comA=[Xij]=[(-1)i+j∆ij]
Soit A une matrice carrée quelconque d’ordre n. Si det(A) ≠0, alors A est
inversible et :
1
𝑨 = (𝑎𝑑𝑗 𝑨)
𝑑𝑒𝑡 𝑨
Cas particulier : inverse d’une matrice diagonale
Si A=diag[aij] est une matrice diagonale inversible d’ordre n :

I. det 𝐴 = ∏ 𝑎 ≠ 0 ⇒ ∀𝑖 = 1, 𝑛 𝑎 ≠ 0
II. 𝐴 = 𝑑𝑖𝑎𝑔

27

Résolution d’un système linéaire :

On appelle système linéaire un système (S) de n équations linéaires à p


inconnues dans ℝ qui s’écrit sous la forme :
𝑎 𝑥 +𝑎 𝑥 +⋯+𝑎 𝑥 = 𝑏
𝑎 𝑥 +𝑎 𝑥 +⋯+𝑎 𝑥 = 𝑏
(𝑆)

𝑎 𝑥 + 𝑎 𝑥 + ⋯+ 𝑎 𝑥 = 𝑏
où les coefficients aij et bi appartiennent à ℝ, et où les xj sont les inconnues à
valeurs dans ℝ, avec i=1, n (le nombre d’équations) et j=1, p (le nombre
d’inconnues).

28

14
10/10/2019

Définition matricielle de (S)


Un système (S) quelconque peut s’écrire sous la forme abrégée :

𝑎 𝑋 = 𝑏 𝑖 = 1, 𝑛

𝑏
Ou sous la forme matricielle AX=B avec 𝐀 = 𝑎 , 𝐁( , ) = ⋮ 𝑒𝑡 𝐗 ( , ) =
( , )
𝑏
𝑥

𝑥
AX=B ⇔ X=A-1B
Exemple :
2𝑥 + 𝑦 = 1
Résoudre le système 𝑥 − 3𝑦 = 2

29

La méthode de Cramer :

On appelle système de Cramer un système de n équations à n inconnues


(n=p) dont la matrice est inversible (une solution unique), c’est-à-dire telle
que ∆=det(A)≠0.
∆ est appelé déterminant du système.

Proposition
Un système de Cramer admet toujours une et une seule solution :
𝑿=𝑨 𝐁= 𝑎𝑑𝑗 𝐀 . 𝐁 (R)

30

15
10/10/2019

Conséquences
D’après la relation (R), on a :
1 1
𝑿= 𝑋 𝐁= 𝑋 𝐁
∆ ∆

𝑋 𝑋 ⋯ 𝑋 𝑏
1 𝑋 𝑋 ⋯ 𝑋 𝑏
𝐗=
∆ ⋮ ⋮ ⋮ ⋮
𝑋 𝑋 ⋯ 𝑋 𝑏

Xij étant le cofacteur associé à aij , avec i,j=1,n.


La première ligne de la relation (R) est :𝑥 = ∑ 𝑋 𝑏

∑ 𝑋 𝑏 n’est autre que le déterminant d’ordre n obtenu en remplaçant
dans ∆, la première colonne par la matrice colonne B.

31

En effet :
𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
∆= =∑ 𝑋 𝑎 en développant /1ère colonne
⋮ ⋮ ⋮
𝑎 𝑎 ⋯ 𝑎

𝑏 𝑎 ⋯ 𝑎
𝑏 𝑎 ⋯ 𝑎
∆ = =∑ 𝑋 𝑏 en développant /1ère colonne
⋮ ⋮ ⋮
𝑏 𝑎 ⋯ 𝑎


Donc 𝑥 = , et par généralisation, on obtient :

∆ 1
𝑥 = = 𝑋 𝑏 ∀𝑖 = 1, 𝑛
∆ ∆
∆i est le déterminant déduit de ∆ en remplaçant la ième colonne de par la
colonne des « seconds membres » bj .

32

16
10/10/2019

Exemples :

2𝑥 + 𝑦 = 1
1. Résoudre par la méthode de Cramer le système
𝑥 − 3𝑦 = 2

𝑥 + 𝑦 + 2𝑧 = 1
2. Résoudre de deux façons différentes le système 2𝑥 + 𝑦 + 2𝑧 = 2
𝑥 + 3𝑦 + 𝑧 = 1

33

Introduction à la programmation linéaire


Introduction
• Les prises de décision concernant une action donnée deviennent
l’objet de véritables recherches qui ne peuvent être menées sans
l’aide d’outils mathématiques.
• C’est ainsi que s’est développé un domaine des mathématiques
basé sur l’activité de décision, appelé recherche opérationnelle.
• Les méthodes de recherche opérationnelle sont surtout appliquées
aux problèmes économiques et commerciaux.
• Elles se sont imposées auprès des dirigeants des grands organismes
économiques et industriels comme les seuls outils permettant de
prévenir aussi objectivement que possible les conséquences de leurs
actions.

34

17
10/10/2019

• Une des parties essentielle de la recherche opérationnelle est la


programmation linéaire, qui étudie la maximisation ou la minimisation
de fonction linéaire soumise à des contraintes linéaires.
• Le terme programmation linéaire a été introduit, en même temps que
la méthode du simplexe.

Exemples de problèmes de programmation linéaire :

• Avant de donner le modèle mathématique général du problème de


la programmation linéaire, on présente un exemple concret et
particulier.

35

Problème de production :

• Une unité de production de parpaings fabrique quatre types de


produit :
• Les parpaings de dimensions respectivement 10 cm (noté P1), 15 cm
(noté P2), 20 cm (noté P3) et l’ourdi (noté P4).
• Pour la fabrication de ces produits, on utilise quatre matières
premières, le sable (M1), le gravier (M2), le ciment (M3) et l’eau (M4),
disponibles en quantité respectivement de 5000, 3000, et 2000 unités.
• L’eau est disponible en quantité illimitée.

36

18
10/10/2019

• Le plan de production de l’unité est donné dans le tableau ci-


dessous :
Produits P P2 P3 P4 Quantités de matières
1
Matières premières premières disponibles
M1 2 3 5 6 5000
M2 1 2 3 3 3000
M3 0.8 1 2 3 2000
M4 1 1 2 2 /
• Le tableau signifie que pour fabriquer un parpaing de 10 cm, il faut 2
unités de M1, 1 unité de M2, 0.8 unité de M3 et 1 unité de M4, et de la
même manière pour P2, P3, P4.
• Les parpaings sont vendus respectivement à raison de 6, 7, 9 et 10 DA
l’unité.
• Le problème pour la direction de l’unité est de trouver le nombre
maximal de produits P1, P2, P3, et P4 à fabriquer pour avoir un bénéfice
maximal, tout en respectant les contraintes de l’unité.

37

Résolution :
• Désignons par x1, x2, x3 et x4 les quantités de produits P1, P2, P3 et P4.
Ces quantités doivent vérifier les conditions suivantes :
• Les quantités utilisées en matières premières ne doivent pas dépasser
les quantités disponibles :
2𝑥 + 3𝑥 + 5𝑥 + 6𝑥 ≤ 5000
𝑥 + 2𝑥 + 3𝑥 + 3𝑥 ≤ 3000 (1)
0.8𝑥 + 𝑥 + 2𝑥 + 3𝑥 ≤ 2000
• Les quantités à produire sont toutes positives ou nulles :
𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0,
• 𝑜𝑢 𝑥 ≥ 0, 𝑗 = 1, 2, 3, 4. (2)
• Comme l’eau est disponible en quantité illimitée, donc on n’a
aucune contrainte sur la matière première M4.

38

19
10/10/2019

• Le chef de production de l’unité choisira le programme réalisable qui


donnera le maximum de la fonction bénéfice Z :
𝑍 x ,x ,x ,x = 6𝑥 + 7𝑥 + 9𝑥 + 10𝑥 → 𝑚𝑎𝑥 (3)

• La fonction bénéfice (3) appelée aussi fonction objective ou fonction


but, représente le bénéfice que va réaliser l’unité.
• En résumé le chef de production aura pour objectif, de trouver la
solution optimale du problème de programmation linéaire suivant :
𝑍 x ,x ,x ,x = 6𝑥 + 7𝑥 + 9𝑥 + 10𝑥 → 𝑚𝑎𝑥
2𝑥 + 3𝑥 + 5𝑥 + 6𝑥 ≤ 5000
𝑥 + 2𝑥 + 3𝑥 + 3𝑥 ≤ 3000
0.8𝑥 + 𝑥 + 2𝑥 + 3𝑥 ≤ 2000
𝑥 ≥ 0, 𝑗 = 1, 2, 3, 4

39

Formulation du problème de programmation linéaire sous forme


canonique :
• Tout problème de programmation linéaire peut se formuler de la
manière suivante :
• Trouver les valeurs des variables x= (xj, j=1, n) qui maximisent ou
minimisent la fonction linéaire suivante :
𝑍 x ,x ,..,x = 𝑐 𝑥 +𝑐 𝑥 + ⋯+𝑐 𝑥 + ⋯+ 𝑐 𝑥 = ∑ 𝑐 𝑥 → max (𝑚𝑖𝑛) (1)

𝑎 𝑥 + 𝑎 𝑥 + ⋯+𝑎 𝑥 = 𝑏
𝑎 𝑥 + 𝑎 𝑥 + ⋯+𝑎 𝑥 = 𝑏
• Sous les contraintes suivantes : (2)

𝑎 𝑥 +𝑎 𝑥 + ⋯+ 𝑎 𝑥 = 𝑏
𝑥 ≥ 0, 𝑗 = 1, 𝑛 (3)
Où 𝑐 , 𝑗 = 1, 𝑛, représentent les coûts des différents produits.

40

20
10/10/2019

• Les coefficients 𝑐 et 𝑎 (𝑖 = 1, 𝑚, 𝑗 = 1, 𝑛) sont supposés être des


nombres réels, en plus on considère que l’entier m est inférieur ou
égal à n, tous les nombres bi (𝑖 = 1, 𝑚) sont tous positifs ou nuls est le
rang du système est inférieur ou égal à m.
Définition :
• La fonction Z (1) est appelée fonction objectif, fonction de but,
fonction économique ou critère de qualité.
• Les contraintes (2) sont appelées contraintes principales ou
essentielles.
• Les contraintes (3) sont dites directes.
• Les problèmes de programmation linéaire peuvent naturellement se
présenter sous une forme différente de celle du programme (1) (2) (3)
qui est dite canonique. Cependant de tels cas peuvent toujours se
ramener à la forme (1) (2) (3), en se référant au paragraphe suivant.

41

Réduction d’un problème de programmation linéaire à la forme


canonique :

a) Si l’objectif consiste à minimiser une fonction linéaire :


𝑍 𝑥 , 𝑥 , . . , 𝑥 = 𝑐 𝑥 + 𝑐 𝑥 + ⋯ + 𝑐 𝑥 + ⋯ + 𝑐 𝑥 → 𝑚𝑖𝑛.
Alors on maximisera la fonction linéaire opposée :
𝑍 = −𝑍 𝑥 , 𝑥 , . . , 𝑥 = −𝑐 𝑥 − 𝑐 𝑥 − ⋯ − 𝑐 𝑥 − ⋯ − 𝑐 𝑥 → 𝑚𝑎𝑥 .
Car 𝑚𝑖𝑛 𝑍 = 𝑚𝑎𝑥 𝑍 = 𝑚𝑎𝑥 (−𝑍).
b) Si une certaine variable xj n’est soumise à aucune condition de signe
(𝑥 ∈ ℜ), on la remplacera alors par deux variables x'j et x''j telles que :
𝑥 = 𝑥′ − 𝑥 , 𝑥 ≥ 0, 𝑥 ≥ 0.
c) Lorsque dans une certaine équation on a un bj < 0, alors il suffit de
multiplier les deux membres de cette équation par (-1) pour avoir le
second membre positif.

42

21
10/10/2019

d) Supposons qu’on a une contrainte principale sous forme d’inégalité :


𝛼 𝑥 + 𝛼 𝑥 + ⋯ + 𝛼 𝑥 + ⋯ + 𝛼 𝑥 ≤ 𝛽, (4)
De là en ajoutant une variable xn+1 positive, dite variable d’écart, au
premier membre de l’inégalité, on obtient une équation équivalente :
𝛼 𝑥 + 𝛼 𝑥 + ⋯+𝛼 𝑥 + ⋯+𝛼 𝑥 + 𝑥 = 𝛽,(5)
Dans le cas où l’inégalité (4) est dans le sens inverse, c’est-à-dire :
𝛼 𝑥 + 𝛼 𝑥 + ⋯ + 𝛼 𝑥 + ⋯ + 𝛼 𝑥 ≥ 𝛽,
L’équation équivalente s’écrira alors sous la forme suivante :
𝛼 𝑥 + 𝛼 𝑥 + ⋯+𝛼 𝑥 + ⋯+𝛼 𝑥 − 𝑥 = 𝛽,
Où 𝑥 ≥ 0.

43

Exemple 1 :
• Reformuler sous forme canonique, le problème de programmation
linéaire suivant :
𝑍 = 𝑍 𝑥 ,𝑥 ,𝑥 = 𝑥 − 2𝑥 + 4𝑥 → 𝑚𝑖𝑛
𝑥 − 𝑥 + 3𝑥 = −10 (P)
𝑥 −𝑥 ≤2
𝑥 ∈ ℜ, 𝑥 ≥ 0, 𝑥 ≤ 0
En faisant le changement de variable suivant :
𝑥 = 𝑦 − 𝑦 , 𝑦 ≥ 0, 𝑦 ≥ 0 ;
𝑥 = 𝑦 , 𝑦 ≥ 0;
𝑥 = −𝑦 , 𝑦 ≥ 0

44

22
10/10/2019

Le problème (P) devient :


𝑍 = 𝑍 𝑦 ,𝑦 ,𝑦 ,𝑦 = 𝑦 − 𝑦 − 2𝑦 − 4𝑦 → 𝑚𝑖𝑛
𝑦 − 𝑦 − 𝑦 − 3𝑦 = −10
𝑦 +𝑦 ≤2
𝑦 ≥ 0, 𝑗 = 1,4
Ce problème est aussi équivalent au problème canonique suivant :
𝑍 = 𝑍 𝑦 ,𝑦 ,𝑦 ,𝑦 = −𝑦 + 𝑦 + 2𝑦 + 4𝑦 → 𝑚𝑎𝑥
−𝑦 + 𝑦 + 𝑦 + 3𝑦 = 10
𝑦 +𝑦 +𝑦 =2
𝑦 ≥ 0, 𝑗 = 1,5
Où y5 est une variable d’écart.

45

Ecriture matricielle d’un problème de programmation


linéaire :
• Pour écrire le problème de programmation linéaire (1) (2) (3) sous
frome compacte, on utilise la forme matricielle (vectorielle).
• Pour ce faire on introduit les notations suivantes :
• Soient I={1,2…,i,…m} l’ensemble des indices des lignes et
J={1,2…,j,…n} l’ensemble des indices des colonnes.
• Ainsi l’ensemble des variables x1, x2,…, xn s’écrira sous forme
vectorielle : x=x(J)=(xj, j∈ J ).
• De manière analogue on aura : c=c(J)=(cj, j∈ J ), b=b(I)=(bi, i∈ I ).

46

23
10/10/2019

• L’ensemble des coefficients aij,i ∈ I, j ∈ J sera représenté sous forme


d’une matrice A d’ordre (m × n) :
𝑎 𝑎 ⋯ 𝑎
𝑎 𝑎 ⋯ 𝑎
𝐴 = 𝐴 𝐼, 𝐽 = (𝑎 , 𝑖 ∈ 𝐼, 𝑗 ∈ 𝐽) =
⋮ ⋮ ⋮
𝑎 𝑎 ⋯ 𝑎
• On écrit souvent A de la manière suivante :
• 𝐴 = 𝑎 , 𝑎 , … , 𝑎 , … , 𝑎 , où 𝑎 est le vecteur colonne :
𝑎
𝑎
𝑎 = 𝐴 𝐼, 𝑗 = ⋮
𝑎
• Avec ces nouvelles notations, le problème (1) (2) (3) peut être écrit
sous la forme matricielle suivante :
Z=Z(x)=c'x → max
Ax=b
x≥0
47

Z=Z(x)=c'x → max
Ax=b
x≥0
• Ici c' est la transposé de c, la matrice A est en général la matrice de
condition du problème et b sont les quantités de matières premières.
Exemple 2:
• Ecrire sous forme matricielle le problème de programmation linéaire
suivant :
2𝑥 − 𝑥 + 3𝑥 → 𝑚𝑎𝑥
𝑥 + 2𝑥 − 𝑥 = 4
4𝑥 − 𝑥 + 3𝑥 = 3
𝑥 ≥ 0, 𝑥 ≥ 0, 𝑥 ≥ 0

48

24
10/10/2019

𝑥 2
4 1 2 −1
En posant 𝑥 = 𝑥 , 𝑐 = −1 , 𝑏 = ,𝐴 =
𝑥 3 4 −1 3
3
Le problème (P) prend la forme matricielle suivante :
Z= c'x → max
Ax=b
x≥0
Les conditions de formulation d’un PL
• La programmation linéaire comme étant un modèle admet des
hypothèses (des conditions) que le décideur doit valider avant de
pouvoir les utiliser pour modéliser son problème. Ces hypothèses sont :
1. Les variables de décision du problème sont positives

49

2. Le critère de sélection de la meilleure décision est décrit par une


fonction linéaire de ces variables, c’est à dire, que la fonction ne
peut pas contenir par exemple un produit croisé de deux de ces
variables. La fonction qui représente le critère de sélection est dite
fonction objectif (ou fonction économique).
3. Les restrictions relatives aux variables de décision (exemple :
limitations des ressources) peuvent être exprimées par un ensemble
d’équations linéaires. Ces équations forment l’ensemble des
contraintes.
4. Les paramètres du problème en dehors des variables de décisions
ont une valeur connue avec certitude

50

25
10/10/2019

Les étapes de formulation d’un PL :


Généralement il y a trois étapes à suivre pour pouvoir construire le
modèle d'un programme linéaire :
1. Identifier les variables du problème à valeur non connues (variable
de décision) et les représenter sous forme symbolique (exp. x1, y1).
2. Identifier les restrictions (les contraintes) du problème et les exprimer
par un système d’équations linéaires.
3. Identifier l’objectif ou le critère de sélection et le représenter sous une
forme linéaire en fonction des variables de décision. Spécifier si le
critère de sélection est à maximiser ou à minimiser.

51

Résolution graphique
Introduction
• L’objet principal de ce chapitre est de proposer une méthode de résolution
d’un problème linéaire ne comportant que deux variables de décision.
• La méthode consiste en la délimitation de l’intersection des demi-plans
représentant les inéquations des contraintes et en la recherche sur le bord
de ce domaine des points donnant l’optimum de la fonction objectif.
• Considérons le problème de programmation linéaire suivant :
Z= c'x → max
Ax=b
x≥0
• où A est une matrice m × n, x ∈ ℝn , c ∈ ℝn , b ∈ ℝm .

52

26
10/10/2019

• Si le nombre de variables est supérieur d’une unité ou de deux unités par


rapport au nombre d’équations, alors la résolution d’un tel problème peut se
faire simplement par la méthode géométrique pour les deux cas.
 1er Cas : n - m=1
• On fixe une variable, par exemple x1 et on calcule les autres (x2, x3, …, xn)
variable en fonction de x1 dans les équations Ax=b, on obtient :
x2=α21 x1+ α2 , x3=α31 x1+ α3 , …, xn=αn1 x1+ αn
• On remplace ces variables par leurs valeurs dans la fonctionnelle qui
devient :
Z= c1 x1+ c2 x2+…+ cn xn= α1 x1+𝛽,
• une fonction d’une seule variable, dont le maximum sera trouvé en fonction
du signe de α1 et des bornes de x1.
53

 2ème Cas : n - m=2


• On fixe deux variables, par exemple x1 et x2 et on calcule x3 en fonction de
x1 et x2 :
x3= α31 x1+ α32 x2+ α3 ,

xn= αn1 x1+ αn2 x2+ αn ,
• On remplace x3,…, xn dans la fonctionnelle Z, qui devient : Z= 𝛾1 x1+ 𝛾2 x2+ 𝛾
• En suite dans un plan x1 ∘ x2 on trace tous les demi-plans xj ≥0, qui donneront
le domaine des solutions admissibles. Par suite on tracera la droite Z=𝛾=0 qui
correspond à 𝛾1 x1+ 𝛾2 x2=0.
• De là suivant le signe de 𝛾1 et 𝛾2, on trouvera le point extrême qui
correspond au maximum (minimum) désiré.

54

27
10/10/2019

Exemple 1:
Z= x1+2 x2 – x3 → max
x1+x2 + x3 =10
x1–x2 + x3=20
xj≥0, j=1..3
• Ici n=3, m=2, n−m=1, donc on fixe par exemple x1 et on calcule les autres en
fonction de x1 :
3
𝑥 = − 𝑥 + 15
2
1
𝑥 = 𝑥 −5
2
• Donc Z= x1+2 x2 – x3= x1+ x1−10+(3/2) x1−15

55

7
𝑍 = 𝑥 − 25
2
• On sait que xj≥0, j=1..3, c’est-à-dire, − 𝑥 + 5 ≥ 0, 𝑥 − 5 ≥ 0 et x1≥0,
• De là x1≤10 , x1≥0 et finalement 0≤x1≤10, donc le : 𝑚𝑎𝑥 𝑍 = 𝑚𝑎𝑥 ( 𝑥 − 25)

• est atteint pour x1=10.


• En suite on trouve x2 = x3 =0 et Z0 =10.

56

28
10/10/2019

Technique de résolution graphique

Problème de maximisation
Considérons l’exemple suivant:
Max Z=25x1+ 15x2
Sous: 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1≥0, x2≥0

Première méthode :
1) Représenter les lignes de contraintes et l’ensemble des solutions
réalisables.
2)Localiser la solution optimale.
3)Calculer la solution optimale.

57

1. Représentation des lignes de contraintes et de l’ensemble des solutions


réalisables

Ensemble des solutions réalisables

• Le domaine hachuré (dans la figure) représente le domaine du plan formé


par l’ensemble des points vérifiant toutes les contraintes (l’ensemble des
solutions réalisables).
58

29
10/10/2019

2. Localisation de la solution optimale


• La fonction objectif Z = 25x1 + 15x2
représente pour Z fixé l’équation des Représentation de la fonction objectif
courbes de niveau (des droites de
pente -5/3).
• Maximiser Z revient à déplacer la
courbe de niveau le plus loin possible de
l’origine puisque les coefficients de x1 et
x2 dans la fonction objectif sont positifs
(fig.).

59

• Les limites imposées sur x1 et x2 étant


données et représentées graphiquement
par le domaine des solutions réalisables,
• on ne peut augmenter indéfiniment la
valeur de la fonction objectif.
• Donc, pour maximiser Z, on cherchera la
plus haute courbe de niveau qui a une
intersection non vide avec le domaine
des solutions réalisables.
• Tout point appartenant à cette
intersection est une solution optimale
(fig. suivante).
Localisation de la solution optimale

60

30
10/10/2019

3. Calcul de la solution optimale


• Graphiquement, on a localisé la solution optimale. Celle-ci correspond au
point d’intersection B des deux droites D et D’ d’équations respectives:
2x1 + 2x2 =240
3x1+ x2=140
• Donc: x1=10, x2 =l10, Z*= 1900.

61

Deuxième méthode
• On remarque que la solution optimale ne peut être que sur le bord du
domaine des solutions réalisables.
• De plus, elle est dans le cas général donnée par un des points anguleux
correspondant aux intersections des droites de contraintes.
• Une telle solution est appelée solution de base.
• Ceci nous amène à proposer une deuxième méthode qui consiste à:
1) Représenter les lignes de contraintes et l’ensemble des solutions
réalisables.
2) Localiser toutes les solutions de base (les points d’intersection des
droites de contraintes).
3) Calculer la valeur de la fonction objectif en chacun de ces points, et
sélectionner la solution optimale.
62

31
10/10/2019

• Dans l’exemple précédent, les solutions de base correspondent aux points


suivants:
O (0,0) Z = 0 B
A (0, 120) Z = 1800 A
B (10,110) Z*=1900
C (140/3, 0) Z = 3500/3

• La solution optimale est donnée par le point B.

63

Problème de minimisation
• Soit l’exemple suivant :
𝑀𝑖𝑛 𝑍 = 24𝑥 + 20𝑦
𝑥 + 𝑦 ≥ 30
𝑥 + 2𝑦 ≥ 40
𝑥 ≥ 0, 𝑦 ≥ 0
• Ce problème de minimisation ne
diffère de maximisation que par
la recherche de la courbe de
niveau qui donne le plus petite
valeur à Z tout en satisfaisant
toutes les contraintes du modèle.

• Graphiquement , on localise la solution optimale au point A(0,30). Donc


x=0, y=30.Alors : Z=24x+20y=600.
64

32
10/10/2019

La méthode du simplexe
Programmation linéaire

65

Formulation du modèle mathématique linéaire

La formulation du modèle mathématique est l'étape la plus


délicate de la résolution d'un problème. Elle nécessite un effort de
conception qui doit aboutir à la détermination des trois éléments
suivants:

a) Les variables de décision pour lesquelles on doit décider du


niveau à atteindre, tel que le niveau d'activité dans l'entreprise.
On suppose, dans un premier temps, que ces variables peuvent
prendre n'importe quelle valeur positive.

b) La fonction objectif qui décrit la relation linéaire représentant


l'objectif de l'entreprise, à l'aide des variables de décision.

c) Les contraintes du modèle qui décrivent les relations linéaires


entre les variables de décision représentant les restrictions
auxquelles est sujette l'entreprise.

66

33
10/10/2019

Exemple 1
Une compagnie XYZ est spécialisée dans la production de deux
types de produits :
des climatiseurs et des ventilateurs. Les deux produits nécessitent un
certain nombre d'heures machine et un certain nombre d’heures de
main d’œuvre. Le tableau suivant donne l'information nécessaire Sur
les deux produits, c'est-à-dire les nombres d'heures machine et
d'heures main d'œuvre 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. Dans toute la suite, on utilisera comme
unité monétaire UM, qui peut être considérée comme Euro, Dollar,
Dinar, etc. Le tableau nous donne, de plus, 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 UM/unité
Ventilateur 2 h/unité 1 h/unité 15 UM/unité
Total disponible 240 h 140 h

67

Formulation du programme linéaire


a) Variables de décision. La compagnie veut décider du nombre de
climatiseurs et du nombre de ventilateurs à produire pour maximiser le profit.
Ceci nous amène à choisir les deux variables de décision suivantes :
x1 = nombre de climatiseurs
x2= nombre de ventilateurs
b) Fonction objectif. L'objectif de l'entreprise est de déterminer le
programme de production qui maximisera son profit. La objectif s'écrit alors :
Max Z = 25x1 + 15x2
c) Contraintes du modèle. La limitation des ressources contraint l'entreprise
de la manière suivante :
1 ) Contrainte heures machine 2x1 + 2x2 ≤240
2) Contrainte main d’œuvre 3x1 + x2 ≤140
3) Contraintes de non-négativité (exprimant que les niveaux d'activité ne
peuvent être négatifs) x1≥0, x2≥0

68

34
10/10/2019

Modèle complet : x1 = nombre de climatiseurs


x2= nombre de ventilateurs
Max Z = 25x1 + 15x2
sous : 2x1 + 2x2 ≤ 240
3x1 + x2 ≤ 140
x1≥0, x2≥0
Remarque : Notons que les fonctions représentant l'objectif et
les contraintes sont toutes des applications linéaires de ℝn dans
ℝ.
Définition : Une solution du problème est donnée par les valeurs
de x1, et x2 qui maximisent Z et qui vérifient les contraintes.

69

Définition : Une solution est dite réalisable si elle vérifie toutes les
contraintes.
• Considérons la solution x1 = 20, x2 = 40 (Z = 280). Cette solution
est une solution réalisable du problème parce qu'elle vérifie
toutes les contraintes.
• Est-ce que cette solution est optimale ?
• Non, car la solution x1 = 10, x2 = 110, Z = 1900 est également
réalisable et donne un meilleur profit.
• En fait, cette dernière est optimale ;
• pour la déterminer, on aura recours à la méthode dite du
simplexe ou, dans le cas de deux variables, à la méthode
graphique.

70

35
10/10/2019

Introduction
La méthode du simplexe est un algorithme de recherche d'une solution
optimale d’un programme linéaire donné. On se limitera, au cas de
maximisation sous des contraintes du type inférieur ou égal. On présentera la
méthode du simplexe à l'aide d'un exemple illustratif et on expliquera les
itérations de la méthode à l'aide d'une analyse économique.
La méthode du simplexe
La mise en œuvre de la méthode du simplexe peut être divisée en trois
étapes :
• Première étape : Mettre le modèle sous forme standard en y introduisant
des variables d'écart qui Ont pour rôle de transformer les inégalités en
égalités.
• Deuxième étape : Etablir le premier tableau de simplexe (tableau à
l'origine).
• Troisième étape : Procéder à une série d'itérations sur les tableaux de
simplexe aboutissant à la solution optimale.

71

Reprenons l'exemple du chapitre précédent (déjà résolu graphiquement) et


illustrons ces trois étapes sur cet exemple.
Max Z = 25x1 + 15x2
sous : 2x1 + 2x2 ≤ 240 (disponibilité des heures machines)
3x1 + x2 ≤ 140 (disponibilité des heures de main d'œuvre)
x1≥0, x2≥0
x1 = nombre de climatiseurs
x2= nombre de ventilateurs
Première étape
Transformer les contraintes à l'aide des variables d'écart s1, s2.
2x1 + 2x2 ≤ 240 ⟶ 2x1 + 2x2 + s1 = 240
3x1 + x2 ≤ 140 ⟶ 3x1 + x2 + s2 = 140
Où s1 et s2 peuvent être interprétées comme suit :
s1 = nombre d'heures machine non utilisées
s2 = nombre d'heures de main d'œuvre non utilisées

72

36
10/10/2019

Les variables d'écart n'ont aucun effet sur la fonction objectif :


Max Z = 25x1 + 15x2 + 0s1 + 0s2
Le modèle s'écrit donc sous forme standard :
Max Z = 25x1 + 15x2 + 0s1 + 0s2
Sous : 2x1 + 2x2 + s1 = 240
3x1 + x2 + s2 = 140
x1≥0, x2≥0, s1≥0, s2≥0

n = nombre de variables (égal à 4 pour notre exemple) et m nombre de


contraintes (égal à 2).
La forme standard d'un programme linéaire consiste donc à trouver la
solution d'un système d'équations de la forme :
a11x1 + a12x2 +….+ a1nxn = b1
a21x1 + a22x2 +….+ a2nxn = b2
……
am1x1 + am2x2 +….+ amnxn = bm
qui maximise (minimise) Z = c1x1 + c2x2 +….+ cnxn.

73

L'écriture matricielle standard est donc :


Max Z = CX
sous : AX = B

• L'ensemble des solutions réalisables est un


ensemble convexe ; c'est un polyèdre.
• l’optimum est obtenu en l'un des points
extrémaux du domaine réalisable, c'est-à-
dire en l'un des sommets du polyèdre (à
condition que le domaine réalisable soit
borné).
• On peut remarquer que chaque sommet
du polyèdre a au moins n − m coordonnées
nulles.
• La méthode envisagée consistera à passer
d'un sommet à un sommet voisin en
améliorant la objectif.

74

37
10/10/2019

On sait que la solution du programme linéaire correspond à l’un des points


donnés par la résolution du système linéaire à n variables et m contraintes :
2x1 + 2x2 + s1 = 240
3x1 + x2 + s2 = 140
avec (n − m) = 2 variables prenant la valeur nulle
et m = 2 variables qui ne sont pas nécessairement nulles
Les solutions réalisables d'un tel système sont les suivantes :
x1 = 0, x2 = 0, s1 = 240, s2 = 140 → O(0, 0) Z=0
x1 = 0, x2 = 120, s1 = 0, s2 = 20 → A(0, 120) Z = 700
x1 = 10, x2 = 110, s1 = 0, s2 = 0 → A(10, 110) Z = 1900
x1 = 140/3, x2 = 0, s1 = 440/3, s2 = 0 → A(140/3, 0) Z = 700

75

Définition :
• Après introduction des variables d'écart, si le système obtenu contient m
contraintes et n variables alors une solution réalisable de base est une
solution réalisable avec :
(n − m) variables égales à zéro (variables hors base)
m variables non nécessairement nulles (variables de base).
Nous posons alors les deux questions suivantes :
• A quelles variables doit-on donner la valeur zéro ?
• Comment identifier une solution optimale ?
• La réponse à ces questions sera donnée par les deux étapes suivantes de
la méthode du simplexe.
• La première consiste à dresser un tableau (tableau du simplexe) donnant
l'origine comme solution réalisable de base, la seconde consiste à se
déplacer d'une solution réalisable de base à une autre qui lui est
adjacente.

76

38
10/10/2019

Deuxième étape
La deuxième étape consiste à poser le premier tableau de simplexe à l'origine :
Max Z = 25x1 + 15x2 + 0s1 + 0s2
Sous : 2x1 + 2x2 + s1 = 240
3x1 + x2 + s2 = 140
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0

Cj 25 15 0 0
Variables de base (VB) Quantité (Q) x1 x2 s1 s2
0 s1 240 2 2 1 0
0 s2 140 3 1 0 1
Tableau 1. Premier tableau de simplexe

77

• Dans le tableau l, on a placé en première ligne les coefficients


Cj des variables x1, x2, s1, s2 dans la fonction objectif.
• La troisième ligne contient les coefficients liés à la première
contrainte du modèle 2x1 + 2x2 + s1 = 240, les coefficients
associés à la deuxième contrainte 3x1 + x2 + s2 = 140 formant la
quatrième ligne du tableau.
• On prend s1 et s2 comme variables de base relatives à la
première et à la deuxième contrainte respectivement.
• En procédant ainsi, on peut lire à partir de ce tableau la
solution correspondant à l'origine (x1 = 0, x2 = 0).
• En effet, les deux variables de bases s1, s2 sont égales
respectivement à 240 et 140. Les autres variables x1 et x2 sont à
un niveau nul et sont appelées des variables hors base.
• La première colonne du tableau indique les contributions des
variables de base dans la fonction objectif.

78

39
10/10/2019

Troisième étape
Dans cette étape, on donne la méthode itérative pour la
détermination de la solution optimale d'un programme linéaire.
Première itération
l) Déterminer la colonne pivot (variable de base entrante) en
sélectionnant la colonne avec la plus grande valeur positive de
Cj − Zj (le plus grand profit marginal).
Dans la solution correspondant à l'origine, on a x1 = 0, c'est-à-dire
lorsque x1 est une variable hors base (on ne produit aucun
climatiseur). Si, maintenant, on augmente x1 d'une unité et
comme la solution de base est donnée par :
2x1 + 2x2 + s1 = 240
3x1 + x2 + s2 = 140

79

• on a une diminution de s1 de 2 unités et une diminution de s2 de


3 unités (x2 étant égal à zéro).
• L'effet d'une telle variation sur la fonction objectif est de 25 − (0s1
+ 0s2) = C1 − Z1. Les Cj − Zj sont données par la dernière ligne du
tableau de simplexe.
• Cette variation indique le profit marginal provenant de la
production d’un climatiseur quand on se place dans une
situation où l'on ne produit rien (l'origine).
• Donc, si x1 augmente d'une unité, le profit augmente de 25 UM.
• De même, si x2 augmente d'une unité, le profit Z augmente de
15 UM.
• x1 est la variable de base entrante (correspond au Cj − Zj
maximum). On choisit de produire des climatiseurs vu que leur
profit marginal est supérieur à celui des ventilateurs.
• La colonne correspondante s'appelle colonne pivot (tableau 2).

80

40
10/10/2019

Cj 25 15 0 0
VB Q x1 x2 s1 s2
0 s1 240 2 2 1 0
0 s2 140 3 1 0 1
Zj 0 0 0 0 0
Cj − Zj 25 15 0 0

Tableau 2. Choix de la colonne pivot
• 2) Déterminer la ligne pivot (variable de base sortante). On
détermine la variable sortante en divisant les valeurs de la
colonne quantité par les valeurs correspondantes dans la
colonne pivot (on obtient une nouvelle colonne RT [ratio test]) et
en sélectionnant la ligne avec le plus petit quotient positif pour
RT.
• Ceci nous permettra de trouver la contrainte la plus restrictive
quand on envisage de faire entrer la variable x1 dans la base (en
production), x1 étant la variable entrante (tableaux 2 et 3).
81

Si on reprend le système S :
2x1 + 2x2 + s1 = 240
3x1 + x2 + s2 = 140
• On remarque que l'augmentation de x1 est restreinte par deux
limites: 240/2 = 120, 140/3 = 46,66 (x2 reste nul et toutes les
variables doivent être positives).
• Comme on a choisi de produire des climatiseurs et que le profit
unitaire est de 25, on cherchera à produire le nombre maximum
possible de climatiseurs dans les limites de 120 (limite due aux
heures machine) et de 140/3 (limite due à la main d’œuvre).
• Le nombre de climatiseurs à produire est de 140/3, ce qui
ramène s2 à zéro. s2 devient une variable hors base, la variable
sortante est donc celle correspondant au Ratio Test (RT) le plus
petit positif. La nouvelle solution est :
x1 = 140/3, x2 = 0, s1 = 440/3, s2 = 0 et Z = 3500/3.

82

41
10/10/2019

Cj 25 15 0 0
VB Q x1 x2 s1 s2 RT
0 s1 240 2 2 1 0 120
0 s2 140 3 1 0 1 140/3 →
Zj 0 0 0 0 0
Cj − Zj 25 15 0 0

Tableau 3. Choix de la ligne pivot

• La figure suivante donne la forme standard d'un tableau de


simplexe ({iB} représente l'ensemble des indices des variables de
base et de l'indice de la variable entrante).

83

Coefficients Cj
correspondants aux
variables

Variables de Quantité
Toutes les variables RT
Base (VB) (Qi)

aij
Coefficients CiB Seconds
Variables de Matrice des coefficients
des variables membres des Qi / aije
base des contraintes du
de Base équations
programme standard
Zj =Σi∈{iB}Ciaij
Dj = C j  Z j
première ligne moins
dernière ligne

Figure 1. Modèle général des tableaux de simplexe

84

42
10/10/2019

3) Développer un nouveau tableau de simplexe.


• On a décidé de produire le maximum de climatiseurs et on a été
amené à utiliser toutes les heures de main d'œuvre (x1 devient
non nul et entre dans la base et s2 devient nul et sort de la base).
• On développe un nouveau tableau de simplexe en tenant
compte de cette transformation.
• Pour remplir ce nouveau tableau il faut déterminer les
coefficients aij de la nouvelle matrice A et les valeurs Qi des
variables de base.
• Ceci est réalisé en utilisant la règle de pivot :

85

1. Diviser la ligne de pivot par la valeur de l’élément de pivot pour


trouver la ligne transformée de la ligne de pivot.
Cj 25 15 0 0
VB Q x1 x2 s1 s2
0 s1
25 x1 140/3 1 1/3 0 1/3

2. À chacune des variables de base, on associe la valeur 1 à


l’intersection de la ligne et de la colonne relative à cette même
variable et dans le reste de la colonne on trouve des zéros.

Cj 25 15 0 0
VB Q x1 x2 s1 s2
0 s1 0 1
25 x1 140/3 1 1/3 0 1/3

86

43
10/10/2019

3. Pour calculer le reste des valeurs du tableau, on opère à des combinaisons


linéaires dans le précèdent tableau de simplexe. Par exemple pour
calculer la nouvelle valeur qui va prendre la place de la valeur 150 devant
la variable de base S1 : On multiplie 150 par le pivot (4), on retranche de
ce produit le produit de la projection de la valeur 150 sur la ligne pivot par
la projection de la valeur 150 sur la colonne pivot, et on divise le tout par la
valeur du pivot (4). C 25 15 0 0
j
VB Q x1 x2 s1 s2
0 s1 240 2 2 1 0
0 s2 140 3 1 0 1

240 × 3 − 140 × 2 440


= 0 × 3 − 1 × 2 −2
3 3 =
3 3

Cj 25 15 0 0
VB Q x1 x2 s1 s2
0 s1 440/3 0 1  2/3
25 x1 140/3 1 1/3 0 1/3

87

• En appliquant cette règle sur le reste, on trouve le deuxième


tableau de simplexe est le tableau 4. :

Cj 25 15 0 0
VB Q x1 x2 s1 S2
0 s1 440/3 0 4/3 1 2/3
25 x1 140/3 1 1/3 0 1/3
Zj 3500/3 25 25/3 0 25/3
Cj − Zj 0 20/3 0 25/3
Tableau 4. Deuxième tableau de simplexe

88

44
10/10/2019

• La nouvelle solution est donnée par ce tableau : x1 = 140/3, s1 = 440/3


(variables de base), x2 = 0, s2 = 0 (variables hors base).
• La valeur de la fonction objectif est Z = 3500/3 (voir ligne des Zj dans le
tableau 4). Cette solution correspond au point A(140/3 , 0) du graphique.
Deuxième itération
• En utilisant la même procédure que dans l'itération précédente, on
sélectionne la variable entrante puis la variable sortante (tableau 5).
• La variable entrante est x2 et la variable sortante est s1.
• On doit donc déterminer le nouveau tableau de simplexe correspondant au
système d'équations S" dans lequel x1 et x2 sont maintenant les variables de
base.
S": x2 + 3/4s1 − 1/2s2 = 110
x1 + x2 − 1/4sl + 1/2s2 = 10
• Ce système est obtenu en éliminant s1 de la base et en la remplaçant par x2.

89

Cj 25 15 0 0
VB Q x1 x2 s1 s2 RT
0 s1 440/3 0 4/3 1 2/3 110 →
25 x1 140/3 1 1/3 0 1/3 140
Zj 3500/3 25 25/3 0 25/3
Cj − Zj 0 20/3 0 25/3


Tableau 5. Choix de la ligne et de la colonne pivots dans la deuxième

• Le nouveau tableau du simplexe relatif au système d'équations


S" est obtenu par la méthode du pivot.
• La ligne L1 du tableau du tableau 5 étant la ligne pivot, sa
transformée TL1 du tableau du tableau 6 est obtenue en divisant
tous ses coefficients par le nombre pivot soit 4/3.
• La transformée TL2 de la ligne L2 du tableau 6 est obtenue par
soustraction TL2 = L2  aL * TL1 avec aL = 1/3 (aL est le coefficient
correspondant à la ligne transformée dans la colonne pivot).

90

45
10/10/2019

• Dans le tableau 6, tous les Cj  Zj sont négatifs, donc la solution


donnée par ce tableau est optimale.
• Cette solution est x1 = 10, x2 = 110. s1 = 0, s2 = 0 et Z = 1900.

Cj 25 15 0 0
VB Q x1 x2 s1 s2
15 x2 110 0 1 3/4 1/2
25 x1 10 1 0 1/4 1/2
Zj 1900 25 15 5 5
Cj − Z j 0 0 5 5
Tableau 6 Troisième tableau de simplexe (tableau optimal)

91

• En résumé, pour résoudre un programme linéaire, on


procède comme suit :
1. Transformer le programme linéaire en sa forme
standard.
2. Former le tableau initial à l'origine.
3. Itérations :
a) déterminer la colonne pivot,
b) déterminer la ligne pivot,
c) développer le nouveau tableau,
d) si la solution est non optimale répéter 3.
Sinon, donner la solution optimale.

92

46
10/10/2019

• En conclusion, si un Transformer le programme à la


forme standard
problème est solvable
par la du simplexe, Former le tableau initial à
l'algorithme de recherche l’origine
de la solution optimale
Solution
est donné par le schéma
Oui optimale
de la figure suivante Cj−Zj ≤ 0
donnée par
(figure 2). ∀j
ce dernier
tableau
Non

Choisir la colonne pivot


(plus grand Cj−Zj)
Figure 2. Algorithme de
recherche de la solution
optimale Choisir la ligne pivot
(plus petit RT)

Développer un nouveau
tableau de simplexe

93

Résolution d’un problème de programmation linéaire


avec le solveur d’Excel

• La résolution manuelle ne peut se faire que pour des petits


problèmes.
• Le recours à l'informatique est indispensable. Pour les problèmes
réels, les entreprises font appel à des logiciels professionnels.
• On peut citer, par exemple, CPLEX de la société ILOG ou OSL
d'IBM ou encore Xpress-MP de Dash.
• Dans les fonctionnalités d’Excel, le solveur peut être utilisé pour
des problèmes de taille moyenne.
• Les algorithmes utilisés par le solveur ont pour base l'algorithme du
simplexe tel que nous l'avons vu ou d'autres qui en sont dérivés.

94

47
10/10/2019

• Le Solveur est une macro complémentaire d'Excel qui est


disponible lorsque vous installez Microsoft Office ou Excel mais il
n'est pas chargé par défaut.
• Pour l’utiliser vous devez tout d’abord le charger dans Excel en
suivant les étapes:
1. Dans Excel, accédez à fichier > Options
2. Cliquez sur Compléments puis, dans la zone Gérer,
sélectionnez Compléments Excel, ensuite cliquez sur OK.
3. Dans la zone Macros complémentaires disponibles, activez la
case à cocher Complément Solver, puis cliquez sur OK.
4. Une fois que vous chargez le complément Solveur, la
commande Solveur est disponible dans le groupe analyse
sous l’onglet données.
• Nous donnons ici les principaux éléments pour l’utilisation du
solveur.
95

• On commence par définir le problème :

• En cellules B4 et C4 : les valeurs des variables.


• On peut entrer une valeur ou chercher avec le solveur les valeurs optimales.
• En cellules D7 et D8 : le calcul de la valeur du premier membre des contraintes
• En cellule D7 : = SOMMEPROD(B4:C4;B7:C7)
• En cellule F10, le calcul de la fonction objectif : = SOMMEPROD(B10:C10;B4:C4)
• La fonction SOMMEPROD d'Excel effectue la somme des produits du contenu des
cellules des 2 zones.

96

48
10/10/2019

• On paramètre le solveur :

97

• Après résolution par le solveur :

Remarque: à l'optimum, si un variable d'écart d’une contrainte est


nulle, on dit que cette contrainte est saturée (ou liée).

98

49
10/10/2019

• Le rapport des réponses :


• La fonction objectif au
départ vaut 0 et à l'optimum
1900.
• Le calcul a été lancé à partir
de la solution x1 = x2 = 0.
• La valeur finale pour x1 est
10 et pour x2 est 110.
• Pour les contraintes :
o le premier membre de la
contrainte vaut, à l'issue
du calcul, 240, alors que le
second membre était de
240, la contrainte est liée
(saturée) et la marge
représentant l'écart entre
le second et le premier
membre est nulle.
o même lecture pour la
seconde contrainte.

99

A suivre..

100

50