Anda di halaman 1dari 30

DepartamentodeIngenieraIndustrialydeSistemas PontificiaUniversidadCatlicadeChile

Optimizacin ICS1113
ProgramacinDinmica
1 semestre2010 Profesor:PamelalvarezM.

ProgramacinDinmica
Mecanismo Transforma unproblema d deoptimizacin f bl i i i complejo, l j enunasecuencia i deproblemasmssimples I d i hacia Induccin h i atrs Generalmentecomienzaalfinal(ltimaetapa)ytrabajahaciaatrs Sepuedemanejarunagranvariedaddeproblemas Sebasaenrecursin,yenelprincipiodeoptimalidad desarrolladopor RichardBellman (1953)

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. 2. 3. 4. Eljuegodelosfsforos Problema de bl d rutams corta Asignacinderecursosaproyectos Problemadeproduccin inventario

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. Eljuegodelosfsforos: Hay 30 fsforos en una mesa f f

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. Eljuegodelosfsforos: Hay 30 fsforos en una mesa f f Yo comienzo sacando 1, 2 3 fsforos. Luego mi contrincante debe sacar 1, 1 2 3 fsforos. f f S sigue Se i d esta forma de f h hasta que alguien l i saca el ltimo fsforo. El jugador que toma el ltimo fsforo pierde el juego

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. Eljuegodelosfsforos: Hay 30 fsforos en una mesa f f Yo comienzo sacando 1, 2 3 fsforos. Luego mi contrincante debe sacar 1, 1 2 3 fsforos. f f S sigue Se i d esta forma de f h hasta que alguien l i saca el ltimo fsforo. El jugador que toma el ltimo fsforo pierde el juego Cmo puedo yo (como primer jugador) asegurarme de ganar el juego?

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. Eljuegodelosfsforos:
Yo en la a mi Y gano si i queda d un fsforo f f l mesa cuando d le l toca t i contrincante ti t

Un paso ms atrs, yo gano si me toca y quedan 2, 3 4 fsforos en la mesa

Retrocediendo otro p paso, ,y yo g gano si dejo j 5 fsforos a mi contrincante.

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
1. Eljuegodelosfsforos:
Retrocediendo jugar y quedan R t di d otro t paso, yo gano si i me toca t j d 6, 6 7 u 8, 8 para dejarle 5 a mi contrincante.

Retrocediendo otro p paso, ,y yo g gano si dejo j 9 fsforos a mi contrincante.

Conclusin: Yo gano si dejo 1, 5, 9,, 4n + 1 fsforos en la mesa al jugar. Si hay 30 fsforos, luego basta sacar uno y dejarle 29=4*7+1 fsforos para que yo gane
ICS1113.Prof.:PamelalvarezM. 8

ProgramacinDinmica
1. Eljuegodelosfsforos:
Resolvimos el al R l i l problema bl l ir i hacia h i atrs, t desde d d el l final fi l hacia h i el l inicio i i i del d l problema

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
2. Problemaderutamscorta
Joe Cougar vive en Nueva York, pero proyecta viajar en su automvil hasta Los ngeles en busca de fama y fortuna. Los fondos de Joe son limitados, as que decide pasar cada noche de su viaje en la casa de un amigo. Joe tiene amigos en Columbus, Nashville, Louisville, Kansas City, Omaha, Dallas, San Antonia y Denver. Joe sabe que despus de manejar un da puede llegar a Columbus, Nashville, o Louisville. Despus de tres das de viaje puede llegar a San Antonio o Denver. Luego de cuatro das de manejar puede llegar finalmente a los ngeles. Para minimizar i i i la l cantidad tid d de d millas ill recorridas id Dnde D d debe d b Joe J pasar cada d noche h del d l viaje? Las millas reales por carretera entre las ciudades se dan en la figura g siguiente:
ICS1113.Prof.:PamelalvarezM. 10

ProgramacinDinmica
3. Asignacinderecursosaproyectos
Una tieneuncapital total igual U empresaenfrenta f t nmeseshacia h i el lfuturo f t yti it lt t l i l a K Debedecidirunplandeinversiones. Encadaperodopuedeinvertirenunciertonmerodebonos. bonos Enelmest,unbonoinvertidovale$at yproduceunaganancia,alfinaldel horizonte, ,de$gt. Elproblemaes: encuntosbonosdebeinvertirseencadamesdemododemaximizarla gananciatotal?

ICS1113.Prof.:PamelalvarezM.

11

ProgramacinDinmica
3. Asignacinderecursosaproyectos Variable i bl de d decisin: d i i xt :nmerodebonosainvertirent. Elmodelo:

z* = max s.a.

g x a x
t =1 t =1 n

t t

t t

xt {0,1,2,...} t = 1,..., n

ICS1113.Prof.:PamelalvarezM.

12

ProgramacinDinmica
3. Asignacinderecursosaproyectos Cmo resolver podemos d l esteproblema? bl ? Haremosunadescomposicinintertemporal. Definamoslosiguiente: Gt(b):gananciamximaquepuedoobtenerdesdeelmesten adelante,sidispongodeuncapitalb. Entonces,cuntoesz*entrminosdeestadefinicin:

z* = G1 ( K )
ICS1113.Prof.:PamelalvarezM. 13

ProgramacinDinmica
3. Asignacinderecursosaproyectos Subordinemos lad decisin del mes: b di a l i i d lprimer i Sienelmes1tomounadecisindeinvertirenx1 bonos,cunto puede d serl lautilidad ilid dmxima i d desde d el lmes2hasta h el lfinal...? fi l ?

G2 ( K a1 x1 )
SipudieracalcularG2 ,quproblemadeoptimizacinmedeterminala mejordecisinparaelmes1?

ICS1113.Prof.:PamelalvarezM.

14

ProgramacinDinmica
3. Asignacinderecursosaproyectos Lamejor decisin deresolver: j d i i parael lmes1sale l d l

max g1 x1 + G2 ( K a1 x1 ) x1 entero
Puedex1 serarbitrariamentegrande? Recuerdenlarestriccin:

a x
t =1

t t

Entonces:

K x1 a 1
ICS1113.Prof.:PamelalvarezM. 15

ProgramacinDinmica
3. Asignacinderecursosaproyectos Estamosdiciendo di i d que:

z* = G1 ( K ) =

max {g1 x1 + G2 ( K a1 x1 )}

K 0 x1 , entero a1

Observarcmolaestructuradelproblemaesrecursiva(odinmica)

ICS1113.Prof.:PamelalvarezM.

16

ProgramacinDinmica
3. Asignacinderecursosaproyectos Otraforma de f d verlo.... l

z* = max s.a.

g x a x
t =1 t =1 n

t t

t t

xt {0,1,2,...} t = 1,..., n

ICS1113.Prof.:PamelalvarezM.

17

ProgramacinDinmica
3. Asignacinderecursosaproyectos Aislando decisin del perodo: i l d la l d i i d lprimer i d

z* = max s.a.

g1 x1 + g t xt a1 x1 + at xt
t =2 t =2 n

xt {0,1,2,...} } t = 1,..., n

ICS1113.Prof.:PamelalvarezM.

18

ProgramacinDinmica
3. Asignacinderecursosaproyectos Queequivale i l a:

z* = max s.a.

g1 x1 + g t xt

a x
t =2

t =2 n

t t

K a1 x1

xt {0,1,2,...} t = 1,..., n

ICS1113.Prof.:PamelalvarezM.

19

ProgramacinDinmica
3. Asignacinderecursosaproyectos Yseparando d la l optimizacin i i i enx1:

z* = max s.a.

x1{0 ,1, 2 ,...}

g1 x1 + max g t xt
x2 ,..., xn

a x
t =2

t =2 n

t t

K a1 x1

xt {0,1,2,...} t = 2,..., n

ICS1113.Prof.:PamelalvarezM.

20

ProgramacinDinmica
3. Asignacinderecursosaproyectos Yseparando d la l optimizacin i i i enx1:

z* = max s.a.

x1{0 ,1, 2 ,...}

g1 x1 + max g t xt
x2 ,..., xn

a x
t =2

t =2 n

t t

K a1 x1

xt {0,1,2,...} } t = 2,..., n

ICS1113.Prof.:PamelalvarezM.

G2 ( K a1 x1 )

21

ProgramacinDinmica
3. Asignacinderecursosaproyectos Yadems restringir d vemosquepodemos d i i x1:

z* =

K 0 x1 entero a1

max

g1 x1 + max g t xt
x2 ,..., xn t =2 n

s.a.

a x
t =2

t t

K a1 x1

xt {0,1,2,...} } t = 2,..., n
G2 ( K a1 x1 )

ICS1113.Prof.:PamelalvarezM.

22

ProgramacinDinmica
3. Asignacinderecursosaproyectos Esolleva laf formaquevimos antes: ll al i

z* = G1 ( K ) =

K 0 x1 , entero a1

max

{g1 x1 + G2 ( K a1 x1 )}

CmosecalculaG1(K)...? DependedeG2.....QueasuvezdependedeG3..... Qusedebeespecificarfinalmente?

Gn (b)
Paradiversosvaloresdeb. Estaesunacondicindeborde....
ICS1113.Prof.:PamelalvarezM. 23

ProgramacinDinmica
ElPrincipiodeOptimalidad(Bellman) Supongamosquex1,x2,....,xn sonlas decisiones ptimas d decada l d ii i d periodo,paraunproblemadenperiodos.Entonces,xk,xk+1,...,xn son decisionesptimasparaunproblemadenk+1periodos. periodos Esdecir.... Sil lasolucin l i completa l esptima, i unaparcial i lapartir i de d algn l momentotambinesptima. En E general lseh habla bl de d etapas, queaqu corresponden d aperodos d de d tiempo....

ICS1113.Prof.:PamelalvarezM.

24

ProgramacinDinmica
Ejemplonumrico:
Sea S el lproblema bl

max s.a.

3 x1 + 6 x2 + x3 5 x1 + 3 x2 + 2 x3 10 xi 0, enteros i = 1,...,3 , ,

ICS1113.Prof.:PamelalvarezM.

25

ProgramacinDinmica
z* = G1 (10) = max s.a. 3 x1 + 6 x 2 + x3 5 x1 + 3 x 2 + 2 x3 xi 0, enteros 10 i = 1,...,3 1 3

G1 (10) = max{3 x1 + G2 (10 5 x1 )}


0 x1 2 entero

G1 (10) = max{0 + G2 (10),3 + G2 (5),6 + G2 (0)}

=0

G2 (10) = max s.a. G2 (5) = max s.a.

6 x 2 + x3 3 x 2 + 2 x3 6 x 2 + x3 3 x 2 + 2 x3 5
26

10

xi 0, enteros i = 2,...,3

xi 0, enteros i = 2,...,3

ProgramacinDinmica
G2 (10) = max s.a. 6 x 2 + x3 3 x 2 + 2 x3 10 xi 0, enteros i = 2,...,3 2 3
G2 (10) = max{6 x 2 + G3 (10 3 x 2 )}
0 x2 3 entero

G2 (10) = max{0 + G3 (10),6 + G3 (7),12 + G3 (4),18 + G3 (1)}

ICS1113.Prof.:PamelalvarezM.

27

ProgramacinDinmica
G2 (5) = max s.a. 6 x 2 + x3 3 x 2 + 2 x3 5 xi 0, enteros i = 2,...,3
G2 (5) = max{6 x 2 + G3 (5 3 x 2 )}
0 x2 1 entero

G2 (5) = max{0 + G3 (5),6 + G3 (2)}

Luego,slofaltacalcularG3paradistintosvalores.
ICS1113.Prof.:PamelalvarezM. 28

ProgramacinDinmica
G3 (b) = max s.a. x3 2 x3 b x3 0, entero
Lasiguientetablaresumelosvalores:
b 1 2 4 5 7 10 G3(b) 0 1 2 2 3 5 x3 0 1 2 2 3 5
29

ICS1113.Prof.:PamelalvarezM.

ProgramacinDinmica
Ahora....Nosdevolvemos:

G2 (5) = max{0 + G3 (5), ) 6 + G3 (2)} = max{0 + 2,6 + 1} = 7

x 2 = 1, x3 = 1
G2 (10) = max{0 + G3 (10),6 + G3 (7),12 + G3 (4),18 + G3 (1)} G2 (10) = max{0 + 5,6 + 3,12 + 2,18 + 0} = 18

x 2 = 3, x3 = 0

G1 (10) = max{0 + G2 (10),3 + G2 (5),6 + G2 (0)} G1 (10) = max{0 + 18,3 + 7,6 + 0} = 18

x1 = 0, x 2 = 3, x3 = 0
ICS1113.Prof.:PamelalvarezM. 30

Anda mungkin juga menyukai