chapitre 4: programmation linéaire (pl) - yola

44
15/12/2013 1 RCP104 Optimisation en Informatique 2013 – 2014 Dr. Nazih OUWAYED [email protected] http://nouwayed.yolasite.com Chapitre 4: Programmation Linéaire (PL) Sommaire Introduction Terminologie de base Exemples de modélisation Modèle général de PL Méthodes de résolution Utilisation d’un solveur Résolution graphique Un problème à deux variables Méthode du simplexe Dualité en PL 2 RCP104 – Optimisation en Informatique Novembre 2013

Upload: others

Post on 27-Apr-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

1

RCP104

Optimisation en Informatique

2013 – 2014

Dr. Nazih [email protected]

http://nouwayed.yolasite.com

Chapitre 4: Programmation Linéaire (PL)

Sommaire

� Introduction

� Terminologie de base

� Exemples de modélisation

� Modèle général de PL

� Méthodes de résolution� Utilisation d’un solveur

� Résolution graphique� Un problème à deux variables

� Méthode du simplexe

� Dualité en PL

2 RCP104 – Optimisation en Informatique Novembre 2013

Page 2: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

2

Introduction

RCP104 – Optimisation en Informatique3

� Un problème en Recherche Opérationnelle

� Exemple : problème classique de planification� Affecter des ressources limitées à plusieurs activités concurrentes

� Programme = Plan (solution de ce problème)� Fonction linéaire : fonction dans laquelle chaque variable évolue

linéairement

f (x1, x2...... xn) = c1 x1 + c2 x2 +...+ cn xn

� Exemple : on dira que le prix d'un plein d'essence est une fonction linéaire du nombre de litres mis dans le réservoir car :� pour zéro litre, on paie zéro euro,� pour un litre, on paie 1,40 euro,� pour 2 litres on paie 2,80 euros,� et pour N litres, on paie 1,4 x N euros.

� Programme linéaire� Programme mathématique où toutes les fonctions sont linéaires

Prix(x)=1,4x

Novembre 2013

Exemple d’un modèle de PL (1/4)

RCP104 – Optimisation en Informatique4

Données du problème (Entreprise Clotûres Martin)

� Trois usines (Usine 1, Usine 2, Usine 3)

� Deux types de produits (Produit 1, Produit 2)

� Capacité limitée de production de chaque usine (par semaine)

� Profit par lot (20 unités de chaque produit)

Temps de production (h / lot) Capacité de

production (h/semaine)

Produit 1 Produit 2

Usine 1 1 0 4

Usine 2 0 2 12

Usine 3 3 2 18

Profit (€) / lot 3000 5000

Novembre 2013

Page 3: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

3

RCP104 – Optimisation en Informatique5

Énnoncé du problème : déterminer le taux de production pour chaque produit

(nombre de lots par semaine) de façon à maximiser le profit total

Nota : Chaque lot du produit 1 (2) est le résultat combiné de la production aux

usines 1 et 3 (2 et 3)

� Variables

� x1 : nombre de lots du Produit 1

� x2 : nombre de lots du Produit 2

� Fonction objectif : Maximizer Z = Profit total en milliers d’euros

� Z = 3 x1 + 5 x2

Exemple d’un modèle de PL (2/4)

Novembre 2013

Exemple d’un modèle de PL (3/4)

RCP104 – Optimisation en Informatique6

� Contraintes

� Contraintes de capacité de production

x1 ≤ 4 (Usine 1)

2 x2 ≤ 12 (Usine 2)

3 x1 + 2 x2 ≤ 18 (Usine 3)

� Contraintes de non-négativité :

x1 ≥ 0, x2 ≥ 0 (nombre d’unités produites ≥ 0)

Novembre 2013

Page 4: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

4

Exemple d’un modèle de PL (4/4)

RCP104 – Optimisation en Informatique7

Maximiser Z = 3 x1 + 5 x2

x1 ≤ 4Sous les contraintes 2 x2 ≤ 12

3x 1 + 2x2 ≤ 18x1 ≥ 0, x2 ≥ 0

Novembre 2013

Terminologie de base en PL (1/2)

RCP104 – Optimisation en Informatique8

� Solution optimale� Solution ayant la meilleure valeur possible de l’objectif

� Solution réalisable (admissible)� Solution pour laquelle toutes les contraintes sont satisfaites (appartient au domaine

réalisable)

� Solution non réalisable� Solution pour laquelle au moins une contrainte n’est pas satisfaite (n’appartient pas au

domaine réalisable)

� Modèle n’ayant aucune solution optimale � Domaine réalisable vide

� Objectif non borné

� Modèle ayant une infinité de solutions optimales

Novembre 2013

Page 5: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

5

Terminologie de base en PL (2/2)

RCP104 – Optimisation en Informatique9

Maximiser Z = 3x1 + 5x2 Maximiser Z = 3x1 + 5x2

x1 ≤ 4 x2 ≤ 4

s.c. x 1 ≥ 5 s.c. x1 ≥ 5

x1 ≥ 0, x2 ≥ 0 x1 ≥ 0, x2 ≥ 0

Maximiser Z = x1 + x2

s.c. x1 + x2 ≤ 4

x1 ≥ 0, x2 ≥ 0

Solution non réalisable

Une infinité de solutions optimales

Objectif non borné

A

C

B

Novembre 2013

Modélisation de problèmes

RCP104 – Optimisation en Informatique10

� Exemple 1 : Gestion des horaires du personnel

� Chaque jour est divisé en Périodes

� On a pu estimer un nombre minimum d’employés (MinEmp) devant être affectés durant chaque période

� Chaque jour est divisé en quarts de travail de 8 heures

� Plusieurs quarts partagent une même période

� Chaque quart de travail exige un salaire particulier

Novembre 2013

Page 6: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

6

Exemple 1 : Données du problème

RCP104 – Optimisation en Informatique11 Novembre 2013

Exemple 1 : Modèle

RCP104 – Optimisation en Informatique12

Énnoncé du problème : combien d’employés doit-on affecter à chaque quart de travail

de façon à minimiser le total des salaires versés, en respectant le nombre minimum

d’employés pour chaque période ?

� Variables

� xj : nombre d’employés affectés au quart j

� Fonction objectif : Minimizer Z

� Z = 170x1 + 160x2 + 175 x3 + 180x4 + 195x5

� Contraintes

� Pour chaque période, le nombre d’employés affectés aux différents quarts doit couvrir le minimum d’employés requis pour cette période

� Exemple, période de 14h à 16h :

x2 + x3 ≥ 64Novembre 2013

Page 7: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

7

Exemple 1 : Modèle détaillé

RCP104 – Optimisation en Informatique13

Minimiser Z = 170x1 + 160x2 +175x3 + 180x4 + 195 x5

x1 ≥ 48x1 + x2 ≥ 79x1 + x2 ≥ 65x1 + x2 + x3 ≥ 87

Sous les contraintes x2 + x3 ≥ 64x3 + x4 ≥ 73x3 + x4 ≥ 82x4 ≥ 43x4 + x5 ≥ 52x5 ≥ 15x j ≥ 0, j = 1,2,3,4,5

Novembre 2013

Exemple 1 : Conclusions

RCP104 – Optimisation en Informatique14

� x1 + x2 ≥ 79 ⇒ x1 + x2 ≥ 65

Cette dernière contrainte est donc redondante et peut être enlevée

� x3 + x4 ≥ 82 ⇒ x3 + x4 ≥ 73

Même observation avec cette contrainte

� Solution optimale (obtenue par le solveur d’Excel) :

(x1, x2, x3, x4, x5) = ( 48, 31, 39, 43, 15)

Novembre 2013

Page 8: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

8

Exemple 2 : un réseau de distribution

RCP104 – Optimisation en Informatique15

� Deux usines (U1, U2)� Un centre de distribution (CD)� Deux entrepôts (E1, E2)� Chaque usine confectionne un certain nombre d’unités d’un

même produit (offre)� Chaque entrepôt requiert un certain nombre d’unités de ce

même produit (demande)� Sur chaque lien (arc) du réseau, il y a un coût de transport par

unité de produit (coût unitaire)� Sur certains arcs, il y a une capacité sur le nombre

d’unités transportées� Conservation du flot : en chaque sommet du réseau,

� Flot sortant = Flot entrant

� Nbre d’unités produites (usines) = Nbre d’unité requises (entrepôt)

Novembre 2013

Exemple 2 : Données du problème

RCP104 – Optimisation en Informatique16 Novembre 2013

Page 9: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

9

Exemple 2 : Modèle

RCP104 – Optimisation en Informatique17

Énnoncé du problème : minimiser le coût de transport total

� Variables � xi,j = nombre d’unités du produit transportées sur l’arc (i, j) (entre

les sommets i et j)

� Fonction Objectif : Minimiser Z= coût de transport en centaines d’€� Z = 2xU1,U2 + 4xU1,CD + 9xU1,E1 + 3xU2,CD + xCD,E2 + 3xE1,E2+ 2 xE2,E1

� Contraintes

� Capacité (sur certains arcs)� Exemple pour l’arc (U1, U2) : xU1,U2 ≤ 10

� Contraintes de non-négativité

Novembre 2013

Exemple 2 : Modèle détaillé

RCP104 – Optimisation en Informatique18

Minimiser Z = 2xU1,U2 + 4xU1,CD + 9xU1,E1+ 3xU2,CD + xCD,E2+ 3xE1,E2+ 2xE2,E1

xU1,U2 + xU1,CD + xU1,E1 = 50__xU1,U2 + xU2,CD = 40

__xU1,CD __ xU2,CD + xCD,E2 = 0

s.c. __ xU1,E1 + xE1,E2__ xE2,E1 = __ 30

__ xCD,E2 __ xE1,E2+ xE2,E1 = __60

xU1,U2 ≥ 0, xU1,CD ≥ 0, xU1,E1 ≥ 0, xU2,CD≥ 0, xCD,E2 ≥ 0, xE1,E2 ≥ 0, xE2,E1≥ 0

Novembre 2013

Page 10: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

10

Exemple 2 : Conclusions

RCP104 – Optimisation en Informatique19

� C’est un problème de flot à coût minimum (ou problème de transport)

� Solution optimale :(xU1,U2, xU1,CD, xU1,E1, xU2,CD, xCD,E2, xE1,E2, xE2,E1) = (0, 40, 10, 40, 80, 0, 20)

Novembre 2013

Modèle général de PL (1/2)

RCP104 – Optimisation en Informatique20

� m ressources� Exemple : 3 usines

� n activités� Exemple : 2 produits

� xj : niveau de l’activité j � Taux de production du produit j

� Mesure de performance globale : Z� Z : Profit total

� Accroissement de Z résultant de l’augmentation d’une unité du niveau de l’activité j : cj

� Quantité disponible de la ressource i : bi� Capacité de prodution maximale (h/semaine)

� Quantité de ressource i consommée par l’activité j : aij� Temps de production d’un lot de produit (h/lot)

Novembre 2013

Page 11: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

11

Modèle général de PL (2/2)

RCP104 – Optimisation en Informatique21

A. Fonction ObjectifMaximiser Z = c1x1 + c2x2 +…+ cnxn

B. Contraintes fonctionnelles a11x1 + a12x2 +…+ a1nxn ≤ b1

a21x1 + a22x2 +…+ a2nxn ≤ b2

am1x1 + am2x2 +…+ amnxn ≤ bm

C. Contraintes de non négativitéx1 ≥ 0, x2 ≥ 0,…, xn ≥ 0

Novembre 2013

Utilisation d’un solveur

RCP104 – Optimisation en Informatique22

� Résoudre le PL servant d’exemple à l’aide du solveur d’Excel

� Bouton Office (rond)

� Options Excel

� Compléments

Installer Complément Solveur

Novembre 2013

Page 12: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

12

Utilisation d’un solveur

RCP104 – Optimisation en Informatique23

� Exemple (Entreprise Clotûres Martin)

Maximiser Z = 3 x1 + 5 x2

x1 ≤ 4

sous les contraintes 2 x2 ≤ 12

3x 1 + 2x2 ≤ 18

x1 ≥ 0, x2 ≥ 0

Novembre 2013

Utilisation d’un solveur

RCP104 – Optimisation en Informatique24

� Exemple (Entreprise Clotûres Martin)

Variable Valeur

x1 2

X2 6

Fonction f(x1,x2) = 3x1 + 5x2 36Contraintes x1<=4 2

2x2<=12 12

3x1 + 2x2 <=18 18

x1>=0 2

x2>=0 6

Novembre 2013

Page 13: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

13

Résolution graphique (1/3)Un problème à deux variables

RCP104 – Optimisation en Informatique25

� Tracer les droites correspondant aux contraintes

� Déterminer le domaine réalisable en vérifiant le sens des inégalités pour chaque contrainte

� Tracer les droites correspondant à la variation de l’objectif� Dans l’exemple : Z = 3x1 + 5x2 x2 = -3/5 x1 + 1/5 Z

� Ordonnée à l’origine (dépend de la valeur de Z) : 1/5Z

� Pente : -3/5

� Maximiser correspond donc à augmenter Z

� Mais : uniquement pour les modèles à deux variables

Novembre 2013

Résolution graphique (2/3)Un problème à deux variables

RCP104 – Optimisation en Informatique26

Maximiser Z = 3 x1 + 5 x2

x1 ≤ 4

s. c. 2 x2 ≤ 12

3x 1 + 2x2 ≤ 18

x1 ≥ 0, x2 ≥ 0

Novembre 2013

� Exemple (Entreprise Clotûres Martin)

Page 14: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

14

RCP104 – Optimisation en Informatique27 Novembre 2013

� Exemple (Entreprise Clotûres Martin)

Résolution graphique (2/3)Un problème à deux variables

Exercice 1Composition d’aliments pour le bétail

RCP104 – Optimisation en Informatique28

� On désire déterminer la composition, à côut minimal, d’un aliment pourbétail qui est obtenu en mélangeant au plus trois produits bruts : orge,arachide, sésame. L’aliment ainsi conditionné devra comporter au moins22% de protéineset 3,6% de graisses, pour se conformer aux exigencesde la clientèle. On a indiqué ci-dessous les pourcentages deprotéines et degraisses contenus, respectivement, dans l’orge, les arachides et le sésame,ainsi que le coût par tonne de chacun des produits bruts :

� On notera xj (j = 1,2,3) la fraction de tonne de produit brut j contenu dans une tonne d’aliment. Formuler le problème algébriquement.

� Montrer qu’il est est possible de réduire la dimension du problème en éliminant x1.� Résoudre graphiquement ce problème.

Produit brut 1ORGE

2ARACHIDES

3SESAME

Pourcentage requis

Pourcentage deprotéines

12% 52% 42% 22%

Pourcentage degraisses

2% 2% 10% 3,60%

Coût par tonne 25 41 39

Novembre 2013

Page 15: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

15

Exercice 1 – Solution (1/2)Composition d’aliments pour le bétail

RCP104 – Optimisation en Informatique29 Novembre 2013

Exercice 1 – Solution (2/2)Composition d’aliments pour le bétail

RCP104 – Optimisation en Informatique30 Novembre 2013

Page 16: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

16

Méthode du simplexeIntroduction

� On a vu comment résoudre graphiquement un PL à deuxvariables. Or la majorité des problèmes réels ontplusieurs variables. D’où la nécessité d’avoir une méthodealgébrique pour résoudre des PLs ayant plus que 2variables

� La méthode du Simplexe est l’une des méthodes les plusanciennes (Dantzig, 1947), et la plus utilisée jusqu’à nosjours, pour résoudre même des problèmes de grandestailles avec quelques milliers de variables et quelquesmilliers de contraintes

31 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeMise en Forme Standard (FS)

Un PL peut avoir des contraintes :� d’égalité (=)� et d’inégalité ( ≥ et ≤ )

Avant l’application du Simplexe, le PL doit être converti enun PL équivalent où :

�Toutes les contraintes sont des égalités,�Toutes les variables sont non négatives (≥ 0),� Le second membre est non négatif (AX ≤ b, b≥0).

Un tel PL est dit sous la forme standard

32 RCP104 – Optimisation en Informatique Novembre 2013

Page 17: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

17

Méthode du simplexeExemple : Usine de ceintures

Une usine fabrique 2 sortes de ceintures : luxe et standard

Chaque type demande 1m2 de cuir� Une ceinture standard demande 1h de travail� Une ceinture de luxe demande 2h

Chaque semaine, on dispose de 40m2 de cuir et de 60h de travail� Chaque ceinture standard rapporte 3 Euros� Chaque ceinture de luxe 4 Euros

Objectif : Maximiser le profit

33 RCP104 – Optimisation en Informatique Novembre 2013

� x1 = nombre de ceintures de luxe produites par semaine

� x2 = nombre de ceintures standard produites par semaine

� Maximiser Z = 4x1 + 3x2, avec

x1 + x2 ≤ 40 contrainte sur le cuir (1)

2x1 + x2 ≤ 60 contrainte sur le travail (2)

x1, x2 ≥ 0 contrainte de signe (3)

Méthode du simplexeExemple : Usine de ceintures

34 RCP104 – Optimisation en Informatique Novembre 2013

Page 18: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

18

� Pour convertir la ième contrainte ≤ en une contrainte d’égalité, on définit lavariable d’écart, si (slack variables) qui représente la quantité deressource non utilisée dans cette contrainte

s1 = 40 - x1 - x2 � x1 + x2 + s1 = 40

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

� Pour une contrainte ≥, on définit ei (excess variables), variable d’excédent,qui est aussi ≥ 0

On obtient alors:Maximizer Z = 4x1 + 3x2s.c. x1 + x2 + s1 = 40

2x1 + x2 + s2 = 60x1, x2, s1, s2 ≥ 0

Méthode du simplexeExemple : Usine de ceintures

35 RCP104 – Optimisation en Informatique Novembre 2013

� Remarque : L'impact de ces variables d'écart sur la fonction objectif estnul. Ceci explique le fait que leur existence soit tout simplement liée à unemise en forme du programme linéaire initial.

� En général, la mise en forme d’un PL donne :

),...2,1(,0

...

...

.....n

xn

c...2

x2

c1

x1

cmax Z

2211

22222121

11212111

nix

bxaxaxa

bxaxaxa

bxaxaxacs

i

mnmnmm

nn

nn

=≥

=+++

=+++

=+++

+++=

Méthode du simplexeExemple : Usine de ceintures

36 RCP104 – Optimisation en Informatique Novembre 2013

Page 19: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

19

� On définit A = (ai j) , ; ;

� (PL) : Max ct xs.c. Ax = b

x ≥ 0

=

nx

x

x

xM

2

1

=

mb

b

b

bM

2

1

=

nc

c

c

cM

2

1

Méthode du simplexeExemple : Usine de ceintures

37 RCP104 – Optimisation en Informatique Novembre 2013

FS

Remarque : pour avoir la forme standard, les équations doivent, si nécessaire, être multipliées par (-1) pour avoir b ≥≥≥≥ 0

Méthode du simplexeAnalyse algébrique

1. Variables de base

� On appelle Base une sous matrice régulière de A. Il faut que lamatrice A(m,n) soit de rang m

�Pas de contrainte (ou équation) redondante

Rappel : n : nombre de variables, m: nombre de contraintes

� Une solution de base est obtenue en posant n − m variableségales à 0, et en résolvant les m ( n-(n-m)=m ) variablesrestantes, qui sont les variables de base (VB)

� Les n−m variables à 0 sont les variables hors base (VHB)

� Des choix différents de VHB donnent lieu à des différentessolutions de base

38 RCP104 – Optimisation en Informatique Novembre 2013

Page 20: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

20

� Représentation

xtB xt

H

ctb ct

H

B

base

H

hors base

m colonnes n − m colonnes

39 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

� Représentation matriciellexB

A = [B | H] , x = , ct = [ctB| ct

H]

xH

Ce qui donne Z = ct x = ct

B xB + ctH xH

Ax = b � B xB + H xH = b

Une solution de base est telle quexH = 0 BxB = b

xB = B−1b

40 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 21: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

21

Exemple

� Soit le système suivant :

x1 + x2 = 3

−x2 + x3 = −1

� n=3 , m=2 : n-m=3-2=1 = nombre de Variables HB (VHB)

� Si on pose VHB = {x3}, alors VB = {x1, x2}. On résout

x1 + x2 = 3

−x2 = −1

� Ce qui donne x1 = 2 et x2 = 1.

Remarque : certains choix de variables peuvent ne pas générer de solution de base

41 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

2. Solutions de base réalisables (SBR)

� Une solution de base est dite réalisable si :

xB = B−1b ≥ 0

� Si le vecteur xB contient des termes nuls, on dira que cettesolution est une solution de base dégénérée (peut être associéeà plus qu’une base).

42 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 22: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

22

Exemple de SBR (1/2)� Soit le problème : min − x1 − 2x2

s.c. x1 + 2x2 ≤ 4

2x1 + x2 ≤ 5

x1 , x2 ≥ 0

� Trouver la FS ?

on a : min − x1 − 2x2

s.c x1 + 2x2 + x3 = 4

2x1 + x2 + x4 = 5

x1 , x2 , x3 , x4 ≥ 0

� 4 variables (n=4) et 2 contraintes (m=2)

43 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

(PL) : min − x1 − 2x2s.c x1 + 2x2 + x3 = 4

2x1 + x2 + x4 = 5x1 , x2 , x3 , x4 ≥ 0

� On peut essayer de constituer une base en utilisant l’ensemble B = {1, 3},� Trouver xB ?

B = [A1A3] = 1 1 H = [A2A4] = 2 02 0 1 1

xB = x1 , xH = x2x3 x4

� L’inverse de B existe, donc B correspond à une base B−1 = 0 1/2

1 −1/2

1 2 1 0

2 1 0 1A =

44 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Exemple de SBR (2/2)

Page 23: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

23

� La solution de base correspondante est donc :

xB = B−1b = 0 1/2 4 = 5/2 = x1 > 0

1 −1/2 5 3/2 x3

Cette solution est bien une SBR

Rappel

45 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

3. Conditions d’optimalité d’une SBR

Soit x une SBR associée à la base B. On a alors

Soit x une solution réalisable quelconque de PL

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

Calculons z(x) - z(x)

On a b=Ax ; Par conséquent :

z(x) - z(x) = c x-cx = 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

− ←= ←

B1

H

xB b

xx0

46 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 24: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

24

� Théorème : soit x une SBR de PL. ∆∆∆∆(x) ≤≤≤≤ 0 ⇒⇒⇒⇒ x est optimal.

Démonstration

Remarque: pour simplifier la notation, nous allons utiliser la notation ∆ au lieu de ∆(x)

� Soit x une solution réalisable de PL. 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 ∀ x solution réalisable; d'oùx est optimal.

Remarque : c’est une condition suffisante. Elle devient aussi nécessaire si la SBR est non dégénérée.

47 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

4. Théorèmes fondamentaux

� Théorème 1 : La région réalisable pour tout problème deprogrammation linéaire est un ensemble convexe. Si un PLpossède une solution optimale, alors un point extrême de larégion réalisable doit être optimal.

� Théorème 2 : Pour tout LP, il existe un point extrêmeunique de la région réalisable qui correspond à chaquesolution de base réalisable. Egalement, il existe au moinsune SBR qui correspond à chaque point extrême de larégion réalisable.

48 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 25: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

25

� Illustration des théorèmesOn reprend l’exemple des ceintures de cuir, c-à-d maximiser z, avec :

z = 4x1 + 3x2

x1 + x2 + s1 = 40

2x1 + x2 + s2 = 60

x1, x2, s1, s2 ≥ 0

49 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Solution optimale x1=4; x2=20 z=140

Compléter le tableau suivant ?

Base Hors-base SBR Point extrême

x1, x2 s1, s2 s1 = s2 = 0, x1 = x2 = 20 Ex1, s1 x2, s2 x2 = s2 = 0, x1 = 30, s1 = 10 Cx1, s2 x2, s1 x2 = s1 = 0, x1 = 40, s2 = −20 Non réalisable, s2 < 0x2, s1 x1, s2 x1 = s2 = 0, s1 = −20, x2 = 60 Non réalisable, s1 < 0x2, s2 x1, s1 x1 = s1 = 0, x2 = 40, s2 = 20 Bs1, s2 x1, x2 x1 = x2 = 0, s1 = 40, s2 = 60 F

50 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 26: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

26

On a l’équivalence entre SBR et points extrêmes suivants :

Base Hors-base SBR Point extrême

x1, x2 s1, s2 s1 = s2 = 0, x1 = x2 = 20 Ex1, s1 x2, s2 x2 = s2 = 0, x1 = 30, s1 = 10 Cx1, s2 x2, s1 x2 = s1 = 0, x1 = 40, s2 = −20 Non réalisable, s2 < 0x2, s1 x1, s2 x1 = s2 = 0, s1 = −20, x2 = 60 Non réalisable, s1 < 0x2, s2 x1, s1 x1 = s1 = 0, x2 = 40, s2 = 20 Bs1, s2 x1, x2 x1 = x2 = 0, s1 = 40, s2 = 60 F

51 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

5. Nombre de solutions possibles

� Le nombre de bases candidates est égal à

Cmn = n! / (m! (n−m)!)

� Le nombre de SBR est donc ≤ Cmn c-à-d fini, mais peut être très large

� Puisque le nombre de telles bases peut être très large, il est pratiquementimpossible de trouver la solution optimale à partir d’une formule compacte

Il nous faut donc utiliser un algorithme systématique (procédureitérative) de recherche

52 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

Page 27: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

27

� Définition d’un algorithme

Un algorithme est un ensemble de règles employées pourobtenir des résultats à partir de données spécifiques, dans lequelchaque étape est bien définie et peut être traduite sous formed’un programme informatique.

� Simplexe

Le simplexe est un algorithme ou méthode de recherche quigarantit de trouver un optimum d’un PL (s’il existe) en unnombre fini d’itérations.

53 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeAnalyse algébrique

1. Principe

L’algorithme du simplexe pour une maximisation suit les étapes suivantes :

1.Trouver une SBR pour le PL, appelée la SBR initiale

2. Déterminer si la SBR courante est optimale (Δ ≤ 0)

Sinon,

Trouver une autre SBR qui possède une valeur z plus élevée

3. Retourner au point (2) avec la nouvelle SBR comme SBR courante

54 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 28: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

28

2. Tableau canonique

� (PL) : Max z = ct xs.c. Ax = b

x ≥ 0

Comme on a :xB

A = [B | H] , x = , ct = [ctB| ct

H]

xH

Le PL peut ainsi s’écrire comme suit :

B xB + 0 (-z) + H xH = bcB xB + (- z) + cHxH = 0

55 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

� Sous forme matricielle on aura :

� Sous forme d’un tableau, le PL peut être présenté comme suit :

B

B H

H

xB 0 H b

zc 1 c 0

x

− =

0cH1cB

bH0B

xH-zxB

2ème membre1er membre

56 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 29: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

29

� 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

� Pour ce faire, on multiplie à gauche chaque colonne du tableau par la matrice :

0cH1cB

bH0B

xH-zxB

2ème membre1er membre

−=

−−−

1

0

1

0

1

111

Bc

B

c

B

BB

57 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

� Le tableau canonique relatif à B est donc le suivant :

où B-1b ≥ 0.

On rappelle que : Δ = c - cB B-1 A et peut être aussi partitionnée en ΔB et ΔH

selon la SBR x

On aura alors : ∆∆∆∆ = (∆∆∆∆B ∆∆∆∆H) = (cB – cB B-1B cH – cB B-1H) = (0 cH – cB B-1H)

xB -z xH

I 0 B-1H B-1b

0 1 cH – cB B-1H – cB B-1b

58 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 30: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

30

Soient ,

Notons par : et

=

m

B

x

x

x

xM

2

1

= +

+

n

m

m

H

x

x

x

xM

2

1

=

jm

j

j

jm

j

j

a

a

a

B

a

a

a

,

,2

,1

1

,

,2

,1

MM

=

jm

j

j

jm

j

j

b

b

b

B

b

b

b

,

,2

,1

1

,

,2

,1

MM

59 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

� Notre tableau canonique devient ainsi :

Variablesde base

x1 …xm -z xm+1 … xn Valeurs desvariables de

base

x1..

xm

1 … 0 0 a1,m+1 … a1,n

0 … 1 0 am,m+1 … am,n

b1..

bm

-z 0 … 0 1 ∆ m+1 … ∆ n – cB B-1b

60 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

xB -z xH

I 0 B-1H B-1b

0 1 cH – cB B-1H – cB B-1b

Page 31: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

31

3. Itérations de Simplexe� Définition : Pour tout problème de PL, deux SBR sont adjacentes si leur

ensembles de variables de base ont m − 1 variables de base en commun.

La question quelle est la variable entrante, et celle sortante?

Construction du tableau initial

Etape 1

Solution optimale FinOui

Non

Déplacement (pivotage) vers une SBR adjacente

Etape 2

61 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

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

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)

62 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 32: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

32

Variables de base

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

x1.

xs.

xm

1 … 0 … 0 0 a1,m+1 … a1,e …a1,n

0 … 1 … 0 0 as,m+1 … as,e…as,n

0 … 0… 1 0 am,m+1 am,e … am,n

b1.bs.

bm

-z 0 … 0 … 0 1 ∆ m+1 … ∆ e … ∆ n -cBB-1b = -z

Comment choisir la variable entrante & la variable sortante?

63 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

3.1. Choix de la variable entrante

Dans une SBR toutes les variables hors base sont nulles (xe =0). Pour faireentrer xe, on augmente sa valeur, par exemple de λ ≥ 0 (xe = xe + λ) tout enmaintenant à zéro toutes les autres variables hors base.

1er critère de Dantzig : nous indique le choix de la variable entrante. Cedernier est basé sur la contribution éventuelle de xe à la fonction objectif.

Puisque z(x) = z(x) + ∆. x � ∂ z(x)/ ∂xj= ∆j = taux de variation de z parrapport à xj.

Par conséquent on choisit la variable, xe, ayant le taux d’augmentationmaximal de z(x)(PL de max), c-à-d le∆j maximal :

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

64 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 33: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

33

2ème critère de Dantzig : nous indique la valeur de la variable entrante (λ).

Pb de maximisation : on désire donc augmenter xe le maximum possible,tout en satisfaisant les contraintes. Donc, les valeurs des variables de basedoivent changer tout en satisfaisant les contraintes suivantes :

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

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

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

65 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

� Pour i tel queai,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}

� On en déduit la variable sortante :

xs telle quebs /as,e = min {bi /ai,e : ∀ i = 1, …, m et ai,e > 0}

66 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 34: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

34

� On appelle :as,e : élément pivot

Ligne s : ligne pivot

Colonne e : colonne pivot

� Maintenant on a donc une nouvelle base B’ = {1, …, e, …, m} avec xs étantune nouvelle variable hors base

� Il faudra ainsi représenter le PL sous la forme canonique associée à B’

� La colonne de xe doit être transformée afin de conserver la matriced’identité :

s

0

1

0

a

a

a

e,m

e,s

e,1

Ligne ←

M

M

M

M

67 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

� Pour ce faire, on applique les opérations élémentaires suivantes (selon Gauss-Jordan) :

OP1 : Division de la ligne pivot par l’élément pivot as,e

asj’ = as,j /as,e ∀ j, �ase’ = 1

68 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Variables de base

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

x1.

xs.

xm

1 … 0 … 0 0 a1,m+1 … a1,e …a1,n

0 … 1/ as,e… 0 0 as,m+1’ … 1 …as,n’

0 … 0… 1 0 am,m+1 am,e … am,n

b1.

bs/as,e

.bm

-z 0 … 0 … 0 1 ∆ m+1 … ∆ e … ∆ n -cBB-1b = -z

Page 35: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

35

Variables de base

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

x1.

xs.

xm

1 … 0 … 0 0 a1,m+1 … a1,e …a1,n

0 … 1/ as,e… 0 0 as,m+1’ … 1 …as,n’

0 … 0… 1 0 am,m+1 ...am,e … am,n

b1.

bs/as,e

.bm

-z 0 … 0 … 0 1 ∆ m+1 … ∆ e … ∆ n -cBB-1b = -z

OP 2 : ∀ i ≠s, soustraction d’un multiple approprié de la ligne pivot pour

annuler le coefficient de la ligne i , colonne e.

0

0

1

0

69 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

aij’ = aij – aie as,j/as,e ∀ j = 1 , …, n+1 (n+ dernière ligne du tableau) � aie’ = 0

∆j’ = ∆j - ∆e as,j/as,e ∀ j = 1, …, n+1 (n variables plus -z )

Le nouveau tableau canonique est donc le suivant :

Var. de base

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

x1.xs

.xm

1 … -a1,e (1/as,e) … 0 0 a1,m+1’…0 …a1,n’

0 … 1/as,e … 0 0 as,m+1’…1 …as,n’

0 … -am,e (1/as,e)…1 0 am,m+1’ …0 …am,n

b1–a1,e (bs/as,e) .

bs/as,e

.bm’

-z 0 … - ∆e (1/as,e) 0 1 ∆ m+1 ’ … 0 … ∆ n’ - z - ∆e (bs/as,e)

70 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 36: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

36

Exemple (1/3)max z = 3x1 + 2x2

s.c. 3x1 + 2x2 ≤ 120x1 + 1x2 ≤ 50x1, x2 ≥ 0

Question : Trouver la solution optimale en appliqaunt la méthode du Simplexe ?

A. Forme Standard

max z = 3x1 + 2x2

s.c. 3x1 + 2x2 +S1= 120x1 + 1x2 +S2 = 50x1, x2 ≥ 0

71 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

#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 3/3=1 2/3 1/3 0 40

s2 1-1=0 1/3 -1/3 1 10 →

∆j 3-3=0 0 -1 0 -120

72 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Exemple (2/3)B. Tableau canonique

Page 37: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

37

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

73 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Exemple (3/3)B. Tableau canonique

4. Résumé de l’algorithme du simplexe

1. Mettre le PL sous la forme standard2. Trouver une solution initiale de base (SBR initiale)3. Ecrire le PL sous la forme canonique relative à la SBR initiale4. Itérations :

4.1. Si le critère d'arrêt est satisfait (Δ ≤ 0), donner le résultat final (solution optimale) ; sinon aller à l'étape 4-2.4.2. Déterminer la variable entrante (ou la colonne pivot) selon le 1er critère de DANTZIG 4.3. Déterminer la variable sortante (ou la ligne pivot) selon le 2ème critère de DANTZIG4.4. Calculer le nouveau tableau en effectuant une opération de pivot. Retour à 4-1.

74 RCP104 – Optimisation en Informatique Novembre 2013

Méthode du simplexeDétails de la méthode

Page 38: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

38

Dualité en PLIntroduction

Il est possible à partir d’un PL (P) de former un autre programme linéairequ’on appelle programme dual (D) associé à (P). Dans ce contexte, on appelle(P) problème primal.

(P) : max cx (D) : min w = yb

s.c.Ax ≤ b s.c. yA ≥ c

x ≥ 0 y ≥ 0

La notion de dualité est très importante pour le mathématicien, car dans lecas où le primal a beaucoup de contraintes, le dual peut être plus facile àrésoudre que le primal.

Pour l'économiste et le gestionnaire, la dualité est très importante. On verradans la suite son interprétation économique.

75 RCP104 – Optimisation en Informatique Novembre 2013

� bi : quantité totale de la ressource i

� aij : quantité de la ressource i consommée pour fabriquer une unité duproduit j

� cj : coût unitaire du produit j

� yi représente la valeur unitaire de la ressource i

Elle est souvent appelée coût fictif ou prix ombre. C’est le montantmaximum que l’on sera prêt à payer (Client) pour une unitésupplémentaire de le ressource i ou encore le prix minimum auquel onserait prêt à vendre (Fournisseur) une unité de la ressource i.

76 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLInterprétation économique

Page 39: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

39

Considérons l'exemple suivant : une usine fabrique des bureaux, des tableset des 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 dechaque ressource est donnée comme suit :

ProduitRessource

Bureau Table Chaise Quantité de ressource disponible

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

77 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de maximisation

On désire maximiser le revenu

Question : Modéliser ce problème ?

Variables de décision :

x1 = nombre de bureaux fabriquésx2 = nombre de tables fabriquéesx3 = nombre de chaises fabriquées

(P) max z = 60 x1 + 30 x2 + 20 x3

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

78 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de maximisation

Page 40: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

40

Supposons qu'un entrepreneur veut acheter toutes les ressources de l’usine(bois, heure menuiserie, heure finition) . Il veut certainement que le prix totalde 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) = 48 y1 + 8 y2 + 20 y3 et désire minimiser w,mais il doit payer suffisamment pour convaincre l’usine de vendre sesressources.

79 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de maximisation

Par exemple, il doit payer au moins 60D pour une combinaison de :

8 plaques de bois + 2 heures de menuiserie + 4 heures de finition car l’usinepeut utiliser ces ressources pour fabriquer un bureau et le vendre pour 60D.

L'entrepreneur doit payer au moins 60D, sinon l’usine ne verra aucune raisonde lui vendre ses ressources ⇒ 8y1 + 2 y2 + 4 y3 ≥ 60

De même on a : 6y1 + 1.5 y2 + 2 y3 ≥ 30

y1 + 0.5 y2 + 1.5 y3 ≥ 20

avec y1, y2, y3 ≥ 0 ← coûts fictifs ou prix ombre (resource shadow price)

80 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de maximisation

Page 41: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

41

Le problème dual est ainsi le suivant :

(D) min w = 48y1 + 8 y2 + 20 y3

s.c. 8y1 + 2 y2 + 4 y3 ≥ 606y1 + 1.5 y2 + 2 y3 ≥ 30y1 + 0.5 y2+ 1.5 y3 ≥ 20y1, y2, y3 ≥ 0

81 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de maximisation

Considérons l’exemple suivant : Une famille désire préparer un menuéquilibré à coût minimal. Ce menu doit être constitué de 6 aliments (notés 1,2, 3, 4, 5 et 6) et doit contenir au moins 9 unités de vitamine A et 19 unités devitamine C.

Les proportions en vitamine A et C de chaque aliment ainsi que les quantitésminimales requises de chaque vitamine et les coûts des différents alimentssont présentés dans le tableau suivant :

Proportions vitamine /Kg d'aliment

1 2 3 4 5 6

Qté min requises /jour

Vitamine AVitamine C

1 0 2 2 1 20 1 3 1 3 2

919

Coût de l'aliment 35 30 60 50 27 22

82 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de minimisation

Page 42: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

42

Question : Modéliser ce problème ?

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

(P) : min z = 35x1 + 30 x2+ 60 x3 + 50 x4 + 27 x5+ 22 x6s.c. x1 + 2 x3 + 2 x4 + x5 + 2 x6 ≥ 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 proposede 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 lafamille d'obtenir les quantités requises des vitamines en utilisant lescomprimés au lieu des aliments. La famille, étant consciente de l'aspectmonétaire, n'utilisera les comprimés que si leurs prix sont compétitifs parrapport aux prix des aliments. Ceci impose plusieurs contraintes sur les prixdes comprimés que le fabriquant doit fixer.

83 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de minimisation

Soient y1 : prix de la vitamines A

y2 : prix de la vitamine C

Prenons par exemple l'aliment 5 : Un kg de ce dernier 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. Or un kg de l’aliment 5 coûte 27.

Il faut donc que y1 + 3 y2 ≤ 27, sinon la famille réalisera que les prix du fabriquant ne sont pas compétitifs (elle aura intérêt à acheter l’aliment 5).

De l'autre côté, puisque le fabricant veut gagner dans cette affaire, y1 et y2doivent ê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, ça coûtera cher étant donné que y1 et y2 ≥ 0.

84 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de minimisation

Page 43: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

43

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 ≤ 35y2 ≤ 302 y1 + 3 y2 ≤ 602 y1 + y2 ≤ 50y1 + 3 y2 ≤ 272 y1 + 2 y2 ≤ 22y1, y2 ≥ 0

85 RCP104 – Optimisation en Informatique Novembre 2013

Dualité en PLProblème de minimisation

Exercice 2Reprenons 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

Question : Trouver la solution optimale en appliqaunt la méthode du Simplexe ?

86 RCP104 – Optimisation en Informatique Novembre 2013

Page 44: Chapitre 4: Programmation Linéaire (PL) - Yola

15/12/2013

44

Exercice 2Reprenons 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

Question : Trouver la solution optimale en appliqaunt la méthode du Simplexe ?

87 RCP104 – Optimisation en Informatique Novembre 2013

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

Références

RCP104 – Optimisation en Informatique88

� Cours Optimisation en Informatique – Eric Soutif

� Cours Programation Linéaire - Rim Larbi

� Wikipédia

Novembre 2013