Programaciondinamicafinal 141019190955 Conversion Gate01

download Programaciondinamicafinal 141019190955 Conversion Gate01

of 18

Transcript of Programaciondinamicafinal 141019190955 Conversion Gate01

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    1/18

    FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS

    UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO

    December 18, 2012

    Autor: Walter Toledo 30022/09 PI

    Programacin Dinmica

    Investigacin Operativa

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    2/18

    1

    ndice

    Resea Histrica. 2

    La Programacin Dinmica. .. 3

    Cuando Aplicar? 3

    Principio de Optimalidad de la Programacin Dinmica o de Bellman.. 4

    Procesos de Decisin de n Etapas.. 5

    Relacin Recursiva (hacia atrs). 5

    DP hacia atrs (backward DP).. 7

    DP hacia adelante (forward DP).. 8

    Programacin Dinmica en contraste con la Programacin Lineal.. 9

    Ejemplos:

    Problema del viajero o de la diligencia 11

    Problema de la Mochila.. 12

    Programacin de Produccin e Inventarios.. 12

    Modelo Matemtico. ... 13

    La Formulacin con Programacin Dinmica. . 13

    Resolucin de un Problema de Programacin Dinmica. 14

    Tipos de programacin dinmica:

    Programacin dinmica homognea y no homognea... 15

    Programacin dinmica determinista y aleatoria. 15

    Conclusin.. 16

    Bibliografa.... 17

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    3/18

    2

    Historia

    La primera gran disciplina que surgi a partir del abordaje matemtico de los

    problemas especficos de la Segunda Guerra Mundial fue, seguramente, la InvestigacinOperativa1. El trmino Operations Research fue utilizado por primera vez en Inglaterra, en

    1941.

    Rpidamente se hizo evidente que las mismas tcnicas utilizadas en el mbito

    militar podan servir en otras reas de aplicacin. En los aos posteriores a la Guerra se

    abrieron nuevos temas de investigacin y se plantearon nuevos problemas, que fueron

    abordados desde una perspectiva matemtica. Entre estos nuevos temas se encontraba la

    teora de los Procesos de Decisin en Mltiples Pasos, que Richard Bellman (1920 - 1984)

    abord alrededor de 1952, y para los cuales fue pensada originalmente la Programacin

    Dinmica.

    Despus de desarrollar el mtodo en el rea especfica de los problemas de

    decisin discretos, Bellman y sus colaboradores se dedicaron a la ardua tarea de formular

    diferentes problemas en los trminos de la Programacin Dinmica. Como resultado de

    esta labor, encontraron que las ideas centrales del mtodo, en particular, el Principio de

    Optimalidad, podan ser aplicadas satisfactoriamente en muchos de los problemas

    abordados. Descubrieron tambin las limitaciones de esta tcnica y hallaron modos de

    sobreponerse a ellas, para algunos problemas puntuales.

    La Programacin Dinmica es, hoy en da, un recurso imprescindible de

    Matemtica Aplicada y, tambin, una importante herramienta terica.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    4/18

    3

    La 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.

    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 anterior.

    Cuando Aplicar?

    Existe problemas cuyas soluciones pueden ser expresadas recursivamente. No

    obstante, el tiempo de ejecucin de la solucin recursiva, es de orden exponencial

    y por tanto es muy difcil y costoso implementarlo pero puede mejorarse mediante

    la Programacin Dinmica.

    En el diseo Divide y Vencers se basa en resolver un problema dividiendo en

    subproblemas independientes, los cuales se resolvan de manera recursiva para

    combinar finalmente las soluciones y as resolver el problema original.

    La Programacin Dinmica consiste en resolver los subproblemas una sola vez,

    guardando sus soluciones en una tabla para su futura utilizacin.

    La Programacin Dinmica en la resolucin de problemas de optimizacin se

    realiza mediante la obtencin de un valor ptimo que puede ser mximo o mnimo

    dependiendo el caso particular al que se aborde.

    La solucin de problemas mediante esta tcnica se basa en el llamado principio

    ptimo enunciado por Bellman en 1957 y que dice: En una secuencia de decisiones

    ptima toda subsecuencia ha de ser tambin ptima.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    5/18

    4

    El algoritmo de Programacin Dinmica esta compuesto por los siguientes pasos:

    1. Planteamiento de la solucin como una sucesin de decisiones y verificacin de

    que sta cumple el principio de ptimo.

    2. Definicin recursiva de la solucin.

    3. Clculo del valor de la solucin ptima mediante una tabla en donde se almacenan

    soluciones a problemas parciales para reutilizar los clculos.

    4. Construccin de la solucin ptima haciendo uso de la informacin contenida en la

    tabla anterior.

    Principio de Optimalidad de la Programacin Dinmica o deBellman

    Dado un estado, la poltica ptima para las siguientes etapas no depende de la

    poltica tomada en las etapas anteriores.

    La decisin de ptima inmediata slo depende del estado en el que se est, no de

    cmo se lleg hasta l. Toda la informacin sobre el pasado se resume en el estado en que se

    encuentra.

    Una vez conocida la solucin ptima global, cualquier solucin parcial que involucre

    slo una parte de las etapas es tambin una solucin ptima.

    Todo subconjunto de una solucin ptima es a su vez una solucin ptima para un

    problema parcial.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    6/18

    5

    Procesos de Decisin de n Etapas.

    Un proceso de decisin de n etapas es el que puede descomponerse encierto

    nmero de pasos. Cualquiera sea la forma de completar una etapa, se llama decisin y la

    secuencia de decisiones a lo largo de las etapas, se denomina poltica. En la resolucin de

    un problema se busca la poltica ptima que optimice el problema.

    La condicin del proceso en una etapa, se denomina estado en esa etapa y cada

    decisin produce un cambio de estado o transicin del estado actual a un estado asociado

    con la siguiente etapa. Es decir, que en cada decisin se pasa de un estado actual a un

    estado asociado con la prxima etapa.

    Relacin Recursiva (hacia atrs)

    Define la poltica ptima en la etapa k, conocida la poltica ptima en cualquier

    estado de la etapa k + 1.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    7/18

    6

    I. Xk estado actual en la etapa k.

    II. ukvariable de decisin en la etapa k.

    III. Xk+1 estado al que se llega en la etapa k + 1 dependiente del estado inicial Xky de la decisin uk.

    IV. fk(Xk)valor acumulado de la funcin objetivo para el estadoXk desde la etapa

    k hasta N.

    V. C xk,uk. valor inmediato de tomar la decisin ukdesde el estado Xk

    VI. Coste acumulado desde una etapa k hasta el final para un estadoXk, f*k(xk) =

    Coste inmediato de dicha etapa C xk,uk.+ Coste acumulado desde una etapa k +

    1 hasta el final para un estadoXk+1, f*k+1(xk+1)

    Ejemplo: problema del viajero

    El viajero desea ir de la ciudad A a la J por el camino ms corto.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    8/18

    7

    DP hacia atrs (backward DP)

    Empezamos por la etapa k = 4

    Para la etapa k = 3

    Para la etapa k = 2

    Finalmente en la etapa k = 1

    Ruta ptima: A C E H J 4+3+1+3=11

    D E H J 3+4+1+3=11

    D F I J 3+1+3+4=11

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    9/18

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    10/18

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    11/18

    10

    ii) Cul es la ruta con ese costo mnimo.

    Para ir desde su oficina hasta el lugar donde est la cosecha debe atravesar varias

    ciudades. En su camino debe pasar por 3 ciudades antes de llegar a su destino, y algunos

    lugares posibles en esas ciudades. Las posibles rutas, y el costo asociado por Km. de

    distancia y otros es en $, se ven en el siguiente esquema:

    Para ir de 1 a 13 hay 48 rutas posibles. Una posibilidad para encontrar la

    solucin es calcular el valor asociado a cada una y ver cual es la que proporciona el menor

    costo. Y si fuesen miles de rutas? Por se descarta esa alternativa y se usa el mtodo de la

    programacin Dinmica, donde se resuelve desde el final hacia el inicio, y hay etapas y

    estados.

    Etapas: Son 4 etapas en este caso:

    La etapa 1 es decidir ir del estado inicial 1 al estado 2, 3, 4 o 5 que son los puntos

    posibles en el sector siguiente. La etapa 2 es decidir ir a 6, 7 u 8.

    La etapa 3 es decidir ir a 9, 10, 11 o 12.

    La etapa 4 es decidir a 13.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    12/18

    11

    Estado: Lugar donde se encuentra. La etapa 1 tiene 1 estado: el 1. La etapa 2 tiene 4

    estados: 2, 3, 4, 5. La etapa 3 tiene 3 estados: 6, 7, 8. La etapa 4 tiene 4 estados: 9, 10,

    11, 12.

    Clculos

    n = 4

    S \ X4 13 F4* X4*

    9 12 12 13

    10 16 16 13

    11 15 15 13

    12 14 14 13

    n = 3

    S \ X3 9 10 11 12 F3* X3*

    6 3+12=15 2+16=18 1+15=16 3+14=17 15 9

    7 4+12=16 1+16=17 4+15=19 6+14=20 16 9

    8 2+12=14 3+16=19 6+15=21 5+14=19 14 9

    n=2

    S \ X2 6 7 8 F2* X2*

    2 9+15=24 4+16=20 6+14=20 20 7 , 8

    3 5+15=20 7+16=23 4+14=18 18 8

    4 9+15=24 10+16=26 8+14=22 22 8

    5 9+15=24 10+16=26 11+14=25 24 6

    n = 1

    S \ X1 2 3 4 5 F1* X1*

    1 7+20=27 6+18=24 5+22=27 6+24=30 24 3

    Respuesta:El ptimo es: 24

    La solucin ptima es: X1

    = 3; X2

    = 8; X3

    = 9; X4

    = 13.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    13/18

    12

    La ruta ptima es: 1 3 8 9 13

    Respuesta al problema planteado:

    El Ingeniero Forestal tiene un costo mnimo de $24 para ir desde su oficina al lugar

    de cosecha, y ese mnimo lo puede lograr yendo desde su oficina al lugar 3 luego al lugar 8

    luego al lugar 9 y de ah al lugar 13, que es donde est la cosecha.

    Problema de la Mochila.

    Existen N diferentes tipos de artculos que pueden cargarse en una mochila; cada

    artculo tiene asociados un peso y un valor. El problema consiste en determinar cuntas

    unidades de cada artculo se deben colocar en la mochila para maximizar el valor total.

    Programacin de Produccin e Inventarios

    El problema consiste en determinar un programa de produccin para un periodo

    de tiempo con el fin de minimizar los costos totales. Hay demandas conocidas para cada

    periodo, lmites de capacidad tanto para la produccin como para los inventarios

    (almacenamiento). Cuando hay ms produccin que demanda, se acumula inventario, y

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    14/18

    13

    cuando la produccin es menor que la demanda, se generarn retrasos en el

    cumplimiento de pedidos (backorder). Para cada periodo, una produccin no-cero incurre

    en un costo de preparacin. En programacin dinmica, el costo variable se expresa como

    una funcin de la produccin (P), el inventario (H), y backorder (B).

    Modelo Matemtico.

    Genricamente un modelo matemtico que representa un tipo importante de

    procesos de decisin de etapas se expresa como:

    Opt Z =f1(x1)+ f2(x2)++ fn(xn)Sujeta a las siguientes restricciones:

    x1+x2+x3++xn b ; xn con n = 1, 2, 3, ..... (Ensima decisin) son las

    variables de decisin que representan el destino inmediato de la etapa n.

    En el modelo todas las variables son enteras positivas y f1(x1); f2(x2);; fn(xn)son funciones conocidas no lineales de una sola variable y b es un nmero entero no

    negativo conocido. n representa el nmero de etapas en que se descompone el

    problema.

    La Formulacin con Programacin Dinmica

    Ahora bien, al comenzar la asignacin, es decir, en el momento de decidir el valor

    x1, estamos limitados por las restricciones 0 x1 P. Una vez dado x1el monto total conel que contamos habr disminuido a P x1, por lo que las restricciones para la

    determinacin de x2 sern 0 x2 (P x2). Siguiendo este razonamiento, cuando se

    hayan determinado los valores x1, x2, x3,.., xk, las restricciones de la asignacin

    correspondiente a la actividad k + 1 sern: 0 xk+1 P (x1+x2+x3+.+xk).

    El Principio de Optimalidad nos dice que el valor xk+1de una asignacin ptima

    para las N actividades con un monto inicial P corresponde, a su vez, a una asignacin

    ptima de las actividades k + 1,..., N con un monto inicial z = P ( x1+x2+x3+.+xk). Lainformacin esencial con la que debemos contar a cada paso es, entonces, el nmero de la

    actividad sobre la cual estamos decidiendo y la cantidad de pesos que restan distribuir.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    15/18

    14

    Por lo tanto, un estado deber ser un par (k, z), con k el nmero de la actividad que

    debemos asignar y z el dinero disponible. Llamando f a la funcin ptima, la Ecuacin

    Funcional del problema es:

    Donde:

    o P es la cantidad de dinero con la que contamos.

    o Las actividades estn numeradas desde 1, 2,., N a las cuales le

    corresponde una funcin de ganancias g1, g2,, gN.

    o Si Xi es la cantidad de pesos que se asigna a la actividad i, gi(xi) ser laganancia proporcionada por esta actividad.

    Resolucin de un Problema de Programacin Dinmica

    Para resolver un problema de programacin dinmica debemos al menos contemplar:

    Cada etapa debe tener asociado una o mas decisiones (problema de

    optimizacin), cuya dependencia de las decisiones anteriores esta dadaexclusivamente por las variables de estado.

    Cada estado debe contener toda la informacin relevante para la toma de

    decisin asociada al periodo.

    Las variables de decisin son aquellas sobre las cuales debemos definir su

    valor de modo de optimizar el beneficio acumulado y modificar el estado

    de la prxima etapa.

    Descripcin de ecuaciones de recurrencia: Nos deben indicar como se acumula la

    funcin de beneficios a optimizar (funcin objetivo) y como varan las funciones de estado

    de una etapa a otra.

    Resolucin, debemos optimizar cada subproblema por etapas en funcin de los

    resultados de la resolucin del subproblema siguiente. Notar que las para que las

    recurrencias estn bien definidas requerimos de condiciones de borde.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    16/18

    15

    Tipos de programacin dinmica

    En principio, los problemas de programacin dinmica pueden clasificarse segn

    dos criterios: su homogeneidad o no homogeneidad, y su carcter determinista o

    aleatorio.

    a) Programacin dinmica homognea y no homognea

    Diremos que un modelo de programacin dinmica es homogneo si presenta la

    misma estructura para todas las etapas del sistema. Ms concretamente:

    El sistema puede presentar los mismos estados en cualquiera de sus

    etapas.

    Los valores posibles de las variables de decisin para cada uno de los

    estados son las mismas para todas las etapas del sistema.

    La funcin a optimizar es la misma para todas las etapas del sistema.

    La evolucin del sistema, para un determinado estado y para un

    determinado valor de la variable de decisin de los disponibles para dicho

    estado, es la misma para todas las etapas del sistema.

    Una consecuencia de esta definicin es que un modelo de programacin dinmica

    homognea puede evolucionar indefinidamente en el tiempo, esto es, el nmero posible

    de etapas es infinito. Entonces podemos plantearnos analizar su evolucin para un

    nmero infinito de etapas o para un nmero finito de stas.

    Cuando el modelo no cumple alguna de estas condiciones, tenemos programacin

    dinmica no homognea. Todos aquellos modelos que tengan un nmero finito de etapas

    posibles entrarn dentro de esta categora. Tambin puede suceder que el nmero de

    etapas sea infinito, aunque los problemas de programacin dinmica no homognea

    suelen ser de horizonte finito.

    b) Programacin dinmica determinista y aleatoria

    Esta categora tiene que ver con la naturaleza de la evolucin del sistema, una vez seha tomado la decisin. Cuando, en una etapa determinada, podemos conocer con certeza

    la evolucin del sistema para un determinado estado y un determinado valor de la

    variable de decisin, tenemos un modelo de programacin dinmica determinista. Para

    estos modelos, podremos determinar las decisiones que, en cada etapa, dan el valor

    ptimo de la funcin de recurrencia.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    17/18

    16

    Si, para una etapa determinada, en un estado cualquiera i, al escoger un determinado

    valor de la variable de decisin, encontramos que el sistema puede evolucionar hacia

    diferentes estados j de la siguiente etapa con una probabilidad conocida pij,entonces el

    modelo es de programacin dinmica aleatoria. En este caso, podremos determinar las

    decisiones que optimicen el valor esperado de la funcin de recurrencia.

    Conclusin

    La Programacin Dinmica es una tcnica que permite la optimizacin desoluciones a problemas adaptandandolos a la metodologa divide y vencers,

    fraccionando el problema en subproblemas y solucionando a cada uno de ellos mediante

    el uso de la recursividad para luego combinar estas soluciones parciales para obtener la

    solucin al problema. Cabe destacar que para que un problema se pueda resolver

    mediante la Programacin Dinmica debe cumplir ciertas caractersticas para que pueda

    ser tratado como as.

    Conviene resaltar que a diferencia de la programacin lineal, el modelado de

    problemas de programacin dinmica no tiene una forma estndar. As, para cada

    problema es necesario especificar cada uno de los componentes que caracterizan un

    problema de programacin dinmica.

    Sin embargo un aspecto realmente destacable es la posibilidad de amplio campo

    de aplicacin que posee la programacin dinmica, que desde un turista queriendo viajaro la posibilidad de combinar objetos de una mochila para ahorrar espacio o tambin la

    planificacin de programacin de produccin e inventarios y sin olvidarse de la gran

    importancia que posee la Programacin Dinmicaen la informtica.

  • 7/25/2019 Programaciondinamicafinal 141019190955 Conversion Gate01

    18/18

    17

    Bibliografa

    Manuel Maurette e Ignacio Ojea, Programacin Dinmica, Junio de 2006.

    Bohorquez Jaime y Cardozo Rodrigo, Programacin Dinmica, Anlisis de

    Algoritmo 1992.

    Ramos, Andres, Programacin dinmica (DP), Universidad Pontificia Comillas.

    Profesor: Julio Cesar Lpez, Programacin Dinmica, Universidad del Valle, 8 de

    Noviembre del 2008.

    Goic F. Marcel, Programacin Dinmica, Universidad de Chile, Facultad de Ciencias

    Fsicas y Matemticas, Departamento de Ingeniera Industrial.

    Jos Pedro Garca Sabater y Julien Maheut, Modelos y Mtodos de Investigacin

    de Operaciones. Procedimientos para Pensar, Grupo de Investigacin ROGLE,Departamento de Organizacin de Empresas, Curso 2011 / 2012.

    Juan Prawda Witenberg, Metodo s y Modelos d e Invest igacio n Operat iva, Editorial

    Limusa, 1976.

    Webgrafia

    http://investigacionoperativa.es.tl/Programacion-Dinamica.htm

    http://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progD

    inamica.pdf

    http://sci2s.ugr.es/docencia/tasb/TA-Tema6-0809.pdf

    http://www.redalyc.org/src/inicio/ArtPdfRed.jsp?iCve=84920977024

    http://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1mica

    http://invdeo.blogspot.com.ar/

    http://investigacionoperativa.es.tl/Programacion-Dinamica.htmhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://sci2s.ugr.es/docencia/tasb/TA-Tema6-0809.pdfhttp://www.redalyc.org/src/inicio/ArtPdfRed.jsp?iCve=84920977024http://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1micahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1micahttp://www.redalyc.org/src/inicio/ArtPdfRed.jsp?iCve=84920977024http://sci2s.ugr.es/docencia/tasb/TA-Tema6-0809.pdfhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://dis.unal.edu.co/profesores/jgomez/courses/algorithmics/documents/progDinamica.pdfhttp://investigacionoperativa.es.tl/Programacion-Dinamica.htm