1.
Programación Dinámica. 1.1. Características y ejemplos de modelos 1.1.1. Características de los problemas de programación dinámica: etapas, estados, fórmula recursiva, programación en avance y en retroceso.
CARACTERISTICAS GENERALES DE LOS PROBLEMAS PR OBLEMAS DE PROGRAMACION DINAMICA.
El problema de la diligencia es un prototipo literal de los problemas de programación dinámica. Por tanto una manera de reconocer una situación que se puede formular como un problema de programación dinámica es poder identificar una estructura análoga a la del problema de la diligencia. CARACTERISTICAS BASICAS: 1.- El problema se puede dividir en etapas que requieren una política de decisión en cada una de ellas. 2.- Cada etapa tiene cierto número de estados asociados con su inicio. Los estados son las distintas condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema. 3.- El efecto de la política de decisión en cada etapa es transformar el estado actual en un estado asociado con el inicio de la siguiente etapa. 4.- El procedimiento de solución está diseñado para encontrar una política óptima para el problema completo. 5.- Dado el estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en etapas anteriores. Este es el principio de optimalidad para programación dinámica. 6.- El procedimiento de solución se inicia al encontrar la política óptima para la última etapa. 7.- Se dispone de una relación recursiva que identifica la política óptima para la etapa n, dada la política óptima para la etapa n+1. La forma precisa de relación recursiva difiere de un problema a otro de programación dinámica, pero usaremos una notación análoga a la siguiente: N = número de etapas. n = etiqueta para la etapa actual ( n = 1,2,…,N)
sn = estado actual para la etapa n xn = variable de decisión para la etapa n xn* = valor óptimo de xn (dado sn) fn(sn,xn) = contribución a la función objetivo de las etapas n, n+1,…,N, si el sistema se encuentra en el estado sn en la etapa n, la decisión inmediata es xn y en adelante se toman decisiones óptimas.
fn*(sn) = fn(sn,xn*) La relación recursiva siempre tendrá la forma: fn*(sn) = mín fn(sn,xn) ó fn*(sn) = max fn(sn,xn) 8.- Cuando se usa esta relación recursiva, el procedimiento de solución comienza al final y se mueve hacia atrás etapa por etapa, hasta que encuentra la política óptima desde la etapa inicial.
La programación dinámica (PD) 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, más fáciles de calcular. La programación dinámica comúnmente resuelve el problema en etapas, en donde en cada etapa interviene exactamente una variable de optimización (u optimizadora). Los cálculos en las diferentes etapas se alcanzan a través de cálculos recursivos de manera que se genere una solución óptima factible a todo el problema.
Los sutiles conceptos que se utilizan en PD junto con las notaciones matemáticas poco conocidas son una fuente de confusión, en especial para un principiante. No obstante nuestra experiencia demuestra que la exposición frecuente a formulaciones y soluciones de PD permitirá a un principiante, con algo de esfuerzo, entender estos conceptos avanzados. Cuando sucede esto, la programación dinámica se vuelve sorprendentemente sencilla y clara. Elementos del modelo de PD (ejemplo del presupuesto de capital)
Una corporación recibe propuestas de sus tres plantas respecto a la posible expansión de sus instalaciones. La corporación tiene un presupuesto de $5 millones para asignarlo a las tres plantas. A cada planta se le solicita someta sus propuestas indicando el costo total (c) y el ingreso total (R) para cada propuesta. En la tabla 1-1 se resumen los costos e ingresos (en
millones de unidades monetarias). Las propuestas de costos cero se introducen para dar cabida a la posibilidad de no asignar fondos a plantas individuales. La meta de la corporación es la de maximizar el ingreso total resultante a la asignación de los $5 millones a las tres plantas.
Una manera directa, o quizá ingenua, de resolver el problema es a través de una enumeración exhaustiva. El problema tiene 3 x 4 x 2 = 24 posibles soluciones y algunas de ellas son infactibles por que requieren más capital que el disponible ($5 millones). La idea de la enumeración exhaustiva es la de calcular el costo total de cada una de las 24 combinaciones. Si éste no excede el capital disponible, se obtiene su ingreso total. La solución óptima es la combinación factible que produce el más alto ingreso total. Por ejemplo, las propuestas 2, 3, y 1 de las plantas 1,2 y 3 cuestan $4 millones (<5) y producen un ingreso total de $14 millones. Por otra parte, la combinación que comprenden las propuestas 3, 4 y 2 es infactible porque causa $7 millones.
Examinaremos las desventajas de la enumeración exhaustiva. Cada combinación define una política de decisión para todo el problema y por lo tanto, quizá no sea factible en términos de cálculo la enumeración de todas las combinaciones posibles para problemas de tamaño mediano y grande. Las combinaciones infactibles no se pueden detectar con anticipación, lo cual nos conduce a que haya ineficiencia en términos de cálculo. La información disponible referente a combinaciones investigadas con anterioridad no se utilizan para eliminar combinaciones inferiores futuras. El algoritmo de PD que presentamos aquí está diseñado para facilitar las dificultades que hemos notado.
Modelo de PD
En la programación dinámica, los cálculos se realizan en etapas dividiendo el problema en subproblemas. Después se considera por separado cada subproblema con el fin de reducir el número de operaciones de cálculo. Sin embargo, como los problemas son independientes, debe idearse un procedimiento para alcanzar los cálculos de manera que garantice que una solución factible para cada etapa sea asimismo factible para todo el problema. Una etapa en PD se define como la parte del problema que posee un conjunto de alternativas mutuamente excluyentes de las cuales se seleccionará la mejor alternativa. En términos del ejemplo del presupuesto de capital, cada planta define una etapa donde la primera, segunda y tercera etapas tienen tres, cuatro y dos alternativas, respectivamente. Estas etapas son interdependientes porque las tres plantas deben competir por un presupuesto limitado. Por ejemplo, elegir la propuesta 1 dejará $5 millones para las plantas 2 y 3, en tanto que la elección de la propuesta 2 de la planta 1 sólo dejará $4 millones para las planta 2 y 3. La idea básica de la PD consiste prácticamente en eliminar el efecto de la interdependencia entre etapas asociando una definición de estado con cada etapa. Un estado se define normalmente como aquel que refleja la condición (o estado, valga la redundancia) de las restricciones que alcanzan las etapas. En el ejemplo del presupuesto del capital, definimos los dos estados para las etapas 1, 2, y 3 como sigue:
X1 = monto de capital asignado X2 = monto de capital asignado a X3 = monto de capital asignado a las etapas 1, 2 y 3
a las
la etapa
etapa 1 y
1 2
ahora demostremos como se utilizan las definiciones de etapas y estados dadas para descomponer el problema del presupuesto del capital en tres subproblemas independientes desde el punto de vista del cálculo. Obsérvese primero que los valores de x1 y x2 no se conocen con exactitud, pero deben estar en alguna parte entre 0 y 5. De hecho, como los costos de las diferentes propuestas son discretos, x1 y x2 solo pueden tomar los valores 0, 1, 2, 3, 4 o 5. Por otra parte, x3, que es el capital total asignado a todas las etapas, en las tres es igual a 5. La forma en que resolvemos el problema consiste en comenzar con la etapa (planta) 1. Obtenemos decisiones condicionales para esa etapa que responde la pregunta siguiente: dado un valor específico de x1 (= 0, 1, 2, 3, 4 o 5), ¿cuál será la mejor alternativa (propuesta) para la etapa 1? Los cálculos para la etapa 1 son directos. Dado el valor de x1, elegimos la mejor propuesta cuyo costo no exceda x1. En la tabla 1-2 se resumen las decisiones condicionales de la etapa 1. Tabla 1-2
Hasta ahora, no conocemos el valor exacto de x1. No obstante, para cuando lleguemos a la etapa 3, tendremos a disposición esta información y, por lo tanto, el problema se reducirá a la lectura de los registros indicados en la tabla. Ejemplo 1
En la tabla anterior, ¿es posible que x1 = > 2 pueda ser óptima en la solución final? [Resp .No. Porque x1 = > 2 presenta un rasgo excesivo para la etapa 1.] Ahora consideremos los cálculos de la etapa 2. Estos cálculos buscan también una solución óptima condicional para la etapa 2 como función del estado x2. Pese a ello, difieren de los cálculos de la etapa 1 en que el estado x2 define ahora el capital que se asignará a la etapa 1 a la etapa 2. Esta definición garantizará que una decisión tomada para la etapa 2 será automáticamente factible para la etapa 1. La idea consiste ahora en escoger la alternativa en la etapa 2 dado x2 que genere el mayor ingreso para las etapas 1 y 2. La fórmula que sigue resume la naturaleza de los cálculos de la etapa 2.
Donde x1 = x2 – (capital asignado a la alternativa dada de la etapa 2). La idea básica de la fórmula es que la elección específica de una alternativa para la etapa 2 afectará el capital restante para la etapa 1, es decir, x1. Por lo tanto, al considerar todas las alternativas factibles de la etapa 2 consideramos automáticamente todas las combinaciones que son posibles para las etapas 1 y 2. Nótese que el segundo término del segundo miembro de la ecuación se obtiene directamente de la tabla resumen de la etapa 1. Ahora señalaremos los detalles de los cálculos de la etapa 2.
La única alternativa factible para la etapa 2 dado x2 = 0 es la propuesta 1 cuyo costo e ingresos son iguales a cero. Por lo tanto, la aplicación de la fórmula produce
Que corresponde a la propuesta 1 .
Para x2 = 1, sólo tenemos una alternativa factible para la etapa 2; esto es, la propuesta 1, que cuesta (o tiene un costo de) cero y produce un ingreso de cero. Las propuestas restantes son infactibles porque tiene un costo por lo menos de 2 . Por lo tanto tenemos:
Que corresponde a la propuesta 1 Nótese que x1 = x2 – (costo de la propuesta 1) = 1 – 0 = 1. En la tabla 1-2 resumen de la etapa 1, encontramos que el mayor ingreso dado x1 = 1 es 5. Obsérvese que todo lo que necesitamos de los cálculos de la etapa 1 es el mayor ingreso asociado con x1 dado. Dicho de otra manera, en realidad no nos interesa la propuesta específica seleccionada en la etapa 1.
Aquí tenemos dos alternativas factibles: la propuesta 1 y 2 que cuestan 0 y 2 y producen ingresos de 0 y 8, respectivamente. Por consiguiente, los valores de x1 que corresponden a las propuestas 1 y 2 son 2 – 0 = 2 y 2 – 2 = 0. Los mayores ingresos corresponden de la etapa 1 dados x1 = 2 y x1 = 0 son 6 y 0, respectivamente. Por lo tanto, obtenemos:
Que corresponde a la propuesta 2.
Las alternativas factibles son las propuestas 1, 2 y 3. Los valores correspondientes de x1 son 3 – 0 = 3, 3 – 2 = 1 y 3 – 3 = 0, respectivamente. Por lo tanto:
Que corresponde a la propuesta 2.
Las alternativas factibles son las propuestas 1, 2, 3 y 4. Los valores correspondientes de x1 son 4 – 0 = 4, 4 – 2 =2, 4 – 3 = 1 y 4 – 4 =0, respectivamente, lo que nos lleva a obtener:
Que corresponde a las propuestas 2 y 3
Tenemos las mismas alternativas factibles que en x2 = 4. Los valores correspondientes de x1 son 5, 3, 2 y 1, respectivamente. En consecuencia
Que corresponde a la Podemos resumir el cálculo de la etapa 2 en la tabla 1-3:
propuesta
4
tabla 1-3
Ahora consideremos la etapa 3. La fórmula para determinar el mayor ingreso es similar a la de la etapa 2, salvo que x2 y x1 se sustituyen por x3 y x2. En forma análoga las etapas 2 y 1 se reemplazan por las etapas 3 y 2. Sin embargo, obsérvese que a diferencia de x1 o x2, x3 tiene ahora un solo valor específico; es decir, x3 = 5. como la etapa 3 tiene dos propuestas cuyo costo no excede el límite de 5, ambas propuestas son factibles. Los valores de x2 que corresponden a la propuesta 1 y 2 son 5 – 0 = 5 y 5 – 1 = 4, respectivamente. Mediante el uso de la tabla resumen 1-3 para la etapa 2 junto con x2, obtenemos entonces:
Que corresponde a 1 o 2 Ahora que hemos terminado de efectuar todas las operaciones podemos leer la solución óptima en forma directa. Comenzando desde la etapa 3, podemos elegir la propuesta 1 o 2. Si elegimos la propuesta 1, que tiene un costo de 0, entonces x2 de la etapa 2 será 5 – 0 = 5 de la tabla 1-3 de la etapa 2, vemos que la alternativa óptima dado x2 = 5 es la propuesta 4. Como la propuesta 4 de la etapa 2 cuesta 4, tenemos x1 = x2 – 4 = 5 – 4 = 1. Una vez más,
de la tabla 1-2, obtenemos la propuesta 2 como la alternativa óptima para la etapa 1. Al combinar todas las respuestas de las tres etapas, una solución óptima requiere de la selección de la propuesta 2 para la planta 1, la propuesta 4 para la planta 2 y la propuesta 1 para la planta 3. El costo total es 5 y el ingreso óptimo es 17. Se puede obtener otras dos soluciones considerando la propuesta óptima alternativa de la etap a 3. Ejemplo [Identifique los dos óptimos [Resp. (3, 2,2) Y (2, 3,2)]
alternativos
restantes
del
ejemplo
2 anterior]
Si el lector estudia detenidamente el procedimiento dado, advertirá que los cálculos son en realidad recursivos. Por lo tanto, los cálculos de la etapa 2 están basados en los de la etapa 1. En forma semejante, los cálculos de la etapa 3 utilizan sólo los cálculos de la etapa 2. Dicho de otra manera, los cálculos de una etapa actual utilizan información de resumen de la etapa inmediata inferior. Este resumen proporciona los ingresos óptimos de todas las etapas consideradas antes. Al utilizar este resumen nunca nos interesan las decisiones específicas tomadas en todas las etapas anteriores. En realidad las decisiones futuras se seleccionan en forma óptima sin recurrir a decisiones tomadas antes esta prioridad especial constituye el principio de optimidad, que es la base de la validez de los cálculos de PD. Para expresar matemáticamente la ecuación recursiva, introducimos la notación siguiente. Sean:
= ingreso de la alternativa en R j (k j ) k j f j (x j ) = rendimiento óptimo de las etapas 1,2,...y j dedo el estado x j
la
etapa
j
Por lo tanto, escribimos las ecuaciones recursivas del ejemplo del presupuesto de capital como:
Existe un aspecto importante que necesitamos aclarar en relación con la exactitud matemática de esta ecuación recursiva. Primero nótese que f j (x j ) es función del argumento xj exclusivamente. Es necesario que el segundo miembro de la ecuación recursiva se exprese en términos de xj y no en términos de xj-1. Esto se logra recordando que: Xj-1 = xj – cj (kj) Donde c j (k j ) es el costo de la alternativa k j en la etapa j.
Otro aspecto tiene que ver con la expresión de la factibilidad de las propuestas en forma matemática. Especialmente, una propuesta kj es factible si su costo cj (kj) no excede el estado del sistema xj en la etapa j.
Tomando en cuenta estos dos aspectos, podemos escribir la ecuación recursiva de PD como:
La implantación de las ecuaciones recursivas suele efectuarse en forma tabular estándar como lo indican los cálculos que siguen. Sin embargo, debemos señalar que siembre resulta tentador realizar los cálculos tabulares en forma mecánica sin entender en realidad por qué se efectúan. Para evitar caer en esta trampa, sugerimos que siempre se intente relacionar los registros de los cálculos tabulares con los símbolos matemáticos correspondientes de la ecuación recursiva. Etapa 1.
Etapa 2.
Etapa 3.
La solución óptima puede leerse ahora directamente de las tablas anteriores comenzando con la etapa 3. Para x3 = 5, la propuesta optima es k 3* = 2. Considérese k 3*= 1en primer término. Como c3 (1) = 0, esto deja x2 = x3 – (1) = 5 para las etapas 2 y 1. Ahora bien, la etapa 2 muestra que x2 = 5 produce k 2 = 4. Como c2 (4) = 4, esto deja x1 =5 – 4 = 1. De la etapa 1 x1 = 1 de k 1* = 2 por lo tanto una combinación optima de propuestas para las etapas 1, 2 y 3 es (2, 4,1). La figura 1 ilustra cómo se determinan los óptimos alternativos en forma sistemática. figura 1.
Ecuación Recursiva de Retroceso.
En la sección 1.1.2 los cálculos se efectúan en el orden
Este método de cálculo de conoce como procedimiento de avance porque los cálculos avanzan de la primera a la última etapa. Sin embargo, cuando el lector estudie la mayoría de las obras dedicadas a la programación dinámica advertirá que la ecuación recursiva se construye de manera que los cálculos comienzan en la última etapa y después “regresan” hacia la etapa 1. Este método recibe el nombre de procedimi ento de retr oceso . La diferencia principal entre los métodos de avance y de retroceso ocurre en la forma en que definimos el estado del sistema. Para ser específicos, volveremos a considerar el ejemplo del presupuesto de capital. Para el procedimiento de retroceso, definimos los estados yj como: y1 = monto de capital asignado a las etapas 1, y2 = monto de capital asignado a las etapas y3 = monto de capital asignado a la etapa 3
2 2
y y
3 3
Para apreciar la diferencia entre la definición de los estados xj y yj en los métodos de avance y retroceso, las dos definiciones se resumen en forma gráfica en la figura 2. figura 2.
La ecuación recursiva de retroceso se escribe, por tanto como:
El orden de los cálculos de las etapas en la manera siguiente: Etapa 3:
Etapa 2.
. Ahora los cálculos se realizan de
Etapa 1.
La solución óptima se determina comenzando con y1 en la etapa 1 y continuando a y3 en la etapa 3. Naturalmente, las soluciones son idénticas a las del método anterior (verifíquese esto). Quizá el lector se pregunte por qué se necesite la formulación recursiva del todo, en particular cuando la formulación de avance parece ser más lógica y ciertamente más directa. Esta conclusión es verdadera para el ejemplo anterior, ya que la asignación específica de etapas a las plantas no es secuencial. A este respecto, las formulaciones de avance y retroceso son en realidad equivalentes en términos de cálculo. Sin embargo, hay situaciones donde habrá alguna diferencia, en la eficiencia del cálculo, según la formulación que se utilice. Esto sucede en particular en problemas en que interviene la toma de decisiones conforme transcurre el tiempo, como la planeación del inventario y de la producción. En este caso las etapas se designan con base en el estricto orden cronológico de los periodos que ellas presentan y la eficiencia de los cálculos dependerá de si se utiliza la formulación de avance o de retroceso. Aparentemente, la experiencia con los cálculos de PD ha demostrado que las formulaciones de retroceso suelen ser más eficientes. De hecho la mayoría de las obras sobre programación dinámica se presentan en términos de la formulación de retroceso sin importar si contribuye o no a la eficiencia de los cálculos. Siguiendo esta tradición, todo el material que se presente en las secciones restantes de esta unidad estará basado en la formulación de retroceso. La formulación de avance se empleará únicamente cuando se
garantice una comparación o cuando la formulación antes mencionada ofrezca ventajas especiales.
FUENTE: http://industrial.x10.mx/reticula/7Inv%20de%20operaciones%20II/unidad%201/tema%201.1.ht m