Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
2. PROGRAMACION DIMANICA
Dentro de un modelo de PD se pueden identificar tres elementos importantes, que son: las
etapas, las alternativas en cada etapa y los estados para cada etapa. De estos tres elementos, el
ms importante es la definicin de estado.
El estado del sistema se considera como la informacin que une cada etapa, de tal manera que
se puedan tomar decisiones ptimas para las etapas restantes reexaminando la forma en la cual
se lleg a las decisiones para las etapas previas.
Cuando hablamos de optimizar nos referimos a buscar alguna de las mejores soluciones de entre
muchas alternativas posibles. Dicho proceso de optimizacin puede ser visto como una
secuencia de decisiones que nos proporcionan la solucin correcta. Si, dada una subsecuencia de
decisiones, siempre se conoce cul es la decisin que debe tomarse a continuacin para obtener
la secuencia ptima, el problema es elemental y se resuelve trivialmente tomando una decisin
detrs de otra, lo que se conoce como estrategia voraz. En otros casos, aunque no sea posible
aplicar la estrategia voraz, se cumple el principio de optimalidad de Bellman que dicta que dada
una secuencia ptima de decisiones, toda subsecuencia de ella es, a su vez, ptima.
En este caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que
la combinacin de ellas seguir siendo ptima, pero ser entonces necesario explorar muchas
secuencias de decisiones para dar con la correcta, siendo aqu donde interviene la programacin
dinmica.
5. SUBESTRUCTURA OPTIMA
Una subestructura ptima significa que se pueden usar soluciones ptimas de subproblemas
para encontrar la solucin ptima del problema en su conjunto. Por ejemplo, el camino ms
corto entre dos vrtices de un grafo se puede encontrar calculando primero el camino ms corto
al objetivo desde todos los vrtices adyacentes al de partida, y despus usando estas soluciones
para elegir el mejor camino de todos ellos.
En general, se pueden resolver problemas con subestructuras ptimas siguiendo estos tres
pasos:
supone calcular F . Como para calcular F hacen falta tanto F como F , una mala
2 5 3 4
Esto sucede siempre que haya subproblemas superpuestos: una mala implementacin puede
acabar desperdiciando tiempo recalculando las soluciones ptimas a problemas que ya han sido
resueltos anteriormente.
Esto se puede evitar guardando las soluciones que ya hemos calculado. Entonces, si necesitamos
resolver el mismo problema ms tarde, podemos obtener la solucin de la lista de soluciones
calculadas y reutilizarla. Este acercamiento al problema se llama memoizacin (no confundir
con memorizacin; en ingls es llamado memoization, vase en).
Si estamos seguros de que no volveremos a necesitar una solucin en concreto, la podemos
descartar para ahorrar espacio. En algunos casos, podemos calcular las soluciones a problemas
que de antemano sabemos que vamos a necesitar.
Subproblemas superpuestos
Subestructuras ptimas
Memorizacin
Bottom-up: Todos los problemas que puedan ser necesarios se resuelven de antemano y
despus se usan para resolver las soluciones a problemas mayores. Este enfoque es
ligeramente mejor en consumo de espacio y llamadas a funciones, pero a veces resulta
poco intuitivo encontrar todos los subproblemas necesarios para resolver un problema
dado.
Para que un problema pueda ser abordado por esta tcnica ha de cumplir dos condiciones:
La solucin al problema ha de ser alcanzada a travs de una secuencia de decisiones,
una en cada etapa
Dicha secuencia de decisiones ha de cumplir el principio de optimalizad.
Si se llama a fib(5), se produce un rbol de llamadas que contendr funciones con los mismos
parmetros varias veces:
En particular, fib(2) se calcula dos veces. En ejemplos mayores, se recalculan muchos otros
valores de fib, o subproblemas.
As, rellenaramos una tabla con los resultados de los distintos subproblemas, para
reutilizarlos cuando haga falta en lugar de volver a calcularlos. La tabla resultante sera
una tabla unidimensional con los resultados desde 0 hasta n.
Para evitar calcular lo mismo varias veces: Cuando se calcula una solucin, sta se almacena.
Antes de realizar una llamada recursiva para un sub-problema, se comprueba si la solucin ha
sido obtenida previamente: Si no ha sido obtenida, se hace la llamada recursiva y, antes de
devolver la solucin, sta se almacena. Si ya ha sido previamente calculada, se recupera la
solucin directamente (no hace falta calcularla). Usualmente, se utiliza una matriz que se rellena
conforme las soluciones a los conforme las soluciones a los sub-problemas sub-problemas son
calculados.
La programacin dinmica se adapta bien a problemas de carcter secuencial como por ejemplo:
import java.util.*;
class shopping{
public static void imprimir(int arr[][]){
for(int i=0 ; i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
El problema de un viaje
Se va a realizar un viaje desde la ciudad A hasta la ciudad J. No hay un camino directo, pero
existen varias opciones para llegar a J a partir de A, pasando por otras ciudades. Esas opciones y
los costos asociados a cada tramo del viaje don dados en el diagrama.
El objetivo es realizar el viaje de A a J con el menor costo posible. Por ejemplo la ruta ADFHI
tiene un costo de 29. Analizar todas las trayectorias no es una tcnica satisfactoria. Este
problema tiene un total de 125 posibles rutas.
No sabemos a priori si la trayectoria ptima pasar por H o por I. Pero sabemos que si pasa
por H tendr su costo es incrementado en 7 para llegar hasta J. As mismo, pasando por I su
costo ser incrementado en 5.
Si la trayectoria ptima pasa por F, es indiferente seguir FHJ o FIJ, ya que ambas
opciones tienen un costo de 17
Si la trayectoria ptima pasa por G, no hay otras opciones, el nico camino posible es
GIJ, con costo de 8
As, si la trayectoria ptima pasa por E, F, G los costos mnimos de cada uno de esos puntos
hasta J ya son conocidos.
De igual forma podemos calcular los costos si la trayectoria ptima pasa por B, C,D.
A partir de B la mejor decisin es viajar a E con un costo de 21 hasta alcanzar J
A partir de C, la mejor opcin es viajar a G
A partir de D, la mejor es ir hacia G
As, como a cada paso ya habamos seleccionado la mejor opcin sabemos que la trayectoria
ptima pasa por ACGIJ y que su costo es de 20
Los instantes en que se inicia o termina un viaje son las etapas, en nuestro problema
tenemos 5 etapas. Formalmente, la etapa es una variable discreta. Normalmente llamada
k
En cada etapa el viajero se encuentra en una ciudad, que representa el estado del
viajero. Formalmente, el estado es una variable ( X ) que describe completamente el
sistema en una etapa dada. X(k)
Para ocupar un nuevo estado en la etapa siguiente, el viajero tiene que tomar una
decisin: viajar a la siguiente ciudad. La decisin es una variable ( normalmente
denominada por u(k) )
Solo algunas ciudades pueden ser alcanzadas en una determinada etapa k. Estas
ciudades forman el conjunto de estados viables que X(k) puede asumir en la etapa k. En
el ejemplo, en la etapa k=2, los estados viables son E, F,G.
Dado un determinado estado del sistema x(k), existe un conjunto de decisiones
admisibles que pueden ser tomadas a partir de x(k). Por ejemplo, a partir de x(1) = D, el
conjunto de decisiones admisibles es ir hacia F o hacia G. Aunque E sea un estado
viable en k=2, no puede ser alcanzado a partir de D. Por lo tanto la decisin ir para E
no es admisible.
La ecuacin recursiva del sistema, o ecuacin de transicin de estado describe la relacin entre
el estado en una etapa dada, la decisin entonces aplicada y el nuevo estado resultante
El estado inicial del sistema es la condicin en que el sistema se encuentra en la etapa inicial .
Ese es un estado nico
x(0) = {x(0}
Encontrar, si existe, una poltica admisible que aplicada al estado inicial, lleva el sistema a la
etapa final optimizando (maximizando o minimizando) la funcin objetivo.
Se observa que, si existe alguna poltica admisible, entonces existe una poltica ptima, ya que
el nmero de polticas admisibles no puede ser infinito.
1 embalse 20 2
= 400 estados
2 embalse 20 4
= 160000 estados
3 embalse 20 6
= 64 millones de estados
4 embalse 20 8
= 25000 millones de estados
5 embalse 20 10
= 10 billones de estados
Por ello, se han utilizado algunas tcnicas fundamentadas en la PD tales como el Mtodo de
Aproximaciones Sucesivas [3.8], Programacin Dinmica Discreta Diferencial [3.2], [3.3]. De
acuerdo con Yakowitz (1982), las mayores soluciones numricas de programacin dinmica
estocstica en el contexto, o fuera, de la literatura de recursos hidrulicos por nosotros conocida,
son para problemas que tienen como mximo dos o tres variables de estado. As mismo, los
autores que relatan sus resultados, a menudo destacan la ferocidad del esfuerzo computacional.
Las ltimas dos tcnicas aplicadas a la operacin de embalses y reportadas como las ms
eficientes son: Programacin Dinmica Diferencial, y el Algoritmo de Optimalidad Progresiva
Sin embargo requieren que la funcin objetivo sea diferenciable y de restricciones lineales.
La otra tcnica reportada es la PD de Estados Binarios, tcnica que propone, al igual que la otras
mencionadas, una nueva aproximacin comenzando con una trayectoria de prueba, pero busca
una mejora de la funcin objetivo con el menor nmero de evaluaciones, meta que se logra
gracias a que cada combinacin est formada por slo dos valores por coordenada del espacio
de estados. As, se logra una reduccin significativa del tamao de memoria requerido para la
solucin del problema, lo mismo que la disminucin de los tiempos de convergencia.
14. CONCLUSIONES
BIBLIOGRAFIA