You are on page 1of 7

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE INGENIERIAS DE PRODUCCIN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS


Anlisis y Diseo de Algoritmos
Proyecto Final

ALUMNOS:

*Aruquipa Velazco, Danitza


*Motta Rondn, Milagros
*Romero Solano, Shirley A.

PROFESOR:CARLO CORRALES

AREQUIPA PERU
2017
LONGEST COMMON SUBSEQUENCE

1.-Introduccin
1.1 Conocimientos Previos

En este problema se aplicarn trminos que deben ser aclarados desde un principio.
- Secuencia: Es una coleccin ordenada de elementos en la cual la repeticin
est permitida. Ejemplo: A, B, C, A, E, F
- Subsecuencia: Es una secuencia que se obtiene a partir de otra de igual o
mayor longitud mediante la supresin de algunos elementos manteniendo el
orden de los elementos restantes. Por ejemplo, la secuencia A, C, A es una
subsecuencia de A, B, C, A, E, F. No debe confundirse con el trmino
subcadena, que adems impone la restriccin de que los elementos han de
ser contiguos. Un ejemplo de subcadena es C, A, E.

1.2 Definicin del Problema

El Longest common subsequence problem tambin conocido como LCS problem, se


trata de encontrar una subsecuencia ms larga que es comn en un conjunto de
secuencias teniendo como caracterstica que las subsecuencias no necesitan tener
posiciones consecutivas en la secuencia original.
En the longest-common-subsequence problem, tendremos dos secuencias
X={1 , 3 , 3 . . . . . , } y Y={1,2,3., },y deseamos encontrar la subsecuencia ms
larga comn entre X y Y usando Programacin Dinmica.

1.3 Aplicacin

El problema de LCS es uno de los problemas clsicos de las ciencias computacionales y


es la base de programas que comparan datos como la utilidad diff, Tambin es usado
ampliamente para los sistemas de control de revisin como Git para reconciliar mltiples
cambios sobre archivos controlados de revisin. Adems, tiene una gran aplicacin en el
sector de la bioinformtica (aplicacin de la tecnologa de computadores a la gestin y
anlisis de datos biolgicos.) para secuenciacin de ADN.
2.-Ejemplo:
Dadas dos subsecuencias x[1...m] y y[1...n] encontrar la subsecuencia ms larga entre ellos.

3.-Enfoques Disponibles
Para encontrar la subsecuencia comn ms larga entre N [n1...nn] secuencias existen distintos
enfoques:

3.1 Fuerza Bruta:


La manera de resolver por este mtodo es comparando todas las subsecuencias posibles. Pero
al aplicar ello se presenta un crecimiento asinttico de:



(2 )
=2

3.2 Programacin Dinmica

Aplicaremos dos pasos para resolver este problema.


Miremos la longitud de una subsecuencia ms larga.
Extenderemos el algoritmo hasta encontrar la respuesta correcta.

3.2.1 Estrategia :

1. Definimos [, ] = | ( [ 1. . . ] , [ 1. . . ] ) |
2. Luego,[, ] = | (, ) |
3.2.2 Ecuacin Recursiva:

3.2.2 Pseudocodigo:

Longitud de la Subsecuencia Comun mas Larga

IMPRIMIR LA SUBSECUENCIA COMUN MAS LARGA


3.2.4 Hallmark:

3.2.4.1 Optimal Substructure:

Una solucin ptima para un problema contiene soluciones ptimas para


subproblemas.
SI z = LCS(x, y), entonces cualquier prefijo de z es un LCS del prefijo de x y
prefijo de y.

Worst-case: x[i] y[ j], en este caso el algoritmo analizar dos subproblemas,


ambos con solo un parmetro menos.

3.2.4.2 Overlapping subproblems :

Una solucin recursiva contiene un nmero pequeo de distintos subproblemas


repetidos, muchas veces
El nmero de distintos subproblemas de LCS para dos cadenas de caracteres de
longitud m y n es solo m*n.

Memorization: Luego de calcular la solucin de un subproblema, se coloca en


una tabla. Las llamadas subsiguientes comprueban la tabla para evitar rehacer el
trabajo.

4.- Implementacin
METODO IMPRIMIR
METODO LCS

RESULTADOS
4.- Conclusiones

Podemos concluir que la mejor implementacin para el problema de la bsqueda de


subsecuencia ms larga es programacin dinmica
Debido a que es ms eficiente guardar en una tabla nuestras comparaciones para
disminuir el tiempo de ejecucin a O(m*n)
Caso contrario en el algoritmo de fuerza bruta el costo nos llevara a un clculo
exponencial, debido a que, calcularamos todas las posibles subsecuencia
comparndolas tanto en la subsecuencia X y subsecuencia Y.
Finalmente, vemos que este algoritmo se ve utilizado de manera activa en diferentes
aplicaciones, una de estas la bioinformtica para de deteccin de malformaciones o
anomalas en cadenas de ADN.

5.- Bibliografa
[1] Introduccin to algoritmos. Thomas H. Cormen
[2]https://www.cs.berkeley.edu/~vazirani/algorithms/chap6.pdf
[3]https://en.wikibooks.org/wiki/Algorithms/Dynamic_Programming
[4]http://faculty.ksu.edu.sa/Alsalih/CSC%20529/5.2_DynamicProgramming.pdf
[5]http://www.geeksforgeeks.org/dynamic-programming-set-4-longest-common-
subsequence/
[6] Subsecuencia Comn Ms Larga. Sergio Garca Prado

You might also like