780 likes | 1.54k Views
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS. 1 .α + ( β + γ ) = ( α + β ) + γ 2 .α + β = β + α 3 .α + Ø = α 4 .α + α = α 5 .α · λ = α 6 .α · Ø = Ø 7 .α · ( β · γ ) = ( α · β ) · γ 8 .α · ( β + γ ) = αβ + αγ, ( β + γ ) · α = βα + γα.
E N D
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ= α 6.α · Ø = Ø 7.α · (β · γ) = (α · β) · γ 8.α · (β + γ) = αβ + αγ, (β + γ) · α = βα + γα
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 9.λ* = λ 1O.Ø* = λ 11.α · α* = α* · α 12.α* = α* · α* = (α*)* 13.α* = λ+ α · α* 14.(α + β)* = (α* + β*)* 15.(α + β)* = (α* · β*)* = (α* · β)* · α* 16.α · (β · α)* = (α · β)* · α 17. Si λЄL(a), entonces a+λ=a
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sean § = {0, 1} y L, M dos lenguajes sobre § dados por L ={1, 10} y M = {1, 01} entonces LM = {11, 101, 1001}. Mientras que ML = {11, 110, 001, 0110}.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado V = {0; 1} y la ER α= 0*10*, tenemos que: L(0*10*) = L(0*) L(1) L(0*) = (L(0))* L(1) (L(0))* = {0}*.{1}.{0}*={0n10m | n, m 0}
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Si ∑ = {a, b, c} entonces ∑2 = {aa, ab, ac, ba, bb, bc, ca, cb, cc} Ejemplo Sea § = {0, 1} y L = {01, 1}, entonces L3 = {010101, 01011, 01101, 0111, 10101, 1011, 1101, 111}
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Obtener una ER para el lenguaje en el alfabeto {a, b, c} en que las palabras contienen exactamente una vez dos b contiguas. Por ejemplo, las palabras aabb, babba, pertenecen al lenguaje, pero no aaba, abbba ni bbabb.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado el alfabeto Σ = {a, b, c}, (a U b*)a*(bc)* Es una expresión regular que representa al lenguaje ({a} U {b}*) · {a}* · {bc}*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dada la expresión regular (a | b)*, el lenguaje que denota es el que puede formar con todas las cadenas compuestas por a y b incluida la cadena vacía. Algunos ejemplos de sentencias de estos lenguajes son: λ, aaa, bbb, aba, abaaa, abbaa.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea el vocabulario {1,2,3}, la expresión regular (1|2)*3 indica el conjunto de todas las cadenas formada por los símbolos 1 y 2, sucediéndose cualquier Nº de veces (y en cualquier orden), y siempre terminando la cadena en el símbolo 3. 3, 13, 123, 11113, 22213, 23, 223, 113, 121211223, 111212213.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado el alfabeto Σ = {a, b}, (λ U a)*(a U b)*(ba)* Es una expresión regular que representa al lenguaje ({λ} U {a})* · {a, b}* · {ba}*.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Para resolver este problema, expresamos primero la estructura de la ER de la manera siguiente: < contexto1 > bb < contexto2 > El lenguaje de < contexto1 > comprende a las palabras que no tienen bb y además no terminan en b. 4 Esto es equivalente a decir que toda b está seguida de una a o una c. Esto quiere decir que la ER de este contexto va ser de la forma: (. . . b(a + c) . . .)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Similarmente se puede obtener la expresión para < contexto2 >, que es ((a + c ) b)*, Por lo que finalmente la ER del problema es: (b(a + c))*bb((a + c)b)*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea la ERt= a + bc + b3a. Cuál es el lenguaje descrito por t? Que expresión regular corresponde al lenguaje universal sobre el alfabeto {a, b, c?
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS En primer lugar, esta no es estrictamente hablando una ER, ya que no se permite b3a: Sin embargo, aceptamos como válida la expresión a + bc + b3a, como una simplificación de la ER a+bc+bbba. En ese caso, L(t) ={a; bc; bbba}, que como vemos es un lenguaje finito sobre el alfabeto {a; b; c}. La ER que describe el lenguaje universal sobre este alfabeto es (a + b + c)*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Simplificar la ER t = a + a (b + aa) (b*aa)* b* + a (aa + b)*. Aplicando las propiedades de las expresiones regulares, podemos obtener una ER equivalente con tan solo 4 operadores: a + a (b + aa) (b*aa)* b* +a (aa + b)* (Propiedad 15) a + a (b + aa) (b + aa)*+a (aa + b)* (Propiedad 8) a( λ+ (b + aa) (b + aa)*) + a (aa + b)* (Propiedad 13) a( b + aa)* + a (aa + b)* (Propiedad 2) a (aa + b)* + a (aa + b)* (Propiedad 4) a (aa + b)*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Simplificar la expresión regular : 1*O1*O (O1*O1*O + 1)* O1* + 1* de forma que sólo aparezca un operador +. 1*O1*O (O1*O1*O + 1)*O1* + 1* (Propiedad 15) 1*O1*O (1* • O1*O1*O)* 1* • O1* + 1* (Propiedad 16) (1*O1*O • 1*O)* 1*O1*O1*O1* + 1* (Propiedad 8) ((1*O1*O1*O)* 1*O1*O1*O + λ)1* (Propiedad 13) (1* • O1*O1*O)* 1* (Propiedad 15) (1 + O1*O1*O)*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea el vocabulario {a,b} y la expresión regular aa*bb*. Indicar el lenguaje que denota y algunas cadenas de dicho lenguaje. Algunas cadenas: ab, aab, aaaab, abbbb, abb. El lenguaje que se describe es L={cadenas que comienzan por una a y continúan con varias o ninguna a, y siguen con una b y continúan con varias o ninguna b}.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo A = b*ab* El lenguaje A de todas las palabras que tienen exactamente una a: B = b(a U b)* El lenguaje B de todas las palabras que comienzan con b: C = (a U b)*ba(a U b)∗ El lenguaje C de todas las palabras que contienen la cadena ba:
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Encontrar expresiones regulares que representen los siguientes lenguajes, definidos sobre el alfabeto Σ = {a, b}. b(a U b)*a Lenguaje de todas las palabras que comienzan con b y terminan con a. b*ab*ab* Lenguaje de todas las palabras que tienen exactamente dos a’s. (aa U ab U ba U bb)* Lenguaje de todas las palabras que tienen un número par de símbolos (palabras de longitud par).
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Lenguaje de todas las palabras que tienen un número impar de símbolos (palabras de longitud impar). a(aa U ab U ba U bb)* U b(aa U ab U ba U bb)* Lenguaje de todas las palabras que tienen un número par de a/s. b*(ab*a)*b*. (ab*a U b)*. (b*ab*ab*)* U b*. b*(b*ab*ab*)*b*. Encontrar una expresión regular que represente el lenguaje de todas las palabras que no contienen la cadena bc, definido sobre el alfabeto Σ = {a, b, c}. c∗(b ∪ ac∗)∗.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Lenguaje formado por las cadenas que terminan en 01: {0,1}*.{01} ({0} U {1})*.{01} Expresión regular: (0+1)*01
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Lenguaje formado por palabras de longitud par sobre a’s y b’s: {aa,ab,ba,bb}* ({aa} U {ab} U {ba} U {bb})* Expresión: (aa+ab+ba+bb)*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo: L(a*(a+b)) = L(a*)L((a+b)) = L(a)*L(a+b) = L(a)*(L(a)UL(b)) = {a}*({a}U{b}) = {λ,a,aa,aaa,...}{a,b} = {a,aa,...,b,ab,aab,...} = {an|n≥1} U {a2nb2m+1|n,m≥0}
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo c*.c+c* =c*¿? c*.c+c* = c*.c+c*+λ (por …..) = c.c*+c*+λ (por …..) = λ+c.c*+c* (por …..) = c*+c* (por …..) = c* (por …..)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo c+c* =c*¿? c+c* = c+λ+c.c* (por ……) = λ+c+c.c* (por ……) = λ+c.λ+c.c* (por ……) = λ+c.(λ+c*) (por ……) = λ+c.c* (por ……) = c* (por ……)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo: Sea V={0,1} Diseñar una expresión regular que genere un alfabeto V que empiece con 1 y pueda conseguir cualquier cantidad de ceros y unos. 1(0 | 1)* Diseñar una expresión regular que genere un alfabeto V que empiece con 1, terminen con 02 ceros y si empieza con 0 termine con dos unos. 1(0 | 1)* 00 | (0 (0|1)*11)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dar una ER que denote el lenguaje consistente de: al menos dos ceros precedidos por cualquier número de 0’s seguidos por cualquier número de 1’s. Primero podemos desarrollar una ER para 0 y para 0 que denotan los lenguajes {0} y {0} respectivamente. Si concatenamos las dos expresiones 00, obtenemos el lenguaje {00}. Veamos ahora como construir el resto, cualquier número de 0’s lo podemos escribir como 0 y lo mismo para cualquier número de 1’s, 1 y ahora debemos describir la concatenación 0 1 . La expresión regular completa es: 0*1* 00
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo: Dado el lenguaje descrito por la expresión regular (ab)*a, un AFND que acepta dicho lenguaje es el siguiente:
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea el autómata finito A1, donde E={a,b} u {λ}; Q={q1,q2,q3,q4} y la función f viene dada por la siguiente tabla y el conjunto de estados finales es f={q3}
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Determinar el lenguaje que reconoce, representar el diagrama de Moore e indicar la expresión regular que representa al lenguaje. Solución: Se construye el diagrama de Moore, colocando en primer lugar todos los estados dentro del circulo, marcando con doble circulo el estado final. El estado inicial se indica con una flecha que lo señala con la palabra INICIO encima. Para construir las ramas, nos situamos en el primer estado de la tabla de transiciones y se observa que:
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS f(q1,a) =q2 Entonces se traza la flecha q1 y q2, apuntando a q2 y se coloca encima de la flecha el símbolo del vocabulario de entrada a. De igual forma se recorre la tabla de transiciones para cada estado y entrada completándose el diagrama de moore.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea ∑ ={a, b}, Q = {0, 1, 2}, q0 =0, F = {2}, y δ viene definida así: Se define el diagrama de transiciones de dicho autómata como un grafo dirigido, en el que los estados se representan por nodos, las transiciones por flechas, de tal manera que dicho grafo satisface la definición de la función de transición δ
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS En este caso el autómata de la función sería: δ(0, a) = 1, δ (0, b) = 0, δ (1, a) = 2, δ (1, b)=0, δ (2, a) = 2, δ (2, b)=2 Nótese que para todos los símbolos del alfabeto, existe una transición de algún estado. Sabiendo esto, el anterior autómata quedaría representado así
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Se define un estado de absorción o muerte como aquel estado q ЄQ, y qF, que no tiene ninguna transición hacia ningún otro estado (opcionalmente, a sí mismo puede tenerlos), únicamente hay transiciones que inciden en él. Es decir: si δ (q, a) = ø, ó, δ(q, a) = q, a Є∑ .
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Como vemos, el estado 3 no tiene ninguna transición, únicamente hay transiciones que inciden en él. Además, 3F, luego 3 es un estado de muerte. Cuando tenemos estados de muerte, se toma el convenio de no dibujarlos. En este último autómata, Si w = aaab. El autómata acepta la cadena, puesto que para en 2, que es estado de aceptación. • Si w = bbba. El autómata rechaza la cadena, puesto que para en 3, que no es un estado de aceptación.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Hacer el autómata que reconozca este lenguaje: (a|b)aba*
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS En este diagrama de transiciones, se ve que se ha omitido un estado de muerte, porque por ejemplo el estado 1 no tiene transición con el símbolo "b", y va a parar a dicho estado de muerte. Igual pasa con el estado 2 y el símbolo "a", y el estado 3 con el símbolo "b"
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Hacer el diagrama de transiciones con esta definición del autómata: Q={0,1,2,3} ∑ ={a, b} q 0 =0 F={0, 1, 2}
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Como vemos, el estado 3 es un estado de muerte y podía haberse omitido. Este autómata, por ejemplo, acepta combinaciones de cadenas que no tengan 3 "b“ seguidas.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Q={q 0 ,q 1 } ∑ ={0, 1} F={q 0 } q 0 =q 0
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Suponiendo ∑ ={0, 1}, dibujar los diagramas de transición que reconozcan. Cadenas terminadas en 00
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas con dos "unos" consecutivos.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas que no contengan dos "unos" consecutivos.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas con dos "ceros" consecutivos o dos "unos" consecutivos.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas con dos "ceros" consecutivos y dos "unos" consecutivos.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas acabadas en 00 o 11.