Programación Dinámica. Es un procedimiento matemático diseñado principalmente para mejorar la...

Post on 22-Jan-2016

218 views 0 download

Transcript of Programación Dinámica. Es un procedimiento matemático diseñado principalmente para mejorar la...

Programación Dinámica

Programación Dinámica

Es un procedimiento matemático diseñado principalmente para mejorar la eficiencia de cálculo de problemas de programación matemática seleccionados, descomponiéndolos en subproblemas de menor tamaño y por consiguiente mas fáciles de calcular. La PD normalmente resuelve el problema en etapas mediante el criterio del Principio de Optimalidad. Los cálculos en las diferentes etapas se enlazan a través de cálculos recursivos de manera que se genere una solución óptima factible a todo el problema

Programación Dinámica

Principio de OptimalidadUna política óptima solo puede estar formada por subpolíticas óptimasEstablece el marco de referencia unificador para los n sub problemas o n etapas de los problemas de programación dinámica.

Metodologías de Planteamiento

A medida que se estudie cada aplicación de la programación dinámica, hay que definir correctamente 3 elementos básicos:

•Etapas: es el mecanismo con el que construimos el problema •Alternativas en cada etapa: •Estado de cada etapa: es cualquier etapa de la información necesaria para tomar la decisión correcta en la etapa actual

Programación Dinámica Determinista

Técnica que se aplica para encontrar la solución óptima de un problema con n variables descomponiéndolo en n etapas, siendo cada etapa un sub-problema de cada variable.

Programación Dinámica Determinista

Modelo de Mochila (Carga-Volumen)

Consiste en abordar un problema de carga de artículos que poseen diferentes niveles de utilidad, en medios de carga con capacidad limitada. El objetivo es seleccionar las cargas más valiosas a transportar.

Se tienen N=3 artículos que se desean trasportar en la mochila que posee una capacidad de C=15Kg

Siendo p = peso del articulob = beneficio o ganancia

Ejemplo

Modelo de Mochila

Algoritmos voraces

SoluciónM={0,1,1} = $64

Solución OptimaM={1,1,0} =$78

Modelo de Mochila

Ecuación Recurrente

Diseño y Dimensiones de la tabla

N+1

C+1

j

i

Si (j – p) < 0 : el mayor será siempre el otro valor

Modelo de Mochila

0 1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

0

1

2

3

15+1

3+1 i

j

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0

2 0

3 0

Si (j – p) < 0 : el mayor será siempre el otro valor

j

i

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0

2 0

3 0

Si (j – p) < 0 : el mayor será siempre el otro valor

ji

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 38 38 38 38 38 38 38

2 0 0 0 0 0 0 40 40 40 40 40 40 40 40 40 78

3 0 0 0 0 0 28 40 40 40 40 40 64 64 64 64 78

Si (j – p) < 0 : el mayor será siempre el otro valor

ji

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 38 38 38 38 38 38 38

2 0 0 0 0 0 0 40 40 40 40 40 40 40 40 40 78

3 0 0 0 0 0 28 40 40 40 40 40 64 64 64 64 78

ji

Si => M[ i , j ] = M[i-1 , j] => El articulo no se incluirá en la mochila

De lo contrario se agregara a la mochila y se restara el peso a

capacidad de la mochila

i=i-1

ji

Si => M[ i , j ] = M[i-1 , j] => El articulo no se incluirá en la mochila

De lo contrario se agregara a la mochila y se restara el peso a capacidad de la mochila

i=i+1

ji

Si => M[ i , j ] = M[i-1 , j] => El articulo no se incluirá en la mochila

De lo contrario se agregara a la mochila y se restara el peso a capacidad de la mochila

i=i+1

Solución OptimaM={1,1,0} = $78

Programación Dinámica Determinista

Aplicaciones 1. Transporte Marítimo: cargar artículos en un barco con capacidad de peso limitada.

2. Equipaje de Emergencia: un piloto de jet debe determinar los artículos más valiosos (de emergencia) a llevar a bordo del jet.

3. Problema de la Mochila: un soldado (o un excursionista) debe decidir cuáles son los artículos más valiosos para llevar en su mochila.

Programación Dinámica Determinista

Modelo del Número de Empleados

En algunos proyectos de construcción, las contrataciones y los despidos se ejercen para mantener un número de empleados que satisfaga las necesidades del proyecto. Debido a que las actividades tanto de contratación como de despido incurren en costos adicionales, ¿cómo se debe mantener el número de empleados a todo lo largo de la vida del proyecto? La aplicación de este método nos ayuda a responder dicha pregunta.

Planteamiento del problema

Supóngase que el proyecto se ejecutará durante el lapso de n semanas y que el número mínimo de empleados requeridos en la semana i es bi trabajadores. Bajo condiciones ideales, es deseable que el numero de empleados en la semana i fuera exactamente bi, sin embargo, dependiente de los costos, puede ser más económico permitir que el número de empleados varié mas arriba de los requeridos mínimos.

Un contratista de una construcción calcula que el número de trabajadores necesarios durante las próximas 5 semanas es de: 5, 7, 8, 4 y 6 trabajadores, respectivamente.El exceso de trabajadores que se mantienen en la fuerza laboral costará $300 por trabajador y por semana.Las nuevas contrataciones en cualquier semana incurrirán en un costo fijo de $400 más $200 por trabajador y por semana. Se desea tener el menor costo total en la planilla de la fuerza laboral.¿Cómo se debe mantener el número de empleados a lo largo de proyecto?

Problema

Resumen del Problema

• Etapas: las 5 semanas (i).

i=1, 2, 3, 4, 5.

• Alternativas: número real de trabajadores empleados

(xi) .

• Estados: número trabajadores en la semana

inmediamente anterior (xi-1).

Datos importantes• 5 semanas

Definición de Variables•i= semanas.•xi= número real de trabajadores empleados por semana.•xi-1= número de trabajadores

de la semana anterior.•bi= número de trabajadores

requeridos por semana.

b1=5, b2=7, b3=8, b4=4, b5=6. •c1= costo exceso.•c2= costo fijo + variable.•n= etapa actual(n=1,2,3..n) .

Datos importantes• 5 semanas• 5, 7, 8, 4, 6 num trab.• Costo de exceso de trabajadores: $300.• Costo de contratar o despedir trabajadores: fijo: $400, variable: $200.

Función Recursiva

Fórmulas

• c1(xi-bi) = 300(xi-bi) para xi > bi

• c2(xi-xi-1) = 400+200(xi-xi-1) para xi > xi-1

con i= 1,2,3,4,5Función Recursiva :

fi(xi-1)=min{(c1(xi-bi)+ c2(xi-xi-1)+fi+1(xi)}*Importante:fn+1(xn)=0 (los calculos empiezan en la etapa n con xn=

bn y terminan en la etapa 1).

Etapa 5

n=5, b5=x5=6

Xi-1 (c1(xi-bi)+ c2(xi-xi-1))(300(x5-b5)+ 400+200(x5-x4))

Solución óptima

X4 X5=6 f5* (f5(x4))

x5*

4 300(6-6)+400+200(6-4)=800 800 6

5 300(6-6)+400+200(6-5)=600 600 6

6 300(6-6)+400+200(6-6)=0* 0* 6*

b1= 5b2= 7b3= 8b4= 4b5= 6

Etapa 4

n=4 b4=4

b1= 5b2= 7b3= 8b4= 4 b5= 6 =

Xi-1 (c1(xi-bi)+ c2(xi-xi-1) + fi+1(xi)})(300(x4-4)+ 400+200(x4-x3) + f5(x4))

Solución óptima

X3 X4=4 X4=5 X4=6 f4* of4(x3)

x4*

8 300(4-4)+ 400+ 200(4-8)+800 = 0-400+800 solución 0+0+800= 800

300(5-4)+400+ 200(5-8)+600= 300(1)-200+600=Solución 300+0+600= 900

300(6-4)+400+ 200(6-8) +0= 300(2)+0+0= 600

600 6

Datos importantes:f5*= f5(x4)4=8005=6006=0

Etapa 3

n=3 b3=8

b1= 5b2= 7b3= 8b4= 4 ≠ 6b5= 6 =

Datos importantes:f4*= f4(x3)6=600

Xi-1 (c1(xi-bi)+ c2(xi-xi-1) + fi+1(xi)})(300(x3-8)+ 400+200(x3-x2) + f4(x3))

Solución óptima

X2 X3=8 f3* of3(x2)

x3*

7 300(8-8)+400+200(8-7)+600= 1200 1200 8

8 300(8-8)+400+200(8-8)+600=600 600 8

Etapa 2 Datos importantes:f3*= f3(x2)7=12008=600

b1= 5b2= 7b3= 8 =b4= 4 ≠ 6b5= 6 =

Xi-1 (c1(xi-bi)+ c2(xi-xi-1) + fi+1(xi)})(300(x2-7)+ 400+200(x2-x1) + f3(x2)

Solución óptima

X1 X2=7 X2=8 f2* of2(x1)

x2*

5 300(7-7)+400+ 200(7-5) + 1200= 2000

300(8-7)+400+ 200(8-5) + 600= 1900

1900 8

6 300(7-7)+400+ 200(7-6) + 1200= 1800

300(8-7)+400+ 200(8-6) + 600= 1700

1700 8

7 300(7-7)+400+ 200(7-7) + 1200= 1200

300(8-7)+400+ 200(8-7) + 600= 1500

1200 7

8 300(7-7)+400+ 200(7-8) + 1200= 0+0+1200=1200

300(8-7)+400+ 200(8-8) + 600= 900

900 8

n= 2 b2=7

Etapa 1

n=1 b1=5

b1= 5 =b2= 7 ≠ 8b3= 8 =b4= 4 ≠ 6b5= 6 =

Xi-1 (c1(xi-bi)+ c2(xi-xi-1) + fi+1(xi)})(300(x1-5)+ 400+200(x1-x0) + f4(x3))

Solución óptima

X0 X1=5 X1=6 X1=7 X1=8 f1* of1(x0)

x1*

0 300(5-5) +400+ 200(5-0)+ 1900= 3300*

300(6-5) +400+ 200(6-0)+ 1700= 3600

300(7-5) +400+ 200(7-0)+ 1200= 3600

300(8-5) +400+ 200(8-0)+ 900= 3800

3300* 5*

Datos importantes:f3*= f3(x2)5=19006=17007=12008=900

Solución Factible:X1=5,x2=8,x3=8,x4=6,x5=6

Semana Núm. de trabajadores mínimos(bi)

Núm. real de trabajadores (xi)

Decisión

1 5 5 Contratar 5 trabajadores

2 7 8 Contratar 3 trabajadores

3 8 8 Ningún cambio

4 4 6 Despedir 2 trabajadores

5 6 6 Ningún cambio

Programación Dinámica Determinista

Modelo de Remplazo de Equipo

Mientras más tiempo este en servicio una máquina, más elevado será su costo de Mantenimiento y su producción será menor.

Cuando una máquina llega a cierta edad, puede resultar más económico remplazarla. Por lo consiguiente el problema se reduce a determinar la antigüedad más económica de la máquina.

Método Remplazo de Equipo

Cuando una máquina llega a cierta edad, se elevan sus costos operacionales y de mantención, por lo que puede ser más económico reemplazarla. Luego, hay que determinar la edad de vida útil económica de la máquina. Se supone el problema de reemplazo de equipo a lo largo de n años. Al principio de cada año se decide si se quiere prolongar el servicio del equipo un año más, o reemplazarlo por uno nuevo.

• Se definen:

• r(t) : beneficio anual del equipo de edad t años• c(t) : costo de operación del equipo de edad t años• s(t) : valor de rescate del equipo que ha estado en servicio durante t

años • I : costo de adquisición de un equipo nuevo en cualquier.

• Se pueden tomar 2 decisiones cada año: Beneficios• Conservar la maquina r(t)-c(t)• Reemplazar la maquina s(t)-l

Ejemplo reemplazo de equipoSe necesita determinar la política de reemplazo óptima para una máquina que en la actualidad tiene 3 años, durante los próximos 4 años (n = 4), es decir, hasta principios del año 5La compañía requiere que una máquina de 6 años se reemplace. El costo de una máquina nueva es de $100.000.La siguiente tabla proporciona los datos del problema:

Edad t(año) Utilidad r(t) Costo Operación c(t) Rescate s(t)

0 20000 200 -

1 19000 600 80000

2 18500 1200 60000

3 17200 1500 50000

4 15500 1700 30000

5 14000 1800 10000

6 12200 2200 5000

• La determinación de los estados es un tanto difícil, se recomienda hacer una red edad de la máquina v/s año de la decisión, para distinguir los estados posibles y los valores factibles para la edad de la máquina en cada etapa.

Principio

Edad de la maquina

Año decisión

• Solución en forma tabular

• La red muestra que al principio del año 2 , las edades posibles de las maquinas son 1 y 4 años. Para principios del año 3, las edades posibles son 1,2 y 5 años y para principios del año 4, las edades posibles son 1,2,3 y 6 años.

• La solución de la red consiste en encontrar la ruta mas larga desde el principio del año 1 hasta finales del año 4.

• Etapa 4

K R Solución Optima

t r(t)+s(t+1)-c(t) r(0)+s(t)+s(1)-c(0)-I f4(t) Decisión

1 19000+60000-600=78400 20000+80000+80000-200-100000=79800 79800 R

2 18500+50000-1200=67300 20000+60000+80000-200-100000=59800 67300 K

3 17200+30000-1500=45700 20000+50000+80000-200-100000=49800 49800 R

6 Se debe reemplazar 20000+5000+80000-200-100000=4800 4800 R

• Etapa 3

• Etapa 2

K R Solución Optima

t r(t)-c(t)+f4(t+1) r(0)+s(t)-c(0)-I+f4(1) f3(t) Decisión

1 19000-600+67300=85700 20000+80000-200-100000+79800=79600 85700 K

2 18500-1200+49800=67100 20000+60000-200-100000+79800=59600 67100 K

5 14000-1800+4800=17000 20000+10000-200-100000+79800=19600 19600 R

K R Solución Optima

t r(t)-c(t)+f3(t+1) r(0)+s(t)-c(0)-I+f3(1) f2(t) Decisión

1 19000-600+67100=85500 20000+80000-200-100000+85700=85500 85500 K o R

4 15500-1700+19600=33400 20000+30000-200-100000+85700=35500 35500 R

• Etapa 1

K R Solución Optima

t r(t)-c(t)+f2(t+1) r(0)+s(t)-c(0)-I+f2(1) f1(t) Decisión

3 17200-1500+35500=51200 20000+50000-200-100000+85500=55300 55300 R

• Al principio del año 1 la decisión optima dada t=3, es remplazar la maquina. Por tanto, la maquina nueva tendrá un año al principio del año 2 y t= 1 al principio del año 2 requiere ya sea conservar o reemplazar la maquina. Si se reemplaza, la maquina nueva tendrá 1 año al principio del año 3; de lo contrario, la maquina que se conservó tendrá 2 años. El proceso se continua de esa manera hasta cubrir el año 4.

Año 1 Año 2 Año 3 Año 4

R

K

R

K

K

R

K

(t=3)

(t=1)

(t=2)

(t=1)

(t=3)

(t=2)

Fin

Las políticas alternativas optimas empezando en el año 1 son (R,K,K,R) y (R,R,K,K). El costo total es de 55 300 dólares.

Programación Dinámica Probabilística

La programación dinámica probabilística (PDP) es una técnica matemática útil para la toma de decisiones interrelacionadas, se presenta cuando el estado en la siguiente etapa no está determinado por completo por el estado y la política de decisión de la etapa actual. En su lugar existe una distribución de probabilidad para determinar cuál será el siguiente estado.

Programación Dinámica Probabilística

Modelo probabilístico de Inversión

Los modelos de análisis de inversiones probabilísticos son modelos matemáticos que intentan simular como se comportarán las principales variables en el caso de realizarse la inversión.

Un modelo de análisis de inversiones nunca podrá predecir con exactitud cómo se comportarán las variables en el futuro, pero son necesarios para contar con información objetiva y para encontrar puntos débiles que pueden hacer peligrar el proyecto de inversión.

Ejemplo

Una corporación recibe propuestas de sus tres plantas respecto a la posible expansión de las instalaciones. La corporación tiene un presupuesto de 5 millones de dólares para asignarlo a las tres plantas. Cada planta expone sus propuestas indicando el costo total (C) y el ingreso total (R) para cada propuesta.

El objetivo es maximizar el ingreso total resultante.

Las plantas definen las etapas. Las variables de decisión 1 x , 2 x y 3 x se definen de la siguiente manera:•1 x = monto de capital asignado a la planta 1.•2 x = monto de capital asignado a las plantas 1 y 2.•3 x = monto de capital asignado a las plantas 1, 2 y 3.

Rn(Pn) = ingreso de la propuesta Pn en la etapa n.

ƒn(Xn) = rendimiento óptimo de las etapas 1,

2, . . . , n dado el estado Xn .

Pj = propuesta óptima asociada a ƒn(Xn)

Por lo tanto se tiene

Factibilidad

Ahora se define la parte faltante de la ecuación recursiva y que corresponde a las etapas 2, 3, . . .

Pero como a ƒn(Xn) es función de Xn exclusivamente, el lado derecho también debe serlo, esto se consigue teniendo en cuenta que

donde Cn(Pn) es el costo de la propuesta Pn en la etapa n. Esta ecuación ilustra la forma en que opera el procedimiento recursivo: de un dado Xn seasigna una parte (Cn(Pn)) para cubrir la propuesta Pn de la etapa n y la cantidad restante ( x n-1 = x n - Cn(Pn) (6) se destina a cubrir las propuestasde las etapas 1,2, . . . ,n-1. Se tiene, entonces:

La tabla para la última etapa posee solamente una fila, pues al no haber etapas restantes no deben considerarse todas las posibilidades de inversión sino, únicamente, el caso 3 x =5.

Solución

Cualquier de estas tres triplas da 17 millones como el máximo a obtener de ganancia de la inversión:

•(2,4, 1)•(3, 2, 2) •(2, 3, 2)

Muchas Gracias