Algoritmos para strings. Bioinformática Elvira Mayordomo
|
|
- Juan Luis Felipe Peralta Navarrete
- hace 6 años
- Vistas:
Transcripción
1 Algoritmos para strings Bioinformática Elvira Mayordomo
2 Hoy Notación básica para strings El problema de string matching: String matching automata Boyer-Moore Árboles de sufijos (con otras aplicaciones) Vectores de sufijos
3 Basic bibliography D. Gusfield: Algorithms on Strings, Trees, and Sequences. Cambridge University Press, T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein: Introduction to Algorithms (3rd ed.). MIT Press, 2009.
4 Notación Alfabeto Símbolo (carácter, letra) String (secuencia, cadena) s Longitud de s, s Cadena vacía n * s[i] s[i,j]
5 Definiciones básicas Concatenación s. t s es un substring de t si t=usv (algún u,v) s es un prefijo de t si t=sv (para algún v) s es un sufijo de t si t=us (para algún u) s es un substring (prefijo, sufijo) propio de t si s es un substring (prefijo, sufijo) de t y s t s es una subsecuencia de t si todos los símbolos de s aparecen en el mismo orden en t (pero no necesariamente seguidos)
6 Overlap de s y t El solape de s y t es el string y que cumple: 1. y es sufijo de s, (s=xy) 2. y es prefijo de t, (t=yz) 3. y es máximo cumpliendo 1. y 2. Ov(s,t)=y <s,t>= xyz, la mezcla de s y t Pref(s,t)=x, Suff(s,t)=z ov(s,t)= Ov(s,t), pref(s,t)= Pref(s,t), suff(s,t)= Suff(s,t) Ov(s,s)
7 Algoritmos para strings Comparar, encontrar repeticiones Algunos los usaremos directamente Buscar repeticiones exactas nos ayudará en problemas más complicados
8 El problema del string matching Consiste en encontrar un string (corto), el patrón, como substring de un string (largo), el texto En bioinformática lo más frecuente es buscar un fragmento nuevo de DNA (un gen) en una colección de secuencias En este caso permitimos un cierto error, pero el pattern matching exacto es una subrutina
9 Enunciado del problema Entrada: Dos strings t= t 1 t n, p= p 1 p m sobre Salida: El conjunto de posiciones de t donde aparece p, es decir, I {1,, n-m+1} tales que i I sii t i t i+m-1 =p
10 Algoritmo inocente Input:A pattern p=p1...pm and a text t=t1...tn. I:= for j:=0 to n-m do i:=1 while p i = t j+i and i m do i:=i+1 if i=m+1 then {p 1 p m = t j+1 t j+m } I:=I {j+1} Output: The set I of positions, where an occurrence of p as a substring in t starts.
11 Ejemplo
12 Algoritmo inocente Complejidad? Casos peores? Buscamos mejorar esto explotando la estructura del patrón t= ababb p=abb
13 Resto de métodos Preprocesar el patrón Preprocesar el texto (árboles de sufijos)
14 Preprocesar el patrón: String matching automata Vamos a ver una solución en la que una vez preprocesado p en tiempo O( p. ) resolvemos el problema en una sola pasada de t Usa autómatas finitos
15 Autómata finito (DFA) Un DFA es una 5-tupla (Q,, q 0,, F) donde: 1) Q : conjunto de estados 2) : alfabeto de entrada 4) q 0 Q : estado inicial 3) : función de transición : Q x Q 5) F Q : conjunto de estados finales (o de aceptación)
16 Ejemplo de autómata
17 Aceptar El autómata acepta un string x si empezando en q 0 y siguiendo llega a un estado final
18 String matching automata Dado un patrón p=p 1...p m construimos un autómata que acepte los textos con sufijo p (es decir, los textos que acaban en p)
19 Ejemplo p=aba t= bababaa Cada vez que encuentro aba llego al estado final 3
20 Por qué funciona? Ir al estado i quiere decir p 1...p i es el prefijo más largo de p que es sufijo de lo que llevo leído del texto O sea, si estoy en el estado i, lo que llevo leído del texto termina en p 1...p i
21 Cómo construir el autómata para un patrón (recordad) El solape de s y t es el string y que cumple: 1. y es sufijo de s, (s=xy) 2. y es prefijo de t, (t=yz) 3. y es máximo cumpliendo 1. y 2. Ov(s,t)=y ov(s,t)= Ov(s,t),
22 Cómo construir el autómata para un patrón Dado un patrón p=p 1...p m definimos el string matching autómata M p con estados Q={0,1,,m}, estado inicial q 0 =0, un único estado final m (F={m}) y la transición (i,a) = ov(p 1...p i a, p) para cada símbolo a y estado i (i,a) = ov(p 1...p i a, p)= (la longitud d)el prefijo más largo de p que es sufijo de p 1...p i a Si estoy en el estado i, lo que llevo leído del texto termina en p 1...p i
23 Por qué funciona Se puede probar por inducción: Si empiezo en el estado inicial 0 y leo t 1 t k llego al estado i que cumple: p 1...p i = ov(t 1 t k, p) p 1...p i es el prefijo más largo de p que es sufijo de t 1 t k
24 Por qué funciona Si empiezo en el estado inicial 0 y leo t 1 t k llego al estado i que cumple: p 1...p i es el prefijo más largo de p que es sufijo de t 1 t k Luego hay una ocurrencia de p en posición k- m+1 si p= p 1...p m es sufijo de t 1 t k, es decir, Si empiezo en el estado inicial 0 y leo t 1 t k llego al estado m
25 Algoritmo para construir el autómata
26 String matching con autómata
27 Complejidad Construir el autómata: O(. m 2 ) String matching: O(n) Se puede construir el autómata en tiempo O(. m)
28 Enunciado del problema Entrada: Dos strings t= t 1 t n, p= p 1 p m sobre Salida: El conjunto de posiciones de t donde aparece p, es decir, I {1,, n-m+1} tales que i I sii t i t i+m-1 =p
29 Vistos Algoritmo inocente: O(m. (n-m)) String matching autómata: O(. m) preprocessing of pattern O(n) string matching
30 Algoritmo de Boyer-Moore Se trata de utilizar el algoritmo inocente : ir moviendo patrón sobre el texto Pero Cada comparación de p 1 p m con t j+1 t j+m la hacemos empezando por el final Si podemos movemos más de una posición la j Usa preprocesamiento de p
31 Ejemplo del inocente
32 Para mover más de una posición 1. Regla del carácter malo: Si estoy comparando p 1 p m con t j+1 t j+m empezando por p m con t j+m, si encuentro p i distinto de t j+i, Muevo el p hacia la derecha hasta la última vez que aparece el símbolo t j+i en p (es decir, la primera vez por la derecha)
33 Regla del carácter malo
34 Preprocesamiento para la regla del carácter malo (a)= última ocurrencia de a en p
35 Preprocesamiento para la regla del carácter malo Si estoy comparando p 1 p m con t j+1 t j+m empezando por p m con t j+m, si encuentro p i distinto de t j+i =a, muevo el patrón i- (a) posiciones a la dcha del texto Coste del preprocesamiento O(m+ )
36 Para mover más de una posición 2. Regla del buen sufijo: Si estoy comparando p 1 p m con t j+1 t j+m empezando por p m con t j+m, si encuentro p i-1 distinto de t j+i-1, Muevo el p hacia la derecha hasta la siguiente ocurrencia de p i p m en p
37 Regla del buen sufijo
38 Para mover más de una posición 2. Regla del buen sufijo PLUS: Si estoy comparando p 1 p m con t j+1 t j+m empezando por p m con t j+m, si encuentro p i-1 distinto de t j+i-1, Muevo el p hacia la derecha hasta la siguiente ocurrencia de p i p m en p Si no aparece muevo al mayor k tal que p 1 p k es sufijo de p i p m (i) es dónde colocar p m
39 Regla del buen sufijo PLUS
40 Cómo calcular La siguiente ocurrencia de p i p m en p (Muevo el p hacia la derecha hasta la siguiente ocurrencia de p i p m en p) Es como la segunda ocurrencia de (p i p m ) R en p R Es como la primera ocurrencia de (p i p m ) R =p m p i en (p 1 p m-1 ) R =p m-1 p 1
41 Para calcular La primera ocurrencia de p m p i en p m-1 p 1 uso el autómata string matching con patrón p m p i Es como el de patrón p m p 2 pero con estado final distinto (estado final m-i+1)
42 Además (regla del buen sufijo PLUS) Si no aparece (la siguiente ocurrencia de p i p m en p) muevo al mayor k tal que p 1 p k es sufijo de p i p m El último estado de buscar p m p 2 en p m-1 p 1 nos dice: Si hemos llegado al estado m-j+1, eso quiere decir que p m p j es sufijo de p m-1 p 1 p m p j-1 NO es sufijo de p m-1 p 1 j es el menor tal que p j p m es prefijo de p 1 p m-1 k=m-j+1 es el mayor tal que p 1 p k es sufijo de p 2 p m Para i<=j, k=m-j+1 es el mayor tal que p 1 p k es sufijo de p i p m
43 Complejidad buen sufijo Podemos hacer todo el preprocesamiento con el string matching autómata para p m p 2 usándolo una sola vez con entrada p m-1 p 1 Coste de calcular el autómata: O(. m) Usarlo con entrada p m-1 p 1 : O(m)
44
45
46 Complejidad de Boyer-Moore Preprocesamiento O(. m) Caso peor: igual que el inocente O(. m+n. m) Bastante rápido en la práctica Se puede mejorar el preproceso para que el caso peor sea O(n+m)
47 Comparando complejidades Caso peor Algoritmo inocente O(m. (n-m)) String matching automata O(n+. m 2 ), O(n+. m) Boyer-Moore O(. m+n. m), O(n+m+ ) El caso peor del Boyer-Moore ocurre poco Alternativa: el Knuth-Morris-Pratt (mejor en el caso peor, peor en la práctica)
48 Separando el preprocesamiento Algoritmo inocente: O(m. (n-m)) String matching autómata: O(. m) preprocesamiento del patrón O(n) string matching Boyer-Moore O(. m) preprocesamiento del patrón, mejorado O( +m) O(n. m) string matching, mejorado O(n)
49 El próximo día El problema de string matching: String matching automata Boyer-Moore Árboles de sufijos (con otras aplicaciones) Vectores de sufijos
String matching: Árboles de sufijos. Algoritmia para problemas difíciles Elvira Mayordomo
String matching: Árboles de sufijos Algoritmia para problemas difíciles 15-12-15 Elvira Mayordomo Contenido El problema de string matching Árboles de sufijos Algoritmos de propósito general Vectores de
Más detallesÁrboles de sufijos. Algoritmia para problemas difíciles Elvira Mayordomo
Árboles de sufijos Algoritmia para problemas difíciles 25-11-14 Elvira Mayordomo Contenido El problema de string matching Algoritmos de propósito general Árboles de sufijos Otras aplicaciones de árboles
Más detallesAlgoritmos para strings (3) Bioinformática, Elvira Mayordomo
Algoritmos para strings (3) Bioinformática, 17-2-16 Elvira Mayordomo Hoy Otras aplicaciones de árboles sufijos El problema del substring Substring común más largo Solapes (Overlaps) Repeticiones (exactas
Más detallesString Matching. Análisis y diseño de algoritmos II
Análisis y diseño de algoritmos II Encontrar todas las ocurrencias de un patrón en un texto. Texto Patrón a b c a b a a b c a a b a a b a c Aplicaciones Funcionalidad de editores de texto Patrones en secuencias
Más detallesAnálisis de algoritmos
Tema 11: Algoritmos de empate de cadenas M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Introducción Empate de cadenas Fuerza
Más detallesAutómatas Finitos Deterministicos (DFA)
Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica Fa.M.A.F., Universidad Nacional de Córdoba 22//4 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes y computación.
Más detallesAutómatas Finitos Deterministicos (DFA)
Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica y la Computación Fa.M.A.F., Universidad Nacional de Córdoba 26/0/6 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes
Más detalles1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).
Unidad 2.- Lenguajes Regulares Los lenguajes regulares sobre un alfabeto dado _ son todos los lenguajes que Se pueden formar a partir de los lenguajes básicos?, {_}, {a}, a 2 _, por medio De las operaciones
Más detallesAlgoritmos de Búsqueda Secuencial de Texto. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides
Algoritmos de Búsqueda Secuencial de Texto UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides Agenda Introducción. Algoritmo Fuerza Bruta (Naive). Algoritmo Shift-Or.
Más detallesSecuenciación de DNA. Bioinformática, Elvira Mayordomo
Secuenciación de DNA Bioinformática, 15-3-16 Elvira Mayordomo Hoy Introducción a la secuenciación de DNA El proyecto del genoma humano El proyecto de los 1000 genomas Mapa físico Sitios de restricción
Más detallesStrings. Pablo Blanc (con diapos robadas a Leopoldo Taravilse) Training Camp Buen Kilo de Pan Flauta. Pablo Blanc (BKPF) Strings TC / 33
Strings Pablo Blanc (con diapos robadas a Leopoldo Taravilse) Buen Kilo de Pan Flauta Training Camp 2017 Pablo Blanc (BKPF) Strings TC 2017 1 / 33 Contenidos 1 Bordes Knuth-Morris-Pratt 2 3 Problemas Pablo
Más detallesMétodos de alineamiento. Bioinformática, Elvira Mayordomo
Métodos de alineamiento Bioinformática, 24-2-16 Elvira Mayordomo Motivación: 2 razones para comparar secuencias biológicas 1. Los errores y omisiones en los datos biológicos producidos en la extracción
Más detallesProcesado de cadenas de caracteres
Procesado de cadenas de caracteres 1) Algoritmo Trivial 2) Algoritmo Rabin-Karp. 3) Algoritmo Knuth-Morris-Pratt 4) Algoritmo Boyer-Moore 5) Busqueda de expresiones regulares Problema: Encontrar todas
Más detallesIntroducción a la biología computacional. El plan: Algoritmos de reconocimiento de patrones:
El plan: Introducción a la biología computacional Algoritmos de reconocimiento de patrones: Knuth-Morris-Pratt Boyer-Moore Árboles de sufijos Primeras aplicaciones de los árboles de sufijos Técnicas Avanzadas
Más detallesAnálisis de Algoritmos
Análisis de Algoritmos COMP-420 Dra. Claudia Esteves Jaramillo Dr. Alonso Ramirez Manzanares Dr. Johan Van Horebeek Depto. de Matemáticas Univ. de Guanajuato e-mail: alram@cimat.mx web: http://www.cimat.mx/~alram/comp_algo/
Más detallesConvertir un AFND a un AFD
Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.
Más detalles06 Análisis léxico II
2 Contenido Alfabetos, símbolos y cadenas Operaciones con cadenas Concatenación de dos cadenas Prefijos y sufijos de una cadena Subcadena y subsecuencia Inversión de una cadena Potencia de una cadena Ejercicios
Más detallesThe Naive String-Matching Algorithm
Facultad de Producción y Servicios Escuela Profesional de Ingeniería de Sistemas Asignatura: Analisis y Diseño de Algoritmos Desarrollo de Investigación: Grupo-6 Docente: Mgter. Carlo Corrales Delgado
Más detallesIntroducción a la biología computacional. El plan: Algoritmos de reconocimiento de patrones:
El plan: Introducción a la biología computacional Algoritmos de reconocimiento de patrones: Knuth-Morris-Pratt Boyer-Moore Árboles de sufijos Primeras aplicaciones de los árboles de sufijos Técnicas Avanzadas
Más detallesCAPITULO 2: LENGUAJES
CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,
Más detallesAlgoritmos de Strings. Héctor Navarro
lgoritmos de Strings Héctor Navarro Substrings Dado un string T (posiblemente muy grande) y un patrón P (de tamaño menor), encontrar la primera (o todas) las apariciones de P en T Solución trivial de (NM)
Más detallesProgramación Dinámica 1
Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir
Más detalles300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos
300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Qué es un computador? Todos lo sabemos!!!
Más detallesLenguajes, Gramáticas y Autómatas Conceptos
Lenguajes, Gramáticas y Autómatas Conceptos Departamento de Informática e Ingeniería de Sistemas C.P.S. Universidad de Zaragoza Última revisión: Febrero. 2004 11/02/2004 1 Índice Alfabetos, palabras y
Más detallesOrdenamiento - Sorting - Sortin
Ordenamiento - Sorting - Sortin Christian Russo Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 13 de Mayo de 2016 Algunas aclaraciones Este tipo de ejercicios
Más detallesAutómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales
los s s s s INAOE (INAOE) 1 / 58 Contenido los s s 1 los s 2 3 4 s 5 (INAOE) 2 / 58 los s los s los s s : Conjunto de estados + Control Cambio de estados en respuesta a una entrada. Tipo de Control: :
Más detallesALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
ALGORITMOS DIGITALES II Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 OBJETIVOS Conocer los principios básicos de los algoritmos. Establecer paralelos entre los algoritmos, los programas y las
Más detallesLenguajes (gramáticas y autómatas)
Lenguajes (gramáticas y autómatas) Elvira Mayordomo Universidad de Zaragoza 19 de septiembre de 2013 Elvira Mayordomo (Universidad de Zaragoza) Lenguajes (gramáticas y autómatas) 19 de septiembre de 2013
Más detallesMODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.
MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.
Más detallesBioinformática y Biología molecular. Algoritmia para problemas difíciles 24 / 11 / 2014 Elvira Mayordomo (con comentarios de Jorge Álvarez)
Bioinformática y Biología molecular Algoritmia para problemas difíciles 24 / 11 / 2014 Elvira Mayordomo (con comentarios de Jorge Álvarez) Contenido Introducción y ejemplos Las proteínas Los ácidos nucleicos
Más detallesPropiedades de Lenguajes Regulares
de INAOE (INAOE) 1 / 44 Contenido 1 2 3 4 (INAOE) 2 / 44 Existen diferentes herramientas que se pueden utilizar sobre los lenguajes regulares: El lema de : cualquier lenguaje regular satisface el pumping
Más detallesParte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Cadenas y expresiones regulares
Parte de Algoritmos, de la asignatura de Programación Máster de Bioinformática Departamento de Informática y Sistemas Universidad de Murcia http://dis.um.es/ domingo/algbio.html domingo@um.es Contenido
Más detallesCompiladores: Sesión 6. Optimización
Compiladores: Sesión 6. Optimización Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali 7 de febrero de 2008 Optimización Se proponen
Más detallesStrings. Leopoldo Taravilse 1. Training Camp Universidad de Buenos Aires. 1 Facultad de Ciencias Exactas y Naturales
Strings Leopoldo Taravilse 1 1 Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2014 Leopoldo Taravilse (UBA) Strings TC 2014 1 / 51 Contenidos 1 String Matching String
Más detallesEjercicio. Usando la formulación del principio de inducción mostrada en la transparencia anterior, demuestre que: 2 2 n 1esdivisiblepor3. =2 n.
Ejercicio Usando la formulación del principio de inducción mostrada en la transparencia anterior, demuestre que: n 1esdivisiblepor3 n i=0 ( ) n i = n IIC153 Inducción 18 / 30 Inducción estructural La forma
Más detallesAutómatas Finitos No-Deterministicos (NFA)
(NFA) Introducción a la Lógica Fa.M.A.F., Universidad Nacional de Córdoba 2//5 Outline of the Talk Intuiciones Definición Lenguaje de un NFA Euivalencia de Lenguajes de un NFA y un DFA Determinización
Más detallesCompiladores: Sesión 3. Análisis léxico, expresiones regulares
Compiladores: Sesión 3. Análisis léxico, expresiones regulares Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali 29 de enero de
Más detallesTeoría de autómatas para investigadores en XML
en XML Rafael C. Carrasco Jiménez Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante Febrero 2006 30 de enero de 2007 finitos de cadenas Un DFA (deterministic finite-state automaton)
Más detallesOBJETIVOS ÍNDICE BIBLIOGRAFÍA
OBJETIVOS Tema 9: GRAFOS Primera Parte Estructuras de Datos y Algoritmos Curso 2002/03 Definiciones formales de grafo y conceptos relacionados Estructuras de datos para representar grafos Algoritmos para
Más detalles1. Cadenas EJERCICIO 1
LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada
Más detallesComputabilidad y Lenguajes Formales: Autómatas Finitos
300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. No Determinismo Hasta ahora cada
Más detallesCOMPUTABILIDAD Y COMPLEJIDAD
COMPUTABILIDAD Y COMPLEJIDAD Año 2017 Carrera: Licenciatura en Informática Plan 2007-2012-2015 Año: 3 Duración: Semestral Profesor: Fernando G. Tinetti FUNDAMENTACION: Se presentan las ideas básicas de
Más detallesCoordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012
Coordinación de Ciencias Computacionales INAOE Teoría de Autómatas y Lenguajes Formales Temario detallado para examen de ingreso 2012 1. Autómatas 1.1. Por qué estudiar la teoría de autómatas? 1.1.1. Introducción
Más detallesLENGUAJES Y GRAMÁTICAS
LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas
Más detallesUNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2.
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 2 Análisis Léxico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos del Tema
Más detalles3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares
Curso Básico de Computación 3 Propiedades de los conjuntos regulares 3. Lema de Bombeo para conjuntos regulares El lema de bombeo es una herramienta poderosa para probar que ciertos lenguajes son no regulares.
Más detallesGramáticas libres de contexto
Gramáticas libres de contexto Conceptos básicos El siguientes es un ejemplo de una gramática libre de contexto, a la cual llamaremos G1. A 0A1 A B B # Una gramática consiste de una colección de reglas
Más detallesTIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY Para el estudio de este tema es necesario analizar dos tipos de gramáticas de la clasificación de Chomsky, las regulares y las independientes de contexto, las
Más detallesEstructura de Datos Árboles Árboles 2-3
Estructura de Datos Árboles 1-2-3 Árboles 2-3 Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 1 Arboles 1-2-3 Árbol n-ario ordenado de orden 3 Cada nodo tiene 1 ó 2 elementos 75 Nodo
Más detallesCiencias de la Computación I
Ciencias de la Computación I Autómatas Linealmente Acotados Máquinas de Turing Motivación - Es posible diseñar un AP que reconozca el lenguaje L 1? L 1 = { a n b n c n / n > 0 } Ejemplo una estrategia
Más detallesFundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
Más detallesLEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
Más detallesNo todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:
1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.
Más detalles5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones
1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y
Más detallesPreguntas básicas de geometría computacional. comp-420
Preguntas básicas de geometría computacional comp-420 Bibliografía Joseph O Rourke. Computational Geometry in C. Cambridge University Press. 1994. Mark de Berg, et al. Computational Geometry. Algorithms
Más detallesConjuntos y expresiones regulares. Propiedades de las expresiones regulares (1) Propiedades de las expresiones regulares (2)
César Ignacio García Osorio Área de Lenguajes y Siste mas Informáticos Universidad de Burgos Conjuntos y expresiones regulares Conjunto regular: Cualquier conjunto de cadenas que se pueda formar mediante
Más detallesCurso Básico de Computación
CINVESTAV IPN México City 2010 1 Preliminares 1.1 Cadenas, alfabetos y lenguajes Un símbolo es un ente abstracto que no se puede definir formalmente. Letras o dígitos son ejemplos
Más detallesINAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares
INAOE (INAOE) 1 / 52 Contenido 1 2 3 4 (INAOE) 2 / 52 Es un equivalente algebraico para un autómata. Utilizado en muchos lugares como un lenguaje para describir patrones en texto que son sencillos pero
Más detallesCC40A Complejidad de Kolmogorov
CC40A Complejidad de Kolmogorov Ricardo Baeza Yates, Rodrigo Paredes Dept. de Ciencias de la Computación, Universidad de Chile. 1. Definiciones Básicas La Complejidad de Kolmogorov (CK) de un string s
Más detallesMáquinas de Turing, programas y tesis de Turing-Church
Máquinas de Turing, programas y tesis de Turing-Church Elvira Mayordomo, Universidad de Zaragoza Ilustraciones: Costas Busch, Rensselaer Polytechnic Institute 1 Máquinas de Turing 2 La jerarquía de lenguajes
Más detallesEJERCICIOS del TEMA 3: Lenguajes independientes del contexto
EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )
Más detallesAnalizador Sintáctico Ascendente
Analizador Sintáctico Ascente Un Analizador Sintáctico (A. St.) Ascente construye el árbol desde las hojas hacia la raíz. Funciona por reducción-desplazamiento, lo cual quiere decir que, siempre que puede,
Más detallesConjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.
Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por
Más detallesIN34A - Optimización
IN34A - Optimización Complejidad Leonardo López H. lelopez@ing.uchile.cl Primavera 2008 1 / 33 Contenidos Problemas y Procedimientos de solución Problemas de optimización v/s problemas de decisión Métodos,
Más detallesCurso Básico de Computación Preliminares
Curso Básico de Computación Preliminares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Preliminares 2010 1 / 11 1 Preliminares
Más detallesNivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.
Universidad Rey Juan Carlos Curso 2010 2011 Teoría de Autómatas y Lenguajes Formales Ingeniería Técnica en Informática de Sistemas Hoja de Problemas 12 Propiedades de L.I.C. Nivel del ejercicio : ( ) básico,
Más detallesFacultad de Ciencias Físicas y Matemáticas Universidad de Chile Santiago. Búsqueda en Texto. CC Diseño y Análisis de Algoritmos
Facultad de Ciencias Físicas y Matemáticas Universidad de Chile Santiago Integrantes: Edward Moreno Felipe Rubilar Profesor: Gonzalo Navarro Fecha: 12 de octubre de 2015 Sección ÍNDICE 2 Índice 1 Introducción
Más detallesAutómatas de Pila y Lenguajes Incontextuales
Autómatas de Pila y Lenguajes Incontextuales Elvira Mayordomo Universidad de Zaragoza 5 de noviembre de 2012 Contenido de este tema 1. Introducción a los autómatas de pila 2. Definiciones 3. Equivalencia
Más detallesAlgoritmos para determinar Caminos Mínimos en Grafos
Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)
Más detallesPlanificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5
Planificaciones 7529 - Teoría de Algoritmos I Docente responsable: WACHENCHAUZER ROSA GRACIELA 1 de 5 OBJETIVOS Que el alumno - adquiera las herramientas teóricas y prácticas para la evaluación del costo
Más detallesAutómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50
INAOE (INAOE) 1 / 50 Contenido 1 2 3 4 (INAOE) 2 / 50 Pushdown Automata Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado pushdown automata. Un pushdown automata (PDA)
Más detallesAutómata de Pila (AP, PDA) Tema 18
Tema Autómata de Pila (Pushdown Automata Autómata de Pila (AP, PDA Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack. Dr. Luis A. Pineda
Más detallesIntroducción a los códigos compresores
Introducción a los códigos compresores Parte I de la Lección 2, Compresores sin pérdidas, de CTI Ramiro Moreno Chiral Dpt. Matemàtica (UdL) Febrero de 2010 Ramiro Moreno (Matemàtica, UdL) Introducción
Más detallesDepartamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial
Departamento de Tecnologías de la Información Tema 4 Máquinas de Turing Ciencias de la Computación e Inteligencia Artificial Índice 4.1 Límites de los autómatas 4.2 Definición de Máquina de Turing 4.3
Más detallesAlgoritmos de Búsqueda
Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda
Más detalles1. Introducción. 2. Semiautómatas: definiciones básicas. Tema 3: Autómatas
Tema 3: Autómatas 1 Tema 3: Autómatas 1. Introducción. A finales de los años 30 del siglo XX, surgió la necesidad de describir en lenguaje maatemático ciertas acciones del sistema nervioso del ser humano.
Más detallesCurso Básico de Computación
Curso Básico de Computación 3 Propiedades de los conjuntos regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 3 Propiedades
Más detallesTema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3
Tema 2: Grafos y Árboles Algoritmos y Estructuras de Datos 3 1 ÍNDICE 2.1 Definiciones básicas: grafos y árboles 2.2 Representaciones de árboles y grafos 2.3 Algoritmos de recorrido de árboles binarios
Más detallesTEORIA DE AUTOMATAS.
TEORIA DE AUTOMATAS. RELACION DE PROBLEMAS II.. Construir un AFND capaz de aceptar una cadena u {, }, que contenga la subcadena. Construir un AFND capaz de aceptar una cadena u {, }, que contenga la subcadena.
Más detallesArreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Más detallesApuntes de compiladores
Apuntes de compiladores Tomás Barros 4 de septiembre de 2008 1. Introducción Un compilador es simplemente un programa que puede leer un programa en un lenguaje y traducirlo a otro lenguaje programa fuente
Más detallesEl lema de bombeo para lenguajes regulares
El lema de bombeo para lenguajes regulares Lenguajes, Gramáticas y Autómatas, cuarto cuatrimestre (primavera) de Ingeniería en Informática http://webdiis.unizar.es/asignaturas/lga Rubén Béjar Hernández,
Más detallesClase 03: Alfabetos, símbolos y cadenas
Solicitado: Ejercicios 01: Cadenas M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom edfranco@ipn.mx 1 Contenido Alfabetos, símbolos y cadenas Operaciones
Más detallesINSTITUTO POLITÉCNICO NACIONAL
PROGRAMA SINTÉTICO UNIDAD ACADÉMICA: Escuela Superior de Cómputo PROGRAMA Ingeniería en Sistemas Computacionales ACADÉMICO: UNIDAD DE APRENDIZAJE: Análisis de algoritmos NIVEL: I PROPÓSITO DE LA UNIDAD
Más detallesOrdenamiento en Tiempo Lineal - Medianas y Ordenes sticas
Ordenamiento en Tiempo Lineal - Medianas y Ordenes Estadísticas sticas CLASIFICACIÓN EN TIEMPO LINEAL. 1.- Cota Inferior para Ordenamiento por comparaciones. -árbol de decisión. - limite inferior para
Más detallesComputabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)
Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma) Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali
Más detallesTema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I
Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison
Más detallesProgramación Dinámica
Programación Dinámica Es aplicada típicamente a problemas de optimización, donde puede haber muchas soluciones, cada una tiene un valor asociado y prentendemos obtener la solución con valor óptimo. Al
Más detallesUniversidad de Valladolid
Universidad de Valladolid Departamento de Informática Teoría de autómatas y lenguajes formales. 2 o I.T.Informática. Gestión. Examen de primera convocatoria. 18 de junio de 29 Apellidos, Nombre... Grupo:...
Más detallesUnidad 2: Problemas de camino mínimo
Representación Recorrido de grafos Camino mínimo Unidad 2: Problemas de camino mínimo Representación Matriz de adyacencia Matriz de incidencia Listas de vecinos Recorrido de grafos Estructuras de datos
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detallesAlgoritmia para problemas difíciles
Algoritmia para problemas difíciles Elvira Mayordomo Universidad de Zaragoza 21 de septiembre de 2015 Elvira Mayordomo (Universidad de Zaragoza) Algoritmia para problemas difíciles 21 de septiembre de
Más detallesFuncionamiento del A.L.
ANALIZADOR LEXICO 1 Funcionamiento del A.L. Programa fuente Analizador léxico Componente léxico Obtén el siguiente componente léxico Analizador sintáctico Tabla de símbolos 2 Maneja el fichero del programa
Más detallesUna introducción a la combinatoria analítica. Análisis del algoritmo de Euclides en F q [X].
Una introducción a la combinatoria analítica. Análisis del algoritmo de Euclides en F q [X]. Eda Cesaratto Universidad Nacional de Gral. Sarmiento and CONICET (Argentina) Jornadas de y dinámica. Aplicaciones
Más detallesMinimización de Aútomatas Finitos
Minimización de Aútomatas Finitos Supongamos que para un AFD M = (Q, Σ, δ, q 0, F ) definimos la siguiente relación R M : xr M y ssi δ(q 0, x) = δ(q 0, y) Claramente, podemos notar que esta relación es
Más detallesautómatas finitos y lenguajes regulares LENGUAJES FORMALES Y
CONTENIDO Reconocedores [HMU2.1]. Traductores [C8]. Diagramas de Estado [HMU2.1]. Equivalencia entre AF deterministas y no deterministas [HMU2.2-2.3]. Expresiones [HMU3]. Propiedades de [HMU4]. Relación
Más detallesUnidad 4. Autómatas de Pila
Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje
Más detallesSimilitud de Secuencias: de un Par a Todas contra Todas
Similitud de Secuencias: de un Par a Todas contra Todas Ricardo Baeza-Yates Centro de Investigación de la Web Depto. de Ciencias de la Computación Universidad de Chile ricardo@baeza.cl Resumen Similitud
Más detallesUna cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.
Alfabetos, Cadenas y Lenguajes Definición 1 Un Alfabeto es cualquier conjunto finito, no vacío. Ejemplo 1 Sea Σ = {0, 1, 2, 3,..., 9} donde 0 Σ Definición 2 Una cadena sobre Σ es cualquier secuencia de
Más detallesMuchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b.
El Teorema Maestro Muchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b c)+f (n) n 1 donde a, b y c son constantes, y f (n) es una
Más detalles