Algoritmos para strings. Bioinformática Elvira Mayordomo

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Algoritmos para strings. Bioinformática Elvira Mayordomo"

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 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 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 detalles

Algoritmos para strings (3) Bioinformática, Elvira Mayordomo

Algoritmos 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 detalles

String Matching. Análisis y diseño de algoritmos II

String 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 detalles

Análisis de algoritmos

Aná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 detalles

Autómatas Finitos Deterministicos (DFA)

Autó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 detalles

Autómatas Finitos Deterministicos (DFA)

Autó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 detalles

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

1. 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 detalles

Algoritmos 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 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 detalles

Secuenciación de DNA. Bioinformática, Elvira Mayordomo

Secuenciació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 detalles

Strings. 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) 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 detalles

Métodos de alineamiento. Bioinformática, Elvira Mayordomo

Mé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 detalles

Procesado de cadenas de caracteres

Procesado 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 detalles

Introducción a la biología computacional. El plan: Algoritmos de reconocimiento de patrones:

Introducció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 detalles

Análisis de Algoritmos

Aná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 detalles

Convertir un AFND a un AFD

Convertir 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 detalles

06 Análisis léxico II

06 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 detalles

The Naive String-Matching Algorithm

The 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 detalles

Introducción a la biología computacional. El plan: Algoritmos de reconocimiento de patrones:

Introducció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 detalles

CAPITULO 2: LENGUAJES

CAPITULO 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 detalles

Algoritmos de Strings. Héctor Navarro

Algoritmos 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 detalles

Programación Dinámica 1

Programació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 detalles

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

300CIG007 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 detalles

Lenguajes, Gramáticas y Autómatas Conceptos

Lenguajes, 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 detalles

Ordenamiento - Sorting - Sortin

Ordenamiento - 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 detalles

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Autó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 detalles

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

ALGORITMOS 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 detalles

Lenguajes (gramáticas y autómatas)

Lenguajes (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 detalles

MODELOS 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. 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 detalles

Bioinformá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) 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 detalles

Propiedades de Lenguajes Regulares

Propiedades 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 detalles

Parte 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 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 detalles

Compiladores: Sesión 6. Optimización

Compiladores: 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 detalles

Strings. Leopoldo Taravilse 1. Training Camp Universidad de Buenos Aires. 1 Facultad de Ciencias Exactas y Naturales

Strings. 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 detalles

Ejercicio. 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: 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 detalles

Autómatas Finitos No-Deterministicos (NFA)

Autó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 detalles

Compiladores: Sesión 3. Análisis léxico, expresiones regulares

Compiladores: 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 detalles

Teoría de autómatas para investigadores en XML

Teorí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 detalles

OBJETIVOS ÍNDICE BIBLIOGRAFÍA

OBJETIVOS Í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 detalles

1. Cadenas EJERCICIO 1

1. 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 detalles

Computabilidad y Lenguajes Formales: Autómatas Finitos

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. No Determinismo Hasta ahora cada

Más detalles

COMPUTABILIDAD Y COMPLEJIDAD

COMPUTABILIDAD 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 detalles

Coordinació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 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 detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES 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 detalles

UNIVERSIDAD 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. 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 detalles

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

3 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 detalles

Gramáticas libres de contexto

Gramá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 detalles

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

TIPOS 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 detalles

Estructura de Datos Árboles Árboles 2-3

Estructura 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 detalles

Ciencias de la Computación I

Ciencias 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 detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos 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 detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. 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 detalles

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

No 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 detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

5 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 detalles

Preguntas básicas de geometría computacional. comp-420

Preguntas 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 detalles

Conjuntos y expresiones regulares. Propiedades de las expresiones regulares (1) Propiedades de las expresiones regulares (2)

Conjuntos 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 detalles

Curso Básico de Computación

Curso 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 detalles

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares

INAOE. 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 detalles

CC40A Complejidad de Kolmogorov

CC40A 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 detalles

Máquinas de Turing, programas y tesis de Turing-Church

Má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 detalles

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

EJERCICIOS 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 detalles

Analizador Sintáctico Ascendente

Analizador 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 detalles

Conjuntos. 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. 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 detalles

IN34A - Optimización

IN34A - 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 detalles

Curso Básico de Computación Preliminares

Curso 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 detalles

Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.

Nivel 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 detalles

Facultad 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. 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 detalles

Autómatas de Pila y Lenguajes Incontextuales

Autó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 detalles

Algoritmos para determinar Caminos Mínimos en Grafos

Algoritmos 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 detalles

Planificaciones Teoría de Algoritmos I. Docente responsable: WACHENCHAUZER ROSA GRACIELA. 1 de 5

Planificaciones 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 detalles

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Autó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 detalles

Autómata de Pila (AP, PDA) Tema 18

Autó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 detalles

Introducción a los códigos compresores

Introducció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 detalles

Departamento 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 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 detalles

Algoritmos de Búsqueda

Algoritmos 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 detalles

1. Introducción. 2. Semiautómatas: definiciones básicas. Tema 3: Autómatas

1. 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 detalles

Curso Básico de Computación

Curso 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 detalles

Tema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3

Tema 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 detalles

TEORIA DE AUTOMATAS.

TEORIA 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 detalles

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas

Arreglos. 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 detalles

Apuntes de compiladores

Apuntes 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 detalles

El lema de bombeo para lenguajes regulares

El 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 detalles

Clase 03: Alfabetos, símbolos y cadenas

Clase 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 detalles

INSTITUTO POLITÉCNICO NACIONAL

INSTITUTO 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 detalles

Ordenamiento en Tiempo Lineal - Medianas y Ordenes sticas

Ordenamiento 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 detalles

Computabilidad y lenguajes formales: Sesión 18. Lema de bombeo (Pumping lemma)

Computabilidad 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 detalles

Tema 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 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 detalles

Programación Dinámica

Programació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 detalles

Universidad de Valladolid

Universidad 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 detalles

Unidad 2: Problemas de camino mínimo

Unidad 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 detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura 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 detalles

Algoritmia para problemas difíciles

Algoritmia 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 detalles

Funcionamiento del A.L.

Funcionamiento 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 detalles

Una 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]. 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 detalles

Minimización de Aútomatas Finitos

Minimizació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 detalles

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

autó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 detalles

Unidad 4. Autómatas de Pila

Unidad 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 detalles

Similitud de Secuencias: de un Par a Todas contra Todas

Similitud 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 detalles

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

Una 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 detalles

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.

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. 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