











Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documento sobre la implementación de la programación Dinámica
Tipo: Resúmenes
1 / 19
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!












Programación Dinámica El término de Programación Dinámica fue usado originalmente en los 40 ’s para describir el proceso de resolver problemas donde se necesita encontrar las mejores decisiones una tras otra.
Programación Dinámica La Programación Dinámica (PD) determina la solución óptima de un problema de “n” variables descomponiéndola en “n” etapas, con cada etapa incluyendo un subproblema de una sola variable. La principal contribución de la PD es el principio de optimalidad, el cual establece que una política óptima consiste de subpolíticas óptimas, un marco de referencia para descomponer el problema en etapas. La mayor parte de las veces, la Programación Dinámica obtiene soluciones con un avance en reversa, desde el final de un problema hacia el principio con lo que un problema grande y engorroso se convierte en una serie de problemas más pequeños y más tratables.
Programación Dinámica Es una técnica algorítmica la cual está basada usualmente en una fórmula recurrente y uno (o varios) estado(s) inicial(es). Una sub-solución del problema es construida de las halladas previamente. Esta técnica se aplica sobre problemas que a simple vista necesitan un alto coste computacional (posiblemente exponencial). La Programación Dinámica utiliza un enfoque ascendente (bottom-up) para obtener la solución, primero calcula las soluciones óptimas a problemas de tamaño pequeño. Utilizando dichas soluciones encuentra soluciones a problemas de mayor tamaño.
Elementos de la Programación Dinámica. Los siguientes cuatro elementos conforman la resolución de un problema mediante Programación Dinámica:
Enunciado del principio de Bellman. “En una secuencia de decisiones óptima que resuelve un problema toda subsecuencia ha de ser también óptima” Hemos de observar que aunque este principio parece evidente no siempre es aplicable y por tanto es necesario verificar que se cumple para el problema en cuestión. Un ejemplo claro para el que no se verifica este principio aparece al tratar de encontrar el camino de coste máximo entre dos vértices de un grafo ponderado.
Características de los problemas de Programación Dinámica.
Para resolver un problema de programación dinámica debemos al menos cumplir con:
Problemas que se resuelven con Programación Dinámica a) Cálculo de los números de Fibonacci. b) Cálculo de los Coeficientes Binomiales. c) Cálculo de Intereses Bancarios. d) Viaje más barato por río. e) Problema del cambio de moneda. f) Algoritmos de Dijkstra, Floyd, Warshall. g) Problema del viajante de comercio. h) Problema de la mochila. i) Horarios de Trenes. j) Multiplicación Óptima de Matrices. k) Problema de la Diligencia. l) El problema de planificación en una fábrica de automóviles.
Cálculo de la sucesión de Fibonacci. En esta, la sucesión se puede expresar de manera recursiva. Pero con esto perdería mucho potencial dado que la forma recursiva repite cálculos innecesariamente, la estructura matemática es la siguiente: En esta se tienen tres estados posibles:
Como puede verse: ➢ Se basa en una tabla de resultados. ➢ Se tiene una sucesión de etapas. ➢ Cada etapa tiene un estado asociado. ➢ A partir de ese estado se toma una decisión la cual afectará o no al siguiente estado. ➢ Se evita hacer cálculos innecesarios (recursividad).
El problema de la mochila por PD En una mochila de capacidad 8 lbs se desea saber qué elementos ingresar para maximizar la ganancia y que no sobrepase el peso soportado por la mochila $2. 1 lbs $5. 2 lbs $6. 4 lbs $10. 5 lbs $13. 7 lbs $16. 8 lbs
El problema de la mochila por PD ETAPA Artículo Peso(lb) Beneficio ($) 0 1 2 3 4 5 6 7 8 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 A A A A A A A A 0 2 5 7 7 7 7 7 7 A B A + B A + B A + B A + B A + B A + B 0 2 5 7 7 8 11 13 13 A B A + B A + B A + C B + C A + B + C A + B + C 0 2 5 7 7 10 12 15 17 A B A + B A + B D A + D B + D A + B + D 0 2 5 7 7 10 12 15 17 A B A + B A + B D A + D B + D A + B + D 0 2 5 7 7 10 12 15 17 A B A + B A + B D A + D B + D A + B + D 5 E 7 13 6 F 8 16 3 C 4 6 4 D 5 10 GANANCIA EN PESO 1 A 1 2 2 B 2 5 Estado inicial