Vous êtes sur la page 1sur 20

INVESTIGACION DE OPERACIONES II

INGENIERO GUSTAVO HERRERA GIRIER

PROGRAMACIN DINMICA

La programacin dinmica es un enfoque general para


la solucin de problemas en los que es necesario tomar decisiones en etapas sucesivas. Es un mtodo de optimizacin del clculo de problemas. Es utilizada en compiladores, que consiste en solucionar cierto problema diviendolo en su-problemas ms sencillos, calculando sus resultados y almacenndolos. Estos resultados posteriormente se utilizan para la resolucin del problema final. Las decisiones tomadas en una etapa condicionan la evolucin futura del sistema, afectando a las situaciones en las que el sistema se encontrar en el futuro (denominadas estados), y a las decisiones que se plantearn en el futuro.

Conviene resaltar que a diferencia de la programacin lineal, el modelado de problemas de programacin dinmica no sigue una forma estndar. As, para cada problema ser necesario especificar cada uno de los componentes que caracterizan un problema de

programacin dinmica.
El procedimiento general de resolucin de estas situaciones se divide en el anlisis recursivo de cada una de las etapas del problema, en orden inverso, es decir comenzando por la ltima y pasando en cada iteracin a la etapa antecesora. El anlisis de la primera etapa finaliza con la obtencin del ptimo del problema.

CARACTERISTICAS DE LOS PROBLEMAS DE PROGRAMACION DINAMICA

Para que un problema pueda ser resuelto con la tcnica de programacin dinmica, debe cumplir con ciertas caractersticas:
**Naturaleza secuencial de las decisiones: El problema puede ser dividido en etapas. **Cada etapa tiene un numero de estados asociados a ella. **La decisin ptima de cada etapa depende solo del estado actual y no de las decisiones anteriores. **La decisin tomada en una etapa determina cual ser el estado de la etapa siguiente. En sntesis, la poltica ptima desde un estado s de la etapa i a la etapa final esta constituida por una decisin que transforma s en un estado s0 de la etapa i +1 y por la poltica ptima desde el estado s0 hasta la etapa final.

Caractersticas de la Programacin Dinmica

- Puede utilizarse en problemas: lineales o no lineales, determinsticos o estocsticos,uni o multivariados.


-Es til para resolver un problema donde se debe tomar una serie de decisiones interrelacionadas. -Formato General: A diferencia de la P.L, la Programacin Dinmica no tiene formulacin matemtica estndar. -Se trata de un enfoque de tipo general para la solucin de problemas y las ecuaciones se derivan de sus condiciones individuales

1. El problema se puede dividir por etapas, que requieren una decisin en cada una de ellas. 2. Cada etapa tiene cierto nmero de estados asociados a su inicio. Estados son las diferentes condiciones posibles en las que se puede encontrar el sistema en cada etapa. 3. El efecto de la decisin en cada etapa, es transformar el estado actual en un estado asociado con el INICIO de la siguiente etapa. 4. El procedimiento pretende hallar la poltica ptima para el problema completo. Esto quiere decir, la poltica a emplear desde cualquier posible estado del problema. 5. Dado el estado actual, la poltica ptima desde este estado es independiente de las polticas adoptadas en las etapas anteriores. (la solucin depende nicamente del estado actual y no de cmo se lleg all). PRINCIPIO DE OPTIMALIDAD EN P.D, (Richard Bellman, 1957) 6. El procedimiento de solucin termina cuando se obtiene la poltica ptima de la ltima etapa (por lo general la solucin en esta etapa es trivial)

En el diseo Divide y Vencers veamos que para resolver un problema lo dividamos en subproblemas independientes, los cuales se resolvan de manera recursiva para combinar finalmente las soluciones y as resolver el problema original. El inconveniente se presenta cuando los subproblemas obtenidos no son independientes sino que existe solapamiento entre ellos; entonces es cuando una solucin recursiva no resulta eficiente por la repeticin de clculos que conlleva. En estos casos es cuando la Programacin Dinmica nos puede ofrecer una solucin aceptable. La eficiencia de esta tcnica consiste en resolver los subproblemas una sola vez, guardando sus soluciones en una tabla para su futura utilizacin.

La Programacin Dinmica no slo tiene sentido aplicarla por razones de eficiencia, sino porque adems presenta un mtodo capaz de resolver de manera eficiente problemas cuya solucin ha sido abordada por otras tcnicas y ha fracasado. Donde tiene mayor aplicacin la Programacin Dinmica es en la resolucin de problemas de optimizacin. En este tipo de problemas se pueden presentar distintas soluciones, cada una con un valor, y lo que se desea es encontrar la solucin de valor ptimo (mximo o mnimo).

7. Siempre se dispone de una relacin recursiva (esto es lo que permite trabajar las decisiones interrelacionadas).

La relacin recursiva ser:

fi* (Xi) = Max [(Xi-1,Xi) + fi-1(Xi-1)]*


o tambin

fi* (Xi) = Min [(Xi,Xi-1 + fi-1(Xi-1)]*


i: nmero de etapas. Xn: Estado actual para la etapa i. i: etiqueta para la etapa actual (1, 2, ..., N) Xi: variable de decisin para la etapa i

fi. : Funcin para la variable i.

8. Cuando se tiene una relacin recursiva como la de la funcin, el procedimiento de solucin hacia atrs inicia en la ltima etapa y se mueve hacia la primera, etapa por etapa Xi fi Fi (Xi)= c Xi + fi-1 *( Xi-1) fiXi * Xi*

Xi*: Valor ptimo de Xi dado fi,

El Problema de la Diligencia
Un cazafortunas desea ir de Missouri a California en una diligencia, y quiere viajar de la forma ms segura posible. Tiene los puntos de salida y destino conocidos, pero tiene mltiples opciones para viajar a travs del territorio. Se entera de la posibilidad de adquirir seguro de vida como pasajero de la diligencia. El costo de la pliza estndar (cij ) se muestra en la tabla de la siguiente:

Diagrama.

A J
BCD A 2 4 3 B C D

B C D

E F G
H E F G

EF G 7 4 6 3 2 4 4 1 5

I
J

1 4 6 3 3 3

H 3 I 4

Cual es la ruta que minimiza el costo total de la pliza de seguro?


Algunas alternativas de solucin.
1. Enumeracin exhaustiva: Enumerar todas las rutas posibles, calcular su costo y elegir la de menor valor. En total son 18 2. Elegir la ruta ms barata en cada etapa. Esta solucin no conduce al ptimo global. Un pequeo sacrificio en una etapa puede permitir mayores ahorros ms adelante. 3. Programacin dinmica. Estrategia de solucin: Un problema complejo es desagregado en problemas simples que se resuelven etapa por etapa. En el caso de la diligencia un problema simple sera pensar qu pasara si al viajero slo le faltara una jornada de viaje.

Por P.D la solucin sera entonces ir desde el estado actual (cualquiera que sea) y llegar a su destino final (estado J) al costo cij Se hace lo mismo para cada jornada (etapa), ensanchando el problema. As encontramos la solucin ptima del lugar al que debe dirigirse teniendo en cuenta la informacin de la iteracin anterior.

Formulacin. Sea Xi ( i = 1,2,3,4 ) las variables que representan el destino inmediato en la etapa n. Luego la ruta seleccionada ser: A X1 X2 X3 X4 Donde X4 = J

Sea fi ( Xi) el costo total de la mejor poltica global para las etapas restantes, dado que el agente se encuentra en el estado S, listo para iniciar la etapa n y se dirige a Xi como destino inmediato. Dados S y i , sea Xi* el valor de Xi (no necesariamente nico), que minimiza fi ( Xi) , y sea fi*(S) el valor mnimo correspondiente de fi (Xi) entonces:

Fi *(X) = Min Xifi(S, Xi) = fi (Xi*) fi(S, Xi) = Costo inmediato (etapa n) +Mnimo costo futuro (etapa i+1 en adelante) = cs , xi + fi+1* (Xi) =Costos por ir de la ciudad i al destino j + Costo ptimo acumulado

Procedimiento de solucin hacia atrs (RECURSIVA)


Como el destino final (estado J) se alcanza al terminar la etapa 4, entonces f5*(J) = 0 El objetivo es hallar f1*(A) y su ruta correspondiente. Cuando el caza fortunas tiene slo una etapa por recorrer (n=4) , su ruta de ah en adelante, estar determinada por el estado actual (H o I) y su destino final X4 = J La ruta ser: S , J donde S= H o I Luego f4 *(S) = c S , J + f5 *(J) = c S , J f4 (H) = cH , J =3 f4 (I) = c I , J = 4 S f4*(S) X4* H 3 J I 4 J

Etapa n=3

El cazafortunas tiene 2 etapas por recorrer (n=3). Suponga que sale de E. E H (1) + f4*(H) = f3(E)= cE ,H + f4*(H) = 4 I (4) + f4*(I) = f3(E)= cE ,I + f4*(I) = 8
Luego f3 *(E) = 4 y X3* = H En general para la etapa 3 se tiene:

X3 S E F G

f3 (X3)= cS ,X3+ f4 *( X3) H I 4 8 9 7 6 7

f3 *(X3) X3*

4 7 6

H I H

Etapa n=2 En la segunda etapa, el cazafortunas tiene 3 jornadas por recorrer (n=2). que sale de C. E(3) + f3*(E) = f2(C)= c C ,E + f3*(E) = 7 C F(2) + f3*(F) = f2(C)= c C ,F + f3*(F) = 9 G(4)+ f3*(G) = f2(C)= c C ,G+ f3*(G) = 10
Luego f2 *(C) = 7 y X2 * = E En general para la etapa 2 se tiene:
X2 S B C D f2 (X2)= cS ,X2+ f3 *( X2) E F G 11 11 12 7 9 10 8 8 11 f2 *(S) X2* 11 7 8 E, F E E, F

Etapa n=1 En la primera etapa, el cazafortunas tiene toda la jornadas por recorrer (n=1). Necesariamente debe salir de A. B(2) + f2*(B) = f1(A)= c A ,B + f2*(B) = 13 A C(4)+ f2*(C) = f1(A)= c A ,C + f2*(C) = 11 D(3)+ f2*(D) = f1(A)= c A ,D+ f2*(D) = 11
Luego f1 *(A) = 11 y X1 * = C,D
X1 S A f1 ( X1)= cS ,X1+ f2 *( X1) B C D 13 11 11 f1 *(S) X1* 11 C, D

LA SOLUCION DELPROBLEMA TIENE 3 RUTAS OPTIMAS B E H

C D

F G I

Vous aimerez peut-être aussi