Programaciondinamicafinal 141019190955 Conversion Gate01
-
Upload
richard-lopez -
Category
Documents
-
view
216 -
download
0
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