You are on page 1of 11

Unidad 1.

PROGRAMACIN DINMICA
La programacin dinmica es un enfoque general para la solucin de problemas en los que es necesario tomar decisiones en etapas sucesivas. 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. 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. A menudo resulta til tomar una sucesin de decisiones interrelacionadas. Proporciona un procedimiento sistemtico para determinar la combinacin de decisiones que maximice la efectividad global.

TERMINOLOGA N: conjunto de perodos o etapas del proceso. n =1: primera etapa del proceso. { }: Espacio de estados (familia de conjuntos, uno para cada perodo n). S: espacio de estados en el perodo n. Sn: estado, describe una posible situacin del proceso en ese perodo, S1 = {1}, S2= {2, 3, 4}, S3= {5, 6, 7}, S4= {8, 9}. s: el estado de inicio. j: estado destino. * n: la fase, normalmente representa el nmero de arcos hasta el destino.

Funcin recursiva: Dados unos nodos y unos arcos que conectan estos nodos, el problema de la diligencia intenta encontrar la ruta ms corta que conecta un nodo de arranque con el nodo final (el destino). * C(s,j): costo o distancia de ir desde s hasta j. * f(n,s): la poltica de costo mnimo cuando se encuentra en el estado s de la etapa n. La relacin recursiva dinmica se expresa como: f(n,s) = mnimo [C(s,j) + f(n-1,,j)] para todos los arcos ( s,j) en la red.

Ejercicio 1: PROBLEMA DE LA DILIGENCIA Este problema trata sobre un cazafortunas de Missouri que decide ir al oeste a unirse a la fiebre del oro en California a mediados del siglo XIX. Tiene que hacer el viaje en diligencia a travs de territorios sin ley cuando existan serios peligros de ser atacado. An cuando su punto de partida y su destino eran fijos, tena muchas opciones en cuanto a qu estados deba elegir como puntos intermedios. En el diagrama siguiente se ilustran las posibles rutas en donde la direccin del viaje es siempre de izquierda a derecha. Se requieren 4 etapas para viajar desde su punto de partida en el estado A a su destino en el estado J. Preocupado por la seguridad de su viaje se le ocurri una manera bastante ingeniosa para determinar la ruta ms segura. Se le ofrecan plizas deseguros de vida a los viajeros de manera que para determinar la ruta ms segura habra que elegir la que tuviera el menor costo total de la pliza . Observemos primero que el procedimiento de elegir la ruta ms barata en cada etapa sucesiva no conduce a una decisin ptima global. Al seguir estaestrategia se obtiene la ruta A,B,F,I,J con un costo de 13, pero un pequeo sacrificio en una etapa permite mayores ahorros en la etapa siguiente, as por ejemplo, A,D, F es ms barato que A,B,F. La programacin dinmica empieza con una pequea porcin del problema original y encuentra la solucin ptima para este problema pequeo. En el problema de la diligencia se comienza con el problema sencillo en el que el agente casa ha llegado al final de su viaje y slo tiene una etapa ms por recorrer. En cada una de las iteraciones siguientes, el problema se agranda aumentando de uno en uno el nmero de etapas que le quedan por recorrer para completar el viaje. Formulacin:

Sean xn = variables que representan el destino inmediato de la etapa n. fn(s,xn) = costo total = costo inmediato (etapa n) + mnimo costo futuro (etapas n+1 en adelante) = csxn+ fn+1*(s,xn*) fn*(s) = mn fn(s,xn) = fn(s,xn*) Como el destino final (estado J) se alcanza al terminar la etapa 4, f5*(J) = 0. El objetivo es encontrar f1*(A) y la ruta correspondiente. La programacin dinmica la encuentra al hallar sucesivamente f4*(s), f3*(s), f2*(s) para cada uno de los estados posibles s y usar despus f2*(s) para encontrar f1*(A). Procedimiento de solucin: n=4 s H I n=3 s E F G n=2 s B C E 11 7 F G f2*(s) 11 7 x2* EF E H 4 9 6 I 8 7 7 f3*(s) x3* 4 7 6 H I H f4*(s) x4* 3 4 J J

11 12 9 10

D n=1 s A

11

EF

B 13

f1*(s) 11

x1* CD

11 11

En este punto se puede identificar una solucin ptima a partir de las 4 tablas: A-C-E-H-J o bien A-D-E-H-J o bien A-D-F-I-J.

CARACTERISTICAS BASICAS DE LOS PROBLEMAS DE PROGRAMACIN DINMICA. 1.- El problema se puede dividir en etapas que requieren una poltica de decisin en cada una de ellas. 2.- Cada etapa tiene cierto nmero de estados asociados con su inicio. Los estados son las distintas condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema. 3.- El efecto de la poltica de decisin en cada etapa es transformar el estado actual en un estado asociado con el inicio de la siguiente etapa. 4.- El procedimiento de solucin est diseado para encontrar una poltica ptima para el problema completo. 5.- Dado el estado actual, una poltica ptima para las etapas restantes es independiente de la poltica adoptada en etapas anteriores. Este es el principio de optimalidad para programacin dinmica. 6.- El procedimiento de solucin se inicia al encontrar la poltica ptima para la ltima etapa. 7.- Se dispone de una relacin recursiva que identifica la poltica ptima para la etapa n, dada la poltica ptima para la etapa n+1. 8.- Cuando se usa la relacin recursiva el procedimiento de solucin comienza al final y se mueve hacia atrs, etapa por etapa.

PROGRAMACION DINAMICA DETERMINISTICA La programacin dinmica determinstica se puede describir en forma de diagrama:

EJEMPLO - Distribucin de brigadas mdicas. El WORLD HEALTH COUNCIL, se dedica a mejorar la atencin mdica en los pases subdesarrollados del mundo. Dispone de 5 brigadas mdicas para asignarlas a tres de estos pases. El consejo necesita determinar cuntas brigadas debe asignar a cada pas (si lo hace) para maximizar la medida de la eficiencia de las brigadas, la cual ser el incremento en el promedio de vida esperado en aos, multiplicado por la poblacin de cada pas.

Formulacin. Etapas: Pases a los cuales se les debe asignar las brigadas. ( n=1- Pas1 ); ( n=2 Pas 2); ( n=3 -Pas 3). Variable de decisin: Xn : Nmero de brigadas asignadas al pas n. Estado: Qu es lo que cambia de una etapa a otra? Sn : Nmero de brigadas mdicas disponibles para asignarse a los pases restantes.

Sea Pi (Xi) la medida del desempeo por asignar Xi brigadas mdicas al pas i, entonces

Como el estado final (cero brigadas para asignar) se alcanza al terminar la etapa 3, entonces f4* = 0 Debemos asignar todas las brigadas que estn disponibles en este momento.

Para ilustrar como proceder, supongamos que nos quedan 2 brigadas disponibles en este momento:

En general para la etapa 2 se tiene:

En este caso, el nico estado que debe considerarse es el inicial, S1 = 5

EJEMPLO - Distribucin de cientficos. Un proyecto espacial necesita investigar un problema de ingeniera para mandar seres humanos a Marte. Existen 3 equipos que analizan el problema desde 3 puntos de vista diferentes. En las circunstancias actuales, la probabilidad de que los equipos 1,2,3, fracasen es 0.4, 0.6 y 0.8 respectivamente. La probabilidad de que los tres equipos fracasen es 0.192. Se debe minimizar la probabilidad de fracaso, por los cual se decide adicionar 2 cientficos de alto nivel.

You might also like