SlideShare una empresa de Scribd logo
1 de 6
ALGORITMOS COMPUTACIONALES Caminos 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 óptimas Una 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 subproblemas O 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

Destacado

Proyecto exposición final marihut darío gutierrez rave caldas
Proyecto exposición final  marihut  darío gutierrez rave   caldasProyecto exposición final  marihut  darío gutierrez rave   caldas
Proyecto exposición final marihut darío gutierrez rave caldasmarihutm
 
Vivir con los padres o independizarse
Vivir con los padres o independizarseVivir con los padres o independizarse
Vivir con los padres o independizarseraskolnikof76
 
Taller n1 diana garcia
Taller n1 diana garciaTaller n1 diana garcia
Taller n1 diana garciaNicolas Gomez
 
Evaluacion induccion sabiduria[1]
Evaluacion induccion sabiduria[1]Evaluacion induccion sabiduria[1]
Evaluacion induccion sabiduria[1]thalia fernanda
 
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007Responsabilidad Social Corporativa- Conferencia Voluntariado 2007
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007Alberto Borbon
 
Contexto en la_logistica_en_colombia[1][1]
Contexto en la_logistica_en_colombia[1][1]Contexto en la_logistica_en_colombia[1][1]
Contexto en la_logistica_en_colombia[1][1]thalia fernanda
 
Presencia en la Internet
Presencia en la InternetPresencia en la Internet
Presencia en la InternetHugo Barrera
 
Bloque 0 PACIE
Bloque 0 PACIEBloque 0 PACIE
Bloque 0 PACIE2067321
 
bibliotecologia en colombia
bibliotecologia en colombia bibliotecologia en colombia
bibliotecologia en colombia Wilson Pulido
 
Aprendizaje social diapo
Aprendizaje social diapoAprendizaje social diapo
Aprendizaje social diapoceleste123
 
Ley 776 de 2002
Ley 776 de 2002Ley 776 de 2002
Ley 776 de 2002zacamuro
 

Destacado (20)

Palabras
PalabrasPalabras
Palabras
 
Proyecto exposición final marihut darío gutierrez rave caldas
Proyecto exposición final  marihut  darío gutierrez rave   caldasProyecto exposición final  marihut  darío gutierrez rave   caldas
Proyecto exposición final marihut darío gutierrez rave caldas
 
Trabajamos la autoestima
Trabajamos la autoestimaTrabajamos la autoestima
Trabajamos la autoestima
 
Vivir con los padres o independizarse
Vivir con los padres o independizarseVivir con los padres o independizarse
Vivir con los padres o independizarse
 
Taller n1 diana garcia
Taller n1 diana garciaTaller n1 diana garcia
Taller n1 diana garcia
 
Danwver pineda
Danwver pinedaDanwver pineda
Danwver pineda
 
Evaluacion induccion sabiduria[1]
Evaluacion induccion sabiduria[1]Evaluacion induccion sabiduria[1]
Evaluacion induccion sabiduria[1]
 
Preguntas
PreguntasPreguntas
Preguntas
 
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007Responsabilidad Social Corporativa- Conferencia Voluntariado 2007
Responsabilidad Social Corporativa- Conferencia Voluntariado 2007
 
Maqueta[1]
Maqueta[1]Maqueta[1]
Maqueta[1]
 
Contexto en la_logistica_en_colombia[1][1]
Contexto en la_logistica_en_colombia[1][1]Contexto en la_logistica_en_colombia[1][1]
Contexto en la_logistica_en_colombia[1][1]
 
Inclusion
InclusionInclusion
Inclusion
 
Presencia en la Internet
Presencia en la InternetPresencia en la Internet
Presencia en la Internet
 
Bloque 0 PACIE
Bloque 0 PACIEBloque 0 PACIE
Bloque 0 PACIE
 
pres 1
pres 1pres 1
pres 1
 
bibliotecologia en colombia
bibliotecologia en colombia bibliotecologia en colombia
bibliotecologia en colombia
 
Aprendizaje social diapo
Aprendizaje social diapoAprendizaje social diapo
Aprendizaje social diapo
 
Presentac..
Presentac..Presentac..
Presentac..
 
Ley 776 de 2002
Ley 776 de 2002Ley 776 de 2002
Ley 776 de 2002
 
Descrpcion
DescrpcionDescrpcion
Descrpcion
 

Similar a Algoritmos computacionales

Similar a Algoritmos computacionales (20)

Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 
Unidad 3. Programación dinámica
Unidad 3. Programación dinámicaUnidad 3. Programación dinámica
Unidad 3. Programación dinámica
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 
PROGRAMACION DINAMICA
PROGRAMACION DINAMICAPROGRAMACION DINAMICA
PROGRAMACION DINAMICA
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica final
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Programacion d inamica
Programacion d inamicaProgramacion d inamica
Programacion d inamica
 
6 dynamic programming
6 dynamic programming6 dynamic programming
6 dynamic programming
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Complejidad de problemas
Complejidad de problemasComplejidad de problemas
Complejidad de problemas
 
Programacionnolineal
Programacionnolineal Programacionnolineal
Programacionnolineal
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Presentacion programacion dinamica
Presentacion programacion dinamicaPresentacion programacion dinamica
Presentacion programacion dinamica
 
Complejidad Computacional o Algoritmica
Complejidad Computacional o AlgoritmicaComplejidad Computacional o Algoritmica
Complejidad Computacional o Algoritmica
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 

Algoritmos computacionales

  • 1. ALGORITMOS COMPUTACIONALES Caminos 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 óptimas Una 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 subproblemas O 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”...