Tabla 1: Posibilidades de Inversión
Cada planta sólo podrá realizar un de sus propuestas. El objetivo es maximizar el retorno de la firma dada su inversión de $5 millones. Se supondrá que si no se gastan los $5 millones completamente, ese dinero se perderá.
Una forma de resolver este problema es intentar todas las posibilidades y elegir la mejor. En ese caso, hay solo formas de invertir el dinero. Muchas de estas son infactibles (por ejemplo, propuestas 3, 4 y 1 para las tres plantas cuesta $6 millones). Otras propuestas son factibles, pero son muy pobres en retorno (como propuestas 1, 1 y 2, con un retorno de sólo $4 millones.)
Desventajas de una enumeración completa:
Un método para calcular la solución es:
Dividamos el problema en 3 niveles: cada nivel representa el dinero asignado a una única planta. Asi el nivel 1 representa el dinero asignado a la planta 1. Artificialmente se dará un orden a los niveles, asumiendo que primero se asignará a la planta 1, luego a la planta 2 y finalmente a la planta 3.
Cada nivel está dividido en estados. Un estado guarda la
información requerida para ir desde un nivel al siguiente nivel.
En este caso los estados por nivel 1, 2 y 3 son:
Tabla 2: Cálculos en el nivel 1
Ahora se pueden calcular para el nivel 2. En este caso, deseamos encontrar la mejor solución tanto para la planta 1 como para la planta 2. Si se desea calcular el mejor retorno para un dado,simplemente se analizarán todas las propuestas de la planta 2, asignando la cantidad requerida a la planta 2 y usar la tabla anterior para ver cómo la planta 1 gastará el excedente.
Por ejemplo, supongamos que deseamos determinar la mejor asignación
para el estado
. En el nivel 2 se puede hacer una de las siguientes propuestas:
Tabla 3: Cálculos en el nivel 2 .
Ahora se puede analizar el nivel 3. El único valor en el que
estamos interesados es
.
Nuevamente, se analizrá todas las propuestas para este nivel,
determinando la cantidad de dinero remanente y usando la tabla 3
para decidir el valor de los niveles previos. Asi se puede realizar lo
siguiente en la planta 3:
Si se estudia este procedimiento, uno puede observar que los cálculos son efectuados recursivamente. Los cálculos en el nivel 2 están basados en el nivel 1, el nivel 3 sólo en el nivel 2. A su vez, estando en un estado, todas las futuras decisiones son tomadas independientemente de como se llegó a ese estado. Este es el prinicipio de optimalidad en el cual se sustenta la programación dinámica.
Se pueden resumir estos cálculos en las siguientes fórmulas:
Sea el retorno para la propuesta en el estado j,y por el costo correspondiente. Sea el retorno del stado en el nivel j. Luego se harán los siguientes cálculos:Los cálculos fueron llevados a cabo por un procedimiento forward. Sin embargo, también se calcularon "cosas" desde el último nivel hacia el primero.
y
Figura 1: Forward vs. Backward Recursividad
Las fórmulas correspondientes son:
y
Si lleva a cabo todos estos cálculos llegará al mismo
resultado.
Aunque la recursividad forward parezca más natural, se introdujo
una recursividad hacia backward. En este caso particular l orden de los
niveles no es relevante. En otros casos puede haber ventajas computacionales
en la elección uno versus otro orden. En general, la recursividad
backward es más efectiva.