Programación dinámica

La programación dinámica determinista involucra a todos aquellos modelos matemáticos lineales cuya naturaleza requiere que sean tratados en sub-modelos o etapas del modelo general, es decir, el problema a tratar se divide en sub-problemas menores para simplificar los cálculos y a su vez permitir que el modelo se aproxime un poco más a la realidad.

Este tipo de problemas involucran principios de recursividad, en los que las decisiones que se deban tomar en alguna etapa del problema, dependen netamente de las decisiones tomadas anteriormente.

### Orígenes

Bellman planteó en la década de los 50 (del siglo XX) la herramienta denominada Programación Dinámica, a través de su libro del mismo título para la resolución de problemas de carácter secuencial (inicialmente económicos pero también físicos y matemáticos)

El fundamento de este procedimiento se encuentra en el principio de optimalidad que Bellman enunció del siguiente modo:

“Una política es óptima si en un periodo dado, cualesquiera que sean las decisiones precedentes, las decisiones que queden por tomar constituyen una política óptima teniendo en cuenta los resultados precedentes”

### Estructura

Todo modelo de programación dinámica consta de los siguientes aspectos:

* Etapa: representa la sección del problema que se está tratando. Se suele representar con el sub-índice i.
* Estado: el estado es una variable que representa la situación o recursos con los que se cuenta al iniciar una de las etapas. Dependiendo del tipo de problema el estado puede representar la disponibilidad de algún recurso, así como también una ubicación geográfica. Se representa con la letra Xi.
* Decisión: representa las posibles decisiones que se pueden tomar al inicio de la etapa. Dichas decisiones van a estar muy emparentadas con los posibles estados que se hayan determinado para una etapa. Se representa con la letra Ki.
* Función Recursiva: tiene la función de acoger todos los factores bajo estudio, y es a partir de ella que se van a realizar los cálculos que permitirán resolver el problema se la manera más óptima.

### Aplicaciones

Las posibilidades de aplicación son muchas, sin embargo en la literatura se plantean los siguientes modelos genéricos dentro de los cuales se pueden tratar una gran cantidad de problemas:

1. Modelo de la ruta más corta
2. Modelo de la mochila
3. Modelo de la fuerza de trabajo
4. Modelo de reemplazo de equipo
5. Modelo de inversión
6. Modelo de inventario

### Caso Práctico

Para el caso práctico se resolverá un problema típico de programación dinámica como lo es el de inventario sin faltantes con costos de preparación

En la tabla se muestran los pedidos de yates y sus respectivos costos durante los siguientes 4 meses. Aplicando la programación dinámica podemos encontrar la mejor administración de producción para solucionar el problema.

Nota: para este caso el costo de preparación se toma como costo fijo haya o no haya producción

 2
 3
 4

Producción máxima mensual = 5 unidades

Inventario inicial = 2 unidades

Inventario al final de los 4 meses = 1 unidad

Capacidad máxima de inventario mensual = 4 unidades

En primera instancia declaramos las variables a usar:

Xi: cantidad de unidades disponibles en inventario al inicio del mes i

Ki: cantidad de unidades que se deben fabricar durante el mes i

Di: demanda que se debe satisfacer en el mes i

i: meses

Restricciones:

Xi+Ki-Di ≥0 Esta restricción indica que no puede haber faltantes

Xi+Ki-Di≤ 4 Indica que si se cumple con la demanda, el exceso no puede ser mayor que la capacidad máxima de inventario

Ki  ≥ 0 La producción en un mes debe ser mayo o igual a 0

Ki ≤ 5 La producción máxima en cualquiera de los meses está limitada a 5 unidades

Estados

X1{2} X2{1,2,3,4} X3{0,1,2,3,4} X4{0,1,2,3,4}

Decisiones

K1{0,1,2,3} K2{0,1,2,3,4,5} K3{0,1,2,3,4,5} K4{1,2,3,4,5}

Función recursiva

f(Xi)=Mincosto{CP+CF(Ki)+CA(Xi+Ki-Di)+f\*(Xi+1)}

f(X5)=0

Etapa 4

Etapa 3

Etapa 2

Etapa 1

 2

Solución

En el primer mes no se debe fabricar ni un solo yate pero se debe almacenar uno en inventario. En el segundo mes se deben fabricar dos yates y no se debe almacenar ninguna unidad. En el tercer mes se deben fabricar dos yates y no se debe almacenar nada en inventario. En el cuarto mes se deben fabricar cinco yates y se debe almacenar una unidad en inventario. Este plan de producción permite minimizar los costos a 31,5 UM.

### Véase También

Toma de decisiones bajo certidumbre

Programación lineal

Condiciones de Karush-Kuhn-Tucker (KKT)

Programación cuadrática

Método de la ruta crítica - CPM (Critical Path Method)

Toma de decisiones bajo incertidumbre

## Referencias

Hillier, F y Lieberman, G. (s/f). Investigación de operaciones.

Taha, H. (2012) Investigación de operaciones

Modelos y métodos de investigación de operaciones