0% ont trouvé ce document utile (0 vote)
172 vues11 pages

Programmation Linéaire : Algorithme Simplexe

Ce document présente un problème de programmation linéaire avec deux variables d'activité et plusieurs contraintes. La résolution graphique du problème sur un repère à deux dimensions permet de trouver la solution optimale.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
172 vues11 pages

Programmation Linéaire : Algorithme Simplexe

Ce document présente un problème de programmation linéaire avec deux variables d'activité et plusieurs contraintes. La résolution graphique du problème sur un repère à deux dimensions permet de trouver la solution optimale.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

PARTIE 1 

: PROGRAMMATION LINEAIRE ET ALGORITHME DE SIMPLEXE

Les problèmes de programmation linéaire consistent généralement à déterminer l’allocation


optimale d’un ensemble de ressources (main d’œuvre, machines, matériaux, capitaux, …)
pour atteindre un objectif (maximisation d’un résultat, minimisation d’un coût) en fonction
de contrainte pesant sur ces ressources, …).

I. CONSTRUCTION D’UN PROGRAMME DE RESOLUTION GRAPHIQUE

La formulaire d’un programme linéaire doit respecter 3 phases :


- La détection du problème à traiter et l’identification des variables ;
- La formulation de la fonction objectif (la fonction à optimiser) ;
- La formulation des contraintes
Pratiquons cette approche par le biais d’un exemple.

1. Détermination d’un programme de fabrication à 2 variables.


Une usine est spécialisée dans la production de 2 types de pièces p1 et p2. Ces pièces
doivent être travailler dans 2 ateliers successifs A1 et A2. Techniquement, en ce qui
concerne la ressource temps de travail et sa consommation, la situation se présente comme
suit (en heures de travail effectif) :

A1 A2
P1 3 6
P2 4 3
Total hebdomadaire 160 180
disponible dans chaque
atelier

Comme les pièces ne sont livrés qu’au tout début de la semaine suivante, le stockage des
pièces produite est nécessaire. L’aire disponible est de 400m 2. Les pièces ne peuvent être
empilés et requiert par unité 5m2 et 4m2 respectivement pour P1 et P2.
On pense pouvoir écouler sur le marché chaque semaine 40 P1 et 35 P2. La marge
bénéficiaire unitaire prévu est de 1200f pour P1 et 1000f pour P2. Quelle production de
chaque type de pièces faut-il réaliser pour maximiser la marge (bénéfice) hebdomadaire de
l’usine.
a) Détermination du problème et identification des variables

Il faut déterminer le programme de fabrication qui maximise la marge hebdomadaire de


l’usine. Les 2 variables pertinente au problème sont :
X1=quantité de P1 à fabriquer
X2= quantité de P2 à fabriquer
On peut les appeler indifféremment variables principales, d’activités ou réel

b) Formulation de la fonction objectif

Elle traduit l’objectif poursuivi par l’entreprise. Ici il s’agit de maximiser la marge bénéficiaire
hebdomadaire, d’où :

Z=1200 X1 + 1000 X2

c) Formulation des contraintes

 Contrainte de temps de travail :


- Pour A1 : 3 X1 + 4 X2 < 160
- Pour A2 : 6 X1 + 3 X2 < 180
-
 Contrainte d’espace
- 5 X1 + 4 X2 < 400

 Contrainte de marché :
- X1 <= 40
- X2 <= 35

 Contrainte logique :
- X1 > 0
- X2 >0

Taff : {

Définir 

a- Variables d’activités
b- Contraintes

Le programme de fabrication sous la forme canonique (avec des inéquations) est donc le
suivant :
MaxZ=(1200 X1 + 1000 X2)

Contraintes :

3 X1 + 4 X2 < 160
6 X1 + 3 X2 < 180
5 X1 + 4 X2 < 400
X1 <= 40
X2 <= 35
X1 > 0
X2 >0

2. Résolution graphique

Quand le problème ne comprend que 2 variables principales (3 au maximum), la résolution


graphique est possible. La procédure à suivre est la suivante :

a- Réaliser un repère orthogonal dont les axes correspondent aux variables x1 et x2.
b- Tracer la région des solutions réalisables délimitées par toutes les contraintes au problème
posé :
- Si cette région représente un ensemble convexe ouvert, alors pour un problème de
maximisation ou de minimisation, il peut exister une solution optimale qui se situe à l’un des
points extrêmes de la région. Mais, si cette région est un ensemble convexe fermé, alors il
existe toujours une solution optimale ;
- Si cette région représente un ensemble non convexe, aucune solution n’existe à cause de
l’incompatibilité du système de contrainte

Rappel : un ensemble convexe est un ensemble de points qui a la propriété suivante : tout
segment de droite reliant deux points dans l’ensemble est aussi entièrement dans l’ensemble.
Un point extrême est un sommet d’un ensemble convexe.

Ensemble convexe fermé Ensemble convexe ouvert

c- Trouver tous les points extrêmes de l’ensemble convexe


d- Déterminer en utilisant la fonction-objectif, quel point extrême donne la solution optimale
45

40

35

30

25

20

15

10

0
0 10 20 30 40 50 60

x 1=40

Nous obtenons une région de solution réalisable OABCD qui forme un ensemble convexe
fermé. Une solution optimale existe et se situe à l’un des points extrêmes.

Coordonnées des points extrêmes

 Les coordonnées du point O sont : x1=0 et x2=0


 Les coordonnées du point A sont solution du système

3x1+4x2=160 3x1+ (4*35) =160


X2=35 x2=35

e- Évaluation de la fonction objectif à chacun des points obtenues

Points solutions Coordonnées Z=1200x1 + 1000x2


Données x1 Données x2
O 0 0 0
A 0 55 35000
B 20/3 35 43000
C 16 28 47200
D 30 0 36
000
La solution optimale se situe donc au point C de coordonnées x1=16 et x2=28. Par conséquent,
l’usine devra fabriquer 16 pièces p1 et 28 pièces p2 pour réaliser une marge hebdomadaire
maximum de 47200fr (en tenant compte de toutes les contraintes)

Remarque : Nous voyons sur le graphique que la contrainte (3) : 5X1 + 4 X2 <= 400 se situe en dehors
de la région des solutions réalisables. On dit qu’elle est redondante. En effet, cette contrainte est
dépassée par les contraintes (4) et (5). Cela signifie que si ces 2 contraintes sont respectées, la
contrainte redondante est nécessairement satisfaite. Elle s’avère donc inutile et peut être éliminé de
la résolution du programme.

Si nous prenons les valeurs extrêmes de x 1 et x2 permises par les contraintes (4) et (5) et que nous les
appliquons à la contrainte (3), nous obtenons : (5*40) + (4*35) = 340 < 400

Dans le cadre de ce programme, la contrainte (3) sera toujours vérifiée ou plus clairement, la
capacité de stockage sera toujours satisfaisante donc elle n’est pas contraignante par rapport au
possibilité d’écoulement des produits sur le marché. Par la suite, après avoir posé le programme sous
la forme canonique, il faudra toujours vérifié qu’il n’y a pas de contrainte redondante afin d’alléger le
programme de base.

Propriétés

Tout programme linéaire peut admettre aucune solution optimale, ou une unique solution
optimale ou plus d’une solution optimale.

Exemple1 : Problème sans solution réalisable

Mx(Z=3x1 + 2x2)

3x1 + x2 <=8 (1)

X1 >=5 (2)

X2 <=10 (3)

X1, x2 >=0

L’intersection des 3 inégalités n’existe pas, il n’y a donc pas de solutions réalisable. Aucune valeur de
x1 et x2 ne peut satisfaire simultanément les 4 contraintes

Exemple2 : Problème à solutions multiples

Mx(Z=x2 - x1)

3x1 + x2 <= -2 (1)

X1 – X2 <= 2 (2)
X1 + x2 <= 5 (3)

X1, x2 >=0

La région des solutions réalisables OABCD est un ensemble convexe fermé. Donc il existe une
solution optimale situé à l’un des points extrêmes. Les coordonnées du points C est solution du
système :

X1 – X2 = 2

X1 + X2 = 5

2X1=7 => X1= (7/2)

(7/2) – X2=2 => - X2 = 2- (7/2) => x2= 3/2

Points solutions Coordonnées Z=X2 – X1


Données x1 Données x2
O 0 0 0
A 0 2 2
B 1 4 3
C 7/2 3/2 -2
D 2 0 -2

Il existe donc 2 solutions optimale situé l’une au point C et l’autre au point D.

Soit Z la fonction objectif du problème de fabrication des pièces P1 et P2. La droite Z=0 d’équation
1200X1 + 1000X2 =0 ; soit X2= est appelé la courbe de la fonction objectif Z. On dit aussi que Z=0
est un isoprofit, c’est-à-dire que tous les points situés sur cette droite procure le même profit ( ici
égale à zéro).

Il y a autant d’isoprofit qu’il y a de valeurs de Z. En effet, pour chaque valeur de Z, nous obtenons une
droite et toutes ces droites sont parallèles puisque la pente de ces droites a=-1,2 est indépendante
de la valeur de Z.

Ici la solution optimale est celle qui correspond à la droite, parallèles à Z=0, la plus éloignée de
l’origine (car on cherche à maximiser Z) tout en ayant un point commun avec la région des solutions
réalisables. Il est évident que pour un problème de minimisation de Z, on essaie de se rapprocher le
plus possible de l’origine tout en ayant au moins un point commun avec la région des solutions
réalisables. Dans ce cas, la droite de la fonction objectif isocoût.
Exemple 3 : Problème avec solution non bornée

Min (Z= -2x1+3x2)

X1 ≤ 5

2x1 – 3x2 ≤ 6

X1,x2 ≥ 0

Valeur des Y
10

0
0 1 2 3 4 5 6 7 8 9 10

-2

-4

La région des solutions réalisables (délimité par des droites de couleur bleu) est un ensemble
convexe ouvert, il existe donc des solutions réalisables. Par exemple, le point A(3,0) est une solution
réalisables. Cependant, il n’existe pas de solution optimale. En effet, on peut augmenter indéfiniment
la valeur de la fonction objectif dans la direction des flèches indiqués sur le graphique. On dit dans ce
cas que la solution est non bornée.

3. Analyse de sensibilité

Une analyse de sensibilité se ramène à la recherche des intervalles de variation possible des
paramètres du programme linéaire sans que la solution optimale ne soit modifiée.

Questions :

- De combien peut-on faire varier le profit engendré par la vente d’une pièce P1 dans le
problème de fabrication des pièces P1 et P2, sans changer la solution optimale ?
Soit λ la variation de profil engendré par la vente d’une pièces P1. La fonction objectif est égale à
(1200+ λ )X1+ 1000x2. La solution demeure optimale si la pente de la fonction objectif reste
toujours comprise entre les pentes des contraintes 1 et 2. Ce qui est équivalent à dire :

A. ALGORITHME DU SIMPLEXE

La méthode du simplexe est une technique algébrique qui permet de trouver la solution d’un
programme linéaire d’une façon ordonnée et précise ceci quelques soit le nombre de variables
d’activités. C’est une méthode itérative, c’est-à-dire que le même principe sera répété plusieurs fois
jusqu’à la solution optimale (si celle-ci existe). Nous l’expliquerons à l’aide de l’exemple suivant :

Une usine va produire P1, P2, P3 dans 2 ateliers successifs A1 et A2 selon les caractéristiques
techniques et économique suivantes :

A1 A2 Charges Prix de vente


variables
P1 30 unités à 40 unités à 13F 18F
l’heure l’heure
P2 30 unités à 20 unités à 14F 20F
l’heure l’heure
P3 20 unités à 30 unités à 11F 15F
l’heure l’heure
Total d’heures 8 7
disponibles par jour

L’approvisionnement en matières premières et fournitures diverses est suffisant pour la


fabrication de 250 produits par jour. On estime que le marché peut absorber journalièrement au
maximum 90 P1, 60 P2 et 70 P3. Les charges de structures globales sont estimées à 500F par jour de
fabrication.

Déterminé le programme de fabrication quotidien optimum (on raisonnera en minutes en ce


qui concerne les contraintes techniques de fabrication).

1- Présentation du programme sous la forme canonique


a- Détection du problème et identification des variables

Il s’agit de trouver le programme de fabrication qui maximise le résultat journalier de l’usine en


tenant compte de toutes les contraintes :

Résultats journalier= (Marge sur coût variable) – (Charge de la structure)

Nous avons les variables d’activités suivantes :

X1= qté de P1 à fabriquer par jour

X2= qté de P2 à fabriquer par jour

X3= qté de P3 à fabriquer par jour


b- Formulation de la fonction objectif

Les marges sur coût variables unitaire sont respectivement :(18-13)=5F pour P1

(20-14)=6F pour P2 et (15-14)=4F pour P3

Par conséquent la fonction objectif est : Z= 5 X1 + 6 X2 + 4 X3

c- Formulation des contraintes

Contrainte de temps

 Pour A1 : 2 x1 + 2 x2 +3 x3 ≤480


 Pour A2 : 1.5 X1 + 3 X2 + 2 X3 ≤ 420

Contraintes d’approvisionnement

 X1 + x2 + x3 ≤ 250

Contraintes de marché

 X1 ≤ 90
 X2 ≤60
 X3 ≤70

Non négativité x1 ≥0, X2≥0, X3≥0

La contrainte d’approvisionnement est dépassée par les contraintes de marché. En effet, même si
nous arrivons à vendre le maximum de produit, nous aurons toujours suffisamment
d’approvisionnement pour satisfaire cette demande :

90 + 60 + 70= 220 < 250

Cette contrainte est donc redondante et peut être éliminé du programme de base qui devient :

Max (Z= 5 x1 + 6X2 + 4X3)

2X1 + 2X2 + 3X3 ≤480

1.5X1 + 3X2 + 2X3 ≤420

X1 ≤90

X2 ≤60

X3 ≤70

X1, x2, x3 ≥0

2- Présentation du programme sous la forme standard

La forme standard se caractérise par le fait que toutes les inéquations correspondantes aux
contraintes sont transformées en équations. La transformation s’effectue par l’introduction d’une
autre catégorie de variable : les variables d’écart (e1). Il y a une variable d’écart par contrainte.
Chaque variable d’écart est donc attachée à sa contrainte et prend un sens uniquement par rapport à
celle-ci. La condition de non négativité s’applique à chaque variables d’écart. Le coefficient de la
variable d’écart dans la contrainte où elle est introduite dépend du sens de l’inégalité initiale :

- S’il s’agit d’une contrainte inférieure ou égale (≤), la variable d’écart introduite dans le
membre de gauche a comme coefficient (+1) : la variable d’écart représente ce qu’il faut
ajouter au membre de gauche pour égaliser le membre de droite
- Dans le cas d’une contrainte supérieure ou égale (≥), le coefficient de la variable d’écart est (-
1) : la variable d’écart représente dans ce cas ce qu’il retrancher au membre de gauche pour
retrouver le membre de droite.

Ici le programme de base devient :

Max(Z=5x1+ 6x2+ 4x3 + 0 e1 + 0 e2 + 0 e3 + 0 e4 + 0 e5 )

2X1 + 2X2 + 3X3 = 480

1.5X1 + 3X2 + 2X3 = 420

X1 + e3 = 90

X2 + e4 = 60

X3 + e5 = 70

X1, x2, x3 , e1, e2, e3, e4, e5 ≥0

Ces variables d’écarts n’ont pas de marge sur coût variable unitaire car ce ne sont pas des variables
d’activités. Leurs coefficients dans la fonction objectif sont tous nuls. Par contre, elles ont un sens
dans le cadre de leur contraintes respectives.

e1= temps de travail (en minutes) encore disponible dans A1

e2= temps de travail (en minutes) encore disponible dans A2

e3= complément de P1 pouvant être écoulé sur le marché

e4= complément de P2 pouvant être écoulé sur le marché

e5= complément de P3 pouvant être écoulé sur le marché

3- Application de l’algorithme du SIMPLEXE et disposition pratique des calculs sous forme de


tableau

Chaque tableau représente une solution de base. Pour un problème de maximisation, le tableau
initial représente la situation de départ pour laquelle il n’y a aucune production  : x1=x2=x3=0, ce qui
donne Z=0

a- Le tableau initial P1
T1 X1 X2 X3 E1 E2 E3 E4 E5 R
E1 2 2 3 1 0 0 0 0 480
E2 1.5 3 2 0 1 0 0 0 420
E3 1 0 0 0 0 1 0 0 90
E4 0 1 0 0 0 0 1 0 60
E5 0 0 1 0 0 0 0 1 70
Δ 5 6 4 0 0 0 0 0 0
(Valeur
de Z)

La structure du tableau T1 est la suivante :

- La partie centrale reproduis la matrice des coefficients techniques (x1 à e5 en horizontal et


E1 à a5 en vertical)
- La colonne R est celle des seconds membres des contraintes : les ressources
- La ligne Δ donne les taux marginaux de substitution (TMS)
- La case située en bas, à droite, donne la valeur de Z pour la solution de base (ici Z=0)
- Les variables en base (e1, e2, e3, e4, e5) ont toutes les vecteurs colonnes unités dans la
matrice des coefficients technique (c’est une des caractéristiques des variables en bases).

Un taux marginal de substitution (TMS) représente la différence entre l’apport marginal d’une
variable hors base et l’apport de l’équivalent en produit en base. Pour cette solution de base :

TMS de x1 = 5 – [ (2*0)+(0*1.5)+(0*1)+(0*0)+(0*0) ]=5

Nous pouvons bien sûr vérifier que les variables en base ont toute un TMS nul

TMS de e2= 0 – [ (0*0)+(1*0)+ (0*0)+ (0*0)+ (0*0) ] =0

Vous aimerez peut-être aussi