Programació no ve de programa d’ordinador • El terme ... fileEl mètode simplex (II) •...

37
Programació lineal Programació no ve de programa d’ordinador El terme programació es va inventar abans que existissin els ordinadors Hom parla de programar la producció d’una empresa, les compres i les vendes, etc. El mètode clàssic i més comunament utilitzat per problemes de programació lineal és el mètode símplex

Transcript of Programació no ve de programa d’ordinador • El terme ... fileEl mètode simplex (II) •...

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

======== ∑∑∑∑====

,

Problema 3.1

22 21 =+ xx121 =+− xx

Problema 3.1

22 21 =+ xx121 =+− xx

Problema 3.1

a

b

c

d

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!)

P rob lema 3.11

60

70

80

90

100

110

120

130

0 2 4 6 8 10 12

b1, b2, b3

f* -∞∞∞∞

b1b2

b3

P rob lema 3 .11

405060708090

100110120130

0 1 2 3 4 5 6 7

c 1, c2

f *

c1

c2