En este capítulo se presenta la definición del principio de optimalidad, condición necesaria para resolver un problema de decisión en el tiempo usando programación dinámica. Se muestra un ejemplo de un problema que no cumple con el principio de optimalidad y, finalmente, se muestra la construcción de las ecuaciones recursivas que permiten construir la política óptima para un problema de decisión en el tiempo.
Solucionar un problema de decisión en el tiempo consiste en encontrar
una política óptima. Esto es, encontrar una decisión para cada estado y
cada época tal que se minimice (o se maximice) una función objetivo.
Como se vio en el capítulo anterior, una de las formas de encontrar la
política óptima
En la política óptima de un problema, independientemente de los estados y de las decisiones sobre una época inicial, los estados y las decisiones de las épocas restantes deben ser óptimas con respecto al subproblema resultante al remover la época inicial.
:class: suggestion
DACL es una empresa de paquetería que cuenta con 36
centros de distribución en Colombia. Un paquete que llega al puerto de
Buenaventura y tiene destino final en Bogotá se puede mover por la red
de distribución de DACL como se muestra en la Figura 1, donde el peso de
cada arco es el costo de enviar un paquete de una ciudad a otra:

En este caso el problema que se quiere solucionar es encontrar la ruta
más económica para enviar un paquete de Buenaventura a Bogotá, y para
encontrarla es necesario resolver subproblemas que consisten en
encontrar la ruta más económica entre ciudades intermedias y Bogotá.
Así, DACL sabe que la ruta más corta entre Buenaventura y Bogotá es la
ruta Buenaventura-Armenia-Pereira-Bogotá con un costo de \$377. Si este
problema cumple con el principio de optimalidad, entonces DACL también
podría decir que la ruta más corta entre Armenia y Bogotá es
Armenia-Pereira-Bogotá.
Suponga que esto no es cierto, es decir, la ruta más corta de Armenia a
Bogotá es por ejemplo Armenia-Manizales-Bogotá. Esto implicaría que la
ruta Buenaventura-Armenia-Manizales-Bogotá es más corta que
Buenaventura-Armenia-Pereira-Bogotá, lo que contradice el hecho que la
ruta más corta entre Buenaventura y Bogotá es
Buenaventura-Armenia-Pereira-Bogotá.
Ahora, el principio de optimalidad no se cumple para todos los problemas. Cuando un problema de decisión en el tiempo no cumple con el principio de optimalidad, se debe solucionar con técnicas diferentes a inducción hacía atrás o programación dinámica. A continuación, se muestra un ejemplo de un proceso de decisión que no cumple con el principio de optimalidad.
:class: suggestion
Considere la red de la Figura 2, donde se quiere hallar
la ruta más larga sin ciclos del nodo Q al nodo T. Note que es de
interés hallar rutas sin ciclos pues cuando se permiten ciclos la
solución se vuelve trivial y vale $\infty$:

En este caso, el problema es encontrar la ruta más larga de Q a T y los
subproblemas son encontrar la ruta más larga entre los nodos intermedios
y T. No es difícil ver que la ruta más larga entre Q y T es Q-R-T con
una distancia de 3. Si este problema cumpliera con el principio de
optimalidad, entonces R-T sería la ruta más larga entre R y T; sin
embargo, la ruta más larga en este caso es R-Q-S-T.
Recordemos el ejemplo 1. Definimos:
Entonces el problema se reduce a encontrar
Si además se sabe que el problema cumple con el principio de
optimalidad, es posible construir la solución óptima a partir de
soluciones óptimas a problemas más pequeños. Sabemos que para el estado
Donde
Y nuevamente, para conocer
Note que esta última ecuación es la solución al subproblema más pequeño, y a partir de esta se pueden solucionar los subproblemas moviéndose de la última hasta la primera etapa de decisión hasta encontrar la solución al problema original.