SlideShare una empresa de Scribd logo
1 de 32
Computabilidad y Complejidad de Algoritmos
Programación Dinámica
Preparado por:
Solineth Batista
Maycol Requenez
Existe una serie de problemas cuyas soluciones pueden ser
expresadas recursivamente en términos matemáticos, y
posiblemente la manera más natural de resolverlos
es
mediante un algoritmo recursivo. Sin embargo, el tiempo
de ejecución de la solución recursiva, normalmente de orden
exponencial y por tanto impracticable, puede mejorarse
substancialmente mediante la Programación Dinámica.
En el diseño Divide y Vencerás para resolver un problema lo
dividimos en subproblemas independientes, los cuales se
resuelven de manera recursiva para combinar finalmente
las soluciones y así resolver el problema original. El
inconveniente se
presenta cuando los
subproblemas
obtenidos no son independientes sino que existe
solapamiento entre ellos; entonces es cuando una solución
recursiva no resulta eficiente por la repetición de cálculos
que conlleva.
En estos casos es cuando la Programación Dinámica nos
puede ofrecer una solución aceptable. La eficiencia de esta
técnica consiste en resolver los subproblemas una sola vez,
guardando sus soluciones en una tabla para su futura
utilización. La Programación Dinámica no sólo tiene
sentido aplicarla por razones de eficiencia, sino porque
además presenta un método capaz de resolver de manera
eficiente problemas cuya solución ha sido abordada por otras
técnicas y ha fracasado.
Donde tiene mayor aplicación la Programación Dinámica es
en la resolución de problemas de optimización. En este tipo
de problemas se pueden presentar distintas soluciones, cada
una con un valor, y lo que se desea es encontrar la solución de
valor óptimo (máximo o mínimo).
La solución de problemas mediante esta técnica se basa en el
llamado principio de óptimo enunciado por Bellman en 1957
y que dice:
“En una secuencia de decisiones óptima toda subsecuencia ha
de ser también óptima”.
 Knapsack Problem (Problema de la Mochila)
 Algoritmo de Needleman–Wunsch
 El problema de la mochila (knapsack problem) consiste encontrar un

subconjunto de productos que echar en una mochila de modo de
maximizar el beneficio y no sobrepasar la capacidad de la mochila.
 Se puede resumir el problema de la siguiente forma:
maximizar
sujeto a
con xi

l
i k

l

bi xi

i k

pi xi

{0,1} , k

P
i l

 Donde l es la cantidad de objetos disponibles, bi es el beneficio que

ofrece el objeto i, pi es el peso del objeto i, xi nos indica si colocamos o
no el objeto i dentro de la mochila y P es el peso máximo que soporta la
mochila.
 Digamos que tenemos l objetos con pesos p1, …,pl y

beneficios b1, …,bl.
 Definimos A(i, j) como el valor máximo que puede ser
obtenido con los primeros i objetos pesando a lo más j.
 Note que:
 A(0, j) = 0 y A(i, 0) = 0 para cualquier i ≤ l y j ≤ P.
 Si pi > j entonces A(i, j) = A(i – 1, j).
 Si pi ≤ j entonces A(i, j) tiene dos opciones incluir o no

incluir el objeto i.
 Si no lo incluimos entonces tendrá un valor de A(i – 1, j).
 Si lo incluimos entonces tendrá un valor de A(i – 1, j – pi) + bi.
 Expresado formalmente tenemos la siguiente

definición recursiva.
0
A i, j

si i

0oj

A i 1, j

si pi

j

si pi

j

max A i 1, j , A i

j, j

p1

bi

0
 Ejemplo:
 Tenemos una caja que soporta 15 libras en la cual vamos

a colocar objetos para vender. Hay disponibles tres
objetos:
 Objeto #1 pesa 9 libras y se vende a $38
 Objeto #2 pesa 6 libras y se vende a $40

 Objeto #3 pesa 5 libras y se vende a $24

 ¿Cuál es la ganancia máxima que podemos obtener?
 Continuación ejemplo:
 La información recopilada del algoritmo se puede

resumir en la siguiente tabla:

0
p1 9 0
p2 6 0
p3 5 0

1
0
0
0

2
0
0
0

3
0
0
0

4
0
0
0

5
0
0
24

6
0
40
40

7
0
40
40

8
0
40
40

9
38
40
40

10
38
40
40

11
38
40
64

12
38
40
64

13
38
40
64

14
38
40
64

15
38
78
78
 Continuación ejemplo:
 La información recopilada del algoritmo se puede

resumir en la siguiente tabla:
0
p1 9 0
p2 6 0
p3 5 0

1
0
0
0

2
0
0
0

3
0
0
0

4
0
0
0

5
0
0
24

6
0
40
40

7
0
40
40

8
0
40
40

9
38
40
40

10
38
40
40

11
38
40
64

12
38
40
64

13
38
40
64

14
38
40
64

15
38
78
78
 Uno de los problemas de todos los días en Bioinformática

es la comparación o alineamiento de secuencias.
Necesitamos saber que tan similares son dos secuencias,
permitiendo que haya pequeñas diferencias ya sea de
reemplazo o de borrado entre una y otra.
 El algoritmo de Needleman-Wunsch sirve para realizar
alineamientos globales de dos secuencias.
 Fue propuesto por primera vez en 1970, por Saul
Needleman y Christian Wunsch.
 El algoritmo calcula puntajes de similitud global entre dos
secuencias.
 Ejemplo
 Consideremos el conjunto {A, G, C, T} sobre el cual

definimos dos cadenas s1 = GAATTCAGTTA y s2 =
GGATCGA.
 El objetivo del algoritmo es alinearlas de tal forma que
puedan identificarse huecos, inserciones o cambios en
los caracteres de las secuencias.
 Para el ejemplo un alineamiento es el siguiente:
s
 El algoritmo de Needleman-Wunsch busca generar

el alineamiento para lo cual coloca todas las
posibles combinaciones de las dos secuencias s1 y s2
más una fila y columna de ceros para la generación
de la recursividad, en una matriz M.
 Definiendo a n = |s1| y a m = |s2| entonces la matriz
M será de tamaño (m +1) (n + 1).
 Luego procedemos a rellenar la matriz M para lo cual

primero definimos una matriz S de semejanza de
caracteres.
 Si definimos Si;j como una función tal que devuelve la

similitud de los caracteres de la posición i de s1 y j de s2 y a
W como la penalización por hueco que en este caso es
simplemente 0, tendremos listo las funciones necesarias
para llenar la matriz M.
 Para proceder a rellenar M tendrán la siguiente ley de
formación:

Mi, j

 Donde:


Mi

1, j 1



Mi



M i, j

1, j

1

max M i

1, j 1

Si , j , M i , j

1

W , Mi

1, j

Si , j Indica la coincidencia o no coincidencia
de los caracteres de las secuencias.

W

Indica la suma en horizontal más la
penalización por hueco.

W

Indica la suma en vertical más la
penalización por hueco.

W
 El procedimiento siguiente es describir el patrón que

se dibuja desde el extremo inferior derecho de la
matriz M y se avanza a la izquierda o a la izquierda y
arriba tomando siempre el valor que le precedió al
construir M.
Dando el alineamiento:

G A A T T C A G T T A
|

|

| |

|

|

G G A ― T C ― G ― ― A

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Presentacion optimizacion CONDICIONES kkt
Presentacion optimizacion CONDICIONES kktPresentacion optimizacion CONDICIONES kkt
Presentacion optimizacion CONDICIONES kkt
 
Optimizacion
OptimizacionOptimizacion
Optimizacion
 
Avarap
AvarapAvarap
Avarap
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directo
 
Optimización sin restricciones
Optimización sin restriccionesOptimización sin restricciones
Optimización sin restricciones
 
Fundamentos Divide Y Venceras
Fundamentos Divide Y VencerasFundamentos Divide Y Venceras
Fundamentos Divide Y Venceras
 
Programación no lineal
Programación no linealProgramación no lineal
Programación no lineal
 
Optimizacion Diusty Mijares
Optimizacion Diusty MijaresOptimizacion Diusty Mijares
Optimizacion Diusty Mijares
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
Unmsm fisi - programación lineal - io1 cl03
Unmsm   fisi - programación lineal - io1 cl03Unmsm   fisi - programación lineal - io1 cl03
Unmsm fisi - programación lineal - io1 cl03
 
Optimizacion Osvelis Ruiz
Optimizacion Osvelis RuizOptimizacion Osvelis Ruiz
Optimizacion Osvelis Ruiz
 
Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Programacionnolineal
Programacionnolineal Programacionnolineal
Programacionnolineal
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
Las condiciones de kuhn tucker y lagrange
Las condiciones de kuhn tucker y lagrangeLas condiciones de kuhn tucker y lagrange
Las condiciones de kuhn tucker y lagrange
 
Calculo1
Calculo1Calculo1
Calculo1
 
Metodos de programación No lineal
Metodos de programación No linealMetodos de programación No lineal
Metodos de programación No lineal
 

Destacado

Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación DinámicaXavi2701
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica finalWalter Toledo
 
Ejemplo 2 de arborescencia de ruta mas corta1
Ejemplo 2 de arborescencia de ruta mas corta1Ejemplo 2 de arborescencia de ruta mas corta1
Ejemplo 2 de arborescencia de ruta mas corta1eduardo307
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamicaingyon
 
Ascenso a la Colina
Ascenso a la ColinaAscenso a la Colina
Ascenso a la ColinaTutor4uDev
 
Busqueda Ascenso Colinas
Busqueda Ascenso ColinasBusqueda Ascenso Colinas
Busqueda Ascenso ColinasJeffoG92
 
Modelo matematico para la optimizacion de una cadena de suministro global con...
Modelo matematico para la optimizacion de una cadena de suministro global con...Modelo matematico para la optimizacion de una cadena de suministro global con...
Modelo matematico para la optimizacion de una cadena de suministro global con...Eunice Rodriguez
 
Ejemplo 1 de arborescencia de ruta mas corta1
Ejemplo 1 de arborescencia de ruta mas corta1Ejemplo 1 de arborescencia de ruta mas corta1
Ejemplo 1 de arborescencia de ruta mas corta1eduardo307
 
Investigacion de Operaciones
Investigacion de OperacionesInvestigacion de Operaciones
Investigacion de OperacionesUVMVirtual
 
The Porter Value Chain
The Porter Value ChainThe Porter Value Chain
The Porter Value ChainMrirfan
 
Porter‘s five forces model and value chain diagram
Porter‘s five forces model and value chain diagramPorter‘s five forces model and value chain diagram
Porter‘s five forces model and value chain diagrammariaumran
 

Destacado (20)

Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
Programacion dinamica final
Programacion dinamica finalProgramacion dinamica final
Programacion dinamica final
 
Programación dinámica
Programación  dinámicaProgramación  dinámica
Programación dinámica
 
Ejemplo 2 de arborescencia de ruta mas corta1
Ejemplo 2 de arborescencia de ruta mas corta1Ejemplo 2 de arborescencia de ruta mas corta1
Ejemplo 2 de arborescencia de ruta mas corta1
 
Modelos de inventario
Modelos de inventarioModelos de inventario
Modelos de inventario
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Ascenso a la Colina
Ascenso a la ColinaAscenso a la Colina
Ascenso a la Colina
 
Busqueda Ascenso Colinas
Busqueda Ascenso ColinasBusqueda Ascenso Colinas
Busqueda Ascenso Colinas
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
 
Modelo matematico para la optimizacion de una cadena de suministro global con...
Modelo matematico para la optimizacion de una cadena de suministro global con...Modelo matematico para la optimizacion de una cadena de suministro global con...
Modelo matematico para la optimizacion de una cadena de suministro global con...
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Ejemplo 1 de arborescencia de ruta mas corta1
Ejemplo 1 de arborescencia de ruta mas corta1Ejemplo 1 de arborescencia de ruta mas corta1
Ejemplo 1 de arborescencia de ruta mas corta1
 
Investigacion de Operaciones
Investigacion de OperacionesInvestigacion de Operaciones
Investigacion de Operaciones
 
Strategy Management : Porter's Value Chain
Strategy Management : Porter's Value Chain Strategy Management : Porter's Value Chain
Strategy Management : Porter's Value Chain
 
Power sector in argentina
Power sector in argentinaPower sector in argentina
Power sector in argentina
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
The Porter Value Chain
The Porter Value ChainThe Porter Value Chain
The Porter Value Chain
 
Porter‘s five forces model and value chain diagram
Porter‘s five forces model and value chain diagramPorter‘s five forces model and value chain diagram
Porter‘s five forces model and value chain diagram
 
Investigción de Operaciones: Programación Lineal
Investigción de Operaciones: Programación LinealInvestigción de Operaciones: Programación Lineal
Investigción de Operaciones: Programación Lineal
 

Similar a Programacion dinamica

Encriptacion por knapsacks
Encriptacion por knapsacksEncriptacion por knapsacks
Encriptacion por knapsacksjulianchavezvb
 
Unidad de aprendizaje operaciones con números naturales I
Unidad de aprendizaje operaciones con números naturales IUnidad de aprendizaje operaciones con números naturales I
Unidad de aprendizaje operaciones con números naturales IMonica Boscan
 
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docx
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docxMat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docx
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docxyoosseee1
 
Números Reales
Números RealesNúmeros Reales
Números Realesbibliomate
 
Programación lineal en la investigación de operaciones
Programación lineal en la investigación de operacionesProgramación lineal en la investigación de operaciones
Programación lineal en la investigación de operacionesManuel Bedoya D
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticaseccutpl
 
El Problema del Agente Viajero_f.pptx
El Problema del Agente Viajero_f.pptxEl Problema del Agente Viajero_f.pptx
El Problema del Agente Viajero_f.pptxCarlosTarquiGuillen
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la OlimpiadaJoemmanuel Ponce
 
1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros realeseecoronado
 
1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros realeseecoronado
 

Similar a Programacion dinamica (20)

Encriptacion por knapsacks
Encriptacion por knapsacksEncriptacion por knapsacks
Encriptacion por knapsacks
 
Pl expo secundaria
Pl expo secundariaPl expo secundaria
Pl expo secundaria
 
Unidad de aprendizaje
Unidad de aprendizajeUnidad de aprendizaje
Unidad de aprendizaje
 
Unidad de aprendizaje nº 1 númros naturales
Unidad de aprendizaje nº 1 númros naturalesUnidad de aprendizaje nº 1 númros naturales
Unidad de aprendizaje nº 1 númros naturales
 
Unidad de aprendizaje operaciones con números naturales I
Unidad de aprendizaje operaciones con números naturales IUnidad de aprendizaje operaciones con números naturales I
Unidad de aprendizaje operaciones con números naturales I
 
null-1.pdf
null-1.pdfnull-1.pdf
null-1.pdf
 
null-1.pdf
null-1.pdfnull-1.pdf
null-1.pdf
 
Documento para el_facilitador_u2
Documento para el_facilitador_u2Documento para el_facilitador_u2
Documento para el_facilitador_u2
 
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docx
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docxMat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docx
Mat_2°M_U1_-NUMEROS-RACIONALES-MAT-COMPLEMENTARIO (1).docx
 
Funciones lineales
Funciones linealesFunciones lineales
Funciones lineales
 
2 algoritmos voraces
2 algoritmos voraces2 algoritmos voraces
2 algoritmos voraces
 
Números Reales
Números RealesNúmeros Reales
Números Reales
 
MT_Grado9-13-21.pdf
MT_Grado9-13-21.pdfMT_Grado9-13-21.pdf
MT_Grado9-13-21.pdf
 
Programación lineal en la investigación de operaciones
Programación lineal en la investigación de operacionesProgramación lineal en la investigación de operaciones
Programación lineal en la investigación de operaciones
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
 
El Problema del Agente Viajero_f.pptx
El Problema del Agente Viajero_f.pptxEl Problema del Agente Viajero_f.pptx
El Problema del Agente Viajero_f.pptx
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la Olimpiada
 
1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales
 
1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales1 guia 01 semestre 1 numeros reales
1 guia 01 semestre 1 numeros reales
 
Numeros complejos
Numeros complejos Numeros complejos
Numeros complejos
 

Más de Universidad de Panamá (16)

Auditoría de Sistemas y reglamentacion PCI
Auditoría de Sistemas y reglamentacion PCIAuditoría de Sistemas y reglamentacion PCI
Auditoría de Sistemas y reglamentacion PCI
 
Diseño asistido por computadora
Diseño asistido por computadoraDiseño asistido por computadora
Diseño asistido por computadora
 
Software libre aspectos legales
Software libre aspectos legalesSoftware libre aspectos legales
Software libre aspectos legales
 
Clases abstractas en JAVA
Clases abstractas en JAVAClases abstractas en JAVA
Clases abstractas en JAVA
 
Tsx-32 OS
Tsx-32 OSTsx-32 OS
Tsx-32 OS
 
Esteganografía y criptografía
Esteganografía y criptografíaEsteganografía y criptografía
Esteganografía y criptografía
 
Blackberry OS
Blackberry OSBlackberry OS
Blackberry OS
 
Sistema Experto Duprat
Sistema Experto DupratSistema Experto Duprat
Sistema Experto Duprat
 
Componentes del liderazgo
Componentes del liderazgoComponentes del liderazgo
Componentes del liderazgo
 
Gestión de Redes
Gestión de RedesGestión de Redes
Gestión de Redes
 
Proyecto administracion de una biblioteca
Proyecto administracion de una bibliotecaProyecto administracion de una biblioteca
Proyecto administracion de una biblioteca
 
Proyecto de Base de Datos
Proyecto de Base de Datos Proyecto de Base de Datos
Proyecto de Base de Datos
 
Lenguajes de bases de datos
Lenguajes de bases de datosLenguajes de bases de datos
Lenguajes de bases de datos
 
Estandarización
EstandarizaciónEstandarización
Estandarización
 
Sistemas de base de datos vs sistemas de archivos
Sistemas de base de datos vs sistemas de archivosSistemas de base de datos vs sistemas de archivos
Sistemas de base de datos vs sistemas de archivos
 
Sistemas de gestión de bases de datos
Sistemas de gestión de bases de datosSistemas de gestión de bases de datos
Sistemas de gestión de bases de datos
 

Último

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (19)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Programacion dinamica

  • 1. Computabilidad y Complejidad de Algoritmos Programación Dinámica Preparado por: Solineth Batista Maycol Requenez
  • 2. Existe una serie de problemas cuyas soluciones pueden ser expresadas recursivamente en términos matemáticos, y posiblemente la manera más natural de resolverlos es mediante un algoritmo recursivo. Sin embargo, el tiempo de ejecución de la solución recursiva, normalmente de orden exponencial y por tanto impracticable, puede mejorarse substancialmente mediante la Programación Dinámica.
  • 3. En el diseño Divide y Vencerás para resolver un problema lo dividimos en subproblemas independientes, los cuales se resuelven de manera recursiva para combinar finalmente las soluciones y así resolver el problema original. El inconveniente se presenta cuando los subproblemas obtenidos no son independientes sino que existe solapamiento entre ellos; entonces es cuando una solución recursiva no resulta eficiente por la repetición de cálculos que conlleva.
  • 4. En estos casos es cuando la Programación Dinámica nos puede ofrecer una solución aceptable. La eficiencia de esta técnica consiste en resolver los subproblemas una sola vez, guardando sus soluciones en una tabla para su futura utilización. La Programación Dinámica no sólo tiene sentido aplicarla por razones de eficiencia, sino porque además presenta un método capaz de resolver de manera eficiente problemas cuya solución ha sido abordada por otras técnicas y ha fracasado.
  • 5. Donde tiene mayor aplicación la Programación Dinámica es en la resolución de problemas de optimización. En este tipo de problemas se pueden presentar distintas soluciones, cada una con un valor, y lo que se desea es encontrar la solución de valor óptimo (máximo o mínimo).
  • 6. La solución de problemas mediante esta técnica se basa en el llamado principio de óptimo enunciado por Bellman en 1957 y que dice: “En una secuencia de decisiones óptima toda subsecuencia ha de ser también óptima”.
  • 7.  Knapsack Problem (Problema de la Mochila)  Algoritmo de Needleman–Wunsch
  • 8.
  • 9.  El problema de la mochila (knapsack problem) consiste encontrar un subconjunto de productos que echar en una mochila de modo de maximizar el beneficio y no sobrepasar la capacidad de la mochila.  Se puede resumir el problema de la siguiente forma: maximizar sujeto a con xi l i k l bi xi i k pi xi {0,1} , k P i l  Donde l es la cantidad de objetos disponibles, bi es el beneficio que ofrece el objeto i, pi es el peso del objeto i, xi nos indica si colocamos o no el objeto i dentro de la mochila y P es el peso máximo que soporta la mochila.
  • 10.  Digamos que tenemos l objetos con pesos p1, …,pl y beneficios b1, …,bl.  Definimos A(i, j) como el valor máximo que puede ser obtenido con los primeros i objetos pesando a lo más j.  Note que:  A(0, j) = 0 y A(i, 0) = 0 para cualquier i ≤ l y j ≤ P.  Si pi > j entonces A(i, j) = A(i – 1, j).  Si pi ≤ j entonces A(i, j) tiene dos opciones incluir o no incluir el objeto i.  Si no lo incluimos entonces tendrá un valor de A(i – 1, j).  Si lo incluimos entonces tendrá un valor de A(i – 1, j – pi) + bi.
  • 11.  Expresado formalmente tenemos la siguiente definición recursiva. 0 A i, j si i 0oj A i 1, j si pi j si pi j max A i 1, j , A i j, j p1 bi 0
  • 12.  Ejemplo:  Tenemos una caja que soporta 15 libras en la cual vamos a colocar objetos para vender. Hay disponibles tres objetos:  Objeto #1 pesa 9 libras y se vende a $38  Objeto #2 pesa 6 libras y se vende a $40  Objeto #3 pesa 5 libras y se vende a $24  ¿Cuál es la ganancia máxima que podemos obtener?
  • 13.  Continuación ejemplo:  La información recopilada del algoritmo se puede resumir en la siguiente tabla: 0 p1 9 0 p2 6 0 p3 5 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 24 6 0 40 40 7 0 40 40 8 0 40 40 9 38 40 40 10 38 40 40 11 38 40 64 12 38 40 64 13 38 40 64 14 38 40 64 15 38 78 78
  • 14.  Continuación ejemplo:  La información recopilada del algoritmo se puede resumir en la siguiente tabla: 0 p1 9 0 p2 6 0 p3 5 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 24 6 0 40 40 7 0 40 40 8 0 40 40 9 38 40 40 10 38 40 40 11 38 40 64 12 38 40 64 13 38 40 64 14 38 40 64 15 38 78 78
  • 15.
  • 16.  Uno de los problemas de todos los días en Bioinformática es la comparación o alineamiento de secuencias. Necesitamos saber que tan similares son dos secuencias, permitiendo que haya pequeñas diferencias ya sea de reemplazo o de borrado entre una y otra.  El algoritmo de Needleman-Wunsch sirve para realizar alineamientos globales de dos secuencias.  Fue propuesto por primera vez en 1970, por Saul Needleman y Christian Wunsch.  El algoritmo calcula puntajes de similitud global entre dos secuencias.
  • 17.  Ejemplo  Consideremos el conjunto {A, G, C, T} sobre el cual definimos dos cadenas s1 = GAATTCAGTTA y s2 = GGATCGA.  El objetivo del algoritmo es alinearlas de tal forma que puedan identificarse huecos, inserciones o cambios en los caracteres de las secuencias.  Para el ejemplo un alineamiento es el siguiente: s
  • 18.  El algoritmo de Needleman-Wunsch busca generar el alineamiento para lo cual coloca todas las posibles combinaciones de las dos secuencias s1 y s2 más una fila y columna de ceros para la generación de la recursividad, en una matriz M.  Definiendo a n = |s1| y a m = |s2| entonces la matriz M será de tamaño (m +1) (n + 1).
  • 19.  Luego procedemos a rellenar la matriz M para lo cual primero definimos una matriz S de semejanza de caracteres.
  • 20.  Si definimos Si;j como una función tal que devuelve la similitud de los caracteres de la posición i de s1 y j de s2 y a W como la penalización por hueco que en este caso es simplemente 0, tendremos listo las funciones necesarias para llenar la matriz M.  Para proceder a rellenar M tendrán la siguiente ley de formación: Mi, j  Donde:  Mi 1, j 1  Mi  M i, j 1, j 1 max M i 1, j 1 Si , j , M i , j 1 W , Mi 1, j Si , j Indica la coincidencia o no coincidencia de los caracteres de las secuencias. W Indica la suma en horizontal más la penalización por hueco. W Indica la suma en vertical más la penalización por hueco. W
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.  El procedimiento siguiente es describir el patrón que se dibuja desde el extremo inferior derecho de la matriz M y se avanza a la izquierda o a la izquierda y arriba tomando siempre el valor que le precedió al construir M.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. Dando el alineamiento: G A A T T C A G T T A | | | | | | G G A ― T C ― G ― ― A

Notas del editor

  1. Según el alineamiento realizado en la tabla el primer, el tercer, el quinto, el sexto, el octavo y el undécimo caracter están correctamente alineados mientrasque el segundo ha sufrido una sustitución y las restantes existieron gap o huecos.El algoritmo de Needleman-Wunsch busca generar el alineamiento para locual coloca todas las posibles combinaciones de las dos secuencias s1 y s2 más una fila y columna de ceros para la generación de la recursividad, en una matriz M.
  2. En nuestro ejemplo n = 11 y m = 7
  3. La matriz mostradas en la tabla es la más simple matriz de sustitución que puede construirse por considerar 1 a la coincidencia exacta y 0 a la no coincidencia y 0 cuando hay un hueco o gap, ya que los actuales programas como FASTA o BLAST usan matrices más complejas las cuales son construidas según criterios de semejanza química, física u otros entre las moléculas en cuestión.
  4. Gráficamente podrá ser visto más fácilmente Inicializado con la primera fila y columna como se muestra la figura por ceros para usarlo en la primera iteración, seguido el valor de M2;2 se calcula:
  5. he first step in the global alignment dynamic programming approach is to create a matrix with M + 1 columns and N + 1 rows where M and N correspond to the size of the sequences to be aligned.Since this example assumes there is no gap opening or gap extension penalty, the first row and first column of the matrix can be initially filled with 0.
  6. Using this information, the score at position 1,1 in the matrix can be calculated. Since the first residue in both sequences is a G, S1,1 = 1, and by the assumptions stated at the beginning, w = 0. Thus, M1,1 = MAX[M0,0 + 1, M1, 0 + 0, M0,1 + 0] = MAX [1, 0, 0] = 1.A value of 1 is then placed in position 1,1 of the scoring matrix.
  7. Since the gap penalty (w) is 0, the rest of row 1 and column 1 can be filled in with the value 1. Take the example of row 1. At column 2, the value is the max of 0 (for a mismatch), 0 (for a vertical gap) or 1 (horizontal gap). The rest of row 1 can be filled out similarly until we get to column 8. At this point, there is a G in both sequences (light blue). Thus, the value for the cell at row 1 column 8 is the maximum of 1 (for a match), 0 (for a vertical gap) or 1 (horizontal gap). The value will again be 1. The rest of row 1 and column 1 can be filled with 1 using the above reasoning.
  8. Now let&apos;s look at column 2. The location at row 2 will be assigned the value of the maximum of 1(mismatch), 1(horizontal gap) or 1 (vertical gap). So its value is 1.At the position column 2 row 3, there is an A in both sequences. Thus, its value will be the maximum of 2(match), 1 (horizontal gap), 1 (vertical gap) so its value is 2.Moving along to position colum 2 row 4, its value will be the maximum of 1 (mismatch), 1 (horizontal gap), 2 (vertical gap) so its value is 2. Note that for all of the remaining positions except the last one in column 2, the choices for the value will be the exact same as in row 4 since there are no matches. The final row will contain the value 2 since it is the maximum of 2 (match), 1 (horizontal gap) and 2(vertical gap).
  9. Using the same techniques as described for column 2, we can fill in column 3.
  10. After filling in all of the values the score matrix is as follows:
  11. After the matrix fill step, the maximum alignment score for the two test sequences is 6. The traceback step determines the actual alignment(s) that result in the maximum score. Note that with a simple scoring algorithm such as one that is used here, there are likely to be multiple maximal alignments.The traceback step begins in the M,J position in the matrix, i.e. the position that leads to the maximal score. In this case, there is a 6 in that location.
  12. Traceback takes the current cell and looks to the neighbor cells that could be direct predacessors. This means it looks to the neighbor to the left (gap in sequence #2), the diagonal neighbor (match/mismatch), and the neighbor above it (gap in sequence #1). The algorithm for traceback chooses as the next cell in the sequence one of the possible predacessors. In this case, the neighbors are marked in red. They are all also equal to 5.
  13. Since the current cell has a value of 6 and the scores are 1 for a match and 0 for anything else, the only possible predacessor is the diagonal match/mismatch neighbor. If more than one possible predacessor exists, any can be chosen. This gives us a current alignment of (Seq #1) A | (Seq #2) A So now we look at the current cell and determine which cell is its direct predacessor. In this case, it is the cell with the red 5.
  14. The alignment as described in the above step adds a gap to sequence #2, so the current alignment is(Seq #1) T A | (Seq #2) _ A Once again, the direct predacessor produces a gap in sequence #2.
  15. Continuing on with the traceback step, we eventually get to a position in column 0 row 0 which tells us that traceback is completed
  16. There are more alternative solutions each resulting in a maximal global alignment score of 6. Since this is an exponential problem, most dynamic programming algorithms will only print out a single solution.