SlideShare uma empresa Scribd logo
1 de 33
UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO DE SAN GERMÁN Departamento de Matemáticas y Ciencias Aplicadas Programación Dinámica Ángel M. Carreras Jusino MATH 6350 Profesor Balbino García Bernal
Contenido ¿Qué es programación dinámica? Comparación entre recursión y programación dinámica Historia Ejemplos de aplicaciones KnapsackProblem Needleman–Wunsch algorithm AlgebraicDynamicProgramming
¿Qué es la Programación Dinámica? Es una técnica algorítmica la cual está basada usualmente en una fórmula recurrente y un (o varios) estado(s) inicial(es). Una sub-solución del problema es construida de las halladas previamente. Es un método para resolver eficientemente una amplia gama de problemas de búsqueda y optimización que exhiben las características de sub-problemas superpuestos y subestructura óptima. Se dice que un problema tiene sub-problemas superpuestos si este puede ser descompuesto en sub-problemas que son reutilizados varias veces. Se dice que un problema tiene subestructura óptima si la solución óptima global puede ser construida a partir de soluciones óptimas de sub-problemas.
Comparación entre Recursión y Programación Dinámica La diferencia esencial entre Recursión y Programación dinámica es que la última guarda los resultados intermedios mientras la primera no lo hace. Esto hace una gran diferencia al rendimiento cuando una función recursiva es llamada en repetidas ocasiones con los mismos argumentos. De hecho la Programación Dinámica no es más que recursión con estrategia de “caching”.
Historia El término Programación Dinámica fue utilizado originalmente en los 1940’s por Richard Bellman para describir el proceso de resolver problemas donde se necesita encontrar las mejores decisiones una tras otra. Para 1953, el refinó esto a su significado moderno, el cual se refiere específicamente a anidar pequeños problemas de decisión dentro de grandes decisiones, luego de esto el campo fue reconocido por la lEEE como un tópico de análisis de sistemas e ingeniería. La contribución de Bellman es recordada en el nombre de la ecuación de Bellman, un resultado central de programación dinámica que replantea un problema de optimización en forma recursiva.
Historia Originalmente la palabra “programación” en “programación dinámica” no tenía conexión con la programación de computadoras y en cambio venía del término “programación matemática”. Sin embargo, actualmente muchos problemas de optimización son mejor resueltos escribiendo programas de computadoras que implementa un algoritmo de programación dinámica, lo cual resulta mejor que llevar a cabo cientos de cálculos a mano.
Ejemplos de Aplicaciones KnapsackProblem Needleman–Wunsch Algorithm
KnapsackProblem
KnapsackProblem El problema de la mochila (knapsackproblem) 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: Donde les 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 identro de la mochila y P es el peso máximo que soporta la mochila.
KnapsackProblem 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 ≤ ly j ≤ P. Si pi > jentonces A(i, j) = A(i – 1, j). Si pi ≤  jentonces 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.
KnapsackProblem Expresado formalmente tenemos la siguiente definición recursiva.
KnapsackProblem 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? Mathematica
KnapsackProblem Continuación ejemplo: La información recopilada del algoritmo se puede resumir en la siguiente tabla:
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm 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 SaulNeedleman y Christian Wunsch. El algoritmo calcula puntajes de similitud global entre dos secuencias.
Needleman–Wunsch Algorithm 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
Needleman–Wunsch Algorithm 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).
Needleman–Wunsch Algorithm Luego procedemos a rellenar la matriz Mpara lo cual primero definimos una matriz S de semejanza de caracteres.
Needleman–Wunsch Algorithm 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: Donde:                		Indica la coincidencia o no coincidencia de 				los caracteres de las secuencias.    			Indica la suma en horizontal más la 					penalización por hueco.  			Indica la suma en vertical más la 					penalización por hueco.
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm 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.
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm
Needleman–Wunsch Algorithm Dando el alineamiento:
Algebraic Dynamic Programming Algebraic Dynamic Programming (ADP) es un nuevo método para diseñar e implementar, afinar, probar y enseñar algoritmos de Programación Dinámica. Comparado con el modelo tradicional, el ADP provee un nivel mucho mayor de abstracción, ayudando a resolver problemas mas sofisticados con mejores oportunidades de éxito.
Referencias Algebraic Dynamic Programinghttp://bibiserv.techfak.uni-bielefeld.de/adp/ Dynamic Programming Tutorial for DNA sequence alignment http://www.avatar.se/molbioinfo2001/dynprog/dynamic.html IntroductiontoDynamicProgramminghttp://20bits.com/articles/introduction-to-dynamic-programming/ Operations Research Models & Methods http://www.me.utexas.edu/~jensen/ORMM/methods/unit/dynamic/index.html Wikipedia http://en.wikipedia.org/wiki/Dynamic_programming

Mais conteúdo relacionado

Mais procurados

Problema copiados de libros
Problema copiados de libros Problema copiados de libros
Problema copiados de libros crisojb
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicanarlyn diaz
 
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...BIOPOWER
 
Investigación de operaciones vol 1
Investigación de operaciones vol 1Investigación de operaciones vol 1
Investigación de operaciones vol 1Carlosjmolestina
 
Ingenieria economica y la toma de decisiones
Ingenieria economica  y la toma de decisionesIngenieria economica  y la toma de decisiones
Ingenieria economica y la toma de decisionesBRENDA LORENA
 
Otras cartas de control
Otras cartas de controlOtras cartas de control
Otras cartas de controlLaura Bernal
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAMETODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAEmmanuel Castillo Segovia
 
Problema programación lineal gráfico y algebráico
Problema programación lineal gráfico y algebráico Problema programación lineal gráfico y algebráico
Problema programación lineal gráfico y algebráico Profesor Hugo
 
Glosario de investigación de operaciones
Glosario de investigación de operacionesGlosario de investigación de operaciones
Glosario de investigación de operacionesManuel Bedoya D
 
Teoria de Optimizacion
Teoria de  OptimizacionTeoria de  Optimizacion
Teoria de Optimizacionrebeca ferrer
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion linealbrccq
 
Analisis de la operacion unidad 2 estudio del trabajo 1
Analisis de la operacion unidad 2 estudio del trabajo 1Analisis de la operacion unidad 2 estudio del trabajo 1
Analisis de la operacion unidad 2 estudio del trabajo 1IAN RODRIGUEZ
 
Métodos de optimizacion
Métodos de optimizacionMétodos de optimizacion
Métodos de optimizacionSaid Mora
 
Metodos de Programacion no lineal
Metodos de Programacion no linealMetodos de Programacion no lineal
Metodos de Programacion no linealluisatero
 
Planeación y Diseño de Instalaciones. Distribución en planta 1.
Planeación y Diseño de Instalaciones. Distribución en planta 1.Planeación y Diseño de Instalaciones. Distribución en planta 1.
Planeación y Diseño de Instalaciones. Distribución en planta 1.Juan Manuel Carrión Delgado
 

Mais procurados (20)

Problema copiados de libros
Problema copiados de libros Problema copiados de libros
Problema copiados de libros
 
PROBLEMA DE LA MOCHILA
PROBLEMA DE LA MOCHILAPROBLEMA DE LA MOCHILA
PROBLEMA DE LA MOCHILA
 
Problema de la mochila
Problema de la mochilaProblema de la mochila
Problema de la mochila
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...
4.1 metodos de control grafica de avance y grafica de rendimiento, 4.2 cierre...
 
Investigación de operaciones vol 1
Investigación de operaciones vol 1Investigación de operaciones vol 1
Investigación de operaciones vol 1
 
Ingenieria economica y la toma de decisiones
Ingenieria economica  y la toma de decisionesIngenieria economica  y la toma de decisiones
Ingenieria economica y la toma de decisiones
 
Otras cartas de control
Otras cartas de controlOtras cartas de control
Otras cartas de control
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Método pert cpm glenderson
Método pert cpm glendersonMétodo pert cpm glenderson
Método pert cpm glenderson
 
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAMETODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Problema programación lineal gráfico y algebráico
Problema programación lineal gráfico y algebráico Problema programación lineal gráfico y algebráico
Problema programación lineal gráfico y algebráico
 
Glosario de investigación de operaciones
Glosario de investigación de operacionesGlosario de investigación de operaciones
Glosario de investigación de operaciones
 
Teoria de Optimizacion
Teoria de  OptimizacionTeoria de  Optimizacion
Teoria de Optimizacion
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
Analisis de la operacion unidad 2 estudio del trabajo 1
Analisis de la operacion unidad 2 estudio del trabajo 1Analisis de la operacion unidad 2 estudio del trabajo 1
Analisis de la operacion unidad 2 estudio del trabajo 1
 
Métodos de optimizacion
Métodos de optimizacionMétodos de optimizacion
Métodos de optimizacion
 
Metodos de Programacion no lineal
Metodos de Programacion no linealMetodos de Programacion no lineal
Metodos de Programacion no lineal
 
Planeación y Diseño de Instalaciones. Distribución en planta 1.
Planeación y Diseño de Instalaciones. Distribución en planta 1.Planeación y Diseño de Instalaciones. Distribución en planta 1.
Planeación y Diseño de Instalaciones. Distribución en planta 1.
 

Destaque

Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación DinámicaXavi2701
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamicaRCOP
 
Programación dinámica (apuntes)
Programación dinámica (apuntes)Programación dinámica (apuntes)
Programación dinámica (apuntes)Juan Flores Roman
 
El problema de la mochila
El problema de la mochilaEl problema de la mochila
El problema de la mochilaEn todos lados
 
Problema de asignación de programación dinámica
Problema de asignación de programación dinámicaProblema de asignación de programación dinámica
Problema de asignación de programación dinámicaLuis La Rosa Cavalcanti
 
Romergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiRomergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiROMERGOMEZ
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamicaingyon
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámicaliisab04
 
Historias para reflexionar amg310712
Historias para reflexionar amg310712Historias para reflexionar amg310712
Historias para reflexionar amg310712svvuelo
 
6612 el valor de la perseverancia.
6612 el valor de la perseverancia.6612 el valor de la perseverancia.
6612 el valor de la perseverancia.svvuelo
 
Cuentos para reflexionar
Cuentos para reflexionarCuentos para reflexionar
Cuentos para reflexionarnataliadistaulo
 

Destaque (20)

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
 
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
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programación dinámica (apuntes)
Programación dinámica (apuntes)Programación dinámica (apuntes)
Programación dinámica (apuntes)
 
El problema de la mochila
El problema de la mochilaEl problema de la mochila
El problema de la mochila
 
Problema de asignación de programación dinámica
Problema de asignación de programación dinámicaProblema de asignación de programación dinámica
Problema de asignación de programación dinámica
 
Romergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiRomergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica ii
 
Perfil oscar
Perfil oscarPerfil oscar
Perfil oscar
 
Programacion Dinamica
Programacion DinamicaProgramacion Dinamica
Programacion Dinamica
 
Informe sobre problemas de la mochila
Informe sobre problemas de la mochilaInforme sobre problemas de la mochila
Informe sobre problemas de la mochila
 
Programación Dinámica
Programación DinámicaProgramación Dinámica
Programación Dinámica
 
Programación deterministica
Programación deterministicaProgramación deterministica
Programación deterministica
 
Historias para reflexionar amg310712
Historias para reflexionar amg310712Historias para reflexionar amg310712
Historias para reflexionar amg310712
 
Historias para reflexionar
Historias para reflexionarHistorias para reflexionar
Historias para reflexionar
 
6612 el valor de la perseverancia.
6612 el valor de la perseverancia.6612 el valor de la perseverancia.
6612 el valor de la perseverancia.
 
Historias para reflexionar
Historias para reflexionarHistorias para reflexionar
Historias para reflexionar
 
Cuentos para reflexionar
Cuentos para reflexionarCuentos para reflexionar
Cuentos para reflexionar
 

Semelhante a Programación Dinámica (20)

Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
Programación dinámica
Programación dinámica Programación dinámica
Programación dinámica
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Numerica mandar
Numerica mandarNumerica mandar
Numerica mandar
 
Informe
InformeInforme
Informe
 
PROGRAMACION LINEAL
PROGRAMACION LINEALPROGRAMACION LINEAL
PROGRAMACION LINEAL
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la Olimpiada
 
Ecuaciones Cuadraticas
Ecuaciones CuadraticasEcuaciones Cuadraticas
Ecuaciones Cuadraticas
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
Actividad IV Aplicar algoritmos a problemas
Actividad IV Aplicar algoritmos a problemasActividad IV Aplicar algoritmos a problemas
Actividad IV Aplicar algoritmos a problemas
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmos
 
Sesion 07 -
Sesion 07 -Sesion 07 -
Sesion 07 -
 
Sesion 07 -
Sesion 07 -Sesion 07 -
Sesion 07 -
 
Resumen de algoritmo
Resumen de algoritmoResumen de algoritmo
Resumen de algoritmo
 
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
 
Actividad #2 intro_programacion décimo.pptx
Actividad #2 intro_programacion décimo.pptxActividad #2 intro_programacion décimo.pptx
Actividad #2 intro_programacion décimo.pptx
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Fundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetricaFundamentos matematicos para la criptografia asimetrica
Fundamentos matematicos para la criptografia asimetrica
 
2 algoritmos voraces
2 algoritmos voraces2 algoritmos voraces
2 algoritmos voraces
 

Mais de Angel Carreras

Resumen: Secciones Cónicas
Resumen: Secciones CónicasResumen: Secciones Cónicas
Resumen: Secciones CónicasAngel Carreras
 
Examen Secciones Cónicas
Examen Secciones CónicasExamen Secciones Cónicas
Examen Secciones CónicasAngel Carreras
 
Repaso: Propiedades y Atributos de Polígonos
Repaso: Propiedades y Atributos de PolígonosRepaso: Propiedades y Atributos de Polígonos
Repaso: Propiedades y Atributos de PolígonosAngel Carreras
 
Examen - Introducción a Probabilidad
Examen - Introducción a ProbabilidadExamen - Introducción a Probabilidad
Examen - Introducción a ProbabilidadAngel Carreras
 
Una Introducción a Probabilidad
Una Introducción a ProbabilidadUna Introducción a Probabilidad
Una Introducción a ProbabilidadAngel Carreras
 
Examen - Visualización de Data
Examen - Visualización de DataExamen - Visualización de Data
Examen - Visualización de DataAngel Carreras
 
Visualización de Data
Visualización de DataVisualización de Data
Visualización de DataAngel Carreras
 
Trabajo de Gráficas Comunes y Diagramas de Data
Trabajo de Gráficas Comunes y Diagramas de DataTrabajo de Gráficas Comunes y Diagramas de Data
Trabajo de Gráficas Comunes y Diagramas de DataAngel Carreras
 
Introducción Al Análisis Estadístico de Data
Introducción Al Análisis Estadístico de DataIntroducción Al Análisis Estadístico de Data
Introducción Al Análisis Estadístico de DataAngel Carreras
 
Examen - Introducción al Análisis Estadístico de Data
Examen - Introducción al Análisis Estadístico de DataExamen - Introducción al Análisis Estadístico de Data
Examen - Introducción al Análisis Estadístico de DataAngel Carreras
 
Prueba Logaritmos MATH1500
Prueba Logaritmos MATH1500Prueba Logaritmos MATH1500
Prueba Logaritmos MATH1500Angel Carreras
 
MATH1500 - Trigonometría Analítica
MATH1500 - Trigonometría AnalíticaMATH1500 - Trigonometría Analítica
MATH1500 - Trigonometría AnalíticaAngel Carreras
 
GEMA1000 - Datos para Trabajo de Gráficas
GEMA1000 - Datos para Trabajo de GráficasGEMA1000 - Datos para Trabajo de Gráficas
GEMA1000 - Datos para Trabajo de GráficasAngel Carreras
 
Sección 3 – 2 (Geometría)
Sección 3 – 2 (Geometría)Sección 3 – 2 (Geometría)
Sección 3 – 2 (Geometría)Angel Carreras
 
Sección 3 – 3 (Geometría)
Sección 3 – 3 (Geometría)Sección 3 – 3 (Geometría)
Sección 3 – 3 (Geometría)Angel Carreras
 
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)Angel Carreras
 

Mais de Angel Carreras (20)

Resumen: Secciones Cónicas
Resumen: Secciones CónicasResumen: Secciones Cónicas
Resumen: Secciones Cónicas
 
Examen Secciones Cónicas
Examen Secciones CónicasExamen Secciones Cónicas
Examen Secciones Cónicas
 
Repaso: Propiedades y Atributos de Polígonos
Repaso: Propiedades y Atributos de PolígonosRepaso: Propiedades y Atributos de Polígonos
Repaso: Propiedades y Atributos de Polígonos
 
Examen - Introducción a Probabilidad
Examen - Introducción a ProbabilidadExamen - Introducción a Probabilidad
Examen - Introducción a Probabilidad
 
Una Introducción a Probabilidad
Una Introducción a ProbabilidadUna Introducción a Probabilidad
Una Introducción a Probabilidad
 
Examen - Visualización de Data
Examen - Visualización de DataExamen - Visualización de Data
Examen - Visualización de Data
 
Visualización de Data
Visualización de DataVisualización de Data
Visualización de Data
 
Trabajo de Gráficas Comunes y Diagramas de Data
Trabajo de Gráficas Comunes y Diagramas de DataTrabajo de Gráficas Comunes y Diagramas de Data
Trabajo de Gráficas Comunes y Diagramas de Data
 
Introducción Al Análisis Estadístico de Data
Introducción Al Análisis Estadístico de DataIntroducción Al Análisis Estadístico de Data
Introducción Al Análisis Estadístico de Data
 
Examen - Introducción al Análisis Estadístico de Data
Examen - Introducción al Análisis Estadístico de DataExamen - Introducción al Análisis Estadístico de Data
Examen - Introducción al Análisis Estadístico de Data
 
GEMA1200 - Examen #3
GEMA1200 - Examen #3GEMA1200 - Examen #3
GEMA1200 - Examen #3
 
GEMA1200 - Examen #2
GEMA1200 - Examen #2GEMA1200 - Examen #2
GEMA1200 - Examen #2
 
GEMA1200 - Examen #1
GEMA1200 - Examen #1GEMA1200 - Examen #1
GEMA1200 - Examen #1
 
GEMA1200 - Examen #4
GEMA1200 - Examen #4GEMA1200 - Examen #4
GEMA1200 - Examen #4
 
Prueba Logaritmos MATH1500
Prueba Logaritmos MATH1500Prueba Logaritmos MATH1500
Prueba Logaritmos MATH1500
 
MATH1500 - Trigonometría Analítica
MATH1500 - Trigonometría AnalíticaMATH1500 - Trigonometría Analítica
MATH1500 - Trigonometría Analítica
 
GEMA1000 - Datos para Trabajo de Gráficas
GEMA1000 - Datos para Trabajo de GráficasGEMA1000 - Datos para Trabajo de Gráficas
GEMA1000 - Datos para Trabajo de Gráficas
 
Sección 3 – 2 (Geometría)
Sección 3 – 2 (Geometría)Sección 3 – 2 (Geometría)
Sección 3 – 2 (Geometría)
 
Sección 3 – 3 (Geometría)
Sección 3 – 3 (Geometría)Sección 3 – 3 (Geometría)
Sección 3 – 3 (Geometría)
 
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)
Encontrando Raíces Reales de Ecuaciones Polinomiales (6-5)
 

Último

Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfEduardoJosVargasCama1
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptxCamuchaCrdovaAlonso
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 

Último (20)

Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 

Programación Dinámica

  • 1. UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO DE SAN GERMÁN Departamento de Matemáticas y Ciencias Aplicadas Programación Dinámica Ángel M. Carreras Jusino MATH 6350 Profesor Balbino García Bernal
  • 2. Contenido ¿Qué es programación dinámica? Comparación entre recursión y programación dinámica Historia Ejemplos de aplicaciones KnapsackProblem Needleman–Wunsch algorithm AlgebraicDynamicProgramming
  • 3. ¿Qué es la Programación Dinámica? Es una técnica algorítmica la cual está basada usualmente en una fórmula recurrente y un (o varios) estado(s) inicial(es). Una sub-solución del problema es construida de las halladas previamente. Es un método para resolver eficientemente una amplia gama de problemas de búsqueda y optimización que exhiben las características de sub-problemas superpuestos y subestructura óptima. Se dice que un problema tiene sub-problemas superpuestos si este puede ser descompuesto en sub-problemas que son reutilizados varias veces. Se dice que un problema tiene subestructura óptima si la solución óptima global puede ser construida a partir de soluciones óptimas de sub-problemas.
  • 4. Comparación entre Recursión y Programación Dinámica La diferencia esencial entre Recursión y Programación dinámica es que la última guarda los resultados intermedios mientras la primera no lo hace. Esto hace una gran diferencia al rendimiento cuando una función recursiva es llamada en repetidas ocasiones con los mismos argumentos. De hecho la Programación Dinámica no es más que recursión con estrategia de “caching”.
  • 5. Historia El término Programación Dinámica fue utilizado originalmente en los 1940’s por Richard Bellman para describir el proceso de resolver problemas donde se necesita encontrar las mejores decisiones una tras otra. Para 1953, el refinó esto a su significado moderno, el cual se refiere específicamente a anidar pequeños problemas de decisión dentro de grandes decisiones, luego de esto el campo fue reconocido por la lEEE como un tópico de análisis de sistemas e ingeniería. La contribución de Bellman es recordada en el nombre de la ecuación de Bellman, un resultado central de programación dinámica que replantea un problema de optimización en forma recursiva.
  • 6. Historia Originalmente la palabra “programación” en “programación dinámica” no tenía conexión con la programación de computadoras y en cambio venía del término “programación matemática”. Sin embargo, actualmente muchos problemas de optimización son mejor resueltos escribiendo programas de computadoras que implementa un algoritmo de programación dinámica, lo cual resulta mejor que llevar a cabo cientos de cálculos a mano.
  • 7. Ejemplos de Aplicaciones KnapsackProblem Needleman–Wunsch Algorithm
  • 9. KnapsackProblem El problema de la mochila (knapsackproblem) 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: Donde les 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 identro de la mochila y P es el peso máximo que soporta la mochila.
  • 10. KnapsackProblem 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 ≤ ly j ≤ P. Si pi > jentonces A(i, j) = A(i – 1, j). Si pi ≤ jentonces 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. KnapsackProblem Expresado formalmente tenemos la siguiente definición recursiva.
  • 12. KnapsackProblem 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? Mathematica
  • 13. KnapsackProblem Continuación ejemplo: La información recopilada del algoritmo se puede resumir en la siguiente tabla:
  • 15. Needleman–Wunsch Algorithm 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 SaulNeedleman y Christian Wunsch. El algoritmo calcula puntajes de similitud global entre dos secuencias.
  • 16. Needleman–Wunsch Algorithm 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
  • 17. Needleman–Wunsch Algorithm 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).
  • 18. Needleman–Wunsch Algorithm Luego procedemos a rellenar la matriz Mpara lo cual primero definimos una matriz S de semejanza de caracteres.
  • 19. Needleman–Wunsch Algorithm 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: Donde: Indica la coincidencia o no coincidencia de los caracteres de las secuencias. Indica la suma en horizontal más la penalización por hueco. Indica la suma en vertical más la penalización por hueco.
  • 26. Needleman–Wunsch Algorithm 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.
  • 32. Algebraic Dynamic Programming Algebraic Dynamic Programming (ADP) es un nuevo método para diseñar e implementar, afinar, probar y enseñar algoritmos de Programación Dinámica. Comparado con el modelo tradicional, el ADP provee un nivel mucho mayor de abstracción, ayudando a resolver problemas mas sofisticados con mejores oportunidades de éxito.
  • 33. Referencias Algebraic Dynamic Programinghttp://bibiserv.techfak.uni-bielefeld.de/adp/ Dynamic Programming Tutorial for DNA sequence alignment http://www.avatar.se/molbioinfo2001/dynprog/dynamic.html IntroductiontoDynamicProgramminghttp://20bits.com/articles/introduction-to-dynamic-programming/ Operations Research Models & Methods http://www.me.utexas.edu/~jensen/ORMM/methods/unit/dynamic/index.html Wikipedia http://en.wikipedia.org/wiki/Dynamic_programming

Notas do Editor

  1. Divide y vencerás
  2. IEEE, Institute of Electrical and Electronics Engineers, is a leading authority on areas ranging from aerospace systems, computers and telecommunications to biomedical engineering, electric power and consumer electronics among others. 
  3. 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.
  4. En nuestro ejemplo n = 11 y m = 7
  5. 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.
  6. 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:
  7. 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.
  8. 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.
  9. 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.
  10. Now let'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).
  11. Using the same techniques as described for column 2, we can fill in column 3.
  12. After filling in all of the values the score matrix is as follows:
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. Continuing on with the traceback step, we eventually get to a position in column 0 row 0 which tells us that traceback is completed
  18. 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.