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

Presentación23
Presentación23Presentación23
Presentación23onekiubi
 
Vivir con los padres o independizarse
Vivir con los padres o independizarseVivir con los padres o independizarse
Vivir con los padres o independizarseraskolnikof76
 
Plantilla po werpoint
Plantilla po werpointPlantilla po werpoint
Plantilla po werpointraskolnikof76
 
Videojuegos como me todo de enseñanza
Videojuegos como me todo de  enseñanzaVideojuegos como me todo de  enseñanza
Videojuegos como me todo de enseñanzahenrysl
 
Software para la gestion de proyectos
Software para la gestion de proyectosSoftware para la gestion de proyectos
Software para la gestion de proyectosesapitos
 
Inclusión en las tic en la escuela1
Inclusión en las tic en la escuela1Inclusión en las tic en la escuela1
Inclusión en las tic en la escuela1estherblanca
 
Webques solano
Webques solanoWebques solano
Webques solanosolano1975
 
Software para la gestion de proyectos
Software para la gestion de proyectosSoftware para la gestion de proyectos
Software para la gestion de proyectosesapitos
 
Ley 776 de 2002
Ley 776 de 2002Ley 776 de 2002
Ley 776 de 2002zacamuro
 
Borrador Presentacion FMAM
Borrador Presentacion FMAMBorrador Presentacion FMAM
Borrador Presentacion FMAMMercefig65
 
La tic en la educacion, 2 (2)
La tic en la educacion, 2 (2)La tic en la educacion, 2 (2)
La tic en la educacion, 2 (2)celeste123
 
Networking Empresarial Emprendever
Networking Empresarial EmprendeverNetworking Empresarial Emprendever
Networking Empresarial EmprendeverEmprendever
 

Destacado (20)

Leche unidad 3
Leche unidad 3Leche unidad 3
Leche unidad 3
 
Castellano
CastellanoCastellano
Castellano
 
Diana 9e
Diana 9eDiana 9e
Diana 9e
 
Comics
Comics Comics
Comics
 
Parque natural de pagoeta
Parque natural de pagoetaParque natural de pagoeta
Parque natural de pagoeta
 
Presentación23
Presentación23Presentación23
Presentación23
 
Vivir con los padres o independizarse
Vivir con los padres o independizarseVivir con los padres o independizarse
Vivir con los padres o independizarse
 
Descripcion
DescripcionDescripcion
Descripcion
 
Caballos!!Que Belleza
Caballos!!Que BellezaCaballos!!Que Belleza
Caballos!!Que Belleza
 
Plantilla po werpoint
Plantilla po werpointPlantilla po werpoint
Plantilla po werpoint
 
Videojuegos como me todo de enseñanza
Videojuegos como me todo de  enseñanzaVideojuegos como me todo de  enseñanza
Videojuegos como me todo de enseñanza
 
Software para la gestion de proyectos
Software para la gestion de proyectosSoftware para la gestion de proyectos
Software para la gestion de proyectos
 
Inclusión en las tic en la escuela1
Inclusión en las tic en la escuela1Inclusión en las tic en la escuela1
Inclusión en las tic en la escuela1
 
Webques solano
Webques solanoWebques solano
Webques solano
 
Caso Boletin 181
Caso Boletin 181Caso Boletin 181
Caso Boletin 181
 
Software para la gestion de proyectos
Software para la gestion de proyectosSoftware para la gestion de proyectos
Software para la gestion de proyectos
 
Ley 776 de 2002
Ley 776 de 2002Ley 776 de 2002
Ley 776 de 2002
 
Borrador Presentacion FMAM
Borrador Presentacion FMAMBorrador Presentacion FMAM
Borrador Presentacion FMAM
 
La tic en la educacion, 2 (2)
La tic en la educacion, 2 (2)La tic en la educacion, 2 (2)
La tic en la educacion, 2 (2)
 
Networking Empresarial Emprendever
Networking Empresarial EmprendeverNetworking Empresarial Emprendever
Networking Empresarial Emprendever
 

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”...