15
Tema IV: Programación dinámica. Objetivos: Lograr que los alumnos sean capaces de: 1. Conocer las características y principios de la Programación Dinámica. 2. Resolver problemas típicos de la PD. ORIENTACIONES METODOLÓGICAS Tomar un problema típico donde sean necesarias tomar decisiones fundamentales en el tiempo. Hacer referencia a la existencia de toma de decisiones secuenciales determinísticas y estocásticas. Concretar las características del problema determinístico y precisar la metodología de la PD y sus principios, notación a utilizar, Auxiliarse del ejemplo de camino mínimo. Precisar al terminar el ejemplo las características que son aplicables a otros problemas. Plantear otras situaciones como: problemas de asignación y de producción con inventarios. DESARROLLO La programación dinámica (PD) es un método de optimización, especialmente adaptado a las llamadas operaciones de pasos múltiples o de etapas múltiples. Este tipo de operación se presenta con frecuencia en la vida real. Ejemplos La planificación de la actividad económica de una empresa en el curso de varios años. La construcción de una vía entre dos puntos. La distribución de recursos entre actividades competitivas. Principio de optimización de la PD Una política óptima tiene la propiedad de que cualesquiera que sean el estado y la decisión iniciales, las decisiones restantes deben constituir una política óptima con respecto al estado resultante de la primera decisión.

Conferencia Programación Dinámica

Embed Size (px)

DESCRIPTION

Investigación Operativa

Citation preview

Page 1: Conferencia Programación Dinámica

Tema IV: Programación dinámica.

Objetivos:Lograr que los alumnos sean capaces de:1. Conocer las características y principios de la Programación Dinámica.2. Resolver problemas típicos de la PD.

ORIENTACIONES METODOLÓGICASTomar un problema típico donde sean necesarias tomar decisiones fundamentales en el tiempo. Hacer referencia a la existencia de toma de decisiones secuenciales determinísticas y estocásticas. Concretar las características del problema determinístico y precisar la metodología de la PD y sus principios, notación a utilizar, Auxiliarse del ejemplo de camino mínimo. Precisar al terminar el ejemplo las características que son aplicables a otros problemas. Plantear otras situaciones como: problemas de asignación y de producción con inventarios.

DESARROLLOLa programación dinámica (PD) es un método de optimización, especialmente adaptado a las llamadas operaciones de pasos múltiples o de etapas múltiples. Este tipo de operación se presenta con frecuencia en la vida real.Ejemplos

La planificación de la actividad económica de una empresa en el curso de varios años.

La construcción de una vía entre dos puntos. La distribución de recursos entre actividades competitivas.

Principio de optimización de la PDUna política óptima tiene la propiedad de que cualesquiera que sean el estado y la decisión iniciales, las decisiones restantes deben constituir una política óptima con respecto al estado resultante de la primera decisión.

Programación Dinámica

Programación dinámica determinística

Programación dinámica estocástica

Camino óptimo Asignación Producción con

inventarios

Producción con inventarios y demanda aleatoria

Árboles de decisión

Page 2: Conferencia Programación Dinámica

Los problemas que resuelve la programación dinámica puede ser estocástica o determinística .En esta conferencia será objeto de estudio la programación dinámica determinística con horizonte finito, es decir con un número finito e etapas y dentro de ellas estudiaremos tres tipos de problema en particular:

Camino óptimo Asignación Producción con inventarios

Características principales de un problema de programación dinámica

1. El sistema original puede descomponerse en subsistemas que recibirán el nombre de etapas y que serán resueltos de acuerdo con una política de decisión definida previamente.

2. En cada etapa o subsistemas existen estados. Un estado es la descripción de una condición del sistema. Los estados son excluyentes en una etapa determinada, y finitos.

3. La política de decisión define la acción tomada para cada estado en cada etapa. Una política de decisión estacionaria es aquella que no varía con las etapas, es decir, en cada una de ellas la acción que se toma depende solo del estado en que se está.

En un problema de programación dinámica determinística la política de decisión debe tener un efecto tal, que permita pasar inequívocamente del estado actual en una etapa, al mejor estado asociado a la próxima etapa.

Representación gráfica de la política de decisión

Xn Xn: variables de decisión i, j: Estados i=1, 2,….., p j=1, 2,…….qEtapa n Etapa (n-1)

Problema real

Programación dinámica

4. La función de recursividad (o recursiva) es la representación cuantitativa de la política de decisión; constituye la función que evalúa el objetivo a alcanzar en cada etapa y define la decisión a tomar.Esta función relaciona las etapas o subsistemas.

i j

Page 3: Conferencia Programación Dinámica

La formulación general de la función de recursividad estará dada por:fn*(s) = maximizar / minimizar [fn( s, xn)]

Donde:n: Etapas: Estadofn

* (s):valor óptimo de la función recursiva en la etapa n, dado el estado s.fn (s,xn): función de recursividad que permite en la etapa n y dado el estado s, evaluar el valor de xn, siguiendo la política de decisión determinada para el sistema.

Esta función tiene carácter recurrente dado que:fn (i, xn)= f(xn) + fn-1 (j)

Donde:i: Estado en la etapa n.j: Estado en la etapa n-1. Para llegar a este estado se tendrá en cuenta el valor que toma la variable de decisión en la etapa n y este se relacionará o no con otros parámetros, según el tipo de problema que se esté analizando.f(xn): Función objetivo evaluada para la variable de decisión en la etapa n.fn-1 (j): Expresión recursiva que permite encontrar el valor óptimo en la etapa anterior, dado el estado j.

5. El principio de la optimización de la programación dinámica, que fue enunciado anteriormente, significa que dado un estado conocido para un subsistema, una decisión óptima para las restantes es independiente de la decisión adoptada en las etapas previas.

Representación de las relaciones en que se basa el principio de la optimización de la programación dinámica

Problema real

Etapa n

Pasado Futuro

Programación dinámica

6. El procedimiento de solución comienza hallando la política óptima para cada estado de la primera etapa. Luego continúa moviéndose “hacia delante” en el sentido de la PD etapa a etapa (“hacia atrás”, en el sentido del problema real), hasta alcanzar la última etapa y el estado inicial, cuya política óptima será la del sistema o problema real.

7. Planteamiento general de un problema a través de la programación dinámica

S

Page 4: Conferencia Programación Dinámica

Etapa (n): Cada uno de los subproblemas en que puede dividirse el sistema o problema analizado.Estado (s): Cada situación en que puede encontrarse el sistema en una etapa dada y a partir de la cual se adopta una política de decisión determinada.Variable de decisión (xn): Alternativa de solución que se le puede dar al sistema de una etapa determinada conociéndose el estado en el cual se encuentra al comenzar dicha etapa.Función de recursividad:fn

*(s) =max / min[fn( s, xn)]

Este planteamiento general tiene como objetivo mostrar con mayor claridad aquellos elementos que intervienen en la solución de un problema a través de la programación dinámica .Para cada tipo de problema existirá un planteamiento basado en sus características fundamentales, incluso para cada problema se definirá n estos elementos de forma específica; pero siempre estos deben reflejarse claramente entes de iniciar la solución matemática del problema.

Tabla para el desarrollo de la programación dinámica

Xn fn (s, xn) fn*(s) X*n

s A1 A2 ….

i

j

.

.

Donde:

n: Etapa.s: Estado.i,j,…: Posibles estados para la etapa n.Xn: Variable de decisión para la etapa n.A1, A2,…:Alternativas de solución para Xn.

fn (s,xn): Función de recursividad para la etapa n dado el valor de s.fn*(s): Valor óptimo de la función recursiva en la etapa n dado el valor s.X*n: Alternativa de solución óptima para Xn dado el valor s.

Page 5: Conferencia Programación Dinámica

EJEMPLOS TIPOS

El problema de camino óptimo

Definición general:Considerar un conjunto de puntos {Pi}, i = 1, 2,…,m, con una matriz de costos asociada cij , donde cij es el costo de moverse directamente de Pi a Pj en un paso y se asume que cij ≥ 0.¿Cuál es el costo mínimo de moverse de cualquier punto Pi al punto Pm usando tantos pasos como sean queridos y cuál es la secuencia óptima?

Ejemplo 1:Un viajante necesita ir de la ciudad 1 a la 8 y tiene varias alternativas de rutas para seleccionar. Se conocen los costos asociados a cada tramo recorrido. Los costos de ir de la ciudad i a la j, que se denotarán por cij, son:

¿Qué ruta debe seleccionar el viajante para minimizar el costo total?

SoluciónRepresentación gráfica

Características del problema.Etapas (n): Tramos de camino que faltan por terminar en el recorrido. n=1 (de 5, 6 y 7 a 8); n=2 (de 2, 3 y 4 a 5, 6 y 7); n=3 (de 1 a 2, 3 y 4).

Cij 5 6 72 7 4 63 3 2 44 4 1 5

Cij 8 95 1 46 6 37 3 3

Cij 108 39 4

Cij 2 3 4 1 2 4 3

1

2

3

4

5

6

7

8

9

10

Page 6: Conferencia Programación Dinámica

Estados (s): Posibles ciudades en que se puede encontrar el viajante en una etapa determinada.Variable decisión (xn): Ciudad a la que se dirige el viajante cuando le faltan n etapas.Función recursiva:fn*(s) = min [fn (s, xn)]fn*(s) = min [ Cs,xn + f *

n-1 (xn)]Donde:

Cs,xn: Costo en que se incurre cuando se está en el estado s y decide moverse a Xn

f *n-1 (xn): Expresión recursiva que permite encontrar el valor óptimo en la etapa anterior,

a partir de la decisión tomada en la etapa n.

Para n=1 (ciudad 10).s f1

*(s) X1*

8 3 109 4 10

Para n=2 cuando faltan dos etapas X2 f3*(s,x2) = Cs,x2 +f1*(x2) f2*(s) X*2

s 8 95 1+3=4 4+4=8 4 86 6+2=9 3+4=7 7 97 3+3=6 3+4=7 6 8

Para n=3 cuando faltan tres etapas X3 f3*(s,x3) = Cs,x3 +f2*(x3) f3*(s) X*3

s 5 6 72 7+4=11 4+7=11 6+6=12 11 5 ó 63 3+4=7 2+7=9 4+6=10 7 54 4+4=8 1+7=8 5+6=11 8 5 ó 6

Para n=4 cuando faltan cuatro etapas X4 f4*(s,x4) = Cs,x4 +f3*(x4) f4*(s) X*4

s 2 3 41 2+11=13 4+7=11 3+8=11 11 3 ó 4

De esta forma la ruta óptima es:1-3-5-8-10 ó 1-4-5-8-10 ó 1-4-6-9-10El costo mínimo es $ 11.Resumen Etapas (n): Cada una de las partes (tramos, períodos, etc.), en que puede dividirse el sistema.Estados (s): La posible situación del sistema al inicio de cada etapa n.

Page 7: Conferencia Programación Dinámica

Variable de decisión (xn): La situación en la cual podrá encontrarse el sistema en la etapa n.Función de recursividad:fn

*(s) =max / min [fn( s, xn)]fn

*(s) =max / min [f(xn)+ f*n-1( s, xn)]

El problema de asignación

Definición general:Se dispone de una cantidad de medios (recursos) k que debe ser distribuido entre m objetivos económicos o1, o2,…, om. La inversión de cierta cantidad de medios x en cada uno de los objetivos económicos oi rinde un beneficio que depende de x, es decir, representa una función fi(x) conocida.¿Cómo se deben distribuir los medios k entre los objetivos económicos para obtener en conjunto un beneficio máximo?

Ejemplo 2:Una empresa cañera tiene tres distritos A, B y C, con cinco máquinas cortadoras de caña KTP-1, las cuales deben ser distribuidas entre los distritos. A causa de las características de los campos cañeros, en cada distrito el rendimiento que se puede alcanzar por día de trabajo (en miles de @ de caña) varía en dependencia de que se asignen una, dos o tres máquinas como se muestra en la tabla a continuación:

Rendimiento si Distritose asigna: A B C1 máquina 10 10 112 máquinas 19 20 203 máquinas 28 -- 29

Ante la necesidad de cumplir con el plan de entrega diario de cada distrito, hay que asignar, al menos, una máquina a cada uno y al distrito B no se le pueden asignar tres máquinas.Determine cómo deben distribuirse las máquinas entre los distritos para maximizar el rendimiento total diario.

Solución Representación gráfica n=3 n=2 n=1Si A S2 B S3 C Sf

5 x3 4 x2 3 x1 0 1 3 1 2 1 2 2 2 1 2

3 3Características del problema Etapas (n): Cada distrito: n=1(distrito C); n=2(distrito B); n=3(distrito A).Estados (s): Número de máquinas disponibles que quedan aún por asignar al inicio de la etapa n.Variable decisión (xn): Número de máquinas asignadas en la etapa n.Función de recursividad:

Page 8: Conferencia Programación Dinámica

fn*(s) = max [fn (s, xn)]fn*(s) = max [ Ri,xn + f *

n-1 (s - xn)] Donde: Ri,xn : Rendimiento esperado diario del distrito i si se le asignan xn máquinas.f *

n-1 (s - xn) Expresión recursiva que permite encontrar el valor óptimo en la etapa anterior, a partir de la diferencia entre la cantidad de recursos disponibles y los que se asignaron en la etapa n.

Para n=1 Distrito C x1 f3*(s,x1) = R3,x1 f1*(s) x*1

s 1 2 31 11 11 12 20 20 23 29 29 3

Para n=2 Distrito B x2 f2*(s,x2) = R2,x2 +f1*(s-x2) f2*(s) x*2

s 1 22 10+11=21 21 13 10+20=30 20+21=31 31 24 10+29=39 20+20=40 40 2

Para n=3 Distrito A x3 F3*(s,x3) = R1,x3 +f2*(s-x3) f3*(s) x*3

s 1 2 35 10+40=50 19+31=50 20+21=49 50 1ó 2

Existen dos alternativas de solución Distrito Máquinas a asignarA 1 ó 2B 2 ó 2C 2 ó 1

Para ambas alternativas el máximo rendimiento es de 50000 @ por día.Nótese que para ambas alternativas se cumple que el número de máquinas asignadas es 5.

ResumenEtapas (n): Cada destino de asignación; pueden ser tomados en cualquier orden.Estados (s): Cantidad de recursos o medios disponibles que quedan por asignar al inicio de la etapa n.Variable de decisión (xn): Cantidad de recursos o medios a asignar en la etapa n.Función de recursividad:

Page 9: Conferencia Programación Dinámica

fn*(s) =max / min [fn( s, xn)]

fn*(s) =max / min [f(xn)+ f*

n-1( s - xn)]

El problema de producción con inventario

Definición general:Se debe producir un producto x en un determinado período; se conoce la capacidad de producción y la demanda del mismo para cada subperíodo y se puede almacenar para ser utilizado posteriormente. Se conocen los costos de producción y de almacenamiento, y se desea determinar la cantidad a producir en cada subperíodo para minimizar los costos totales del período.

Ejemplo3:Una empresa fabrica equipos de precisión. Su capacidad le permite, producir como máximo, tres equipos mensuales. El costo de producción, en miles de pesos, se muestra a continuación:

Número de equipos 0 1 2 3Costo de producción 100 150 200 350

Se quiere programar el plan de producción del próximo trimestre; es necesario entregar un equipo el primer mes, dos el segundo y uno el tercero. Además, la empresa desea que al final del trimestre quede un equipo en inventario. Al inicio del primer mes del trimestre no hay ningún equipo en almacén. Los costos, en miles de pesos por mes, por mantener equipos en inventario son los que se muestran a continuación:

Número de equipos 0 1 2Costo de inventario 7 20 50

No se permite tener más de dos equipos en inventario.¿Cuál será el plan de producción que minimiza los costos totales?

Solución Representación gráfica n=3 n=2 n=1Si Mes 1 S2 Mes 2 S3 Mes 3 Sf

0 0≤x3≤3 0 0 ≤ x2 ≤3 0 0 ≤ x1≤3 1 D3=1 1 d2=2 1 d1=1 2 2

Características del problema Etapas (n): Número de meses que faltan para el fin del trimestre: n=1(mes 3); n =2(mes 2); n =3(mes 1).Estados (s): Cantidad de equipos en inventario al inicio de cada etapa n.Variable decisión (xn): Cantidad de equipos a producir en cada etapa.Función de recursividad:fn*(s) = min [fn (s, xn)]fn*(s) = min [CPxn +CIs + f *

n-1 (s + xn - dn)]

Page 10: Conferencia Programación Dinámica

Donde: CPxn: Costo de producción de xn equipos (en miles de pesos).Cis: Costo de mantener en inventario s equipos (en miles de pesos por mes).

Para n=1 último mes del trimestre x1 f1*(s,x1) = CP xn +CIs f1*(s) x*1

s 0 1 2 30 200+7=207 207 21 150+20=170 170 12 100+50=150 150 0

Para n=2 faltan dos meses para el fin del trimestre (mes 2) X2 F2*(s,x2) = CP x2 +CIs + f1*(s+x2- d2) f1*(s) x*1

s 0 1 2 30 200+7+207

=414350+7+170=527

414 2

1 150+20+207=377

200+20+170=390

350+20+150=520

377 1

2 100+50+207=357

150+7+170=370

200+50+150=400

357 0

Para n=3 faltan tres meses para el fin del trimestre (mes 1) X1 F3*(s,x3) = CP x3 +CIs + f2*(s+x3- d3) f1*(s) x*1

s 0 1 2 30 150+7+414

=571200+7+377=584

350+7+357=714

571 1

Por tanto la solución óptima es:Mes Producir1 12 23 2

El costo total mínimo es $571 000

Resumen Etapas (n): Los distintos subperíodos (generalmente de tiempo) en que puede dividirse el horizonte de planificación.Estados (s): Cantidad de unidades del producto en inventario al inicio de cada etapa.Variable de decisión (xn): Cantidad de unidades del producto que se debe producir o adquirir en cada etapa.Función de recursividad:fn

*(s) =min [fn( s, xn)]

Page 11: Conferencia Programación Dinámica

fn*(s) =min [CPxn + CI(s) + f*

n-1( s + xn -dn) ] Donde:

CPxn: Costo de producción de xn unidades del producto.CPxn= Cp (xn) + CLCp: Costo unitario de producción.CL:Costo de lanzamiento, es decir, costo de realizar una producción de cualquier

tamaño.CI: Costo unitario de almacenamiento o inventario.f*

n-1( s + xn -dn): Expresión recursiva que permite encontrar el valor óptimo en la etapa anterior, teniendo en cuenta la cantidad de unidades en inventario al inicio de la etapa n, (s), la decisión xn y la demanda de la etapa n, (dn). En el procedimiento de solución se tendrán en cuenta además, las restricciones que presente el problema analizado, las que pueden ser: Por la capacidad de producción en cada subperíodo. Por los requerimientos de inventario.