Exámenes de Teorı́a de Autómatas y Lenguajes Formales David Castro Esteban Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2004 Problema 1 (2 ptos.) Obtener expresiones regulares para los siguientes lenguajes: El conjunto de las cadenas de ceros y unos que no tienen dos unos consecutivos y tienen a lo más dos ceros consecutivos. El conjunto de las cadenas de ceros y unos que no terminan en 01. Problema 2 (2 ptos.) Minimizar el autómata finito 1 A 1 0 D 0 0 0 B 0 0 C 1 E 1 0 1 H 1 1 G F 0 1 Problema 3 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata con transiciones vacı́as. 0 A B 1 ε 0 C 0, 1 1 ε D 0, 1 Problema 4 (2 ptos.) Dado un alfabeto finito cualquiera, demostrar que el conjunto de las cadenas sobre dicho alfabeto cuya longitud es un nmero primo, no es un lenguaje regular. Problema 5 (2 ptos.) Construir un autómata a pila que acepte el lenguaje de las cadenas de la forma 0n 1m , donde n, m ∈ N con n < m. Dar una gramática independiente del contexto que genere dicho lenguaje. 3 Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2004 Problema 1 (2 ptos.) Obtener expresiones regulares para los siguientes lenguajes: El conjunto de las cadenas de ceros y unos que no contienen la cadena 010. El conjunto de las cadenas de ceros y unos que no tienen dos ceros consecutivos. Problema 2 (2 ptos.) Construir un autómata determinista mı́nimo que acepte el lenguaje de las cadenas de ceros y unos definido por la expresión regular ((01)∗ 1)+ . Problema 3 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata con transiciones vacı́as. ε 0 A B 1 ε 0, 1 C 0, 1 0, 1 ε D Problema 4 (2 ptos.) Dado un alfabeto finito cualquiera, demostrar que el conjunto de las cadenas sobre dicho alfabeto cuya longitud es un cuadrado perfecto no es un lenguaje regular. Problema 5 (2 ptos.) Construir un autómata a pila que acepte el lenguaje de las cadenas de ceros y unos tales que el nmero de ceros sea distinto del de unos. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2005 Observaciones 1. Los alumnos que hayan entregado un trabajo, deberán responder exclusivamente a dos ejercicios y un problema (todos ellos de libre elección). 2. Los alumnos que no hayan entregado trabajo alguno, deberán responder a todos los ejercicios y problemas. 3. El examen finalizará a las 9:20 pm. Ejercicio 1 (2 ptos.) Decidir si los siguientes autómatas finitos deterministas son equivalentes, i.e. deciden el mismo lenguaje. A b b C a b b B E a a a a b a F a D G b b Ejercicio 2 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata finito no determinista. 0 q0 1 q2 0 1 0 1 q1 0 q3 Ejercicio 3 (2 ptos.) Sea A el conjunto de los árboles binarios cuyos nodos están etiquetados con el número de hijos que tienen. Un ejemplo sencillo de tales árboles viene dado por: 2 0 2 1 0 0 Cada árbol de A puede codificarse mediante una secuencia de caracteres, sobre {0, 1, 2}, construida de la siguiente manera: el primer carácter (por la izquierda) es el que figura en la raı́z, los siguientes caracteres son los asociados a la codificación del subárbol de la izquierda y, por último, los asociados con la codificación del subárbol de la derecha (si existen tales subárboles). El árbol del ejemplo estarı́a codificado mediante la cadena 202100. Dar una gramática independiente del contexto que describa el lenguaje de las codificaciones anteriores y construir el autómata a pila asociado. Problema 4 (2 ptos.) Sea Σ un alfabeto finito y sea L el lenguaje de las cadenas w ∈ Σ∗ tales que su longitud es n! para algún n ∈ N. Demostrar que L no es un lenguaje regular. Problema 5 (2 ptos.) Sean L1 y L2 dos lenguajes recursivamente enumerables. Demostrar que L1 L2 (su concatenación) es recursivamente enumerable. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2005 (bis) Ejercicio 1 (2 ptos.) Decidir si los siguientes autómatas finitos deterministas son equivalentes, i.e. deciden el mismo lenguaje. A b a C b b b B E a a a b b a F a D G b a Ejercicio 2 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata finito no determinista. 1 q0 0 q2 1 0 1 0 q1 0 q3 Ejercicio 3 (2 ptos.) Dar una gramática independiente del contexto que describa las expresiones arı́tmeticas con paréntesis que involucran ceros y unos. Construir un autómata a pila que reconozca dicho lenguaje. Problema 4 (2 ptos.) Sea Σ un alfabeto finito y sea L el lenguaje de las cadenas w ∈ Σ∗ tales que su longitud es n3 para algún n ∈ N. Demostrar que L no es un lenguaje regular. Problema 5 (2 ptos.) Sea L un lenguaje recursivamente enumerables. Demostrar que L∗ (su cláusura de Kleene) es recursivamente enumerable. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Septiembre 2005 Ejercicio 1 (2 ptos.) Minimizar el autómata finito: 1 0 A 1 0 B 0 D 1 1 0 1 E 0 1 0 1 0 H C G F 0 1 Ejercicio 2 (2 ptos.) Convertir en determinista el siguiente autómata finito no determinista: 1 q0 0 q2 1 1 1 q1 0 1 q3 Ejercicio 3 (2 ptos.) Dar una gramática independiente del contexto que describa las expresiones arı́tmeticas con paréntesis que involucran ceros y unos. Construir un autómata a pila que reconozca dicho lenguaje. Problema 4 (2 ptos.) Sea Σ un alfabeto finito y sea L el lenguaje de las cadenas ww, con w ∈ Σ∗ . Demostrar que L no es un lenguaje regular. Problema 5 (2 ptos.) Sean L1 , . . . , Ln lenguajes recursivamente enumerables, demostrar que L1 ∩ . . . ∩ L2 es recursivamente enumerable. ¿Es cierto para la intersección de infinitos lenguajes recursivamente enumerables? (demostrar en caso afirmativo o dar un contraejemplo en caso negativo). Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2006 Ejercicio 1 (2 ptos.) Minimizar el autómata finito: 1 0 A 1 0 0 1 D 0 B 0 C 1 F 1 G 0 1 1 E 0 Ejercicio 2 (2 ptos.) Construir un autómata a pila que reconozca el lenguaje de las cadenas de ceros y unos tales que el número de unos sea distinto del de ceros. k Cuestión 1 (1 pto.) Obtener las expresiones regulares Rij , con 1 ≤ i, j, k ≤ 2, que denotan la cadena que debe leer el autómata para ir del estado i al estado j pasando por nodos etiquetados, como mucho, por k), del siguiente autómata: 1 1 0 2 0, 1 1 . Dar la expresión regular que describe el lenguaje del autómata. Cuestión 2 (1 pto.) Dar una gramática que describa el lenguaje de los palı́ndromos. Transformar dicha gramática en un autómata a pila. Problema 3 (2 ptos.) Sea Σ un alfabeto finito con al menos dos sı́mbolos. Demostrar que el lenguaje L = {w R ww R : w ∈ Σ∗ }, no es independiente de contexto. Problema 4 (2 ptos.) Sean L1 , . . . , Ln una familia finita de lenguajes regulares. Demostrar las siguientes afirmaciones: 1. la unión ∪ni=1 Li es regular, 2. la intersección ∩ni=1 Li es regular, y 3. para todo i, con 1 ≤ i ≤ n, Lci es regular. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2006 Ejercicio 1 (2 ptos.) Minimizar el autómata finito: 1 A 1 0 D 0 0 0 B 0 0 C 1 E 1 0 1 H 1 1 G F 0 1 Ejercicio 2 (2 ptos.) Construir un autómata a pila que reconozca el lenguaje de las cadenas de ceros y unos tales que el número de unos sea menor que el de ceros. k Cuestión 1 (1 pto.) Obtener las expresiones regulares Rij , con 1 ≤ i, j, k ≤ 2, que denotan la cadena que debe leer el autómata para ir del estado i al estado j pasando por nodos etiquetados, como mucho, por k), del siguiente autómata: 1 1 0 2 0, 1 1 . Dar la expresión regular que describe el lenguaje del autómata. Cuestión 2 (1 pto.) Dar una gramática que describa el lenguaje de las expresiones regulares. Transformar dicha gramática en un autómata a pila. Problema 3 (2 ptos.) Demostrar que el lenguaje L = {0n 1n 0n : n ∈ N}, no es independiente de contexto. Problema 4 (2 ptos.) Sean L1 , . . . , Ln una familia finita de lenguajes independientes del contexto sobre un alfabeto Σ. Demostrar que L1 · . . . · Ln es independiente del contexto. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2007 Ejercicio 1 (2 ptos.) Minimizar el autómata finito: 0 1 A 0 1 1 1 D 0 B 0 C 1 F 1 G 0 0 1 E 0 Ejercicio 2 (2 ptos.) Convertir en determinista el siguiente autómata finito no determinista: 1, 0 q0 0 q2 1 1 1 1 q1 1 q3 1 Ejercicio 3 (2 pto.) Construir, empleando los algortimos vistos, la expresión regular que describe el lenguaje del autómata : 1 q0 0 0 0 q2 1 q1 1 0 q3 1 Problema 4 (2 ptos.) Dado un alfabeto finito Σ, demostrar que el lenguaje de las expresiones regulares sobre Σ es independiente de contexto pero no regular (construyendo un autómata a pila y empleando el Lema de Bombeo, respec.). Problema 5 (2 ptos.) En lo que sigue, dado un alfabeto finito Σ, consideramos las expresiones regulares dadas mediante la gramática: E E E E E E ↔ ↔ ↔ ↔ ↔ ↔ (E) E +E E ·E σ (σ ∈ Σ) ∅ ε Dar un algortimo que, tomando como entrada una expresión regular y trabajando directamente sobre la misma (no transforma ésta en autómatas o gramáticas regulares), devuelva una expresión regular que describa al complementario del lenguaje por ella dado. Idem para la instersección. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2007 Ejercicio 1 (2 ptos.) Decidir si los siguientes autómatas finitos deterministas son equivalentes, i.e. deciden el mismo lenguaje. a A b b C b b B E a a a b a a D G b b F a Problema 2 (2 ptos.) Convertir en un autómata finito determinista mı́nimo el siguiente autómata con transiciones vacı́as. 0 A B 1 ε 0 C 0, 1 1 0, 1 D ε Ejercicio 3 (2 ptos.) Construir un autómata a pila que reconozca el lenguaje de las cadenas de ceros y unos tales que el número de unos sea menor que el doble del de ceros. Problema 4 (2 ptos.) Sea Σ un alfabeto finito con al menos dos sı́mbolos. Demostrar que el lenguaje L = {w R ww R : w ∈ Σ∗ }, no es independiente de contexto. Demostrar que no es ası́ si el alfabeto tiene un único sı́mbolo. Problema 5 (2 ptos.) Demostrar que, dado un lenguaje regular L ⊆ Σ∗ , existe un natural n ∈ N tal que para toda cadena w ∈ L y toda subcadena de la misma w 0 de longitud mayor que n (i.e. w = αw 0 β con α, β ∈ Σ∗ ), existen tres cadenas x, y, z ∈ Σ∗ tales que: w 0 = xyz, |xy| ≤ n y |y| ≥ 1, y αxy iyβ ∈ L para todo i ∈ N. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Junio 2007 Ejercicio 1 (2 ptos.) Decidir si los siguientes autómatas finitos deterministas son equivalentes, i.e. deciden el mismo lenguaje. a A b b C b a B E a a a b b a D G b b F a Problema 2 (2 ptos.) Convertir en un autómata finito determinista mı́nimo el siguiente autómata con transiciones vacı́as. 0, 1 A B 1 ε 0 C 0, 1 1 0, 1 D ε Ejercicio 3 (2 ptos.) Construir un autómata a pila que reconozca el lenguaje de las cadenas de ceros y unos tales que el número de ceros sea igual que el de ceros. Problema 4 (2 ptos.) Sea Σ un alfabeto finito con al menos dos sı́mbolos. Demostrar que el lenguaje L = {www : w ∈ Σ∗ }, no es independiente de contexto. Demostrar que no es ası́ si el alfabeto tiene un único sı́mbolo. Problema 5 (2 ptos.) Demostrar que, dado un lenguaje regular L ⊆ Σ∗ , existe un natural n ∈ N tal que para toda cadena w ∈ L y toda subcadena de la misma w 0 de longitud mayor que n (i.e. w = αw 0 β con α, β ∈ Σ∗ ), existen tres cadenas x, y, z ∈ Σ∗ tales que: w 0 = xyz, |xy| ≤ n y |y| ≥ 1, y αxy iyβ ∈ L para todo i ∈ N. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Septiembre 2007 Problema 1 (2 ptos.) Minimizar el autómata finito 1 A 1 0 D 0 0 0 B 0 0 C 1 E 1 0 1 H 1 1 G 1 F 0 Ejercicio 2 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata finito no determinista. 0 q0 1 q2 0 1 0 1 22 q1 0 q3 Ejercicio 3 (2 ptos.) Construir un autómata a pila que reconozca el lenguaje de las cadenas de ceros y unos tales que el número de unos sea, al menos, el doble que el de ceros. Problema 4 (2 ptos.) Sea Σ un alfabeto finito con al menos dos sı́mbolos. Demostrar que el lenguaje L = {www : w ∈ Σ∗ }, no es independiente de contexto. Demostrar que no es ası́ si el alfabeto tiene un único sı́mbolo. Problema 5 (2 ptos.) Demostrar que, dado un lenguaje regular L ⊆ Σ∗ , existe un natural n ∈ N tal que para toda cadena w ∈ L y toda subcadena de la misma w 0 de longitud mayor que n (i.e. w = αw 0 β con α, β ∈ Σ∗ ), existen tres cadenas x, y, z ∈ Σ∗ tales que: w 0 = xyz, |xy| ≤ n y |y| ≥ 1, y αxy iyβ ∈ L para todo i ∈ N. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Febrero 2008 Problema 1 (2 ptos.) Minimizar el autómata finito 1 A 1 0 0 0 D 1 H B 1 1 1 C 0 0 E 0 0 1 0 F G 1 Solución .– Empleamos el algoritmo de marcado. De entrada, marcamos aquellos pares de estados tales que uno es D, i.e. (A, D), (B, D), (C, D), (D, E), (D, F ), (D, G) and (D, H). Hecho esto, procedemos con el paso inductivo del algoritmo: δ(A, 1) = A y δ(H, 1) = D, i.e. (A,H) es distinguible δ(B, 1) = C y δ(H, 1) = D, i.e. (B,H) es distinguible δ(C, 1) = B y δ(H, 1) = D, i.e. (C,H) es distinguible δ(E, 1) = B y δ(H, 1) = D, i.e. (E,H) es distinguible δ(F, 1) = E y δ(H, 1) = D, i.e. (F,H) es distinguible δ(G, 1) = G y δ(H, 1) = D, i.e. (G,H) es distinguible δ(A, 0) = B y δ(E, 0) = H, i.e. (A,E) es distinguible δ(B, 0) = A y δ(E, 0) = H, i.e. (B,E) es distinguible δ(C, 0) = F y δ(E, 0) = H, i.e. (C,E) es distinguible δ(E, 0) = H y δ(F, 0) = C, i.e. (F,E) es distinguible δ(E, 0) = H y δ(G, 0) = F , i.e. (G,E) es distinguible δ(A, 1) = A y δ(F, 1) = E, i.e. (A,F) es distinguible δ(B, 1) = C y δ(F, 1) = E, i.e. (B,F) es distinguible δ(C, 1) = B y δ(F, 1) = E, i.e. (C,F) es distinguible δ(G, 1) = G y δ(F, 1) = E, i.e. (G,F) es distinguible δ(A, 1) = A y δ(G, 0) = E, i.e. (A,G) es distinguible δ(B, 1) = C y δ(G, 0) = E, i.e. (B,G) es distinguible δ(C, 1) = B y δ(G, 0) = E, i.e. (C,G) es distinguible δ(A, 0) = B y δ(C, 0) = F , i.e. (A,C) es distinguible δ(B, 0) = A y δ(C, 0) = F , i.e. (B,C) es distinguible δ(A, 1) = A y δ(B, 1) = C, i.e. (A,B) es distinguible En resumen, todos los pares de estados son distinguibles y el autómata dado ya es mı́nimo. 25 Problema 2 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata finito no determinista con transiciones vacı́as. ε q0 1 q2 1 0 ε 0 q1 0 1 q3 1 Solución .– Tenemos que convertir un autómata finito con transiciones vacı́as a un autómata determinista. Para ello aplicaremos el algoritmo de conversión (incremental).. El estado inicial del nuevo autómata viene dado por la clausura con respecto al vacı́o: Clε (q0 ) = {q0 , q3 }. Las transisiones desde este nuevo estado son: δ({q0 , q3 }, 0) = Clε (δ(q0 , 0)) ∪ Clε (δ(q3 , 0)) = {q0 , q1 , q3 } ∪ ∅ δ({q0 , q3 }, 1) = Clε (δ(q0 , 1)) ∪ Clε (δ(q3 , 1)) = ∅ ∪ {q0 , q1 , q2 , q3 } Aparecen, por lo tanto, dos nuevos estados: {q0 , q1 , q3 } y {q0 , q1 , q2 , q3 }. Las transiciones para esto son: δ({q0 , q1 , q3 }, 0) = Clε (δ(q0 , 0)) ∪ Clε (δ(q1 , 0)) ∪ Clε (δ(q3 , 0)) = {q0 , q1 } ∪ {q3 } ∪ ∅ = {q0 , q1 , q3 } δ({q0 , q1 , q3 }, 1) = Clε (δ(q0 , 1)) ∪ Clε (δ(q1 , 1)) ∪ Clε (δ(q3 , 1)) = ∅ ∪ ∅ ∪ {q0 , q1 , q2 , q3 } = {q0 , q1 , q2 , q3 } δ({q0 , q1 , q2 , q3 }, 0) = Clε (δ(q0 , 0)) ∪ Clε (δ(q1 , 0)) ∪ Clε (δ(q2 , 0)) ∪ Clε (δ(q3 , 0)) = {q0 , q1 } ∪ {q3 } ∪ {q3 } ∪ ∅ = {q0 , q1 , q3 } δ({q0 , q1 , q2 , q3 }, 1) = Clε (δ(q0 , 1)) ∪ Clε (δ(q1 , 1)) ∪ Clε (δ(q2 , 1)) ∪ Clε (δ(q3 , 1)) = ∅ ∪ ∅ ∪ {q0 , q2 , q3 } ∪ {q0 , q1 , q2 , q3 } = {q0 , q1 , q2 , q3 } Los estado finales son aquellos que contienen al estado q3 . En resumen, el autómata que queda es: 0 {q0 , q3 } 0 {q0 , q1 , q3 } 1 1 0 {q0 , q1 , q2 , q3 } 1 27 Problema 3 (2 ptos.) Construir un autómata a pila que acepte por pila vacı́a y reconozca el lenguaje de las expresiones regulares sobre un alfabeto finito Σ. Convertir dicho autómata en una gramática independiente de contexto aplicando el algoritmo al uso. Solución .– Con el fin de conseguir el autómata más sencillo, comenzamos dando una gramática independiente de contexto que genera dicho lenguaje: E E E E E E E → → → → → → → (E) E·E E+E E∗ σ con σ ∈ Σ ε̄ ∅ donde E es el sı́mbolo inicial y el sı́mbolo ε̄ representa la e.r. cadena vacı́a. La conversión de la gramática anterior en un autómata a pila da lugar a un autómata con un único estado, digamos p, cuyas transiciones están definidas mediante: δ(p, ε, E) = (p, (E)) δ(p, σ, σ) = (p, ε) con σ ∈ Σ δ(p, ε, E) = (p, E · E) δ(p, ε̄, ε̄) = (p, ε) δ(p, ε, E) = (p, E + E) δ(p, ∅, ∅) = (p, ε) ∗ δ(p, ε, E) = (p, E ) Puesto que sólo hay un único estado, cada transición sólo da lugar a una única producción. Más concretamente, al convertir el autómata anterior obtenemos la gramática: S → [pEp] [pEp] → [p(p][pEp][p)p] [pEp] → [pEp][p · p][pEp] [pEp] → [pEp][p + p][pEp] [pEp] → [pEp][p∗ p] [pσp] → σ con σ ∈ Σ [pε̄p] → ε̄ [p∅p] → ∅ Problema 4 (2 ptos.) Sea Σ un alfabeto finito. Demostrar que el lenguaje L = {w ∈ Σ∗ : |w| = n2 , con n ∈ N}, no es independiente de contexto. Solución .– Supongamos por reducción al absurdo que L es independiente de contexto. Si es ası́, por el Lema de Bombeo para LIC, existe un natural n ∈ N tal que para toda cadena z ∈ L, de longitud |z| ≥ n, existen cadenas u, v, w, x, y ∈ Σ∗ satisfaciendo: z = uvwxy, |vwx| ≤ n y vx 6= ε, y ∀k ∈ N, uv k wxk y ∈ L. Consideramos z = α · · · α, una cadena de longitud n2 . Por lo anterior, existen u, v, w, x, y ∈ Σ∗ satisfaciendo i), ii) y iii). Tomando k = 2, la cadena uv 2 wx2 y pertenece a L. Ahora bien, n2 = |uvwxy| < |uv 2wx2 y|, pues por ii), |vx| ≥ 1. Además, |uv 2 wx2 y| ≤ n2 + n, pues por ii), tenemos que |vx| ≤ |vwx| ≤ n. Por lo tanto, |uv 2wx2 y| < (n + 1)2 = n2 + 2n + 1, lo cual implica que uv 2wx2 y ∈ / L; contradiciendo iii). Esta contradicción viene de suponer que L es independiente de contexto. Problema 5 (2 ptos.) Demostrar que toda máquina de Turing puede simularse mediante un autómata con dos pilas. Solución .– Sea M = (K, Σ, δ, s) un máquina de Turing determinista y con una única cinta (cualquier otro tipo de máquina, determinista o no determinista, con una o más cintas, puede simularse mediante una de este tipo). Para simular M, mediante un autómata con dos pilas, tenemos que simular tanto la estructura de datos “cinta” como los mivimientos de la propia máquina. Para lo primero, supongamos que en un cierto momento, la configuración de la máquina de Turing viene dada por una terna (q, v, w), donde el último carácter de v es la posición del cursor en la cinta. Esta configuración se codificarı́a en el autómata de la siguiente manera: en la primera pila estarı́a v de manera que en la cima está el último carácter de v y, en la segunda pila, se encuentra w de manera que el primer carácter se encuentra en la cima. Para lo segundo, consideraremos que nuestro autómata tiene los mismos estados que la máquina de Turing y, definimos la función de transición de la siguiiente manera: Las transiciones del tipo δ(p, α) = (q, α0 , −), se simulan en el autómata mediante transiciones del tipo δ 0 (p, ε, α, β) = (q, α0, β, i.e. si no se produce desplazamiento en la MT, tampoco en las pilas del autómata, sólo se actualiza el contenido de la cinta y de la primera pila. Las transiciones del tipo δ(p, α) = (q, α0, →), se simulan en el autómata mediante transiciones del tipo δ 0 (p, ε, α, β) = (q, α0β, ε, i.e. si la MT se desplaza a la derecha, tenemos que desapilar de la segunda pila y apilar en la primera, tras haber actualizado el contenido. Las transiciones del tipo δ(p, α) = (q, α0, ←), se simulan en el autómata mediante transiciones del tipo δ 0 (p, ε, α, β) = (q, ε, α0β, i.e. si la MT se desplaza a la izquierda, tenemos que desapilar de la primera pila y apilar en la segunda, tras haber actualizado el contenido. Antes de comenzar la simulación anterior, el autómata debe leer su entrada e irla apilando en la segunda pila. Una vez leida toda la entrada, la primera pila sólo contiene el inicio de pila, digamos Z, que juega el papel de inicio de cinta. El inicio de pila en la segunda pila juega el papel de último blanco t, cada vez que se pretende mover a la derecha y la pila segunda está vacı́a, el autómata tiene que apilar en la primera pila un blanco. Con todo lo anterior, queda claro que una máquina de Turing puede simularse mediante un autómata con dos pilas. Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Junio 2008 Ejercicio 1 (2 ptos.) Decidir si los siguientes autómatas finitos deterministas son equivalentes, i.e. deciden el mismo lenguaje. A b b C a b b B E a a a a D G b b b a F a Ejercicio 2 (2 ptos.) Convertir en un autómata finito determinista el siguiente autómata finito no determinista. 1 q0 0 1 q1 0 q2 q3 0 Problema 3 (2 ptos.) Construir un autómata a pila que acepte por pila vacı́a y reconozca el lenguaje de las expresiones aritméticas (involucrando números representados en binario). Convertir dicho autómata en una gramática independiente de contexto aplicando el algoritmo al uso. Problema 4 (2 ptos.) Sea Σ un alfabeto finito y sea L el lenguaje de las cadenas w ∈ Σ∗ tales que su longitud es 2n para algún n ∈ N. Demostrar que L no es un lenguaje regular. Problema 5 (2 ptos.) Demostrar que la unión de una familia finita de lenguajes independientes de contexto es independiente de contexto.