Capítulo 7: Expresiones Regulares

Documentos relacionados
Expresiones regulares, gramáticas regulares

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

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

Expresiones Regulares y Derivadas Formales

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Autómatas de Pila y Lenguajes Incontextuales

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

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

Lenguajes Regulares. Antonio Falcó. - p. 1

Grupos libres. Presentaciones.

Teoría de Autómatas y Lenguajes Formales.

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Espacios vectoriales

Tema 3: Espacios vectoriales

Lenguajes, Gramáticas y Autómatas Conceptos

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

Procesadores de Lenguaje

Autómatas y Lenguajes Formales. Tema 3.2: Autómatas Finitos No Deterministas. Luis Peña luis.pena@urjc.es

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta

Anillo de polinomios con coeficientes en un cuerpo

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Espacios vectoriales

Definición 1.1 Sea G un conjunto. Una operación binaria en G es una aplicación m: G G G.

Ejercicios del Tema 2: Estructuras algebraicas básicas

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

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

06 Análisis léxico II

Convertir un AFND a un AFD

Autómatas Finitos Deterministicos (DFA)

Teoría de Lenguajes. Gramáticas incontextuales

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

TEMA 5. GRAMÁTICAS REGULARES.

Matemáticas Empresariales I. Funciones y concepto de ĺımite

Algebra lineal y conjuntos convexos

LENGUAJES FORMALES Y AUTÓMATAS

Estructuras Algebraicas

Matrices. José Vicente Romero Bauset. ETSIT-curso 2009/2010. José Vicente Romero Bauset Tema 1.- Matrices. 1

Definición: Dos matrices A y B son iguales si tienen el mismo orden y coinciden los elementos que ocupan el mismo lugar.

Métodos directos para resolver sistemas de ecuaciones lineales

Autómatas Deterministas. Ivan Olmos Pineda

Lenguajes y Gramáticas

MATEMÁTICAS 2º BACH TECNOL. MATRICES. Profesor: Fernando Ureña Portero MATRICES

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Formulación del problema de la ruta más corta en programación lineal

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

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

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

GRAMATICAS LIBRES DEL CONTEXTO

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Equivalencia Entre PDA y CFL

Lenguajes (gramáticas y autómatas)

Computabilidad y Lenguajes Formales: Autómatas Finitos

Matrices: repaso. Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas. Una matriz A M m n es de la forma A =

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

IIC2213. IIC2213 Teorías 1 / 42

Numeración. Número Es la idea que tenemos sobre la cantidad de los elementos de la naturaleza.

Números complejos. Números complejos 28/02/2016 CURSO

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Análisis Matemático I: Numeros Reales y Complejos

Espacios Vectoriales

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

520142: ALGEBRA y ALGEBRA LINEAL

El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales.

Espacios Vectoriales

INSTITUTO DE PROFESORES ARTIGAS

Computabilidad y Lenguajes Formales: Autómatas de Pila

Tema 2: Espacios Vectoriales

13.3. MT para reconocer lenguajes

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

PAU Madrid. Matemáticas II. Año Examen modelo. Opción A. Ejercicio 1. Valor: 2 puntos.

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

Capítulo 1 Lenguajes formales 6

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

PROBLEMAS RESUELTOS ÁLGEBRA LINEAL Tema 3. Transformaciones Lineales

2. El conjunto de los números complejos

TEMA 8.- NORMAS DE MATRICES Y

Capítulo 4: Polinomios

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A

Tema 2: El grupo de las permutaciones

TEMA 3 ÁLGEBRA DE CONMUTACIÓN

Clase 03: Alfabetos, símbolos y cadenas

6.1. Anillos de polinomios.

SUMA DE MONOMIOS Y POLINOMIOS

Un subconjunto no vacío H de un espacio vectorial V es un subespacio de V si se cumplen las dos reglas de cerradura:

Transcripción:

Capítulo 7: Expresiones Regulares 7.1. Concepto de expresión regular 7.1.1. Definición 7.1.2. Lenguaje descrito 7.1.3. Propiedades 7.2. Teoremas de equivalencia 7.2.1. Obtener un AFND a partir de una expresión regular 7.2.2. Obtener una expresión equivalente a partir de un autómata finito 1

7.1. Concepto de Expresión Regular El objetivo de las expresiones regulares es representar todos los posibles lenguajes definidos sobre un alfabeto Σ, en base a una serie de lenguajes primitivos, y unos operadores de composición. Lenguajes primitivos: el lenguaje vacío, el lenguaje formado por la palabra vacía, y los lenguajes correspondientes a los distintos símbolos del alfabeto. Operadores de composición: la unión, la concatenación y el cierre. Ejemplo: 1. Lenguaje formado por las cadenas que terminan en 01: {0,1}*.{01}= ({0} {1})*.{01} Expresión regular: (0+1)*01 2. Lenguaje formado por palabras de longitud par sobre a s y b s: {aa,ab,ba,bb}*= ({aa} {ab} {ba} {bb})* Expresión: (aa+ab+ba+bb)* 2

7.1.1 Definición Dado un alfabeto Σ, las expresiones regulares sobre Σ se definen de forma recursiva por las siguientes reglas: 1. Las siguientes expresiones son expresiones regulares primitivas: a, siendo a Σ. 2. Sean α y β expresiones regulares, entonces son expresiones regulares derivadas: α+β (unión) α.β (o simplemente αβ) (concatenación) α* (cierre) (α) 3. No hay más expresiones regulares sobre Σ que las construidas mediante estas reglas. Precedencia de los operadores: 1. () 2. * cierre 3.. concatenación 4. + unión Ejemplo: Algunos ejemplos de expresión regular son: (0 + 1)*01 (aa + ab + ba + bb)* a*(a + b) (aa)*(bb)*b 3

7.1.2 Lenguaje descrito por una ER Definición (Lenguaje descrito por una ER): Sea r una expresión regular sobre Σ. El lenguaje descrito por r, L(r), se define recursivamente de la siguiente forma: 1. Si r= L( )= 2. Si r= L()= {} 3. Si R=a, a Σ L(a)= {a} 4. Si R=α+β L(α+β)= L(α) L(β) 5. Si R=α.β L(α.β)= L(α)L(β) 6. Si R=α* L(α*)= L(α)* 7. Si R=(α) L((α))= L(α) donde α y β son expresiones regulares. 4

Ejemplo: Mostrar el lenguaje descrito por una ER mediante notación conjuntista: 1. L(a*(a+b)) = L(a*)L((a+b)) = L(a)*L(a+b) = L(a)*(L(a) L(b)) = {a}*({a} {b}) = {,a,aa,aaa,...}{a,b} = {a,aa,...,b,ab,aab,...} = {a n n 1} {a n b n 0} 2. L((aa)*(bb)*b) = {a 2n b 2m+1 n,m 0} 3. Si Σ={a,b,c}, entonces L((a+b+c)*)=Σ*. 4. L(a*.(b+c)) 5. L(0*.1.0*) 6. L((a+b+c+...+z)*.(a+b)*) 7. Que lenguaje describe la expresión a*.(a+b).c*? 8. Dado el lenguaje L={w w {a,b,c}* donde w tiene al menos un par de a s consecutivos}. Escribe la expresión regular para L. 9. Escribe todas las palabras de longitud <4 de L((a+b)*.b.(a+a.b)*). 5

7.1.3 Propiedades de Expresiones Regulares Definición (equivalencia de ER): Dos expresiones regulares r 1 y r 2 se dicen equivalentes, r 1 = r 2, si describen el mismo lenguaje, esto es, si L(r 1 )=L(r 2 ). En base a esta definición se pueden establecer las siguientes equivalencias y propiedades: Respecto a las operaciones + y. : 1. + y. son asociativas: α+(β+γ)=(α+β)+γ=α+β+γ y α.(β.γ)=(α.β).γ=α.β.γ 2. + es conmutativa e idempotente: α+β=β+α y α+α=α 3. Distributividad: α.(β+γ)=α.β+α.γ y (α+β).γ=α.γ+β.γ 4. Elemento neutro: α.=.α=α y α+ = +α=α 5..α=α. = 6. Si L(α), entonces α+=α Respecto a la operación *: 7. α*=+α.α* 8. *= 9. *= 10. α*.α*=α* 11. α.α*=α*.α 12. (α*)*=α* 13. (α*+β*)*=(α*.β*)*=(α+β)*=(α*.β)*.α* 14. (α.β)*.α=α.(β.α)* Para comprobar si dos expresiones son equivalentes se puede intentar transformarlos mediante estas reglas en una misma expresión. 6

Ejemplos: Σ={a,b,c} 1. c*.c+c*=c*? c*.c+c* = c*.c+c*+ (por 6) = c.c*+c*+ (por 11) = +c.c*+c* (por 2) = c*+c* (por 7) = c* (por 2) 2. c+c*=c*? c+c* = c++c.c* (por 7) = +c+c.c* (por 2) = +c.+c.c* (por 4) = +c.(+c*) (por 3) = +c.c* (por 6) = c* (por 7) 3. ((c+b.a)*.a*)*=((c+b.a)+a)*? 4. Dado dos expresiones regulares R= b.c+a.c*.a.c+a.c*.c+a y S=(b+a.c*a).c+a.c*. Representan S y R el mismo lenguaje? 5. Demuestre que las expresiones R=(a*.(b+c)*+b*)* y S=(a+b+c)* son iguales. Observación: De este modo sólo se puede demostrar que dos expresiones regulares son equivalentes. Sin embargo, mediante este método, no es posible demostrar que dos expresiones regulares describen lenguajes distintos. 7

7.2 Teoremas de equivalencia Tal y como indica su nombre, mediante expresiones regulares se puede representar lenguajes regulares. De hecho, la clase de lenguajes que se puede representar mediante una ER, es equivalente a la clase de lenguajes regulares. Hasta ahora hemos visto que los lenguajes regulares pueden describirse mediante: Gramáticas lineales por la izquierda Gramáticas lineales por la derecha Autómatas finitos deterministas Autómatas finitos no deterministas Por tanto, deben existir algoritmos que permiten obtener un autómata o una gramática regular a partir de una expresión regular y viceversa. 8

7.2.1 ER equivalente a un autómata finito Tres métodos principales para convertir expresiones regulares en autómatas: Método de las r n ij (Hopcroft). Eliminación de estados (Hopcroft,Linz) Ecuaciones características (Alfonseca, Isasi) (equivalente al método de la eliminación de estados) Definición (ecuación característica): Sea un autómata finito A=({q 0,q 1,,q n },Σ,f,q 0,F). Cada estado del autómata tiene asignado una ecuación característica correspondiente, que describe las distintas formas de llegar desde este estado a un estado final. La ecuación característica para el estado q i es la siguiente: donde: X i =b j X j + b k X k + + b w X w +a i La expresión b k X k forma parte de la ecuación si y sólo si existe una transición del estado q i al estado q k para el símbolo de entrada b k a i es una expresión tal que a i = si q i F; a i = en otro caso. 9

Ejemplo: q 0 a b q 1 c d q 2 c a,d q 3 * c a,b,d q 4 * b,d a,b,c a,b,c,d q 5 a,b,c,d x 0 =b.x 1 +c.x 3 +a.x 5 +d.x 5 + =b.x 1 +c.x 3 +(a+d).x 5 + x 1 =c.x 2 +a.x 0 +(b+d).x 5 + x 2 =d.x 4 +(a+b+c).x 5 + x 3 =c.x 3 +(a+b+d).x 5 + x 4 =(a+b+c+d).x 5 + x 5 =(a+b+c+d).x 5 + Observación: 1. Se puede definir las ecuaciones características para autómatas finitos deterministas y no deterministas. 2. X i es una expresión regular (con variables) que describe las cadenas que llevan del estado q i a un estado final. Evidentemente L(X 0 )=L(A). Teniendo todas las ecuaciones características, se puede resolver la ecuación para el estado inicial obteniendo la expresión regular del lenguaje. El siguiente lema proporciona una regla para eliminar las variables en las ecuaciones. 10

Lema 1: Sea X una variable y A y B expresiones regulares. Si X=A.X+B y L(A), enconces X=A*.B. Demostración: Sea cualquier palabra x L(X) con x =n y X=A.X+B. Se demuestra que se cumple x L(A*B).Consideramos la definición de X: X=A.X+B X=A.(A.X+B)+B=A 2.X+A.B+B X=A 2.(A.X+B)+A.B+B=A 3.X+A 2.B+A.B+B X=A n+1.x+a n.b+ +A.B+B= A n+1.x+(a n + +A+).B Por tanto, L(X)=L(A n+1.x) L((A n + +A+).B) y dado que x L(X) se sigue x L(A n+1.x) o x L((A n + +A+).B). Dado que L(A), para cualquier w L(A n+1.x) se cumple w n+1. x tiene longitud n por lo que x L(A n+1.x). Por tanto, x L((A n + +A+).B) y, entonces también se verifica x L(A*B). Razonando de forma similar se puede demostrar que para cualquier palabra x L(A*B) también se cumple x L(X). 11

Ejemplos: Resolución de ecuaciones 1. X=abX X=abX+ =(ab)* = 2. X=abX+ X=(ab)*= (ab)* 3. X=abX+cX X=(ab+c)X+ = (ab+c)* = Teorema 1: Dado un autómata finito A=(Q,Σ,f,q 0,F), existe una expresión regular R tal que L(R)=L(A). Demostración: La expresión regular equivalente se obtiene resolviendo de forma sucesiva las ecuaciones características del autómata. La expresión regular R será la que se obtiene a partir de la ecuación característica correspondiente al estado inicial del autómata: R=X 0. Ejemplo: (para el autómata anterior) Ecuaciones características: x 0 =b.x 1 +c.x 3 +(a+d).x 5 + x 1 =c.x 2 +a.x 0 +(b+d).x 5 + x 2 =d.x 4 +(a+b+c).x 5 + x 3 =c.x 3 +(a+b+d).x 5 + x 4 =(a+b+c+d).x 5 + x 5 =(a+b+c+d).x 5 + Resolviendo x 5 : x 5 =(a+b+c+d)*. = Resolviendo x 4 : x 4 =(a+b+c+d). += Resolviendo x 2 : x 2 =d.+(a+b+c). + =d Resolviendo x 3 : x 3 =c.x 3 +(a+b+d). +=c.x 3 +=c*.=c* Resolviendo x 1 : x 1 =c.d+a.x 0 +(b+d). + =cd+a.x 0 Resolviendo x 0 : x 0 =b.(cd+a.x 0 )+c.c*+(a+d). + = bax 0 +bcd+c.c*= (ba)*(bcd+cc*) 12

Observaciones: La aplicación de la regla Si X=A.X+B, enconces X=A*.B sólo es posible si L(A). Si el autómata tiene transiciones, entonces es posible que no se pude aplicar esta regla. En consecuencia, será necesario eliminar transiciones antes (convertir el autómata en uno sin transiciones ). Ejemplo: q 2 a a, q 1 q 0 * c x 2 = x 1 =cx 1 +(a+)x 0 + =c*.((a+)x 0 +) =(c*.a+c*)x 0 +c* x 0 =x 1 +ax 2 + =((c*.a+c*)x 0 +c*)+a =(c*.a+c*)x 0 +c* (c*.a+c*)*.c*!!!! Transformación del autómata (eliminación de transiciones ): similar a la conversión a un autómata determinista los estados nuevos son las clausuras de los estados originales respecto a : q 2 a a, q 1 q 0 * c q 2 a {q 0,q 1 }* c,a x 2 = x 01 =(c+a)x 01 ++ax 2 =(c+a)x 01 ++a =(c+a)x 01 +=(c+a)*.=(c+a)* 13

Ejemplos: Obtener las expresiones regulares para los siguientes autómatas: 1. A a b p q p * q p q x p =ax q +bx p + x q =ax p +bx q + Solución: x p =(ab*a+b)*(ab*) 2. A 0 1 * A B A * B C A C C C x A =0x B +1x A + x B =0x C +1x A + x C =0x C +1x C + Solución: x A =(01+1)*(0+) 3. q 0 b c a Solución: x 0 =b+c.c*.a q 1 * q 2 a a,b,c q 3 * c b a,b,c q 4 a,b,c 4. Autómata no determinista a q 1 * c q 0 b c, a q 2 Solución: x 0 =(b+a.c*a)*.a.c* 14

7.2.2 AFND equivalente a una Expresión Regular Dos métodos principales para convertir expresiones regulares en autómatas: Método de las derivadas (Alfonseca) se obtiene una gramática regular que se puede convertir en AFND Método de composición de autómatas (Alfonseca, Linz, Hopcroft) Teorema 2: Dada una expresión regular R sobre el alfabeto, existe un autómata finito no determinista A tal que L(R)=L(A). Demostración: Basándose en la estructura de la expresión regular R, la demostración procede por inducción estructural. Sea ={a 1,,a n }. Si R es una expresión regular primitiva: R= R={} R={a 1 } A a 1 a n q 0 * q f A a 1 a n q 0 {q f } * q f A a 1 a n q 0 {q f } * q f q 0 q f * q * 0 q f q a 1 * 0 q f 15

Si R es una expresión regular derivada: Si R=R 1 +R 2 : A a 1 a n q 0 {q 0_R1,q 0_R2 } q 0_R1 q f_r1 {q f } q 0_R2 q f_r2 {q f } * q f q 0_R1 q 0 q f * q 0_R2 R 1 R 2 q f_r1 q f_r2 Si R=R 1.R 2 : A a 1 a n q 0 {q 0_R1 } q 0_R1 q f_r1 {q 0_R2 } q 0_R2 q f_r2 {q f } * q f q 0 q 0_R1 q 0_R2 R 2 R 1 q f_r1 q f_r2 q f * Si R=R 1 *: A a 1 a n q 0 {q 0_R1, q f } q 0_R1 q f_r1 {q f } * q f {q 0 } q 0 q 0_R1 q f_r1 R 1 q f * Se construye el autómata de forma recursiva: q 0_R1 y q 0_R2 : estados iniciales de los subautómatas para R 1 y R 2 ( no se marcan como estados iniciales!) q f_r1 y q f_r2 : estados finales de los subautómatas para R 1 y R 2 ( no se marcarán como estados finales!) 16

Ejemplos: Obtener los AFND correspondientes a las siguientes expresiones regulares: 1. R=(1+01)*(0+): q 0 0 1 1 0 q f * 17

Como se puede observar, los autómatas así construidas tienen muchas transiciones que se pueden unir: 0 q 1 q 1 0 q 0, 2 q f * 1, El AFD mínimo correspondiente es el siguiente: 1 q 0 * 0 q 1 * 0 1 2. R=(1+01*)* 3. R=a.a*.b.b* 4. R= (b+a).a* q 2 1,0 18

Corolario: Sean L REG, L AF y L ER las clases de los lenguajes aceptados por autómatas finitos, generados por gramáticas regulares y descritos por expresiones regulares, respectivamente. L REG =L AF =L ER Gramáticas regulares Gramática Lineal por la izquierda Gramática Lineal por la Derecha Autómatas Finitos Autómatas Finitos Deterministas Autómatas Finitos NO Deterministas Expresiones Regulares 19