SlideShare una empresa de Scribd logo
PROGRAMACION DIMANICA
Estrategias de Diseño
Daniel Gomez Jaramillo.
Por:
CONTENIDO
1. Introducción
2. Descripción de la programación dinámica
I. Ventajas y desventajas.
II. Metodología
III. Aplicaciones
3. Conclusiones
4. Bibliografía.
INTRODUCCIÓN DE LA ESTRATEGIA DE DISEÑO
La programación dinámica a evolucionado hasta convertirse en un importante paradigma del diseño
de algoritmos. Fue acuñado por Richard Bellman para describir un tipo de problema de control
optimo. Originalmente el nombre describía mas el problema mas que la técnica para resolverlo.
La programación dinámica nos permite resolver problemas complejos caracterizados por decisiones
que se deben tomar en forma secuencial y las cuales influyen en las decisiones de estas secuencias.
Una característica importante de este método es que sustituye un calculo en tiempo
exponencial en tiempo polinomico.
DESCRIPCIÓN DEL MÉTODO
Características
Divide el
problema en
etapas
Es un método capaz de
resolver un problema
eficientemente
Resuelve los sub
problemas una sola
ves
El tiempo de
ejecución pude
mejorarse
substancialmente
DESCRIPCIÓN DEL MÉTODO
Una subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para
encontrar la solución óptima del problema en su conjunto.
En grandes líneas, el diseño de un algoritmo de Programación Dinámica consta de los siguientes
pasos:
1. Planteamiento de la solución como una sucesión de decisiones y verificación de que ésta cumple
el principio de óptimo.
2. Definición recursiva de la solución.
3. Cálculo del valor de la solución óptima mediante una tabla en donde se almacenan soluciones a
problemas parciales para reutilizar los cálculos.
4. Construcción de la solución óptima haciendo uso de la información contenida en la tabla anterior.
VENTAJAS Y DESVENTAJAS
VENTAJAS
-Eficaz para resolver problemas de gran
complejidad al dividirlo y secuenciarlo.
-Resuelve cada sub problema una sola vez.
-Los cálculos de cada etapa se organizan y se
guardan de manera eficiente, facilitando su
consulta para posteriores análisis.
DESVENTAJAS
-Si la red es muy grande se vuelve laborioso.
- No aplicable a todo tipo de problemas.
- Si hay un error en alguna tabla afecta a todo el problema.
METODOLOGIA DE LA PROGRAMACION DINAMICA
Problemas que se puede dividir
en problemas mas pequeños, y
esos a su vez en problemas mas
pequeños.
Se puede aplicar cuando
métodos mas especializados
fallan (al costo de la eficiencia).
¿Cuáles son los sub-problemas?
Es una técnica poderosa
para resolver tipos de
problemas en particular.
Se resuelve de abajo para arriba,
sub problemas-problema, “bottom-
up”.
Problema
Su-problema
básico básico básico
Sub problema
básico básico básico
Sub problema
básico básico básico
¿Cualquier problema usa
cualquier sub-problema?
SERIE DE FIBONACCI
fibonacci_1(n)= O(2^n)
1. Por recursividad dado un numero n sumando
(n-1)+(n-2)
f(6)=8
f(5)=5 f(4)=3
f(4)=3 f(3)=2
f(3)=2 f(2)=1
f(2)=1 f(1)=1
f(3)=2 f(2)=1
f(2)=1 f(1)=1
SERIE DE FIBONACCI
2. Construir un vector que permita ir almacenando los
cálculos realizados anteriormente hasta llegar al
número
fibonacci_2(n) = O(n)
0 1 2 3 4 5 6
N i arreglo(i-1) arreglo(i-2)
6 2 arreglo(1) arreglo(0)
3 arreglo(2) arreglo(1)
4 arreglo(3) arreglo(2)
5 arreglo(4) arreglo(3)
6 arreglo(5) arreglo(4)
0 1 1 2 3 5 8
SERIE DE FIBONACCI
3. Eliminar el vector y quedarnos solamente con
dos variables para almacenar los dos últimos
términos N i x y suma
6 1 1
2 2 1 2
3 3 2 3
4 5 3 5
5 8 5 8
GRAFO DE COSTOS ENTRE CIUDADES DEL ECUADOR
Azuay
Cañar
Guayas
Chimborazo
Los Ríos
Bolívar
Pichincha
Cotopaxi
8
5
9
2
3
1
10
4
2
• Azuay – Cañar – Guayas - Los Ríos - Pichincha
15
• Azuay – Cañar – Bolívar - Cotopaxi -Pichincha
17
• Azuay – Cañar - Chimborazo – Cotopaxi - Pichincha16
CONCLUSIONES FINALES
• La Programación Dinámica es para
cierto tipo de problemas, aquellos
que pueden seguirse dividiendo en
sub-problemas mas pequeños.
• En la Programación Dinámica
resuelve principalmente los
problemas mas pequeños y
simples, donde los guarda en
una tabla, un arreglo, etc.
Proc1
SubP1
SubP2
SubP3
SubP1.1
SubP1.2
SubP2.1
SubP2.1
SubP3.1
SubP3.1
• Este se aplica cuando métodos
mas especializados FALLAN,
pero puede llegar a ser MENOS
eficiente.
 Problema de la Serie de Fibonacci
 Camino del coste mínimo entre dos nodos de
un grafo.
REFERENCIAS BIBLIOGRÁFICAS
 S. Dasgupta, C.H. Papadimitriou, U. V. Vazirani, Algorithms, McGraw-Hill, Donnelley Crawfordsville
IN, Julio 2006.
 Baase, S. Van Gelder, A.(2002). Algoritmos Computacionales. Mexico: PEARSON EDUCATION
 Arbones, E(1989). Programacion de Recursos. Barcelona, España: marcombo
Estructura de Datos y Análisis de Algoritmos
¡¡ GRACIAS !!

Más contenido relacionado

La actualidad más candente

El problema de la ruta mas corta
El problema de la ruta mas corta El problema de la ruta mas corta
El problema de la ruta mas corta Luis Fajardo
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal
ADRIANA NIETO
 
Modelos De Programacion Entera
Modelos De Programacion EnteraModelos De Programacion Entera
Modelos De Programacion EnteraCris Tenorio
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
Daniel Segundo Araujo Alcalde
 
13 problema de redes
13 problema de redes13 problema de redes
13 problema de redes
Karen Ordoñez
 
Problemas Resueltos de Teoría de Colas
Problemas Resueltos de Teoría de ColasProblemas Resueltos de Teoría de Colas
Problemas Resueltos de Teoría de Colas
Carlos Farley Zamudio Melo
 
Investigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoInvestigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoMari Cruz
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
Xavi2701
 
Metodología De Investigación de Operaciones
Metodología De Investigación de OperacionesMetodología De Investigación de Operaciones
Metodología De Investigación de OperacionesXSilvana XMonasteriosx
 
Líneas de espera (1) ejercicio
Líneas de espera (1) ejercicioLíneas de espera (1) ejercicio
Líneas de espera (1) ejercicioMachado Mauricio
 
5.3 árbol de expansión mínima
5.3 árbol de expansión mínima5.3 árbol de expansión mínima
5.3 árbol de expansión mínima
ADRIANA NIETO
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Juan Carlos Martinez Garcia
 
5 91-1-pb (1)
5 91-1-pb (1)5 91-1-pb (1)
5 91-1-pb (1)
Bertha Canaviri
 
Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesSergio Hernández Ortega
 
Modelo de transporte
Modelo de transporteModelo de transporte
Modelo de transporte
Carlos Solis Herrera
 
Modelo de transporte costo minimo
Modelo de transporte costo minimoModelo de transporte costo minimo
Modelo de transporte costo minimo
alvarez1285
 
61178886 i-o-ii-principal
61178886 i-o-ii-principal61178886 i-o-ii-principal
61178886 i-o-ii-principal
daniel malpica
 

La actualidad más candente (20)

El problema de la ruta mas corta
El problema de la ruta mas corta El problema de la ruta mas corta
El problema de la ruta mas corta
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal
 
Modelos De Programacion Entera
Modelos De Programacion EnteraModelos De Programacion Entera
Modelos De Programacion Entera
 
Problema de la ruta mas corta
Problema de la ruta mas cortaProblema de la ruta mas corta
Problema de la ruta mas corta
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
 
13 problema de redes
13 problema de redes13 problema de redes
13 problema de redes
 
Problemas Resueltos de Teoría de Colas
Problemas Resueltos de Teoría de ColasProblemas Resueltos de Teoría de Colas
Problemas Resueltos de Teoría de Colas
 
Método gráfico
Método gráficoMétodo gráfico
Método gráfico
 
Investigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimoInvestigacion de Operaciones-Coste mínimo
Investigacion de Operaciones-Coste mínimo
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Metodología De Investigación de Operaciones
Metodología De Investigación de OperacionesMetodología De Investigación de Operaciones
Metodología De Investigación de Operaciones
 
Simulacion discreta
Simulacion discretaSimulacion discreta
Simulacion discreta
 
Líneas de espera (1) ejercicio
Líneas de espera (1) ejercicioLíneas de espera (1) ejercicio
Líneas de espera (1) ejercicio
 
5.3 árbol de expansión mínima
5.3 árbol de expansión mínima5.3 árbol de expansión mínima
5.3 árbol de expansión mínima
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
5 91-1-pb (1)
5 91-1-pb (1)5 91-1-pb (1)
5 91-1-pb (1)
 
Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de Operaciones
 
Modelo de transporte
Modelo de transporteModelo de transporte
Modelo de transporte
 
Modelo de transporte costo minimo
Modelo de transporte costo minimoModelo de transporte costo minimo
Modelo de transporte costo minimo
 
61178886 i-o-ii-principal
61178886 i-o-ii-principal61178886 i-o-ii-principal
61178886 i-o-ii-principal
 

Similar a Programación dinámica

Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
TonyMartinez425341
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
Jesus Plaza Aguilera
 
Trabajo programacion lineal
Trabajo  programacion  linealTrabajo  programacion  lineal
Trabajo programacion lineal
luis fernandez
 
Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmosSolucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos
heidiromero11
 
Programacion d inamica
Programacion d inamicaProgramacion d inamica
Programacion d inamica
Juanpablo1023
 
TECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMASTECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMAS
Fernando Solis
 
Introduccion a programacion lineal u de manizales
Introduccion a programacion lineal   u de manizalesIntroduccion a programacion lineal   u de manizales
Introduccion a programacion lineal u de manizales
'Rsn Sndvl
 
Librodeinvestigacion francisco-chediak
Librodeinvestigacion francisco-chediakLibrodeinvestigacion francisco-chediak
Librodeinvestigacion francisco-chediak
jhonn Fuentes
 
Programación lineal y pert. do
Programación lineal y pert. doProgramación lineal y pert. do
Programación lineal y pert. do
John Leyton
 
Herramientas basicas para_la_solucion_de_problemas_1 (1)
Herramientas basicas para_la_solucion_de_problemas_1 (1)Herramientas basicas para_la_solucion_de_problemas_1 (1)
Herramientas basicas para_la_solucion_de_problemas_1 (1)
Rigoberto Mondragon Cervera
 
Io 2da programacion lineal
Io 2da programacion linealIo 2da programacion lineal
Io 2da programacion lineal
Augusto Javes Sanchez
 
Diana010
Diana010Diana010
Diana010
dani t
 
Notas analisis algoritmos_vf
Notas analisis algoritmos_vfNotas analisis algoritmos_vf
Notas analisis algoritmos_vf
Fany Lopez
 
Problemas de programación lineal entera.pptx
Problemas de programación lineal entera.pptxProblemas de programación lineal entera.pptx
Problemas de programación lineal entera.pptx
JuarezGarciaOsvaldoJ
 
Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos
Mena75
 
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUnidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
fedealmiron02
 
Ingeniería-Sistemas
Ingeniería-SistemasIngeniería-Sistemas
Ingeniería-Sistemas
WendyFAguilar
 
Tutorial de-visual2
Tutorial de-visual2Tutorial de-visual2
Tutorial de-visual2
EliseoCitn
 
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008jedygt
 

Similar a Programación dinámica (20)

Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
Presentación Estrategia de Marketing Moderno Amarillo_df045adb26b92d02b63994...
 
Programacion dinamica jesus plaza
Programacion dinamica jesus plazaProgramacion dinamica jesus plaza
Programacion dinamica jesus plaza
 
Trabajo programacion lineal
Trabajo  programacion  linealTrabajo  programacion  lineal
Trabajo programacion lineal
 
Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmosSolucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos
 
Programacion d inamica
Programacion d inamicaProgramacion d inamica
Programacion d inamica
 
TECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMASTECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMAS
 
Introduccion a programacion lineal u de manizales
Introduccion a programacion lineal   u de manizalesIntroduccion a programacion lineal   u de manizales
Introduccion a programacion lineal u de manizales
 
Librodeinvestigacion francisco-chediak
Librodeinvestigacion francisco-chediakLibrodeinvestigacion francisco-chediak
Librodeinvestigacion francisco-chediak
 
Programación lineal y pert. do
Programación lineal y pert. doProgramación lineal y pert. do
Programación lineal y pert. do
 
Herramientas basicas para_la_solucion_de_problemas_1 (1)
Herramientas basicas para_la_solucion_de_problemas_1 (1)Herramientas basicas para_la_solucion_de_problemas_1 (1)
Herramientas basicas para_la_solucion_de_problemas_1 (1)
 
Io 2da programacion lineal
Io 2da programacion linealIo 2da programacion lineal
Io 2da programacion lineal
 
Diana010
Diana010Diana010
Diana010
 
Notas analisis algoritmos_vf
Notas analisis algoritmos_vfNotas analisis algoritmos_vf
Notas analisis algoritmos_vf
 
Problemas de programación lineal entera.pptx
Problemas de programación lineal entera.pptxProblemas de programación lineal entera.pptx
Problemas de programación lineal entera.pptx
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos Solucionar problemas por medio de algoritmos
Solucionar problemas por medio de algoritmos
 
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUnidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Unidad_II.pdf aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Ingeniería-Sistemas
Ingeniería-SistemasIngeniería-Sistemas
Ingeniería-Sistemas
 
Tutorial de-visual2
Tutorial de-visual2Tutorial de-visual2
Tutorial de-visual2
 
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008
Programacion lineal -_modelos_para_la_toma_de_decisiones_3_sep_2008
 

Más de Daniel Gomez Jaramillo

DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
Daniel Gomez Jaramillo
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Daniel Gomez Jaramillo
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Daniel Gomez Jaramillo
 
HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure. HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure.
Daniel Gomez Jaramillo
 
Internet y seguridad en redes
Internet y seguridad en redesInternet y seguridad en redes
Internet y seguridad en redes
Daniel Gomez Jaramillo
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
Daniel Gomez Jaramillo
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
Daniel Gomez Jaramillo
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
Daniel Gomez Jaramillo
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
Daniel Gomez Jaramillo
 
Reproductor de música DG Player
Reproductor de música DG PlayerReproductor de música DG Player
Reproductor de música DG Player
Daniel Gomez Jaramillo
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
Daniel Gomez Jaramillo
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
Daniel Gomez Jaramillo
 
Fuerzas de rozamiento
Fuerzas de rozamientoFuerzas de rozamiento
Fuerzas de rozamiento
Daniel Gomez Jaramillo
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
Daniel Gomez Jaramillo
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
Daniel Gomez Jaramillo
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
Daniel Gomez Jaramillo
 

Más de Daniel Gomez Jaramillo (16)

DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
 
HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure. HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure.
 
Internet y seguridad en redes
Internet y seguridad en redesInternet y seguridad en redes
Internet y seguridad en redes
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Reproductor de música DG Player
Reproductor de música DG PlayerReproductor de música DG Player
Reproductor de música DG Player
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Fuerzas de rozamiento
Fuerzas de rozamientoFuerzas de rozamiento
Fuerzas de rozamiento
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 

Último

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 

Último (6)

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 

Programación dinámica

  • 1. PROGRAMACION DIMANICA Estrategias de Diseño Daniel Gomez Jaramillo. Por:
  • 2. CONTENIDO 1. Introducción 2. Descripción de la programación dinámica I. Ventajas y desventajas. II. Metodología III. Aplicaciones 3. Conclusiones 4. Bibliografía.
  • 3. INTRODUCCIÓN DE LA ESTRATEGIA DE DISEÑO La programación dinámica a evolucionado hasta convertirse en un importante paradigma del diseño de algoritmos. Fue acuñado por Richard Bellman para describir un tipo de problema de control optimo. Originalmente el nombre describía mas el problema mas que la técnica para resolverlo. La programación dinámica nos permite resolver problemas complejos caracterizados por decisiones que se deben tomar en forma secuencial y las cuales influyen en las decisiones de estas secuencias. Una característica importante de este método es que sustituye un calculo en tiempo exponencial en tiempo polinomico.
  • 4. DESCRIPCIÓN DEL MÉTODO Características Divide el problema en etapas Es un método capaz de resolver un problema eficientemente Resuelve los sub problemas una sola ves El tiempo de ejecución pude mejorarse substancialmente
  • 5. DESCRIPCIÓN DEL MÉTODO Una subestructura óptima significa que se pueden usar soluciones óptimas de subproblemas para encontrar la solución óptima del problema en su conjunto. En grandes líneas, el diseño de un algoritmo de Programación Dinámica consta de los siguientes pasos: 1. Planteamiento de la solución como una sucesión de decisiones y verificación de que ésta cumple el principio de óptimo. 2. Definición recursiva de la solución. 3. Cálculo del valor de la solución óptima mediante una tabla en donde se almacenan soluciones a problemas parciales para reutilizar los cálculos. 4. Construcción de la solución óptima haciendo uso de la información contenida en la tabla anterior.
  • 6. VENTAJAS Y DESVENTAJAS VENTAJAS -Eficaz para resolver problemas de gran complejidad al dividirlo y secuenciarlo. -Resuelve cada sub problema una sola vez. -Los cálculos de cada etapa se organizan y se guardan de manera eficiente, facilitando su consulta para posteriores análisis. DESVENTAJAS -Si la red es muy grande se vuelve laborioso. - No aplicable a todo tipo de problemas. - Si hay un error en alguna tabla afecta a todo el problema.
  • 7. METODOLOGIA DE LA PROGRAMACION DINAMICA Problemas que se puede dividir en problemas mas pequeños, y esos a su vez en problemas mas pequeños. Se puede aplicar cuando métodos mas especializados fallan (al costo de la eficiencia). ¿Cuáles son los sub-problemas? Es una técnica poderosa para resolver tipos de problemas en particular. Se resuelve de abajo para arriba, sub problemas-problema, “bottom- up”. Problema Su-problema básico básico básico Sub problema básico básico básico Sub problema básico básico básico ¿Cualquier problema usa cualquier sub-problema?
  • 8. SERIE DE FIBONACCI fibonacci_1(n)= O(2^n) 1. Por recursividad dado un numero n sumando (n-1)+(n-2) f(6)=8 f(5)=5 f(4)=3 f(4)=3 f(3)=2 f(3)=2 f(2)=1 f(2)=1 f(1)=1 f(3)=2 f(2)=1 f(2)=1 f(1)=1
  • 9. SERIE DE FIBONACCI 2. Construir un vector que permita ir almacenando los cálculos realizados anteriormente hasta llegar al número fibonacci_2(n) = O(n) 0 1 2 3 4 5 6 N i arreglo(i-1) arreglo(i-2) 6 2 arreglo(1) arreglo(0) 3 arreglo(2) arreglo(1) 4 arreglo(3) arreglo(2) 5 arreglo(4) arreglo(3) 6 arreglo(5) arreglo(4) 0 1 1 2 3 5 8
  • 10. SERIE DE FIBONACCI 3. Eliminar el vector y quedarnos solamente con dos variables para almacenar los dos últimos términos N i x y suma 6 1 1 2 2 1 2 3 3 2 3 4 5 3 5 5 8 5 8
  • 11. GRAFO DE COSTOS ENTRE CIUDADES DEL ECUADOR Azuay Cañar Guayas Chimborazo Los Ríos Bolívar Pichincha Cotopaxi 8 5 9 2 3 1 10 4 2 • Azuay – Cañar – Guayas - Los Ríos - Pichincha 15 • Azuay – Cañar – Bolívar - Cotopaxi -Pichincha 17 • Azuay – Cañar - Chimborazo – Cotopaxi - Pichincha16
  • 12. CONCLUSIONES FINALES • La Programación Dinámica es para cierto tipo de problemas, aquellos que pueden seguirse dividiendo en sub-problemas mas pequeños. • En la Programación Dinámica resuelve principalmente los problemas mas pequeños y simples, donde los guarda en una tabla, un arreglo, etc. Proc1 SubP1 SubP2 SubP3 SubP1.1 SubP1.2 SubP2.1 SubP2.1 SubP3.1 SubP3.1 • Este se aplica cuando métodos mas especializados FALLAN, pero puede llegar a ser MENOS eficiente.  Problema de la Serie de Fibonacci  Camino del coste mínimo entre dos nodos de un grafo.
  • 13. REFERENCIAS BIBLIOGRÁFICAS  S. Dasgupta, C.H. Papadimitriou, U. V. Vazirani, Algorithms, McGraw-Hill, Donnelley Crawfordsville IN, Julio 2006.  Baase, S. Van Gelder, A.(2002). Algoritmos Computacionales. Mexico: PEARSON EDUCATION  Arbones, E(1989). Programacion de Recursos. Barcelona, España: marcombo
  • 14. Estructura de Datos y Análisis de Algoritmos ¡¡ GRACIAS !!

Notas del editor

  1. En el modo Presentación con diapositivas, haga clic en las flechas para visitar los vínculos.