• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Programación  dinámica
 

Programación dinámica

on

  • 20,274 views

 

Statistics

Views

Total Views
20,274
Views on SlideShare
20,274
Embed Views
0

Actions

Likes
6
Downloads
748
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Este material es una guía para los estudiantes de Computación I (324)...
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programación  dinámica Programación dinámica Document Transcript

    • 2012 UNIDAD V PROGRAMACIÓN DINÁMICA  La programación dinámica es una técnica matemática útil que resuelve una serie de decisiones secuenciales, cada una de las cuales afecta las decisiones futuras. Proporciona un procedimiento sistemático para determinar la combinación de decisiones que maximiza la efectividad total Elmer Gabriel Chan Pech 30/11/2012
    • Programación dinámica5.1 Introducción a la programación dinámica (PD)La PD fue desarrollada por Richard Bellman y G B Dantzing. Sus importantescontribuciones sobre esta técnica cuantitativa de toma de decisiones se publicaron en1957 en un libro del primer autor denominado “Dynamic Programming” (PrincetonUniversity Press. Princeton, New Jersey) (Domínguez, 2000).Inicialmente a la PD se le denominó programación lineal estocástica ó problemas deprogramación lineal con incertidumbre.La programación dinámica (PD) determina la solución óptima de un problema den variables descomponiéndola en n etapas, con cada etapa incluyendo un subproblemade una sola variable. La principal contribución de la PD es el principio de optimalidad, elcual establece que una política óptima consiste de subpolíticas óptimas, un marco dereferencia para descomponer el problema en etapas.La programación dinámica es una técnica que se puede aplicar para resolver muchosproblemas de optimización. La mayor parte de las veces, la programación dinámicaobtiene soluciones con un avance en reversa, desde el final de un problema hacia elprincipio con lo que un problema grande y engorroso se convierte en una serie deproblemas más pequeños y más tratables.Así, la programación dinámica se puede definir como una técnica matemática útil queresuelve una serie de decisiones secuenciales, cada una de las cuales afecta lasdecisiones futuras. Proporciona un procedimiento sistemático para determinar lacombinación de decisiones que maximiza la efectividad total (Taha, 2004).En contraste para el problema de programación dinámica, trata de un enfoque de tipoparcial para la solución de problemas y las ecuaciones específicas que se usan sedeben desarrollar para que represente cada situación individual.5.2 Características de los problemas de programación dinámicaLas características de la programación dinámica se emplean para formular e identificarla estructura de los problemas de este tipo.A continuación se presentarán estas características básicas que distinguen a losproblemas de programación dinámica. 1. El problema se puede dividir en etapas que requieren una política de decisión en cada una de ellas. En muchos problemas de programación dinámica, la etapa es la cantidad de tiempo que pasa desde el inicio del problema, en ciertos casos no se necesitan decisiones en cada etapa. 1
    • Programación dinámica 2. Cada etapa tiene un cierto número de estados asociados a ella. Por estado se entiende la información que se necesita en cualquier etapa para tomar una decisión óptima. 3. El efecto de la política de decisión en cada etapa es transformar el estado actual en un estado asociado con la siguiente etapa (tal vez de acuerdo a una distribución de probabilidad). 4. El procedimiento de solución está diseñado para encontrar una política óptima para el problema completo, es decir, una receta para las decisiones de la política óptima en cada etapa para cada uno de los estados posibles. 5. Dado el estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en etapas anteriores. (este es el principio de óptimalidad para la programación dinámica). En general en los problemas de PD, el conocimiento del estado actual del sistema expresa toda la información sobre su comportamiento anterior, y esta información es necesario para determinar la política óptima de ahí en adelante. 6. El procedimiento de solución se inicia al encontrar la política óptima para la última etapa. La política óptima para la última etapa prescribe la política óptima de decisión para cada estado posible en esa etapa. 7. Se dispone de una relación recursiva que indica la política óptima para la etapa dada la política optima para la etapa (n+1)A pesar de esta característica, los problemas que pueden ser atacados con la PDtienen otras dos propiedades adicionales:  Sólo un número reducido de variables se debe conocer en cualquier etapa con el fin de describir al problema. En efecto, los problemas de la PD se caracterizan por la dependencia de los resultados derivados de decisiones sobre un número reducido de variables.  El resultado de una decisión en cualquier etapa altera los valores numéricos de un número reducido de variables relevantes al problema. La decisión actual ni incrementa ni decrementa el número de factores sobre los cuales depende el resultado. Así, para la siguiente decisión en la secuencia, el mismo número de variables se considera (Hillier, 1991).En un problema de PD una serie de decisiones se deben tomar en una secuencia dada.Cuando esto se cumple, una política óptima se debe perseguir. No importa cuálesfueron los estados y decisiones iniciales, las decisiones restantes constituirán unapolítica óptima con respecto al estado resultante de la primera decisión. 2
    • Programación dinámicaEjemplo 5.2:El problema de la diligencia.Un problema construido especialmente por el Profesor H M Wagner de la Universidadde Stanford para ilustrar las características e introducir la terminología de la PD es elproblema de la diligencia.Este problema se refiere a un vendedor mítico que tuvo que viajar hacia el oesteutilizando como medio de transporte una diligencia, a través de tierras hostiles, en elúltimo cuarto del siglo XIX. Aún cuando su punto de partida y destino eran fijos, tenía unnúmero considerable de opciones para elegir qué estados (o territorios queposteriormente se convirtieron en estados) recorrer en su ruta.En la figura 5.1 se muestran las rutas posibles, en donde cada estado se representa porun bloque numerado.Figura 5.1. Sistema de caminos para el problema de la diligencia.De la ilustración se puede observar que el viaje se puede realizar en 4 etapas,partiendo del estado 1 hasta su destino en el estado 10:  Primera etapa: estados 1 y (2, 3, 4)  Segunda etapa: estados (2, 3,4) y (5, 6, 7)  Tercera etapa: estados (5,6,7) y (8, 9)  Cuarta etapa: estado (8,9) y10Puesto que se ofrecían seguros de vida a los pasajeros de las diligencias, estevendedor no quiso dejar pasar la oportunidad y se propuso determinar la ruta mássegura. Como el costo de cada póliza se basaba en una evaluación cuidadosa de laseguridad de ese recorrido, la ruta más segura debía ser aquella con la póliza deseguro de vida más barata. El costo de la póliza estándar para el viaje en diligencia del 3
    • Programación dinámicaestado i al j se muestra en figura 5.1 como una etiqueta en los caminos (flechas) para irde un estado a otro.Así la pregunta central es: ¿cuál ruta (conjunto de caminos) minimiza el costo total de lapóliza?, para contestar esta pregunta es necesario hacer notar que, el procedimientopoco inteligente de seleccionar el camino más barato ofrecido en cada etapa sucesivano necesariamente conduce a una decisión óptima global.La PD parte de una pequeña porción del problema y encuentra la solución óptima paraese problema más pequeño. Entonces gradualmente agranda el problema, hallando lasolución óptima en curso a partir de la anterior, hasta que se resuelve por completo elproblema original.A continuación se explican los detalles involucrados en la implementación de estafilosofía general.La idea es calcular el costo mínimo (acumulativo) de la póliza de seguros entre los dosestados de cada etapa y después utilizar esos costos como datos de entrada para laetapa inmediata siguiente.CÁLCULOS PARA LA ETAPA 1Considerando los estados asociados con la etapa 1, se puede ver que los estados 2, 3y 4 están conectados cada uno con el estado inicial 1 por una sola flecha como sepuede apreciar en la figura 5.2. Por consiguiente, para la etapa 1 se tiene Figura 5.2 etapa 1: estados 2, 3,4 conectados con el estado inicial 1 Costo mínimo al estado 2 = 2 (desde el estado 1) Costo mínimo al estado 3 = 4 (desde el estado 1) Costo mínimo al estado 4 = 3 (desde el estado 1)CÁLCULOS PARA LA ETAPA 2Después se avanza a la etapa 2 para determinar los costos mínimos(Acumulativos) para los estados 5, 6 y 7 como se aprecia en la figura 5.3.Considerando primero al estado 5, se ve que existen tres alternativas; a saber (2,5),(3,5), (4,5). 4
    • Programación dinámica Figura 5.3 Etapa 2: estados 5, 6, 7 conectados con los estados 2, 3, 4.Esta información, junto con los costos mínimos de los estados 2, 3 y 4 (figura 5.4)determinan el costo mínimo (acumulativo) para el estado 5 como: Figura 5.4 etapa 2: Estados 5 conectado con los estados 2, 3, 4.De forma similar para el estado 6 (figura 5.5), se tiene: Figura 5.5 Etapa 2: Estados 6 conectado con los estados 2, 3, 4.Finalmente para el estado 7 (figura 5.6), se tiene: 5
    • Figura 5.6 Programación dinámicaEtapa 2: Estados 7 conectadoscon los estados 2, 3, 4. CÁLCULOS PARA LA ETAPA 3 Para los cálculos se toman los datos de la figura 5.7 Figura 5.7 Etapa 3: estados 8, 9 conectados con los estados 5, 6, 7. CÁLCULOS PARA LA ETAPA 4 Para los cálculos se toman los datos de la figura 5.8 Figura 5.8 Etapa 4: Estados 10 conectados 6 con los estados 8, 9
    • Programación dinámicaResumen de cálculos para las diferentes etapasEl costo mínimo total desde el estado 1 al estado 10 es de 11.El estado 10 se puede alcanzar desde los estados 8 y 9.Si se elige el estado 9, este proviene de haber elegido el estado 6, el cual a su vez dehaber elegido el estado 4 y finalmente el estado 1.  Es decir la ruta óptima es: 1, 4, 6, 9,10Si se elige el estado 8, este proviene de haber elegido el estado 5, el cual a su vez dehaber elegido el estado 4 o el 3.  Si se elige el estado 4, la ruta óptima es: 1, 4, 5, 8,10.  Si se elige el estado 3, la ruta óptima es: 1, 3, 5, 8,10Por lo tanto existen 3 rutas óptimas a elegir ya que la tres implican el costo mínimo totalque es 11.5.3 Formalización de los cálculos de programación dinámicaSe mostrará ahora la forma en la cual se pueden expresar matemáticamente loscálculos recursivos de la PD. i=1, 2,3…nCon la condición inicial . La ecuación indica que las distancias más cortas en la etapa i se debe expresar en función del siguiente nodo . En laterminología de la programación dinámica, a se le llama estado del sistema en laetapa i. 7
    • Programación dinámicaDe hecho se considera que el estado del sistema en la etapa i es la información queenlaza, conecta o vincula las etapas, de tal modo que se pueda tomar las decisionespara las etapas restantes sin volver a examinar cómo se llegó a las decisiones de lasetapas anteriores. La definición correcta de estado permite considerar por separadocada estado, y garantiza que la solución sea factible para todos los estados.5.4 PROGRAMACIÓN DINÁMICA DETERMINÍSTICA (PDD)En este caso se profundiza sobre el enfoque de programación dinámica en losproblemas determinísticos, en donde el estado en la siguiente etapa estácompletamente determinado por el estado y la política de decisión de la etapa actual. Elcaso probabilístico en el que existe una distribución de probabilidad para el valorposible del siguiente estado este se analizara más adelante.5.4.1 Aplicaciones de programación dinámica determinísticaAlgunas de las aplicaciones de programación dinámica determinística son: Modelo de Volumen-Carga “Mochila” Modelo del tamaño de la fuerza de trabajo Modelo de reposición de equipos Modelo de inversión Modelos de inventariosA continuación se presentarán algunas de estas aplicaciones, cada una de las cualesmuestra una nueva idea en la puesta en práctica de la PD.A medida que se presente cada aplicación, es importante prestar atención a los treselementos básicos de un modelo de PD:  Definición de las etapas  Definición de las políticas o alternativas  Definición de los estados para cada etapaDe los tres elementos, la definición del estado por lo común es la más sutil.Las aplicaciones que se presentan a continuación muestran que la definición de estadovaría dependiendo de la situación que se está modelando.Sin embargo, a medida que se presente cada aplicación, resultará útil considerar lassiguientes preguntas:  ¿Qué relaciones unen las etapas? 8
    • Programación dinámica  ¿Qué información se necesita para tomar decisiones factibles en la etapa actual, sin reexaminar las decisiones que se tomaron en las etapas anteriores?La experiencia indica que la comprensión del concepto de estado se puede mejorarcuestionando la “validez” de la forma que dicta la intuición.Se sugiere intentar una definición de estado diferente que pueda parecer “más lógica” yutilizarla en los cálculos recursivos.Con el tiempo, se descubrirá que las definiciones que se presentan en las siguientesaplicaciones proporcionan la forma correcta para resolver el problema.Mientras tanto, el proceso mental propuesto deberá mejorar la comprensión delconcepto de estado.5.4.2 Modelo del tamaño de la fuerza de trabajoEn algunos proyectos de construcción, las contrataciones y los despidos se ejercenpara mantener un número de empleados que satisfaga las necesidades del proyecto.Debido a que las actividades tanto de contratación como de despido incurren en costosadicionales, ¿cómo se debe mantener el número de empleados a todo lo largo de lavida del proyecto?Supóngase que el proyecto se ejecutara durante el lapso de n semanas, y que la fuerzade trabajo mínima requiere en la semana i es . Sin embargo, de acuerdo con losparámetros de costos, podría ser más económico dejar que fluctué el tamaño de lafuerza de trabajo. Como es la cantidad de trabajadores empleados en la semana i, enesa semana i se puede incurrir en dos costos: , el costo de mantener elexceso de personal; , el costo de contratar, trabajadoresadicionales.Los elementos del modelo de programación dinámica se definen como sigue: 9
    • Programación dinámicaEjemplo 5.4-2:Un contratista constructor estima que la fuerza de trabajo necesaria durante laspróximas 5 semanas será de 5, 7, 8, 4 y 6 trabajadores, respectivamente. La mano deobra en exceso que se conserve le costara $300 por trabajador semanalmente, y lanueva contratación en cualquiera semana tendrá un costo fijo de $400 más $200 portrabajador y por semana.Los datos del problema se resumen como sigue: 10
    • Programación dinámica5.4.3 Modelo de reposición de equipoMientras más tiempo este en servicio una máquina, su costo de mantenimiento esmayor y su productividad menor. Cuando la máquina llegue a cierta antigüedad serámás económico reemplazarla. Es así que entonces el problema se reduce adeterminación de la antigüedad mas económica de una maquina. 11
    • Programación dinámicaSupóngase que se estudia el problema de reposición de la máquina durante un lapsode n años. Al inicio de cada año, se debe decidir si mantener la maquina en servicio porun año más o reemplazarla por una nueva. Sean r(t), c(t), los ingresos y el costos deoperación anuales, y s(t) el valor de recuperación de una maquina con t años deantigüedad. El costo de adquisición de una máquina nueva en cualquier año es I.Los elementos del modelo de programación dinámica son:Ejemplo 5.4-3Una empresa debe determinar la política óptima, durante los próximos 4 años (n=4), dereemplazo de una máquina, que en la actualidad tiene 3 años. La tabla 5.1 muestra losdatos del problema. La empresa establece que toda máquina que tenga 6 años de edaddebe reemplazarse. El costo de una maquina nueva es $100,000. Tabla 5.1. Años con relación a sus utilidades, costos y valor de rescate 12
    • Programación dinámicaLa determinación de los valores factibles de la edad de la máquina en cada etaparequiere de algo de ingenio. En la figura 5.9 se resume la red que representa elproblema. Al iniciar el año 1 se tiene una máquina de 3 años de antigüedad. Se puedereemplazarla (R) o conservarla (k) durante otro año. Al inicia el año 2, si hay reemplazo,la maquina nueva tendrá 1 año de edad; en caso contrario, la máquina actual tendrá 4años de antigüedad. Los mismos razonamientos se aplican al iniciar los años 2 o 4. Sise reemplaza una maquina con 1 año de antigüedad al iniciar los años 2 y 3, sureposición tendrá 1 año de antigüedad al inicio del año siguiente. También, al iniciar elaño 4, se debe reemplazar una máquina con 6 años de servicio, y al final del año 4 sedesechan las máquinas, con recuperación S. Figura 5.9 Representación de la edad de la maquina en función del año de decisión, en el ejemplo 5.2.1-2La red indica que al comenzar el año 2, las edades posibles de las maquinas son de 1 4años.Para el comienzo del año 3, las antigüedades posibles son 1, 2 y 5 años, y para elcomienzo del año 4, las antigüedades posibles son 1, 2, 3 y 6 años.La solución de la red de la figura 5.9 equivale a determinar la ruta más larga, del iniciodel año 1 al final del año 4. Se iniciara la forma tabular para resolver el problema. Todoslos valores son en miles de $. Nótese que si se reemplaza una máquina en el año 4 (esdecir, al final del horizonte de planeación) los ingresos incluirán el valor derecuperación, s(t), de la máquina reemplazada y el valor de recuperación, s(1) de lamáquina de repuesto. 13
    • Programación dinámicaLa figura 5.10 resume el orden en el cual se obtiene la solución óptima. Al iniciar el año1, la decisión optima para t=3 es reemplazar la maquina. Así, la máquina nueva tendrá1 año al iniciar el año 2, y t=1 al iniciar el año 2 determina conservarla o reemplazarla.Si se reemplaza, la nueva máquina tendrá 1 año al inicial el año 3; en caso contrario, la 14
    • Programación dinámicamaquina conservada tendrá 2 años. El proceso se continúa de esta forma hasta llegaral año 4. Figura 5.10 Las políticas alternativas óptimas empezando en el año 1 son (R, K, K, R) y (R, R, K, K). El costo total es de 55,300 dólares.5.5 PROGRAMACIÓN DINÁMICA PROBABILÍSTICA (PDP)La programación dinámica probabilística (PDP) es una técnica matemáticamente útilpara la toma de decisiones interrelacionadas, se presenta cuando el estado en lasiguiente etapa no está determinado por completo por el estado y la política dedecisión de la etapa actual. En su lugar existe una distribución de probabilidad paradeterminar cuál será el siguiente estado. Sin embargo, esta distribución de probabilidadsi queda bien determinada por el estado y la política de decisión en la etapa actual. Porconsiguiente la diferencia entre la programación dinámica probabilística y laprogramación dinámica determinística (PDD) está en que los estados y los retornos oretribuciones en cada etapa son probabilísticos. La programación dinámicaprobabilística se origina en especial en el tratamiento de modelos estocásticos deinventarios y en los procesos markovianos de decisión.En este apartado se presentará algunos ejemplos generales, con objeto de hacerresaltar la naturaleza estocástica de la programación dinámica.5.5.1 Aplicaciones de programación dinámica probabilísticaAlgunas de las aplicaciones de programación dinámica probabilística son:  Un juego aleatorio  Problema de inversión  Maximización del evento de lograr una meta.A continuación se presentará una de estas aplicaciones. 15
    • Programación dinámica5.5.2 Un juego aleatorioEs una variación del juego de la ruleta rusa, se hace girar una rueda con marcas de nnúmeros consecutivos: 1 a n, en su superficie. La probabilidad de que la rueda sedetenga en el número i después de un giro es pi. Un jugador paga $x por el privilegio dehacer girar la rueda un máximo de m giros. La recompensa para el jugador es el doblede la cantidad obtenida en el último giro. Suponiendo que le jugador se repite (hastacon m giros cada vez) una cantidad razonablemente grande de veces, propone unaestrategia optima para el jugador.Se puede formular el problema como un modelo de programación dinámica con lassiguientes definiciones: 1. La etapa i corresponde a la i-ésima vuelta de la rueda, i = 1, 2, …, m 2. En cada etapa hay dos alternativas: se gira la rueda una vez más o se termina el juego 3. El estado j del sistema en la etapa i es el número que se obtuvo la última vez que se giró la rueda, el cual está entre 1 y nSeafi(j) = Ingreso máximo esperado cuando el juego está en la etapa i (el giro) y que elresultado del último giro fue jEn este caso se tiene que 2 j , si termina fi j max n k 1 pk f i 1 k , si continúaEntonces, la ecuación recursiva se puede escribir como sigue:Los cálculos comienzan con fm+1 y terminan con f1, de modo que hay m+1 etapas. Comof1(0) representa el rendimiento esperado de las m vueltas, así que el rendimientoesperado neto, Rn, es: Rn f1 0 x 16
    • Programación dinámicaEjemplo 5.5-2Supongamos que la ruleta está marcada con los números 1 a 5 y que lasprobabilidades de que se detenga en cada número son p1 = 0.30, p2 = 0.25, p3 = 0.20,p4 = 0.15, p5 = 0.10.El jugador paga $5 por un máximo de cuatro vueltas. Determine la estrategia óptimapara cada una de las cuatro vueltas y encuentre el rendimiento esperado neto asociado.Etapa 5 f5(j) = 2jResultado dela vuelta 4 Solución óptimaj f5(j) Decisión1 2 Terminar2 4 Terminar3 6 Terminar4 8 Terminar5 10 TerminarEtapa 4 f4(j) = máx.{2j,∑(pkf5(k))} = máx.{2j, p1f5 (1)+ p2f5(2)+ p3f5 (3)+ p4f5 (4)+ p5f5 (5)} = máx.{2j,0.3x2 + 0.25x4 + 0.2x6 + 0.15x8 + 0.1x10} = máx.{2j,5}Resultado dela vuelta 4 Rendimiento esperado Solución óptimaj Terminar Girar f4(j) Decisión1 2 5 5 Girar 17
    • Programación dinámica2 4 5 5 Girar3 6 5 6 Terminar4 8 5 8 Terminar5 10 5 10 TerminarEtapa 3 f3(j) = máx.{2j, ∑ (pkf4(k))} = máx.{2j, p1f4 (1)+ p2f4(2)+ p3f4 (3)+ p4f4 (4)+ p5f4 (5)} = máx.{2j,0.3x5 + 0.25x5 + 0.2x6 + 0.15x8 + 0.1x10} = máx.{2j,6.15}Resultado de lavuelta 3 Rendimiento esperado Solución óptimaj Terminar Girar f4(j) Decisión1 2 6.15 6.15 Girar2 4 6.15 6.15 Girar3 6 6.15 6.15 Girar4 8 6.15 8 Terminar5 10 6.15 10 TerminarEtapa 2 f2(j) = máx.{2j, ∑ (pkf3(k))} = máx.{2j, p1f3 (1)+ p2f3(2)+ p3f3 (3)+ p4f3 (4)+ p5f3 (5)} = máx.{2j,0.3x6.15 + 0.25x6.15 + 0.2x6.15 + 0.15x8 + 0.1x10} = máx.{2j,6.8125} 18
    • Programación dinámicaResultado dela vuelta 3 Rendimiento esperado Solución óptimaj Terminar Girar f4(j) Decisión1 2 6.8125 6.8125 Girar2 4 6.8125 6.8125 Girar3 6 6.8125 6.8125 Girar4 8 6.8125 8 Terminar5 10 6.8125 10 TerminarEtapa 1 f1(0) = máx.{2j, ∑ (pkf2(k))} = máx.{2j, p1f2 (1)+ p2f2(2)+ p3f2 (3)+ p4f2 (4)+ p5f2 (5)} = máx.{2j, 0.3x6.8125+ 0.25x6.8125 + 0.2x6.8125 + 0.15x8 + 0.1x10 = máx.{2j,7.31}La única opción disponible al iniciar el juego es girar.De acuerdo con los cuadros anteriores, la solución óptima es:Vuelta número Estrategia óptima1 Comienza el juego. Gire Continúe si la vuelta 1 produce 1,2, o 3; de otra2 forma, termine el juego Continúe si la vuelta 2 produce 1, 2 o 3; de otra3 forma, termine el juego Continúe si la vuelta 3 produce 1 o 2. De otra forma, termine el juego4 Ingreso neto esperado= $7.31-$5.00= $2.31 19
    • Programación dinámica Referencias BibliográficasDomínguez, A. (Noviembre de 2000). Programación dinámica. Recuperado elNoviembre de 2012, de http://www.slideshare.net/Alexdfar/programacin-dinmica-5688350Hillier, F. S. (1991). Introducción a la Investagación de Operaciones (3 ed.). México:McGraw-Hill.Taha, H. A. (2004). Investigación de Operaciones (7 ed.). México: PEARSONEDUCATION. 20