EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sean

  • Slides: 64
Download presentation

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sean ∑ = {0, 1} y L,

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, 1001}. Mientras que ML = {11, 110, 001, 0110}.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado ∑ = {0; 1} y la

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado ∑ = {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}*={0 n 10 m | n, m 0}

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Si ∑ = {a, b, c} entonces

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 L 3 = {010101, 01011, 01101, 0111, 10101, 1011, 1101, 111}

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Obtener una ER para el lenguaje en

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,

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)*,

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, abaaa, abbaa.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea el vocabulario {1, 2, 3}, la

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, 123, 11113, 22213, 223, 113, 121211223, 111212213.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Dado el alfabeto Σ = {a, b},

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 Ejemplo Simplificar la ER t = a +

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)* +a (aa + b)* (Propiedad 8) a( λ + (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*O (O

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Simplificar la expresión regular : 1*O (O 1*O + 1)* O 1* + 1* de forma que sólo aparezca un operador +. 1*O (O 1*O + 1)* O 1* + 1* 1*O (1* • O 1*O)* 1* • O 1* + 1* (1*O • 1*O)* 1*O 1*O 1* + 1* ((1*O 1*O)* 1*O 1*O + λ) 1* (1* • O 1*O)* 1* (1 + O 1*O)* (Propiedad 15) (Propiedad 16) (Propiedad 8) (Propiedad 13) (Propiedad 15)

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Encontrar expresiones regulares que representen los siguientes

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

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

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

Expresión regular: (0+1)*01

Expresión regular: (0+1)*01

Expresión regular: (01)*01

Expresión regular: (01)*01

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Lenguaje formado por palabras de longitud par

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

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, aaa, . . . }{a, b} = {a, aa, . . . , b, aab, . . . } = {an|n≥ 1} U {a 2 nb 2 m+1|n, m≥ 0}

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo c*. c+c* =c*¿? c*. c+c* = c*.

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* (por …. . )

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo c+c* =c*¿? c+c* = c+λ+c. c* =

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo c+c* =c*¿? c+c* = c+λ+c. c* = λ+c. (λ+c*) = λ+c. c* = c* (por ……) (por ……)

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo: Sea ∑ ={0, 1} Diseñar una expresión

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo: Sea ∑ ={0, 1} Diseñar una expresión regular que genere un alfabeto ∑ 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 ∑ que empiece con 1, terminen con 2 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

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

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 A 1, donde

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea el autómata finito A 1, donde E={a, b} u {λ}; Q={q 1, q 2, q 3, q 4} y la función f viene dada por la siguiente tabla y el conjunto de estados finales es f={q 3} f a b q 1 q 2 q 4 q 2 q 3 q 4 q 4

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Determinar el lenguaje que reconoce, representar el diagrama

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(q 1, a) =q 2 Entonces se traza

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS f(q 1, a) =q 2 Entonces se traza la flecha q 1 y q 2, apuntando a q 2 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

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea ∑ ={a, b}, Q = {0,

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea ∑ ={a, b}, Q = {0, 1, 2}, q 0 =0, F = {2}, y δ viene definida así: Qi/δ 0 1 2 a 1 2 2 b 0 0 2 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

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

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Se define un estado de absorción o muerte

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Se define un estado de absorción o muerte como aquel estado q Є Q, y q F, 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

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Como vemos, el estado 3 no tiene ninguna

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, 3 F, 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:

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

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

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

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,

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

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 con dos "unos" consecutivos.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas que no contengan 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"

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"

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.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas acabadas en 00 o 11.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas con un "uno" en la antepenúltima posición.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas con un "uno" en la antepenúltima posición.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas de longitud 4.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Cadenas de longitud 4.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS El estado 0, para el símbolo "a" tiene

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS El estado 0, para el símbolo "a" tiene dos transiciones, una al estado 1 y otra al estado 4, es decir, δ (0, a) = {1, 4}. Q={0, 1, 2, 3, 4} F={3, 4} ∑ ={a, b} q 0 =0

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Pasar a DFA este NFA

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Pasar a DFA este NFA

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ya tenemos todos los estados marcados, ahora ya

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ya tenemos todos los estados marcados, ahora ya sólo queda pintar el diagrama de transiciones, luego el DFA quedaría así:

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo El Autómata A=({q 0, q 1, q

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo El Autómata A=({q 0, q 1, q 2}, {0, 1}, , q 0, {q 1}) Autómata representado con una tabla de transiciones: 0 1 q 0 q 2 q 0 q 1 q 1 q 2 q 1 Autómata representado con un diagrama de transiciones:

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Minimizar la siguiente maquina secuencial

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Minimizar la siguiente maquina secuencial

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Creamos dos clases de equivalencia, por un lado

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Creamos dos clases de equivalencia, por un lado los estados finales y por otro el resto de estados. Q/E 1={{A, D, E}, {B, C}} c 1={A, D, E} y c 2={B, C}

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Q/E 2 = {{A, D, E}, {B, C}}

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Q/E 2 = {{A, D, E}, {B, C}} = Q/E 1 Como no se ha producido ningún cambio, paramos y reescribimos la tabla nuevamente.

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea a=ba*

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo Sea a=ba*

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo α =01|1*

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS Ejemplo α =01|1*

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS

EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS