Vous êtes sur la page 1sur 19

Plan du chapitre 4 Principes de

Optimisation en Informatique base de la PL


RCP104
1. Introduction la programmation linaire
Cours 3 Principes de base de
2. Modlisation de problmes
la Programmation Linaire (PL)
3. Premire utilisation dun solveur
4. Rsolution graphique : un pb deux
variables
5. Mthode des tableaux du simplexe
6. Dualit en programmation linaire

Eric Soutif

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 2

1. Introduction la Programmation
Exemple dun modle de PL
Linaire
 Donnes du problme (Entreprise Clotres Martin)
 Un problme central en Recherche Oprationnelle
Deux types de produits (produit 1, produit 2)
 Problme classique de planification : affecter des Trois usines (usine 1, usine 2, usine 3)
ressources limites plusieurs activits concurrentes Capacit limite de production de chaque usine (par semaine)
 Programme = Plan (solution de ce problme) Profit par lot (20 units de chaque produit)
 Programmation RO Programmation informatique
 Fonction linaire : fonction dans laquelle chaque variable Tps de production (h / lot)
volue linairement Capacit de
production (h)
f ( x1 , x2 , K , xn ) = c1 x1 + c2 x2 + K + cn xn Produit 1 Produit 2

 Programme linaire = Programme mathmatique o Usine 1 1 0 4


toutes les fonctions sont linaires Usine 2 0 2 12
Usine 3 3 2 18
Profit () / lot 3000 5000
Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 3 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 4

Exemple dun modle de PL (suite) Exemple dun modle de PL (suite)

 Chaque lot du produit 1 (2) est le rsultat combin de la production  Contraintes de capacit de production
aux usines 1 et 3 (2 et 3)
x1 4 (usine 1)
 nonc du problme : dterminer le taux de production pour 2 x2 12 (usine 2)
chaque produit (nombre lots par semaine) de faon maximiser le 3 x1 + 2 x2 18 (usine 3)
profit total

 Variables de dcision :
x1 : nombre de lots du produit 1
x2 : nombre de lots du produit 2  Contraintes de non-ngativit :
x1 0, x2 0 (nombre dunits produites 0)
 Fonction objectif :
Z = profit total
Z = 3 x1 + 5 x2 (profit total en milliers deuros)
Maximiser Z

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 5 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 6

Formation CNAM 1
Exemple dun modle de PL (fin) Terminologie de base en PL

 Solution ralisable (admissible) : solution pour laquelle toutes les


contraintes sont satisfaites (appartient au domaine ralisable)
Maximiser Z = 3 x1 + 5 x 2  Solution non ralisable : solution pour laquelle au moins une
x1 4 contrainte nest pas satisfaite (nappartient pas au domaine
ralisable)

sous les contrainte s x 2 12
Solution optimale : solution ayant la meilleure valeur possible de
2 
lobjectif
3 x1 + 2 x 2 18  Modle nayant aucune solution optimale :
Domaine ralisable vide

x1 0, x2 0 Objectif non born


 Modle ayant une infinit de solutions optimales

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 7 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 8

2. Modlisation de problmes
Terminologie de base en PL (suite)
Exemple 1 : horaire de personnel

Pas de solution Objectif non born  Chaque jour est divis en priodes
Maximiser Z = 3 x1 + 5 x2 Maximiser Z = 3x1 + 5 x2
 On a pu estimer un nombre minimum demploys (MinEmp)
x1 4 x2 4
devant tre affects durant chaque priode
s. c. x 5 s. c. x1 5 Chaque jour est divis en quarts de travail de 8 heures
1
x1 0, x2 0


x1 0, x2 0  Plusieurs quarts partagent une mme priode


 Chaque quart de travail exige un salaire particulier
Une infinit de solutions optimales  Combien demploys doit-on affecter chaque quart de
travail de faon minimiser le total des salaires verss, en
Maximiser Z = x1 + x2 respectant le nombre minimum demploys pour chaque

s. c. x1 + x2 4 priode ?
x1 0, x2 0

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 9 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 10

Exemple 1 : donnes du problme Exemple 1 : modle

 xj : nombre demploys affects au quart j


 Objectif :
Minimiser Z = 170 x1 + 160 x2 + 175 x3 + 180 x4 + 195 x5
 Pour chaque priode, le nombre demploys affects aux
diffrents quarts doit couvrir le minimum demploys requis
pour cette priode
 Exemple, priode de 14h 16h :
x2 + x3 64

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 11 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 12

Formation CNAM 2
Exemple 1 : modle dtaill Exemple 1 : conclusions
Minimiser Z = 170 x1 + 160 x2 + 175 x3 + 180 x4 + 195 x5 o x1 + x 2 79 x1 + x 2 65
x1 48 Cette dernire contrainte est donc redondante et peut tre enleve

x1 + x2 79 o x3 + x4 82 x3 + x4 73
x1 + x2 65 Mme observation avec cette contrainte

x1 + x2 + x3 87 o x1 0, x4 0, x5 0 sont aussi redondantes mais il ny a
x2 + x3 64
aucun intrt les liminer : prise en compte implicite dans le
sous les contraintes x + x 73 processus de rsolution
3 4

x3 + x4 43 o Solution optimale (obtenue par le solveur dExcel) :


x4 82 ( x1 , x 2 , x3 , x 4 , x5 ) = ( 48,31,39 ,43,15 )

x4 + x5 52 o Problme : le nombre demploys doit toujours tre entier, donc
lhypothse de divisibilit nest pas satisfaite dans le modle
x5 15
(bien que la solution optimale dans ce cas particulier soit entire)

x j 0, j = 1,2,3,4,5
Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 13 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 14

Exemple 2 : un rseau de
Exemple 2 : donnes du problme
distribution
 Deux usines (U1, U2) 50 units 900/unit 30 units
produites U1 E1
requises
 Un centre de distribution (CD)
 Deux entrepts (E1, E2) 400/unit
 Chaque usine confectionne un certain nombre dunits dun
mme produit (offre) 200/unit 200/unit 300/unit
 Chaque entrept requiert un certain nombre dunits de ce [10] CD
mme produit (demande)
100/unit
 Sur chaque lien (arc) du rseau, il y a un cot de transport [80]
par unit de produit (cot unitaire) 300/unit
 Sur certains arcs, il y a une capacit sur le nombre dunits
40 units 60 units
transportes produites U2 E2
requises
 Objectif : minimiser le cot de transport total

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 15 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 16

Exemple 2 : modle Exemple 2 : modle dtaill

 mxi,j = nombre dunits du produit transportes sur larc (i, j) (entre les
sommets i et j)
 Objectif (en centaines d) : Minimiser Z Minimiser Z = 2 xU1, U2 + 4 xU1,CD + 9 xU1, E1 + 3xU2,CD + xCD, E2 + 3xE1,E2 + 2 xE2, E1
xU1, U2 + xU1,CD + xU1, E1 = 50
Z = 2 xU1,U2 + 4 xU1,CD + 9 xU1,E1 + 3xU2,CD + xCD,E2 + 3xE1,E2 + 2 xE2,E1
xU1, U2 + xU2,CD = 40
 Conservation du flot : en chaque sommet du rseau,
flot sortant = flot entrant s. c. xU1,CD xU2,CD + xCD, E2 = 0
Nbre dunits produites (usines) = Nbre dunits requises (entrept) xU1, E1 + xE1,E2 xE2,E1 = 30

xCD, E2 xE1,E2 + xE2,E1 = 60
Capacit (sur certains arcs)

xU1, U2 0, xU1,CD 0, xU1, E1 0, xU2,CD 0, xCD, E2 0, xE1, E2 0, xE2,E1 0
Exemple, pour larc (U1,U2) : xU1,U2 10

 Contraintes de non-ngativit

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 17 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 18

Formation CNAM 3
Exemple 3 : Composition
Exemple 2 : conclusions
daliments pour le btail
 On dsire dterminer la composition, cut minimal, dun aliment pour btail
 Cest un problme de flot cot minimum (ou problme de transport) qui est obtenu en mlangeant au plus trois produits bruts : orge, arachide,
 Solution optimale : ssame. Laliment ainsi conditionn devra comporter au moins 22% de
protines et 3,6% de graisses, pour se conformer aux exigences de la
clientle. On a indiqu ci-dessous les pourcentages de protines et de
( xU1, U2 , xU1,CD , xU1, E1 , xU2,CD , xCD,E2 , xE1,E2 , xE2,E1 ) = (0,40,10,40,80,0,20) graisses contenus, respectivement, dans lorge, les arachides et le ssame,
ainsi que le cot par tonne de chacun des produits bruts :
1 2 3 Pourcentage
Produit brut
 Le nombre dunits transportes doit toujours tre une valeur entire, ORGE ARACHIDES SESAME requis

donc lhypothse de divisibilit semble ne pas tre satisfaite dans ce Pourcentage de


12% 52% 42% 22%
protines
modle mais :
Pourcentage de
 Pour un problme de flot cot minimum (dont les paramtres sont graisses
2% 2% 10% 3,60%

entiers), il existe toujours une solution optimale entire (on peut le


Cot par tonne 25 41 39
prouver)
 Confirmation de ce rsultat dans ce cas particulier  On notera xj (j = 1,2,3) la fraction de tonne de produit brut j contenu dans une
tonne daliment. Formuler le problme algbriquement.
 Montrer quil est est possible de rduire la dimension du problme en
liminant x1.
 Rsoudre graphiquement ce problme.
Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 19 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 20

Modle gnral de PL Modle gnral de PL (suite)

Objectif
 m ressources (3 usines) Maximiser Z = c1 x1 + c2 x2 + K + cn xn
 n activits (2 produits) Contraintes fonctionnelles
 xj : niveau de lactivit j (taux de production du produit j)
a11 x1 + a12 x2 + K + a1n xn b1
 Mesure de performance globale (profit total) : Z
 Accroissement de Z rsultant de laugmentation dune unit a21 x1 + a22 x2 + K + a2 n xn b2
du niveau de lactivit j : cj
 Quantit disponible de la ressource i : bi
 Quantit de ressource i consomme par lactivit j : aij
am1 x1 + am 2 x2 + K + amn xn bm
Contraintes de non ngativit
x1 0, x2 0, K, xn 0

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 21 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 22

4. Rsolution graphique : un
3. Premire utilisation dun solveur
problme deux variables
 Rsoudre le PL servant dexemple laide du solveur dExcel
 Bouton Office (rond), Options Excel, Complments, Complment
Solveur Maximiser Z = 3x1 + 5 x2
x1 4
Maximiser Z = 3 x1 + 5 x2
s. c. x2 12
2
x1 4 3 x1 + 2 x2 18

sous les contrainte s 2 x2 12 x1 0, x2 0
3 x1 + 2 x2 18

x1 0, x2 0

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 23 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 24

Formation CNAM 4
Rsolution graphique (suite) Mthode graphique (rsum)
 Tracer les droites correspondant aux contraintes
 Dterminer le domaine ralisable en vrifiant le sens des ingalits
pour chaque contrainte
 Tracer les droites correspondant la variation de lobjectif
3 1
Dans lexemple : Z = 3 x1 + 5 x 2 x2 = x1 + Z
5 5
Ordonne lorigine (dpend de la valeur de Z) : 1 Z
5
3
Pente :
5
Maximiser correspond donc augmenter Z

 Mais : uniquement pour les modles deux variables


 Plus de deux variables : mthode du simplexe

Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 25 Optimisation en informatique RCP 104 Chapitre 3 Principes de base de la Programmation Linaire 26

Formation CNAM 5
RCP104 Optimisation en Informatique

Chapitre 3 Bases de la Programmation Linaire (PL)

E. Soutif (eric.soutif@cnam.fr)

1. INTRODUCTION A LA PL ( Fichier powerpoint)

2. MODELISATION DE PROBLEMES ( Fichier powerpoint)

3. PREMIERE UTILISATION DUN SOLVEUR ( Fichier powerpoint)

4. RESOLUTION GRAPHIQUE : PROBLEME A DEUX VARIABLES ( Fichier powerpoint)

5. METHODE DES TABLEAUX DU SIMPLES

5.1) Forme gnrale, canonique et standard dun P.L.

Forme gnrale. La forme gnrale dun P.L. est la suivante :


 maximiser  =   

 

 




   =   ! NB : si  et  sont deux vecteurs colonne :



 *


   =    produit scalaire
s.c.       ! # * 



  0 & '

 #
 rel & '

 =    =  est appele fonction objectif (ou fonction conomique), note souvent 6 = .

Forme canonique : Forme standard :

Max  Max 
7s.c. 9 : ** 7s.c. 9 : = **
0 0

NB : A est une matrice mn, x et c sont deux vecteurs colonnes de n composantes, b est un vecteurs m
composantes.

   = 


   =  *
x

: = 


 

  >  = >
A b

RCP104 Optimisation en Informatique


Bases de la programmation linaire 1
Remarque : maximiser 6 =  revient minimiser 6 =  maxBC  = minBC ().

Min  Max 
Rsoudre 7 : = ** revient donc rsoudre 7 : = * *. Les solutions optimales sont
s.c. 9 s.c. 9
0 0
les mmes, les valeurs optimales sont opposes.

Passage de la forme gnrale la forme canonique :


   
    

   =  *




    
 
On remplace la variable  par deux variables 0,  et G en posant :
#
 rel (& ') 7 *
 =  G ,  , G 0

Passage de la forme gnrale la forme standard :

 On introduit une variable dite variable d'cart (slack) positive ou nulle, 


*

    H
   +  =  , avec  0



5.2) Polydre des solutions et reprsentation graphique

Lensemble

M = N  t.q. : = ,  0Q

est appel polytope des solutions associ un P.L. Il sagit dun polytope convexe. Sil est born, on parle de
polydre convexe. Pour des problmes deux ou trois variables (cas dcole), on peut reprsenter le polydre
des solutions.

Un vecteur  M est dit solution ralisable ou admissible du P.L. considr.

Exemple : Polydre des solutions du PL suivant :

maximiser 6 = 4 + 12G + 3V


  1000

G 500
  1500 * *
 s.c.  V
 3 + 6G + 2V 6750
  0, G 0, V 0

RCP104 Optimisation en Informatique


Bases de la programmation linaire 2
Le plan GHI a pour quation : 3 + 6G + 2V = 6750

Lensemble des solutions ralisables est lensemble des points situs lintrieur du polydre (OABCDEFGHI).

5.3) Bases, solutions de base, gomtrie des polydres

On considre un P.L. sous sa forme standard :

Max 
7s.c. : = **
9
0

On considre que le rang de la matrice A est m.

NB : rang(A) = dimension de la plus grande sous-matrice carre rgulire (= inversible, de dterminant 0)


que lon peut extraire de A

comme combinaisons linaires des autres. Suivant la valeur des coefficients  , les contraintes
Remarque : On peut toujours le supposer : si rang(A) < m, une ou plusieurs lignes de A peuvent sexprimer

correspondantes sont soit redondantes (on peut alors les liminer), soit incompatibles avec
les autres (Ax = b na alors pas de solution).

matrice carre inversible ([ [) extraite de A (il en existe au moins une puisque rang(A) =
Dfinition : On appelle matrice de base (ou encore, par un lger abus de langage, base) toute sous-

m).

Dfinition : On appelle base lensemble des indices des colonnes qui constitue une matrice de base (on
appelera galement base lensemble de variables correspondant ces colonnes).

] ]
Soit B une matrice de base. En permutant les colonnes, on peut mettre A sous la forme A=[B, N] o N est la
sous-matrice des colonnes hors-base. De mme, on peut crire x sous la forme \ _^ ` et c : \ _^ `.
 

Lquation Ax = b scrit alors :

a ] + ' ^ =  (1)

 ] variables de base
 ^ variables hors-base

RCP104 Optimisation en Informatique


Bases de la programmation linaire 3
posant  ^ = 0.  ] est alors dtermin de faon unique par la rsolution du systme (de
Dfinition : On appelle solution de base (associe la base B) la solution particulire de (1) obtenue en

Cramer) : a ] = , cest--dire :  ] = ad . On notera e le vecteur ad .

 ^ = 0 *
Solution de base associe la base B : f
 ] = ad  g= eh

Dfinition : Une solution de base est dite solution de base ralisable si  ] 0, i.e. : e 0.

Dfinition : Une base correspondant une solution de base ralisable est appele base ralisable.

Dfinition : Une solution de base est dite dgnre si le vecteur  ] = e a une ou plusieurs composantes
nulles.

La dgnrescence est un phnomne frquent dans certains problmes (flots, transport, plus courts
chemins).

Dfinition : On appelle point extrme tout point  de M = N  t.q. : = ,  0Q qui ne peut


sexprimer comme combinaison convexe dautres points i de M i   ne peut scrire
 = l l
k jk i , jk 0, k jk = 1.
k

5.5) Caractrisation algbrique des points extrmes

Thorme 1 : Lensemble des points extrmes de X correspond lensemble des solutions de base ralisables.

Dmonstration :

a)  solution de base ralisable  point extrme

En effet, on a  =  , G , , > , 0, ,0.

Supposons que  = jo + 1 jp 0 < j < 1, o M, p M, o p ,

o = o , oG , , o> , o>r , , o *


avec : f
p = p , pG , , p> , p>r , , p 

On doit alors avoir : jo + 1 jp = 0 & N[ + 1, , tQ.

Les m premires composantes de o et p sont dtermines de faon unique par la rsolution du


systme de Cramer a ] = , do  = o = p contradiction.

b)  point extrme  solution de base ralisable dmonstration non vue ici.

Corollaire 1 : Il y a un nombre fini de points extrmes v> .


!
(En effet, v> = >!d>! est le nombre de possibilits de choisir m colonnes de A parmi n et toutes les sous-
matrices extraites de A ne sont pas inversibles et ralisables.)

Corollaire 2 : Tout point de X est combinaison convexe des points extrmes de X. (Dmonstration non vue
ici.)

RCP104 Optimisation en Informatique


Bases de la programmation linaire 4
Thorme 2 (Optimalit en un point extrme) : Loptimum de z sur X est atteint en au moins un point
extrme. Sil est atteint en plusieurs points extrmes, il est atteint en tout point combinaison
convexe de ces points extrmes.

Dmonstration :

Soient i , i G , , i l les points extrmes de M. Posons 6 = maxkN,,lQ 6i k  (avec 6 =  =


   ). Montrons qualors 6 = maxBC 6.

 M  = l
k jk i
k

jk 0 y et l
Daprs le corollaire 2, tout point de peut scrire avec
k jk = 1. On a donc :

k jk i h = k jk   i


6() =    =   gl k l  k

= l
k jk 6gi h
k

l
k jk 6 = 6

5.5) Caractrisation des solutions de base ralisables optimales

Thorme 3 : Soit B une base ralisable non dgnre (e = ad  > 0). B est une base ralisable optimale si
et seulement si :

& ',  =   e  0


]

( est appel le cot rduit de la variable hors-base  )

avec : : = |e } = ad :=

Dmonstration :

Soit x une solution quelconque de X (pas ncessairement de base). On a toujours :

: = a
a ] + ' ^ = 
 ] + ad ' ^ = ad 
] + '# ^ = e
Pour  a, on a donc :

 + ^ e  = e (On exprime les variables de base en fonction des variables hors-base)

R-crivons maintenant la fonction objectif en ne faisant apparatre que les variables hors-base :

6() =    =    +   
 ] ^

6() =   ~e  e   +   


] ^ ^

RCP104 Optimisation en Informatique


Bases de la programmation linaire 5
6 =   e +    e     e +   
] ^ ] ] ^

6 = 6 +   
^

avec 6 = ]  e =constante

Condition suffisante : g&  0h B base ralisable optimale

^ = 0 *
En effet, soit  la solution de base ralisable : 7
] = ad 

6  = ad  =   e = 6


]

 M, 6 = 6 + ^   6 = 6  (car  0  0)

 est une solution optimale.

Condition ncessaire : Montrons que sil existe ' tel que > 0, alors on peut construire une solution
meilleure.

Pour a,  = e ^ e  = e ^ e  e  .




On va alors augmenter la valeur de  qui va passer de la valeur 0 une valeur >0. On considre la
solution :

 =
 = 0 & ' NQ *

 = e e  a

# tant positif, on peut toujours trouver > 0 suffisamment petit pour que  soit positif ou nul :

e
min
 e 
e

Remarque : si tous les e sont ngatifs ou nuls, on peut alors choisir aussi grand que lon veut et le
problme de dpart admet une solution infinie.

La fonction objectif dcrot alors strictement : 6() = 6( ) +




Proprit : Soit B une base ralisable et  la solution de base associe. Sil existe une variable hors-base 
telle que > 0, alors :

1. Ou bien on peut augmenter indfiniment la valeur de  sans sortir de lensemble des


solutions ralisables et loptimum du problme est 6 = + (cest le cas si e 0 )
2. Ou bien on met en vidence une autre base a et une autre solution ralisable  telle que
6() > 6( ) si B tait non dgnre
6() 6( ) si B tait dgnre

RCP104 Optimisation en Informatique


Bases de la programmation linaire 6
(On calcule = min e e =
e e
qui peut tre nul si B tait dgnre, et  est dfini comme dans la
e
,
dmonstration prcdente.  > 0 et  = e e = 0 :  est une solution de base.

Remarques :

on passe de la base B la base a en changeant les colonnes r et s.


en cas de dgnrescence, un phnomne de cyclage peut se produite : on passe de bases en bases
sans faire augmenter strictement la valeur de la solution de base courante. Il est alors possible, au
bout dun certains nombre de changements de base, de retomber sur une base prcdemment
visites. Toutefois, mme si la dgnrescence est frquente, le cyclage, lui, est un phnomne
rarissime et dont il est possible de se prmunir thoriquement (utilisation des rgles de Bland, non
vues ici).

5.6) Algorithme du simplexe

Algorithme

# = ad ' = [e ] et les cots rduits :  =  ] e  (& ').


b) Calculer '
a) Dterminer une solution de base ralisable B.

c) si  0 & ',

alors la solution considre est optimale. ( FIN)

sinon soit = &  > 0.

finsi

d) si : 0 (& > colonne) pour au moins un indice &

alors 6 = + ( FIN)

sinon soit s tel que = max  (1er critre de Dantzig, ou critre dentre)
e e
=min e e
e
dterminer r tel que (2me critre de Dantzig ou critre

de sortie)

finsi

Remarque : seul le deuxime critre est obligatoire (pour rester lintrieur de X).

e) Considrer la nouvelle base a = a NQ + NQ et retour en b)

Gomtiquement, cet algorithme correspond un cheminement de point extrme en point extrme adjacent
le long de la frontire de X.

Dun point de vue algbrique, il correspond dterminer une suite de bases adjacentes a , a , , a et donc
de solutions de base  , ,  telles que 6( ) 6( ) 6g h.

Thorme 4 : Lalgorithme du simplexe converge.

RCP104 Optimisation en Informatique


Bases de la programmation linaire 7
(Ce thorme nest pas dmontr ici, sa preuve repose sur la finitude du nombre de bases et sur la possibilit
de se prmunir du cyclage).

5.7) Base de dpart

On sarrange toujours pour faire apparatre une matrice identit dont les colonnes vont former la base de
dpart initiale, au besoin en transformant le problme de dpart par introduction de variables
supplmentaires :

Des variables dcart, qui permettent de transformer une ingalit de type en une galit ; Si toutes
les contraintes de dpart sont des contraintes de type , les variables dcart forment une base de

dpart naturelle.
Eventuellement des variables artificielles qui permettent de traiter des ingalits de type ou des
galits.

Exemple 1 :

[[ 6 =  + 2G 2V


 + G V = 3 *
  H
. .  + 3G = 4 *
 0, G 0, V 0

positifs ou nuls, puis on introduit deux variables artificielles : i et iG avec un cot M<0 trs grand en valeur
Il sagit de contraintes dgalit : on multiplie la deuxime contrainte par -1 pour avoir des seconds membres

absolue dans la fonction objectif. A loptimum,   =   :

[[ 6 =  + 2G 2V !i !iG


 + G V + i = 3 *
  H *
. .  3G + iG = 4
 0, G 0, V 0, i 0, iG 0

1 0
Base de dpart : i , iG , a = .
0 1

Exemple 2 :

[[ 6G =  + 2G
 + G 3 *
G  H
. .  3G 4 *

 0, G 0

On introduit deux variables dcart # et G# dans les deux premires contraintes pour les transformer en
contraintes dgalit. La deuxime contrainte tant de type , G# est affecte du signe moins :

[[ 6G =  + 2G
 + G + # = 3 *
H *
. .  3G G# =4
 0, G 0, # 0, G# 0

Puis, comme on na toujours pas fait apparatre la matrice identit, on introduit une variable artificielle iG de
cot M<0 trs grand (en valeur absolue) :

RCP104 Optimisation en Informatique


Bases de la programmation linaire 8
[[ 6G =  + 2G !iG
 + G + # = 3 *
G  H
. .  3G G# + iG = 4 *

 0, G 0, # 0, G# 0

1 0
Base ralisable de dpart : # , iG , a =
0 1

5.8) Tableaux du simplexe

Pour faciliter la rsolution la main dun PL, on met le programme sous la forme suivante :

z est exprime en fonction des variables hors-base (les coefficients de la fonction objectif sont alors
directement les cots rduits) ;
les colonnes de la matrice de base forment ( une permutation prs) une matrice identit.
Chaque ligne reprsente une contrainte du PL, sauf la dernire qui reprsente la fonction objectif
crite en faisant apparatre les cots rduits (elle ne comporte que les variables hors-base)
La dernire case du tableau contient loppos de la constante de la fonction objectif, cest--dire
loppos de la valeur de la solution de base associe la base courante

Soit le problme :

[[ 6 =  + 2G
 3 + 2G 2

 + 2G 4 * *
 . .   + G 5

  0, G 0

On introduit des variables dcart # , #G et #V :


[[ 6 =  + 2G
 3 + 2G + # 2

 + 2G + #G 4 *
*
 . .   + G + V# 5

  0, G 0, # 0, G# 0, V# 0

Les variables dcart constituent une base de dpart : a = N# , #G , #V Q.

Le premier tableau du simplexe scrit alors :

 G # G# V# e


# 
B

#G G
-3 2 1 0 0 2

V# V
-1 2 0 1 0 4


1 1 0 0 1 5


1 2 0 0 0 -0

 = G = 0 variables hors-base) *
Solution de base associe ce tableau : 7 de valeur 6 = 0.
# = 2, G# = 4, V# = 5 (var. de base)

RCP104 Optimisation en Informatique


Bases de la programmation linaire 9
La base nest pas optimale car nest pas 0. On effectue donc une nouvelle itration de lalgorithme du
simplexe :

entre en base (plus grand cot rduit)


G G
Min G , G ,  = G, obtenu pour la ligne de # : # sort de la base.

combinaisons linaires qui permettent que la nouvelle colonne de G corresponde lancienne colonne de # .
On pivote alors autour de llment 2 du tableau (ligne 1, colonne2), cest--dire quon effectue les

Do le deuxime tableau du simplexe :

B  G # #G #V e


 = G

G -3/2 1 1/2 0 0 1
#G 2 0 -1 1 0 2 G = G 
V = V G

V# 5/2 0 -1/2 0 1 4
4 0 -1 0 0 -2 = + 

 = # = 0 (variables hors-base) *


Solution de base associe ce tableau : 7 de valeur 6 = 2.
G = 1, #G = 2, #V = 4 (var. de base)

Cette nouvelle base nest toujours pas optimale car nest pas 0. On effectue donc une nouvelle itration
de lalgorithme du simplexe :

entre en base (plus grand cot rduit)


Min , = , obtenu pour la ligne de G# : # sort de la base.
G G
G /G G

Do le troisime tableau du simplexe :

 G # G# V# e


G  =  + G
V
B

G = G G
1 -1/2 3/4 0 5/2

0

0 -1/2 1/2 0 1
V = V G
1
V#

0 0 3/4 -5/4 1 3/2
= 2G

0 0 1 -2 0 -6

# = G# = 0 (variables hors-base) *


Solution de base associe ce tableau : 7 de valeur 6 = 6.
G = 5/2,  = 1, #V = 3/2 (var. de base)

Cette nouvelle base nest toujours pas optimale car nest pas 0. On effectue donc une nouvelle itration
de lalgorithme du simplexe :

# entre en base (plus grand cot rduit)


Min = , obtenu pour la ligne de V# : # sort de la base.
V V

RCP104 Optimisation en Informatique


Bases de la programmation linaire 10
Do le quatrime tableau du simplexe :

 G # G# V# e


G
 =  + VV
G
B


G = G + V V
0 1 0 1/3 1/3 3
 G


V = V V
1 0 -1/3 2/3 2
#
0


0 0 1 -5/3 4/3 2

= V V


0 0 0 -1/3 -4/3 -8

G# = V# = 0 (variables hors-base) *


Solution de base associe ce tableau : 7 de valeur 6 = 8.
G = 3,  = 2, # = 2 (var. de base)

Cette base est (enfin) optimale car 0. La solution de base associe est donc la solution optimale du
problme. Loptimum du PL de dpart est donc = (, ). La valeur optimale est = .

6. DUALITE EN PROGRAMMATION LINEAIRE

La dualit une notion fondamentale en PL. Chaque PL de maximisation donne lieu un PL de minimisation
appel son problme dual. Les deux problmes sont lis : chaque solution admissible de lun fournit une
borne de la valeur optimale de lautre et si les deux problmes ont des solutions, leurs valeurs optimales
concident.

6.1) Motivation : trouver des majorants de la valeur optimale

Max 6 = 4 + G + 5V + 3


Exemple :

  G V + 3 1 

() 5 + G + 3V + 8 55 G **
s.c.  + 2 + 3 5 3
  G V V
  0  = 1 4

On veut valuer la valeur de 6 .

minorant de 6 , mais sans garantie que cette valeur soit optimale.


Pour en avoir un minorant, on peut toujours chercher une solution ralisable de (P) dont la valeur fournira un

6(0,0,1,0) = 5 6 5
Exemple :

*6(3,0,2,0) = 22 6 22 6 22
6(2,1,1, 13) = 15 6 15

Essayons dobtenir un majorant de 6 cette fois, en nous servant des contraintes :

me contrainte ; 4
25 5 40 275
 + G + 5V + 3
 + G + 5V + 
3 3 3 3

;|Gme contrainte}
V

275
6 ( 91,6)
3
RCP104 Optimisation en Informatique
Bases de la programmation linaire 11
On peut faire beaucoup mieux : G + V donne :

4 + 3G + 6V + 3 58 donc 6 58

On peut gnraliser cette stratgie : on multiplie chaque contrainte  par un multiplicateur i (appel
variable duale) et on somme toutes les contraintes :

Le premier cas prsent (2me contrainte ; V) correspond : i = 0, iG = V , iV = 0




Le deuxime cas correspond : i = 0, iG = 1, iV = 1

Lingalit qui en rsulte est :

 +  +  + + G +  + + V


+ +  + +
(1)

Chaque multiplicateur i doit tre positif ou nul (sinon il y aurait un changement de sens de lingalit). De
plus, on dsire utiliser le membre de gauche de (1) comme majorant de

6 = 4 + G + 5V + 3 .

Cela nest valide que si, pour chaque variable  , son coefficient dans (1) est suprieur ou gal son
coefficient dans z. Nous voulons donc :

i + 5iG iV 4
i + iG + 2iV 1
i + iG + 2iV 5
3i + 8iG 5iV 3

Si i 0  et si les 4 contraintes ci-dessus sont vrifies, alors toute solution ralisable de (P) vrifie
lingalit :

4 + G + 5V + 3 i + 55iG + 3iV

En particulier pour  cette ingalit est vraie. Donc : 6 i + 55iG + 3iV . Comme on dsire un majorant
le plus petit possible on est naturellement amen choisir pour y la solution du programme linaire suivant,
que lon appelle programme dual de (P) :

Min i + 55iG + 3iV


 i + 5iG iV 4

i + iG + 2iV 1
  i + i + 2i 5 **
 s.c.
  G V
 3i + 8iG 5iV 3
 i 0  = 1 3

6.2) Gnralisation


Au problme (P) dfini par :

 maximiser   

 
 
  * problme primal
      = 1, , [*
 s.c. 
 
  0 & = 1, , t
RCP104 Optimisation en Informatique
Bases de la programmation linaire 12
on associe son problme dual (D) :
>
 minimiser   i


 

() > * problme dual
   i  & = 1, , t *
 s.c. 
 
 i 0  = 1, , [

Max 6 =  Min = i
Ou bien, sous forme matricielle :

 7 : **  i:  * *
s.c. 9 s.c.
0 i0

NB : i: = : i . La matrice des contrainte de (D) est la transpose de celle de (P).

Prop : si (P) et (D) admettent des solutions ralisables, toute solution ralisable x de (P),  =  , ,  , et
toute solution ralisable y de (D), i = i , , i> , vrifient :

6 =  i = (2)

Dmonstration :    g>


  i h = g   hi   i
>  >

Corollaire : si  et i sont deux solutions respectives de (P) et (D) qui vrifient 6  = i , alors il est
possible de conclure immdiatement que  est optimal pour (P) et i pour (D).

6.3) Thorme de la dualit

Thorme : si le problme primal (P) a une solution optimale  , ,   alors le problme dual (D) a une
solution optimale i , , i>

telle que 6 =    = >
  i = .

Ide de la preuve :
On considre le tableau simplexe optimal de (P) et on pose i =  o  dsigne le cot rduit de
la  me variable dcart de (P) dans le tableau optimal de (P).
On montre qualors i vrifie toutes les contraintes du dual et quil y a galit entre les valeurs de 
dans (P) et i dans (D).

Dfinition du dual dans le cas gnral


Pour un PL quelconque (pas ncessairement sous la forme canonique), on applique les rgles dcriture
suivantes.

Problme de minimisation (Dual) Problme de maximisation (Primal)


Fonction objectif : min Fonction objectif : max

: matrice des contraintes


Second membre Fonction objectif

Contrainte  de type Variable i 0


A matrice des contraintes

Contrainte  de type Variable i 0


Contrainte  de type = Variable  non contrainte en signe
Variable  0 Contrainte & de type
Variable  non contrainte en signe Contrainte j de type =
RCP104 Optimisation en Informatique
Bases de la programmation linaire 13
Attention, le tableau nest pas symtrique, il faut considrer que la colonne de gauche est le problme de
minimisation et la colonne de droite le problme de maximisation dans un couple primal/dual.

On observe en particulier que le dual du dual est le primal.

Exemple :

  G 1

Min 2 3G
i + 2iG + iV 2 *
Max i + 4iG + 3iV
(!:) 2 + 3G 4** : H
s.c.   + G = 3 s.c. i + 3iG + iV = 3*
 i 0, iG 0
  0

RCP104 Optimisation en Informatique


Bases de la programmation linaire 14

Vous aimerez peut-être aussi