Máquinas Secuenciales, Autómatas y Lenguajes Tema 4: “Expresiones Regulares” Luis Peña Sumario Tema 4: “Expresiones Regulares”. 1. 2. Concepto de Expresión Regular Teoremas de Equivalencia Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 2 Sumario Tema 4: “Expresiones Regulares”. 1. 2. Concepto de Expresión Regular Teoremas de Equivalencia Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 3 Concepto de Expresión Regular El objetivo de las Expresiones Regulares es representar todos los posibles lenguajes definidos sobre un alfabeto Σ. Para ello se utilizan: Lenguajes primitivos: Lenguaje vacío, el lenguaje con la palabra vacía, y los lenguajes con los símbolos del alfabeto. Operadores de composición: unión, concatenación, el cierre y los paréntesis. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 4 Concepto de Expresión Regular (definición) Definición 1 (ER) Dado un alfabeto , una expresión regular sobre se define de forma recursiva: 1. ER primitivas: 2. Si α y β son ER, entonces son también ER: 3. , , {a | a } α + β (unión), α β (concatenación), α* (cierre), (α). No existen otras reglas para la construcción de ER sobre . Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 5 Concepto de Expresión Regular (definición) Precedencia de operadores: (), * (cierre), contatenación, + (unión). Ejemplos: (0+1) * 01 (aa + ab + ba + bb) * a *(a+b) (aa) *(bb)*b Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 6 Concepto de ER (lenguaje reconocido) Definición 3 (Lenguaje reconocido por una ER) L(r), lenguaje reconocido por una ER r (def. recursiva): Casos básicos: Si r = , L() = Si r = , L() = {} Si a, a , L(a) = {a} Casos recursivos (α y β son ER): Si r=α+β, L(α+β)=L(α) U L(β) Si r=αβ, L(αβ)=L(α)L(β) Si r=α*, L(α*)= L(α)* Si r=(α), L((α))=L(α) Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 7 Concepto de ER (lenguaje reconocido) Ejemplos: ¿Qué palabras aceptan las siguientes ER? (0+1)* 01 a*(b+c) 0* 10* (a+b+c+…+z)*(a+b)* a*(a+b)c* ¿ER para el lenguaje L = {w {a,b}* | na(w)+nb(w) es par}? ¿ER para el lenguaje L = {w {a,b,c}* | w tiene un nº par de a’s}? Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 8 Propiedades de ER Definición 4 (equivalencia de ER): Dos expresiones regulares, r1 y r2, se dicen equivalentes, r1 = r1, si describen el mismo lenguaje (L(r1) = L(r1)). Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 9 Propiedades de ER Propiedades (de la equivalencia de ER): Asociativa: Conmutativa: α+β=β+α Distributiva: α + (β + μ) = (α + β) + μ α (β μ) = (α β) μ α (β + μ) = α β + α μ (α + β) μ = α μ + β μ Elemento neutro: α=α α + = α Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 10 Propiedades de ER Propiedades (de la equivalencia de ER): α= Si L(α), entonces α += α α* = + α α* * = *= α* α*= α* α α* = α* α (α* + β*)* = (α*β*)* = (α + β)* = (α*β)*α* (αβ)*α = α(βα)* Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 11 Propiedades de ER Propiedades (de la equivalencia de ER): Para demostrar la equivalencia de dos expresiones se transforman ambas, utilizando las propiedades, en una misma expresión. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 12 Propiedades de ER Ejemplos: ((c+ba)*a*)* y ((c+ba)+a)* ¿Son equivalentes? (bc + ac*ac + ac*c + a) y (b + ac*a)c + ac* ¿Son equivalentes? Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 13 Propiedades de ER Propiedades (de la equivalencia de ER): Observación 5: Mediante el método anterior no es posible demostrar que dos expresiones no son equivalentes. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 14 Sumario Tema 4: “Expresiones Regulares”. 1. 2. Concepto de Expresión Regular Teoremas de Equivalencia Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 15 Teoremas de Equivalencia Mediante expresiones regulares se puede representar cualquier lenguaje regular. Representación de lenguajes regulares: Gramáticas lineales por la izquierda Gramáticas lineales por la derecha AFD AFND Estudiaremos los algoritmos para pasar de ER a y desde otras representaciones. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 16 Teoremas de Equivalencia Definición 6 (Ecuación Característica): Sea A=({q0,q1,…,qn},,f’,q0,F) un AFD. La ecuación característica para el estado qi es: Xi = bjXj + bkXk+ … +bwXw + ai bkXk en la ecuación si y sólo si hay una transición de qi a qk para el símbolo bk. ai = si qi F ai = si qi F Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 17 Teoremas de Equivalencia Observación 7 (Ecuación Característica): Se pueden construir las ecuaciones características para AFD y AFND. Xi es una ER (con variables) para las cadenas que llevan del estado qi a un estado final. L(Xo) = L(A) Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 18 Teoremas de Equivalencia Ejemplo: Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 19 Teoremas de Equivalencia Ejemplos: Sea el siguiente AFD A=({p,r,q,s,t},{0,1},f,p,{s,t}) con f definido por el siguiente grafo de transición: Obtener las ecuaciones características. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 20 Teoremas de Equivalencia Lema 8 (Ecuación Característica): Sea X una variable, α y β expresiones regulares: X = αX + β, L(α) entonces X= α*β Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 21 Teoremas de Equivalencia Teorema 9: Dado el AF A=(Q,,f,q0,F), existe una ER α tal que L(α) = L(A). Demostración: Podemos suponer que el autómata no tiene transiciones para estar en las hipótesis del lema 8. Podemos resolver sucesivamente las ecuaciones características. La ER α que corresponde con Xo es la que buscamos. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 22 Teoremas de Equivalencia ¿Qué hacemos con las transiciones ? O se obtiene un autómata donde los estados son las clausuras de los estados originales respecto a . O se obtiene el AFD equivalente. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 23 Teoremas de Equivalencia Ejemplos: Sea el siguiente AFD A=({p,r,q,s,t},{0,1},f,p,{s,t}) con f definido por el siguiente grafo de transición: Obtener la ER equivalente. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 24 Teoremas de Equivalencia Ejemplos: Sea el siguiente AFND A=({p,q,r,s,t,u},{a},f,p,{s,u}) con f definido por el siguiente grafo de transición: Obtener la ER equivalente. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 25 Teoremas de Equivalencia Equivalencia entre ER y AFND: Método de las derivadas para obtener una gramática regular (y conversión en AFND). Método de composición de autómatas. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 26 Teoremas de Equivalencia Teorema 11 (AFND equivalente a una ER): Dada una ER α sobre un alfabeto existe un AFND A tal que L(α) = L(A). Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 27 Teoremas de Equivalencia Demostración Teorema 11 Inducción estructural. α = α= α = β1 +β2 α =a α = β1 β2 α = β* Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 28 Teoremas de Equivalencia Ejemplos: Obten los AFND correspondientes a: α = (1+01)*(0+ ) α = aa*bb* Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 29 Teoremas de Equivalencia Corolario 12 Las clases de los lenguajes generados por Gramáticas Regulares, aceptados por AF y por ER son equivalentes. Universidad Rey Juan Carlos Máquinas Secuenciales, Autómatas y Lenguajes Curso 2012-2013 30