Post on 28-Apr-2019
Programació lineal
• Programació no ve de programa d’ordinador
• El terme programació es va inventar abansque existissin els ordinadors
• Hom parla de programar la producció d’unaempresa, les compres i les vendes, etc.
• El mètode clàssic i més comunamentutilit zat per problemes de programaciólineal és el mètode símplex
El mètode símplex (I)
• Símplex va ser desenvolupat al 1947 perGeorge Dantzig, membre del US Air force
• És el resultat de l’esforç fet per l’exèrcitdels USA durant la 2na guerra mundial, peraconseguir una programació efectiva delsrecursos
• El desenvolupament del mètode símplex vaconstituir un pas revolucionari en el seumoment
El mètode simplex (II )
• Diversos investigadors han estat guardonatsamb el Premi Nobel per contribucionsbasades en la programació lineal i l’ús delmètode símplex
• Durant els anys 70, el 75% de problemesd’optimització resolts per empreses delsUSA eren problemes de PL
• Un punt fort del mètode símplex és quepermet portar a terme l’anàlisi desensibilit at dels paràmetres del model
Problema 3.11
• 3.11 Una empresa alimentària ofereix dues mesclesdiferents de fruits secs per a aperitius. El producte“Mescla-A” conté un 20.% (en massa) d’ametlles, un 10.%de pistatxos, un 15.% de nous i un 55.% de cacauets. Elproducte “Mescla-B” conté un 10.% d’ametlles, un 20.%de pistatxos, un 25% de nous, i un 45% de cacauets. Unclient vol util itzar en el seu aperitiu una nova mescla quecontingui com a mínim 4.0 lb d’ametlles, 5.0 lb depistatxos, i 6.0 lb de nous. Si els costs dels productes“Mescla-A” i “Mescla-B” són de 2.5 Euros/lb i 3.0Euros/lb, respectivament, determina les quantitats de“Mescla-A” i de “Mescla-B” que cal utilitzar per apreparar la nova mescla amb un cost mínim.
Problema 3.11 (2)
• Objectiu del problema: hi ha 2 productes,Mescla-A i Mescla-B. Cal determinar lesquantitats òptimes que cal comprar de cadaproducte, és a dir, les quantitats queminimitzin el cost de compra
• Var iables de disseny:– x1=quantitat (lb) que cal comprar de Mescla-A
– x2 =quantitat (lb) que cal comprar de Mescla-B
Esquema Problema 3.11
Ametlles
Pistatxos
Nous
Cacauets
Mescla “A”
Mescla “B”
Producte
Podem entendre el procés com un problema deconservació de matèr ia on, a més, tenim unobjectiu (minimitzar costs)
x1
x2
Problema 3.11 (3)
• Funció objectiu: Minimitzar Cost Compra(Euros)
• Restr iccions:– Quantitat mínima d’ametlles (4.0 lb)– Quantitat mínima de pistatxos (5.0 lb)– Quantitat mínima de nous (6.0 lb)– Les variables x1, x2 han de ser positives
(((( )))) 2121 0352 xxxxf .., ++++====
Problema 3.11 (4)
Ametlles Pistatxos Nous Cacauets Preu (E/lb)
% M escla-A 0.20 0.10 0.15 0.55 2.5
% M escla-B 0.10 0.20 0.25 0.45 3.0
Quantitatmínima (lb) 4.0 5.0 6.0 -
04100200 21 ... ≥≥≥≥++++ xx
05200100 21 ... ≥≥≥≥++++ xx
06250150 21 ... ≥≥≥≥++++ xx 0
0
2
1
≥≥≥≥≥≥≥≥
x
x
(((( )))) 2121 0352 xxxxf .., ++++====Minimitzar
Problema 3.8Composició màssica percentual
Fertilit zant Cost prod.(E/tona)
Preu venda(E/tona)
Nitrats Fosfats Potassa Base inerta
A 100. 350. 5.0 10. 5.0 80.B 150. 550. 5.0 15. 10. 70.C 200. 450. 10. 20. 10. 60.D 250. 700. 15. 5.0 15. 65.
Nitrats Fosfats Potassa Base inerta
Preu (E/tona) 1500. 500. 1000. 100.
Disponibilit at(tones/setmana)
1000. 2000. 1500. -
A B C D
Producció mínima(tones/setmana)
5000. - - 4000.
Esquema Problema 3.8
Fabr ica defertili tzants
Podem entendre el procés com un problema deconservació de matèr ia on, a més, tenim unobjectiu (maximitzar guanys)
Nitrats
Fosfats
Potassa
Base iner ta
A
B
C
D
x1
x2
x3
x4
Problema 3.8 (2)
• Var iables de disseny:– x1 = producció setmanal de fertili tzant A
– x2 = producció setmanal de fertili tzant B
– x3 = producció setmanal de fertili tzant C
– x4 = producció setmanal de fertili tzant D
• Objectiu: maximitzar guanys
Guanys = vendes - costs producció - costs matèr ies pr imeres
Problema 3.8 (3)Composició màssica percentual
Fertilit zant Cost prod.(E/tona)
Preu venda(E/tona)
Nitrats Fosfats Potassa Base inerta
A 100. 350. 5.0 10. 5.0 80.B 150. 550. 5.0 15. 10. 70.C 200. 450. 10. 20. 10. 60.D 250. 700. 15. 5.0 15. 65.
4321 700450550350 xxxxsetmanaEVendes ++++++++++++====)/(
4321 250200150100 xxxxsetmanaEdProCosts ++++++++++++====)/(.
Per a calcular els costs de les matèries primeres, cal avaluarquant en necessitem de cadascuna en funció dels nivells deproducció de cada tipus de fertilitzant (següenttransparència):
Problema 3.8 (4)Composició màssica percentual
Fertilit zant Cost prod.(E/tona)
Preu venda(E/tona)
Nitrats Fosfats Potassa Base inerta
A 100. 350. 5.0 10. 5.0 80.B 150. 550. 5.0 15. 10. 70.C 200. 450. 10. 20. 10. 60.D 250. 700. 15. 5.0 15. 65.
Nitrats consumits (tones/setmana) = 0.050 x1+0.050 x2 +0.10 x3 +0.15 x4
Fosfats consumits (tones/setmana) = 0.10 x1+0.15 x2 +0.20 x3 +0.05 x4
Potassa consumida (tones/setmana) = 0.050 x1+0.10 x2 +0.10 x3 +0.15 x4
Base inerta consumida (tones/setmana) = 0.80 x1+0.70 x2 +0.60 x3 +0.65 x4
Problema 3.8 (5)
Cost matèries primeres (Euros/setmana) = 1500(0.050 x1+0.050 x2 +0.10 x3
+0.15 x4) +500(0.10 x1+0.15 x2 +0.20 x3 +0.05 x4) +1000(0.050 x1+0.10 x2
+0.10 x3 +0.15 x4)+100(0.80 x1+0.70 x2 +0.60 x3 +0.65 x4)
Nitrats Fosfats Potassa Base inerta
Preu (E/tona) 1500. 500. 1000. 100.
Disponibilitat(tones/setmana)
1000. 2000. 1500. -
Cost matèries primeres (Euros/setmana) = 255 x1 +320 x2 +410 x3 +465 x4
Guanys (E/setmana) = (350-100-255) x1 +(550-150-320) x2 +(450-200-410) x3 +(700-250-465) x4 = -5 x1 +80 x2-160 x3 -15 x4
Problema 3.8 (6)
Nitrats Fosfats Potassa Base inerta
Preu (E/tona) 1500. 500. 1000. 100.
Disponibilitat(tones/setmana)
1000. 2000. 1500. -
Restr iccions:0.050 x1+0.050 x2 +0.10 x3 +0.15 x4≤1000.
0.10 x1+0.15 x2 + 0.20 x3 +0.05 x4 ≤ 2000.
0.050 x1+0.10 x2 +0.10 x3 +0.15 x4 ≤ 1500.
Disponibilit at dematèries primeres
x1≥5000.
x4≥4000.
Produccions mínimesper contracte
Variables positives: x1, x2, x3, x4 ≥ 0
Maximitzar Guanys (E/setmana) = -5 x1 +80 x2-160 x3 -15 x4
Conceptes bàsics• Qualsevol funció lineal en x és a la vegada còncava i
convexa en tot el domini d’x• Un òptim local d’un problema de PL és forçosament
un òptim global del problema
• En problemes de PL, les condicions de KKT són, amés de necessàries, suficients
• Per a un problema de PL amb n variables i mrestriccions (m>n), la condició (2.6) de KKT porta a:
(((( )))) )(gf i
1
*** xx→→→→
====
→→→→∇∇∇∇====∇∇∇∇ ∑∑∑∑
m
i
iv
, ..., m, ; iAvc ji
m
i
ij 211
======== ∑∑∑∑====
,
Dualitat del model de PL
(((( ))))
−−−−++++==== ∑∑∑∑∑∑∑∑∑∑∑∑
j
jjii
i
ij
j
j xAbxcxL ,, υυ
(((( ))))
−−−−++++==== ∑∑∑∑∑∑∑∑∑∑∑∑
i
ijij
j
ji
i
i AcxbxL υυυ ,,
Dualitat del model de PL (2)
• Si el problema primari té un òptim, elproblema dual té un òptim amb idèntic valorde la funció objectiu
• Si el problema primari és de maximització,el dual és de minimització, i viceversa
• El model dual del model dual és el modelprimari original
• Si el problema primari és “no factible” , elproblema dual és “no acotat” , i viceversa
PRO B L E M A 3.11 M od el pr i m ar i M od el dua l
.v.v.v. g . x g
.v.v.v. g . x g
v g .x.x. g
v g .x.x. g
v g .x.x. g
v.v.v.a r f M a x im it z x.x. fM in im it za r
03250200100: 00:
52150100200 :00:
0:06250150:
0:05200100:
0:04100200:
0605040352
321525
321414
33213
22212
11211
32121
≤++≥≤++≥
≥≥+≥≥+
≥≥+++=+=
Problema 3.11
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50
x1
x2
0.10x1+0.20x2=5 (g2)
0.15x1+0.25x2=6 (g3)
0.20x1+0.10x2=4 (g1)
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50
x1
x2
0.10x1+0.20x2=5 (g2)
0.15x1+0.25x2=6 (g3)
0.20x1+0.10x2=4 (g1)
Problema 3.11
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50x1
x2
Problema 3.11
0.410.020.0 21 =+ xx
0.520.010.0 21 =+ xx
0.625.015.0 21 =+ xx
1
2
3
4 5 6
78
9
10
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50
x1
x2
0.10x1+0.20x2=5 (g2)
0.15x1+0.25x2=6 (g3)
0.20x1+0.10x2=4 (g1)
Problema 3.11
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50
x1
x2
0.10x1+0.20x2=5 (g2)
0.15x1+0.25x2=6 (g3)
0.20x1+0.10x2=4 (g1)
Problema 3.11
Minimitzar f=2.5 x1 + 3.0 x2
0
10
20
30
40
-10 0 10 20 30 40 50
x1
x2
0.10x1+0.20x2=5 (g2)
0.15x1+0.25x2=6 (g3)
0.20x1+0.10x2=4 (g1)
Problema 3.11
Avantatges del mètodesímplex/dual
• Inicialització més fàcil; és més senzilltrobar un vèrtex inicial factible
• A cada iteració hom treballa amb matriusnxn en lloc de mxm (sovint tindrem m>n,però aquí m no inclou les equacions derestricció de signe)
• Es fan explícites les condicions de KKTaplicades al problema primari
• No cal introduir variables slack al modelprimari
Problema 3.4
S O L V E S U M M A R Y
MODEL minim OBJECTIVE f TYPE LP DIRECTION MINIMIZ E SOLVER CPLEX FROM LINE 16
**** SOLVER STATUS 1 NORMAL COMPLETION**** MODEL STATUS 3 UNBOUNDED
21 23 xxf −−−−−−−−====Minimitza
(((( ))))210
623
1
21
21
,, ====≥≥≥≥≤≤≤≤−−−−
≤≤≤≤−−−−
ix
xx
xx
i
M inimitzar f= -3.0 x1 - 2.0 x2
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
x1
x2
3 x1 - 2 x2 = 6 (g2)
x1 - x2 = 1 (g1)
Problema (?)Un cas no factible
21 6 Maximitza xxf ++++====
(((( ))))210
22
33
21
21
,, ====≤≤≤≤−−−−≤≤≤≤−−−−−−−−
−−−−≤≤≤≤++++
ix
xx
xx
i
S O L V E S U M M A R Y
MODEL maxim OBJECTIVE f TYPE LP DIRECTION MAXIMI ZE SOLVER CPLEX FROM LINE 16
**** SOLVER STATUS 1 NORMAL COMPLETION**** MODEL STATUS 4 INFEASIBLE
M aximitzar f= x1 + 6 x2
-2
-1
0
1
2
-4 -3 -2 -1 0 1 2 3
x 1
x 2- x1 - 2 x2 = -2 (g2)
x1 + 3 x2 = -3 (g1)
El Problema (?) és el dual del Problema 3.4 !
21 23 xxf −−−−−−−−====Minimitza
(((( ))))210
623
1
21
21
,, ====≥≥≥≥≤≤≤≤−−−−
≤≤≤≤−−−−
ix
xx
xx
i
(((( ))))210
22
33
6 Maximitza
21
21
21
,, ====≤≤≤≤−−−−≤≤≤≤−−−−−−−−
−−−−≤≤≤≤++++++++====
i
f
iυυυ
υυυυ
21 6 Maximitza xxf ++++====
(((( ))))210
22
33
21
21
,, ====≤≤≤≤−−−−≤≤≤≤−−−−−−−−
−−−−≤≤≤≤++++
ix
xx
xx
i
Dual
Són el mateix
No acotat / No factible• Un vèrtex que sigui a la vegada factible en el model
dual i en el model primari compleix les condicions deKKT, i per tant és un òptim del problema de PL
• Si el problema primari és “no-acotat” , hi pot haverdiversos vèrtexs factibles. Com que en un problema“no-acotat” no hi ha òptim, cap d’aquests vèrtexsfactibles en el model primari pot ser a la vegadafactible en el problema dual
• Si pel problema “no-acotat” no pot existir, doncs,aquesta coincidència de vèrtex factible primari/dual,l’única manera (general) d’evitar-ho és que elproblema dual d’un problema “no-acotat” sigui “no-factible” (i viceversa: el primari és el dual del dual!)