SlideShare una empresa de Scribd logo
ALGORITMOS COMPUTACIONALESCaminos mas largos: Programación dinámica.
El problema del camino más largo es, dado un grafo, encontrar un camino simple de longitud máxima. A diferencia del problema del camino más corto, que se puede solucionar en tiempo polinómico en grafos sin ciclos negativos, este problema es NP-completo, lo que quiere decir que la solución óptima no se puede encontrar en tiempo polinómico a menos que P=NP.El problema del camino más largo tiene una solución de programación dinámicaeficiente en un grafo dirigido acíclico utilizando selección topológica. También se puede solucionar en un grafo dirigido acíclico invirtiendo los pesos y utilizando el algoritmo de Bellman-Ford (este enfoque no funciona en general porque crea ciclos de peso negativo).La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestosy subestructuras óptimasUna subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para encontrar la solución óptima del problema en su conjunto
E l principio de optimalidad de Bellmanque dicta que «dada una secuencia óptima de decisiones, toda subsecuencia de ella es, a su vez, óptima». En este caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que la combinación de ellas seguirá siendo óptima, pero será entonces necesario explorar muchas secuencias de decisiones para dar con la correcta, siendo aquí donde interviene la programación dinámica.Contemplar un problema como una secuencia de decisiones equivale a dividirlo en subproblemas más pequeños y por lo tanto más fáciles de resolver como hacemos en Divide y Vencerás, técnica similar a la de programación dinámica. La programación dinámica se aplica cuando la subdivisión de un problema conduce a:Una enorme cantidad de subproblemas.Subproblemas cuyas soluciones parciales se solapan.Grupos de subproblemas de muy distinta complejidad.
•Métodos ascendentes (programación dinámica)Resolvemos primero los problemas pequeños (guardando las soluciones en una tabla). Después los vamos combinando para resolver los problemas más grandes.Partiendo de los problemas pequeños avanzamos hacia los más grandes.Una descomposición es correcta si cumple el Principio de optimalidad de Bellman:La solución óptima de un problema se obtiene combinando soluciones óptimas de subproblemasO bien: cualquier subsecuencia de una secuencia óptima debe ser, a su vez, una secuencia óptima.
Pasos para aplicar programación dinámica:1)Obtener una descomposición recurrente del problema:- Ecuación recurrente.- Casos base.2) Definir la estrategia de aplicación de la fórmula:- Tablas utilizadas por el algoritmo.- Orden y forma de rellenarlas.3) Especificar cómo se recompone la solución final a partir de los valores de las tablas.Punto clave: obtener la descomposición recurrente.Requiere mucha “creatividad”...
Algoritmos computacionales

Más contenido relacionado

PDF
1.3 Introduccion a los Algoritmos
PPT
Civilizaciones
PPTX
Primera presentation1
PPT
Castellano
PPT
Caso Clinico Terapeutico
PPTX
Internet en el Siglo XXI
XLSX
Diana 9e
PDF
CAPACITACIÓN PARA EMPRENDEDORES
1.3 Introduccion a los Algoritmos
Civilizaciones
Primera presentation1
Castellano
Caso Clinico Terapeutico
Internet en el Siglo XXI
Diana 9e
CAPACITACIÓN PARA EMPRENDEDORES

Destacado (20)

DOCX
Leche unidad 3
PPT
Castellano
XLSX
Diana 9e
PPT
Comics
PPTX
Parque natural de pagoeta
PPSX
Presentación23
PDF
Vivir con los padres o independizarse
DOCX
Descripcion
PPS
Caballos!!Que Belleza
PPT
Plantilla po werpoint
PPTX
Videojuegos como me todo de enseñanza
PPT
Software para la gestion de proyectos
PPT
Inclusión en las tic en la escuela1
DOC
Webques solano
PPTX
Caso Boletin 181
PPT
Software para la gestion de proyectos
DOC
Ley 776 de 2002
PDF
Borrador Presentacion FMAM
PPT
La tic en la educacion, 2 (2)
PDF
Networking Empresarial Emprendever
Leche unidad 3
Castellano
Diana 9e
Comics
Parque natural de pagoeta
Presentación23
Vivir con los padres o independizarse
Descripcion
Caballos!!Que Belleza
Plantilla po werpoint
Videojuegos como me todo de enseñanza
Software para la gestion de proyectos
Inclusión en las tic en la escuela1
Webques solano
Caso Boletin 181
Software para la gestion de proyectos
Ley 776 de 2002
Borrador Presentacion FMAM
La tic en la educacion, 2 (2)
Networking Empresarial Emprendever
Publicidad

Similar a Algoritmos computacionales (20)

PPTX
Programación Dinámica
PDF
Programacion dinamica
PPTX
Unidad 3. Programación dinámica
PPTX
Unidad 3. Programación dinámica
PPTX
Programacion dinamica jesus plaza
PPTX
Pro no num Prog dinamica
PDF
PROGRAMACION DINAMICA
PDF
Programacion dinamica final
PPTX
Programación dinámica
PPTX
Programación dinámica
PPTX
Programacion d inamica
PDF
6 dynamic programming
PDF
memoria de trabajos y de unidades de diseñoa de cada unidad de desempeño de t...
PDF
Complejidad de problemas
PPTX
Programacionnolineal
PPTX
Programación Dinámica
PPTX
Presentacion programacion dinamica
PPTX
COSTOS II. Carrera de Ciencias Económicas del último año UNT
PDF
Complejidad Computacional o Algoritmica
PPTX
Programacion no lineal
Programación Dinámica
Programacion dinamica
Unidad 3. Programación dinámica
Unidad 3. Programación dinámica
Programacion dinamica jesus plaza
Pro no num Prog dinamica
PROGRAMACION DINAMICA
Programacion dinamica final
Programación dinámica
Programación dinámica
Programacion d inamica
6 dynamic programming
memoria de trabajos y de unidades de diseñoa de cada unidad de desempeño de t...
Complejidad de problemas
Programacionnolineal
Programación Dinámica
Presentacion programacion dinamica
COSTOS II. Carrera de Ciencias Económicas del último año UNT
Complejidad Computacional o Algoritmica
Programacion no lineal
Publicidad

Algoritmos computacionales

  • 1. ALGORITMOS COMPUTACIONALESCaminos mas largos: Programación dinámica.
  • 2. El problema del camino más largo es, dado un grafo, encontrar un camino simple de longitud máxima. A diferencia del problema del camino más corto, que se puede solucionar en tiempo polinómico en grafos sin ciclos negativos, este problema es NP-completo, lo que quiere decir que la solución óptima no se puede encontrar en tiempo polinómico a menos que P=NP.El problema del camino más largo tiene una solución de programación dinámicaeficiente en un grafo dirigido acíclico utilizando selección topológica. También se puede solucionar en un grafo dirigido acíclico invirtiendo los pesos y utilizando el algoritmo de Bellman-Ford (este enfoque no funciona en general porque crea ciclos de peso negativo).La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestosy subestructuras óptimasUna subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para encontrar la solución óptima del problema en su conjunto
  • 3. E l principio de optimalidad de Bellmanque dicta que «dada una secuencia óptima de decisiones, toda subsecuencia de ella es, a su vez, óptima». En este caso sigue siendo posible el ir tomando decisiones elementales, en la confianza de que la combinación de ellas seguirá siendo óptima, pero será entonces necesario explorar muchas secuencias de decisiones para dar con la correcta, siendo aquí donde interviene la programación dinámica.Contemplar un problema como una secuencia de decisiones equivale a dividirlo en subproblemas más pequeños y por lo tanto más fáciles de resolver como hacemos en Divide y Vencerás, técnica similar a la de programación dinámica. La programación dinámica se aplica cuando la subdivisión de un problema conduce a:Una enorme cantidad de subproblemas.Subproblemas cuyas soluciones parciales se solapan.Grupos de subproblemas de muy distinta complejidad.
  • 4. •Métodos ascendentes (programación dinámica)Resolvemos primero los problemas pequeños (guardando las soluciones en una tabla). Después los vamos combinando para resolver los problemas más grandes.Partiendo de los problemas pequeños avanzamos hacia los más grandes.Una descomposición es correcta si cumple el Principio de optimalidad de Bellman:La solución óptima de un problema se obtiene combinando soluciones óptimas de subproblemasO bien: cualquier subsecuencia de una secuencia óptima debe ser, a su vez, una secuencia óptima.
  • 5. Pasos para aplicar programación dinámica:1)Obtener una descomposición recurrente del problema:- Ecuación recurrente.- Casos base.2) Definir la estrategia de aplicación de la fórmula:- Tablas utilizadas por el algoritmo.- Orden y forma de rellenarlas.3) Especificar cómo se recompone la solución final a partir de los valores de las tablas.Punto clave: obtener la descomposición recurrente.Requiere mucha “creatividad”...