lopez peredo ui io2

Upload: btesla2005

Post on 14-Jul-2015

139 views

Category:

Documents


0 download

TRANSCRIPT

IntroduccinEn diferentes disciplinas o situaciones el ser humano se encuentra continuamente buscando la mejor forma de maximizar beneficios y reducir los costos, ya sea tiempo, distancia, dinero, etc. Esto puede ir desde algo simple como un turista tratando de visitar la mayor cantidad de sitios tursticos en sus vacaciones de tal forma que le tome el menor tiempo, a situaciones ms complejas como un ingeniero buscando en la compleja cadena de suministros de una gran empresa reducir las distancias, costos y tiempo. La solucin optima, es decir la que maximice beneficios o minimice costos puede ser encontrada a partir de un gran nmero de clculos, por tal motivo surge la programacin dinmica, la cual muestra una metodologa adaptable a diferentes situaciones de tal forma que reduce de gran manera el numero de clculos que se tendrn que llevar a cabo. El matemtico americano Richard Bellman invent la programacin dinmica en 1953 que se utiliza para optimizar problemas complejos que pueden ser discretizados y secuencializados. Contrastando con la programacin lineal, no existe un planteamiento matemtico estndar del problema de programacin dinmica. Ms bien, la programacin dinmica es un tipo general de enfoque para resolver problemas y las ecuaciones particulares usadas deben desarrollarse para que se ajusten a cada situacin individual. Por lo tanto, se requiere un cierto grado de ingenio y de visin de la estructura general de los problemas de programacin dinmica, a fin de reconocer cundo un problema se puede resolver mediante los procedimientos de esta programacin y cmo se hara. Probablemente se puedan desarrollar mejor estas aptitudes por medio de una exposicin de una amplia variedad de aplicaciones de la programacin dinmica y de un estudio de las caractersticas que son comunes a todas stas. La programacin dinmica suministra una solucin con mucho menos esfuerzo que la enumeracin exhaustiva; los ahorros de clculo seran enormes para versiones ms grandes de un problema. La programacin dinmica parte de una pequea porcin del problema y encuentra la solucin ptima para este problema ms pequeo. Entonces gradualmente agranda el problema, hallando la solucin ptima en curso a partir de la anterior, hasta que se resuelve por completo el problema original. En seguida se dan los detalles involucrados en la implementacin de esta filosofa general

1

Programacin DinmicaEn informtica, la programacin dinmica es un mtodo para reducir el tiempo de ejecucin de un algoritmo mediante la utilizacin de subproblemas superpuestos y subestructuras ptimas, como se describe a continuacin. El trmino lo us Richard Bellman, un matemtico norteamericano, para describir el proceso de resolucin de problemas donde hace falta calcular la mejor solucin consecutivamente. 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. Conviene resaltar que a diferencia de la programacin lineal, 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. 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: 1. Dividir el problema en subproblemas ms pequeos. 2. Resolver estos problemas de manera ptima usando este proceso de tres pasos recursivamente. 3. Usar estas soluciones ptimas para construir una solucin ptima al problema original.

2

Los subproblemas se resuelven a su vez dividindolos en subproblemas ms pequeos hasta que se alcance el caso fcil, donde la solucin al problema es trivial. Decir que un problema tiene subproblemas superpuestos es decir que se usa un mismo subproblema para resolver diferentes problemas mayores. Por ejemplo, en la sucesin de Fibonacci (F3 = F1 + F2 y F4 = F2 + F3) calcular cada trmino supone calcular F2. Como para calcular F5 hacen falta tanto F3 como F4, una mala implementacin para calcular F5 acabar calculando F2 dos o ms veces. Esto sucede siempre que haya subproblemas superpuestos: una buena 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. 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.

MODELOS DE PROGRAMACIN DINMICA Para facilitar la resolucin de problemas relacionados con la programacin dinmica se han creado softwares capaces de resolver sistemas muy complejos, los cuales aun utilizando la metodologa que maneja la programacin dinmica, resultan ser muy complicados y tardados, tal es el caso del programa WINQSB. Existen tres modelos diferentes manejados por WINQSB. * Problema de la diligencia (Stagecoach Problem) * Problema de la mochila (Snapsack Problem) * Programacin de produccin e inventarios (Production and Inventory Scheduling)

3

Caractersticas y metodologa Vamos ahora a enumerar las caractersticas que constituyen el mtodo de la programacin dinmica: 1. Cada problema debe dividirse en etapas, cada una de las cuales requiere de una poltica de decisin, que se determinar conforme a la funcin objetivo. 2. Cada etapa se divide a su vez en un cierto nmero de estados asociadas a ella, donde cada uno de estos representa una posibilidad de llevar a cabo la etapa. 3. En cada etapa habr una poltica de decisin la cual deber eslabonar la etapa actual con la siguiente del problema. 4. El mtodo de la programacin dinmica deber hallar una solucin ptima para el problema total, la que es diferente de la solucin ptima de etapa a etapa. 5. El principio de optimidad de Bellman dice: Cuando el problema se encuentra en un estado de una etapa dada, para salir de l, la decisin tomada debe constituir una poltica ptima, independientemente de las decisiones hechas anteriormente. 6. El problema se inicia por la ltima etapa y se mueve recursivamente, es decir, desde la ltima hasta la primera etapa, en la cual una vez determinada la decisin de la misma, el problema habr sido resuelto.

La programacin dinmica puede ser determinstica, es decir que los parmetros del problema se conozcan exactamente, o bien puede ser probabilstica o estocstica, cuando aquellos vienen dados por una funcin de probabilidad.

4

Terminologa. La forma precisa de relacin recursiva difiere de un problema a otro de programacin dinmica, pero usaremos una notacin anloga a la siguiente: N = nmero de etapas. n = etiqueta para la etapa actual ( n = 1,2, ,N) sn = estado actual para la etapa n xn = variable de decisin para la etapa n xn* = valor ptimo de xn (dado sn) fn(sn,xn) = contribucin a la funcin objetivo de las etapas n, n+1, ,N, si el sistema se encuentra en el estado sn en la etapa n, la decisin inmediata es xn y en adelante se toman decisiones ptimas. fn*(sn) = fn(sn,xn*) La relacin recursiva siempre tendr la forma: fn*(sn) = mn fn(sn,xn) fn*(sn) = max fn(sn,xn) Cuando se usa esta relacin recursiva, el procedimiento de solucin comienza al final y se mueve hacia atrs etapa por etapa, hasta que encuentra la poltica ptima desde la etapa inicial.

5

Recursin hacia adelante y hacia atrs. Recursin hacia atrs, empezando de la etapa final y terminando de la etapa 1. Recursin hacia adelante, la cual los clculos avanzan de la etapa 1 a la etapa final. Las recursiones hacia adelante y hacia atrs producen la misma solucin. An cuando el procedimiento hacia adelante parece ms lgico, la literatura de la PD utiliza con frecuencia la recursin hacia atrs. La razn de la preferencia de la recursin es que, en general, la recursin hacia atrs puede ser ms eficiente desde el punto de vista de los clculos.

La

ecuacin

recursiva

hacia

atrs

es

El orden asociado a los clculos es

6

Programacin dinmica probabilstica y determinstica. Esta categora tiene que ver con la naturaleza de la evolucin del sistema, una vez se ha 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 determinstica. Para estos modelos, podemos determinar las decisiones que, en cada etapa, den el valor ptimo de la funcin de recurrencia. La programacin dinmica probabilstica difiere de la determinstica en que los estados y los retornos o retribuciones en cada etapa son probabilsticos. La programacin dinmica probabilstica se origina en especial en el tratamiento de modelos estocsticos de inventario y en los procesos markivianos de decisin.

Programacin dinmica determinstica Esta seccin considera con mayor amplitud el enfoque de programacin dinmica para los problemas determinsticos, en los que el estado en la etapa siguiente queda completamente determinado por el estado y la poltica en la etapa actual. Una manera de catalogar los problemas de programacin dinmica determinstica es por la forma de la funcin objetivo. Por ejemplo, el objetivo podra ser minimizar la suma de contribuciones de las etapas individuales, o bien minimizar un producto de tales trminos y as sucesivamente. En un problema de programacin dinmica, las temporadas deben ser las etapas. Programacin dinmica probabilstica La programacin dinmica probabilstica difiere de la programacin dinmica determinstica en que el estado de la etapa siguiente no queda completamente determinado por el estado y la decisin de la poltica en el estado actual. En lugar de ello existe una distribucin de probabilidad para lo que ser el estado siguiente. Sin embargo, esta distribucin de probabilidad todava est completamente determinada por el estado y la decisin de la poltica del estado actual. Cuando se desarrolla de esta forma para incluir todos los estados y decisiones posibles en todas las etapas, a veces recibe el nombre de rbol de decisin. Si el rbol de decisin no es demasiado grande, proporciona una manera til de resumir las diversas posibilidades que pueden ocurrir.

7

Ejemplos 1.-El problema del viajero (recursin hacia atrs) El viajero desea ir de la ciudad A a la J por el camino ms corto.

8

2. El problema del viajero recursin hacia adelante

9

3. Un caza fortunas de Missouri decide ir al oeste para unirse a la fiebre del oro en California a mediados del siglo XIX. Tiene que hacer el viaje a travs de territorios sin ley donde existen serios peligros de ser atacados por merodeadores, Aunque su punto de partida y destino son fijos, tiene muchas opciones en cuanto a qu territorios (en el futuro estados) debe de elegir como puntos intermedios. El caza-fortunas era un hombre prudente y preocupado por su seguridad y despus de reflexionar un poco se le ocurri una manera de determinar la ruta ms segura. En aquella poca se ofrecan plizas de seguros de vida a los pasajeros de las diligencias y como los costes de las plizas estaban basados en la seguridad del recorrido, concluy que la ruta ms segura y por lo tanto su ruta de viaje era aquella que minimizara el coste total de la pliza. Se mont en su caballo indio y emprendi su aventura. En el grafico aparecen representados los territorios (en un crculo) y los costes de la pliza estndar de cada proyecto:

Formula el problema de la diligencia identificando los elementos de la estructura general de un problema de programacin dinmica y resulvelo de delante hacia atrs usando la ecuacin de Bellman.

10

4. Problema de la ruta ms corta Supongamos que se trata de seleccionar la ruta ms corta entre dos ciudades. La red de la figura muestra las rutas posibles entre el inicio en el nodo 1 y el destino en el nodo 7.Las rutas pasan por ciudades intermediarias, representadas por los nodos 2 a 6. Este problema se puede resolver en forma detallada todas las rutas entre los nodos 1 y 7 (hay cinco). Sin embargo, en una red grande, la enumeracin exhaustiva no se puede manejar de manera computacional.

11

12

13

Conclusin.La programacin dinmica es de gran importancia, su aplicacin tiene una gran amplitud, ya que se puede utilizar en diferentes mbitos y carreras, en el caso particular de la ingeniera industrial es de una gran relevancia, ya que continuamente este se encuentra en la bsqueda de una reduccin de costos, de tiempos o en resumen de la optimizacin de un proceso o actividad. En este sentido la programacin dinmica puede ser una tcnica para que el ingeniero industrial encuentre la solucin ptima de un problema con n nmero de variables descomponindolo en etapas, siendo cada etapa un subproblema de una sola variable. La programacin dinmica utiliza la forma recursiva, es decir que la solucin optima de un subproblema se utiliza como dato para el siguiente subproblema, de tal forma que al final se obtiene la solucin optima de todo el problema. Esta tcnica requiere un cierto grado de ingenio y de visin del problema en general, ya que en este no se sigue una metodologa rigurosa, ms bien, es un tipo general de enfoque para resolver problemas y las ecuaciones particulares usadas deben desarrollarse para que se ajusten a cada situacin individual, por tal motivo es verstil. Para las empresas competitivas actuales les resulta necesario optimizar recursos, tener sus cadenas de produccin y de suministros de una manera ptima, ya que para cada empresas existen muchos posibles proveedores y clientes cada uno de estos significa algn costo o beneficio es necesario buscar la combinacin optima de estos de tal forma que se reduzcan la perdidas y maximizar las ganancias. La programacin dinmica suministra una solucin con mucho menos esfuerzo que la enumeracin exhaustiva, los ahorros de clculo son enormes para versiones ms grandes de un problema. La programacin dinmica parte de una pequea porcin del problema y encuentra la solucin ptima para este problema ms pequeo. Entonces gradualmente agranda el problema, hallando la solucin ptima en curso a partir de la anterior, hasta que se resuelve por completo el problema original. Sin embargo como ya se mencion la programacin dinmica no queda nicamente limitada a esta rea de aplicacin, esta puede ir desde algo simple como un turista tratando de visitar la mayor cantidad de sitios tursticos en sus vacaciones de tal forma que le tome el menor tiempo, a situaciones ms complejas como las anteriormente mencionadas.

14

Bibliografa

*Investigacin de operaciones (Hamdy A. Taha) 7, edicin PEARSON EDUCACION, Mxico 2004 http://books.google.com.mx/books?id=3oHztjMSuL8C&pg=PA547&dq=programacion+dinamica& hl=es&ei=fQl2TuL4FKiLsgLtztSLBQ&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDY Q6AEwAg#v=onepage&q&f=false *Mtodos cuantitativos de organizacin industrial (Juan B. Fonollosa- Jos M. Salln) http://books.google.com.mx/books?id=s17qyqho9NIC&pg=PA99&dq=programacion+dinamica&hl =es&ei=fQl2TuL4FKiLsgLtztSLBQ&sa=X&oi=book_result&ct=result&resnum=2&ved=0CC8Q6 AEwAQ#v=onepage&q&f=true *Programacion Matematica para la Economia y la Empresa(Begoa Font Belaire) http://books.google.com.mx/books?id=LD0_Jp3PQEC&pg=PA160&dq=programacion+dinamica&hl=es&ei=fQl2TuL4FKiLsgLtztSLBQ&sa= X&oi=book_result&ct=result&resnum=1&ved=0CCoQ6AEwAA# *Fundamentos de investigacin de operaciones para administracin (Juan Manuel Izar Landeta) Editorial Universitaria Potosina (http://books.google.com.mx/books?id=piS59lBXhi0C&pg=PA179&dq=investigacion+de+operaci ones+programacion+dinamica&hl=es&ei=a4JzTpO9HqaHsALd7cGLBQ&sa=X&oi=book_result& ct=result&resnum=1&ved=0CCoQ6AEwAA#v=onepage&q&f=false) *Programacin dinmica - Document Transcript(NOTAS DE CLASE: PROGRAMACIN DINMICA COMPENDIADOS POR Alejandro Domnguez Universidad Politcnica de Cartagena, Murcia, Espaa BASADOS EN EL LIBRO DE Hamdy A. Taha Noviembre de 2000) http://www.slideshare.net/Alexdfar/programacin-dinmica-5688350 *Programacin dinmica por Andrs Ramos y Mariano Ventosa Universidad Pontificia Comillas Madrid 1996 http://www.doi.icai.upcomillas.es/simio/transpa/t_dp_ar.pdf

*http://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1mica(Wikipedia.org 16/Sep./2011)

consultado

*http://www.eumed.net/libros/2006c/216/1j.htm (Biblioteca virtual eumed.net 15/Sep./2011) *http://www.mitecnologico.com/Main/CaracteristicasProblemasProgramacionDinamica(Mi tecnolgico.com consultado el 16/09/2011) 15