A16cortada-Programacion Dinamica

8
 PROGRAMACIÓN DINÁMICA: La gracia de la programación dinámica es transformar problemas complejos en problemas más simples, teniendo estructuras especiales que nos permiten separar las  variab les. Problema 9: P. Dinámico Entero (Introductorio) Una familia está interesada en planificar sus vacaciones a fin de año y tiene la posibilidad de visitar 3 ciudades. El presupuesto alcanza para salir de vacaciones durante 5 días. En una comida famil iar el Padre pregun tó a cada uno d e los integran tes de la fami lia y calibró la siguiente función de utilidad del viaje: 1 2 3 2 3  x x x + +  Donde i  x  es el número de días en la ciudad “i”. Plantee y resuelva en forma dinámica el problema que maximiza la utili dad de la familia. Respuesta: El problema de optimización es: 1 2 3 1 2 3 : 2 3 .. 5 0 1,2,3 i  Max x x x s a  x x x  x Enteros i + + + + =  ¡Procedamos a resolver el problema por programación dinámica!. PASO 1: Vamos de atrás para adelante  Supongamos que la familia está decidiendo por la última cuidad, dadas las elecciones en la primera y segunda cuidad, que ya se hicieron y son óptimas.  Supongamos que nos quedan 3  y  días disponibles (recur sos disponibles). ¿Cuál es la mejor decisión en la tercera cuidad? Si este fuera el caso, el problema quedaría: ETAPA 3: 3 3 3 3 3 3 : 3 .. ( ) 0  Max x s a  f y  x y  x Entero =    La solución óptima de este problema es fácil, hay que asignar todo lo que nos sobra en  visitar la tercera cuidad.

description

programacion dinamica

Transcript of A16cortada-Programacion Dinamica

  • PROGRAMACIN DINMICA:

    La gracia de la programacin dinmica es transformar problemas complejos en problemas ms simples, teniendo estructuras especiales que nos permiten separar las variables. Problema 9: P. Dinmico Entero (Introductorio) Una familia est interesada en planificar sus vacaciones a fin de ao y tiene la posibilidad de visitar 3 ciudades. El presupuesto alcanza para salir de vacaciones durante 5 das. En una comida familiar el Padre pregunt a cada uno de los integrantes de la familia y calibr la siguiente funcin de utilidad del viaje:

    1 2 32 3x x x+ + Donde ix es el nmero de das en la ciudad i. Plantee y resuelva en forma dinmica el problema que maximiza la utilidad de la familia.

    Respuesta: El problema de optimizacin es: 1 2 3

    1 2 3

    : 2 3. .

    50 1,2,3i

    Max x x xs ax x xx Enteros i

    + +

    + + =

    Procedamos a resolver el problema por programacin dinmica!. PASO 1: Vamos de atrs para adelante Supongamos que la familia est decidiendo por la ltima cuidad, dadas las

    elecciones en la primera y segunda cuidad, que ya se hicieron y son ptimas. Supongamos que nos quedan 3y das disponibles (recursos disponibles).

    Cul es la mejor decisin en la tercera cuidad? Si este fuera el caso, el problema quedara: ETAPA 3:

    3

    3 33 3

    3

    : 3. .( ) 0

    Max xs af y x yx Entero

    =

    La solucin ptima de este problema es fcil, hay que asignar todo lo que nos sobra en visitar la tercera cuidad.

  • Hagamos una tabla: 3y 3 3( )f y 3 *x 0 0 0 1 3 1 2 4.24 2 3 5.20 3 4 6 4 5 6.71 5

    Nota: El ptimo es en funcin de los recursos que tenemos disponibles ETAPA 2: Ahora suponemos que slo se ha elegido los das en la primera cuidad y es ptimo. Los das ptimos a elegir en la segunda ciudad dado que tenemos 2y das para visitar la segunda y la tercera se determinan con el siguiente problema:

    2 3 2 2

    2 22 2

    2

    : ( ). .( ) 0

    Max x f y xs af y x yx Entero

    +

    Nota: Lo que nos sobrara para visitar la tercera cuidad sera 2 2( )y x . Hagamos una tabla: 2y 2 0x = 2 1x = 2 2x = 2 3x = 2 4x = 2 5x = 2 2( )f y 2 *x 0 0 0 0 1 3 1 3 0 2 4.24 4 1.41 4.24 0 3 5.20 5.24 4.41 1.73 5.24 1 4 6.00 6.20 5.65 4.73 2 6.20 1 5 6.71 7 6.61 5.97 5 2.23 7 1

    ETAPA 1: Ahora no hemos elegido anteriormente nada. Tenemos por enunciado 5 das de

    recurso ( 1 5y = ) , esto se llama condicin de borde. El problema para elegir la cantidad de das ptimos a visitar la cuidad 1 es:

    1 2 1

    11

    1

    : 3 (5 ). .* (5) 0 5

    Max x f xs av f xx Entero

    + =

  • Nota: 1(5)f corresponde justamente al valor de la funcin objetivo de nuestro problema. Hagamos una tabla:

    1y 1 0x = 1 1x = 1 2x = 1 3x = 1 4x = 1 5x = 1 1( )f y 1 *x 5 7 8.20 8.06 7.70 7 4.47 8.20 1

    Luego tenemos que el valor ptimo es 8.20. Cmo obtenemos la solucin objetivo?

    PASO 2: Vamos de adelante para atrs Sabemos que 1* 1x = (de la 3ra tabla). Esto implica que dejamos 2 4y = . Con este recurso 2* 1x = (De la 2da tabla). Esto implica que 3 3y = , luego 3* 3x = (tabla 1). IMPORTANTE: Notemos que las variables 1 2 3, ,x x x fueron escogidas de forma arbitraria. Puede haber sido en cualquier orden.

  • Problema 2: Dinmico Continuo Resolver el siguiente problema a travs de programacin dinmica: 2 21 2 3

    1 2 3

    : . .

    100 i=1,2,3i

    Max x x xs ax x xx+ +

    Respuesta: Nota: Esta vez tenemos un problema continuo pero la base es la misma. ETAPA 3 Si tenemos 3y recursos para la tercera variable, ya habiendo elegido 1 *x y 2 *x , el problema es:

    33 3

    3 3

    :( ) 0Max xf y x y

    Se tiene que el ptimo es: 3 3 3

    3 3 3

    *( )( )

    x y yf y y

    =

    =

    ETAPA 2 Si tenemos 2y recursos, ya habiendo elegido 1 *x , el problema es:

    22 3 2 2

    2 22 2

    : ( )( ) 0Max x f y xf y x y

    22 2 22 2

    2 2

    : ( )( ) 0Max x y xf y x y

    Se tiene que el ptimo es:

    2 2 2

    32 2 2

    2*( ) 34( ) 27

    x y y

    f y y

    =

    =

    ETAPA 1 Ahora si tenemos 1 10y = recursos el problema es:

    21 2 1

    11

    : (10 )* (10) 0 10Max x f xv f x

    =

    2 31 1

    1

    1

    4: (10 )* (10) 270 10Max x xv f

    x

    =

    Se tiene que el ptimo es: 1

    1

    * 4* (10) 512xv f=

    = =

    Luego la solucin ptima se obtiene en cadena: Si 1* 4x = queda 2 6y = 2* 4x = queda 3 2y = 3* 2x =

  • Problema 3: Produccin e Inventario Una planta produce un solo producto y enfrenta las siguientes demandas en los perodos 1,..4: Periodo 1 2 3 Demanda: nd 1 3 2

    Las demandas pueden ser satisfechas con lo producido el periodo anterior. Sean: K: Costo fijo de produccin = 5 C: Costo unitario variable de produccin = 2 Q: Capacidad mensual mxima de produccin = 3 h: Costo unitario de manutencin de inventario = 1 Se debe decidir cunto producir en cada periodo para satisfacer la demanda a mnimo

    costo. Respuesta: Las variables de decisin son: nY : Tamao del lote de produccin del perodo n nX : Inventario al final del perodo n nZ : 1 si nY > 0, 0 en caso contrario El problema de optimizacin es:

    { }

    1

    1

    :

    . .

    0,1

    n

    n n nk

    n n n n

    n n

    n

    Min KZ CY hXs aX X Y d nY QZ nZ

    =

    + +

    = +

    { }

    3

    1

    1 1

    2 1 2

    3 2 3

    3 3

    2 2

    1 1

    : 5 2

    . .1

    32

    3330,1

    n n nk

    n

    Min Z Y X

    s aX YX X YX X YY ZY ZY ZZ

    =

    + +

    = = + = +

    Para el modelo de programacin dinmica definimos:

  • ( )n nf S := Costo mnimo asociado a los perodos n, n+1, , N si el inventario al principio del perodo n es nS 1nX = . Por lo tanto, el modelo en cada etapa queda:

    ( ) ( )1:. .( ) 0

    3

    n n n n n

    n n

    n n n

    n

    Min Y f S Y ds af S S Y dY

    ++ + = +

    Con: ( ) ( ) 0( ) 0

    n n n

    n

    n n n n n

    h S d si YY

    K CY h S Y d si Y

    == + + + >

    Luego el valor ptimo ser 1(0)f V= (inicialmente no hay inventario). ( ) 0 3k kf S k= > (son slo 3 periodos) ETAPA 3:

    * (ptimo) 0 9 12 9 2 1 7 10 13 7 1 2 0 8 11 14 0 0 3 1 9 12 15 1 0

    Es decir, en cada caso lo ptimo es producir lo menos posible, como es lgico. ETAPA 2:

    * (ptimo) 0 11+9 20 3 1 9+9 12+7 18 2 2 7+9 10+7 13+0 13 3 3 0+9 8+7 11+0 14+1 9 0

    ETAPA 1:

    * (ptimo) 0 7+20 10+18 13+13 26 3

    Por lo tanto, resolviendo de vuelta hacia adelante, lo ptimo es producir 3 unidades en el primer periodo, 3 en el segundo y ninguna en el tercero. El costo total entonces ser 26.

  • Problema 4: Se ha encargado un estudio a la Escuela. El problema es tan complejo que sta ha formado 3 equipos diferentes para resolverlo; sin embargo, las probabilidades de fallar an son altas. Para asegurarse, la Escuela ha decidido contratar hasta 2 investigadores adicionales, que deben repartirse entre los equipos de alguna forma. Se sabe que las probabilidades de fallar de cada equipo por separado, en funcin de la cantidad de investigadores extra asignados a cada uno, es

    Equipo Investigadores extra 1 2 3

    0 0,4 0,6 0,8 1 0,2 0,4 0,5 2 0,15 0,2 0,3

    Usando programacin dinmica, encuentre la asignacin ptima de investigadores a equipos. Respuesta: Sean:

    iX = Nmero de investigadores asignados al equipo i ( )i iP X = probabilidad de fallar del equipo i al agregarle iX investigadores.

    La probabilidad total de fallar es que los 3 equipos fallen simultneamente, por lo que el problema de optimizacin es:

    ( ) ( ) ( )1 1 2 2 3 3

    1 2 3

    1 2 3

    :. .

    2, , 0

    Min P X P X P Xs aX X XX X X+ + =

    Usando programacin dinmica, necesitamos definir:

    ( )n nf Y = Mnima probabilidad de falla asociada a los equipos n, n + 1, . . . ,N si quedan nY investigadores por asignar. El problema dinmico queda definido por:

    ( )( )1: ( )*

    . .

    0

    n n n n n

    n n

    n n

    n

    Min P X f Y Xs af Y X YX Entero

    +

    El valor ptimo entonces es 1(2)f y ( ) 1 3k kf Y k= >

  • ETAPA 3:

    3y 3 *x 0 0,8 0 1 0,5 1 2 0,3 2

    ETAPA 2:

    2y 2 0x = 2 1x = 2 2x = 2 *x 0 0,60,8 0,48 0 1 0,60,5 0,40,8 0,3 0 2 0,60,3 0,40,5 0,20,8 0,16 2

    ETAPA 3:

    1y 1 0x = 1 1x = 1 2x = 1 *x 2 0,40,16 0,20,3 0,150,48 0,06 1

    Por lo que resolviendo de vuelta, conviene asignar uno de los investigadores al equipo 1 y el otro al equipo 3. Al hacerlo as, se obtiene una probabilidad total de fallar de 0,06.