Se prohíbe la reproducción total o parcial de este documento, excepto para uso privado de los alumnos de la asignatura Teoría de Autómatas

I de la UNED y los alumnos de asignaturas equivalentes de otras universidades

Problemas resueltos del libro de texto: J. G. Brookshear, Teoría de la Computación, Addison-Wesley Iberoamericana, 1993

Teoría de Autómatas I
Profª Dra. Mª Ángeles Manjarrés Prof. Dr. Francisco Javier Díez Correo-e: automatas-1@dia.uned.es

Dpto. Inteligencia Artificial E.T.S.I. Informática UNED

Primera edición: diciembre de 1999 Revisado en junio de 2001

Problemas de repaso del capítulo 1

Problema 1 Tal y como se muestra en el ejercicio número 2, la intersección de una colección finita de lenguajes regulares siempre es regular. Basta probar pues que el lenguaje descrito en el enunciado coincide con la intersección de una colección finita de lenguajes regulares del alfabeto {x, y, z}. Una tal colección la constituyen los lenguajes L1, L2 y L3 donde: L1 es la colección de todas las cadenas de x, y y z con un número impar de xs L2 es la colección de todas las cadenas de x, y y z con un número impar de ys L3 es la colección de todas las cadenas de x, y y z con un número par de zs Las cadenas que pertenezcan al lenguaje L =L1 ∩ L2 ∩ L3 habrán de verificar las tres condiciones anteriores. Podemos demostrar que los lenguajes L1, L2 y L3 son regulares mostrando los autómatas finitos que los reconocen:
y x 1 x z z 2
z 3 y z

y

x y 4

x

x z 5 z y 6

x

y

Problema 2 Demostraremos que el lenguaje L intersección de una colección finita de lenguajes regulares {Li}i=1..n es un lenguaje regular describiendo un procedimiento sistemático de construcción del autómata finito que lo reconoce. Sea {Mi(Si, Σ, δi, ιi, Fi)}i=1..n un conjunto de autómatas finitos tales que ∀ i Mi reconoce el lenguaje Li. Entonces el autómata M (S, Σ, δ, ι, F) tal que: S = S1 x S2 x…Sn, producto cartesiano de los respectivos conjuntos de estados Si; Σ alfabeto de los lenguajes Li; δ: S x Σ → S, función de transición definida en términos de las funciones δi, tal que dado un estado s = (s1, s2,…sn), con si ∈ Si, y un símbolo x∈Σ entonces δ(s,x) = q, q ∈ S q = (δ1(s1,x), δ2(s2,x),… δn(sn,x)) (al dibujar el diagrama del autómata M, desde cada estado s = (s1, s2,…sn) se traza un arco hacia q = (q1, q2,…qn) rotulado por x si y sólo si para todo i en el diagrama del autómata Mi existe un arco hacia qi rotulado por x) ; ι = (ι1, ι2,…ιn), ι ∈ S, estado producto de los estados iniciales ιi;

F = {f ∈ S , | f = (f1,f2,…fn), fi ∈ Fi}, F ⊆ S, colección de estados producto de estados finales fi; reconoce el lenguaje L = L1 ∩ L2 ∩ …Ln. Demostremos que el autómata M acepta exclusivamente las cadenas que pertenecen al lenguaje L. Por definición de aceptación de una cadena por un autómata finito, M acepta una cadena x1x2..xL si y sólo si existe una secuencia de estados E1, E2…EL (Ej = (e1j, e2j,…enj)), con E1 = ι y EL ∈ F, tales que desde Ej-1 existe un arco rotulado por xj hacia Ej, para todo valor de j. Dado el procedimiento de construcción del autómata M, lo anterior tiene lugar si y sólo si ∀ i existe una secuencia de estados ei1, ei2…eiL con ei1 = ιi y EiL ∈ Fi, tales que desde eij-1 existe un arco rotulado por xj hacia eij, para todo valor de j. La afirmación anterior implica que el autómata M acepta una cadena si y sólo si cada autómata Mi acepta dicha cadena. Puesto que existe un procedimiento de construcción de un autómata finito que reconoce el lenguaje L, podemos afirmar que L es regular. Siguiendo el procedimiento indicado, puede construirse el autómata finito que reconoce el lenguaje especificado en el enunciado del problema 1, a partir de los autómatas que reconocen los lenguajes L1, L2 y L3.
y
235

y z x x y
135

245

z
236

x y y x y
145

z z
246

x z x

z z
136

z y y

146

Problema 3 Veamos igualmente un procedimiento sistemático de construcción de un autómata finito M (S, Σ, δ, ι, F) que reconoce el lenguaje L = L1 – L2. Sean M1(S1, Σ, δ1, ι1, F1) y M2(S2, Σ, δ2, ι2, F2) los autómatas finitos que reconocen los lenguajes L1 y L2. Entonces el autómata M (S, Σ, δ, ι, F) tal que:

q ∈ S q = (δ1(s1. Obsérvese que el procedimiento de construcción es el mismo que el del autómata que reconoce el lenguaje intersección excepto en lo que respecta a la designación de los estados de aceptación. (al dibujar el diagrama del autómata. estado producto de los estados iniciales ι1 y ι2. s2). Dado el procedimiento de construcción del autómata. s2) se traza un arco hacia q = (q1. y x 1 x z z 2 y x x y 3 y z z 4 z z y y 13 14 x x z 24 x x 23 y y z El mismo resultado puede demostrarse considerando dos resultados previos: . con E1 = ι y EL ∈ F. para todo valor de j. δ: S x Σ → S. tales que desde Ej-1 existe un arco rotulado por xj hacia Ej. y por tanto la cadena es reconocida por el autómata M1. respectivamente. E2…EL (Ej = (e1j. F = {f ∈ S . ι ∈ S. ι2).S = S1 x S2. El reconocimiento de la cadena lleva sin embargo al autómata M2 a un estado e2L que no es de aceptación. producto cartesiano de los conjuntos de estados S1 y S2.xL si y sólo si existe una secuencia de estados E1. | f = (f1.x). reconoce el lenguaje L = L1 – L2. con s1 ∈ S1 y s2 ∈ S2. e12…e1L con e11 = ι1 y e1L ∈ F1. q2) rotulado por x si y sólo si en los diagramas de los autómatas M1 y M2 existe un arco hacia q1 y q2. tal que dado un estado s = (s1. es fácil ver que una cadena es reconocida por M si y sólo si es reconocida por M1 y rechazada por M2: M acepta una cadena x1x2. y un símbolo x∈Σ entonces δ(s.f2). e2j)). tal que desde e1j-1 existe un arco rotulado por xj hacia e1j. L = L1 – L2 es el conjunto de las cadenas con un número impar de xs y un número par de ys. función de transición definida en términos de las funciones δ1 y δ2. Σ alfabeto de los lenguajes L1 y L2.x)). Si este es el caso existe asimismo una secuencia de estados e11. F ⊆ S. δ2(s2..x) = q. f1 ∈ F1 y f2 ∉ F2}. desde cada estado s = (s1. rotulado por x) ι = (ι1. A continuación ilustramos este procedimiento de construcción cuando el lenguaje L1 es el conjunto de cadenas con un número impar de xs y el lenguaje L2 es el conjunto de cadenas con un número impar de ys.

a Un autómata finito no puede reconocer la colección de palíndronos de Σ*. Problema 5. con ω∈ L y ν ∈(Σ*-L) es regular por ser la concatenación de dos lenguajes regulares: el lenguaje L y su lenguaje complementario. forzosamente en el reconocimiento de la subcadena xn el autómata pasaría más de una vez por al menos uno de los estados. siempre que Σ sea un alfabeto con más de un símbolo (en el caso de un sólo símbolo la colección de palíndronos coincide con Σ*). Problema 4. y considerando la relación L1 –L2 = L1 ∩ (Σ* . Expresiones regulares de un alfabeto Σ son: ∅ (que representa el lenguaje vacío). El autómata que reconociese este lenguaje debería.L2) Problema 4. cualquier cadena de configuración xn+kjymxn sería asimismo reconocida por el autómata para cualquier valor de k ∈ N. recorriendo un bucle o camino cerrado en el diagrama de estados. Supongamos que el número de símbolos xs leídos en ese tránsito es j. Consideremos como contraejemplo la colección de palíndronos del lenguaje regular caracterizado por la expresión regular x*· y*· x*. Si L es un lenguaje regular. Para n mayor que el número de estados del autómata. El lenguaje que consiste en las cadenas de la forma ων. también es regular el lenguaje Linv obtenido al escribir de forma inversa las cadenas de L.1) la intersección de dos lenguajes regulares es un lenguajes regular (demostrado en el problema 2) 2) el complemento de un lenguaje regular es un lenguaje regular (para construir el autómata que reconozca dicho lenguaje basta con cambiar en el autómata que reconoce el lenguaje inicial los estados de aceptación por estados de no aceptación y viceversa) . en particular.b La colección de palíndronos de un lenguaje regular no necesariamente es un lenguaje regular. que caracteriza un lenguaje no regular. En ese caso. Las cadenas capicuas de este lenguaje responden precisamente al patrón xnymxn. . para n y m arbitrariamente grandes. Para demostrar esto. reconocer cadenas que respondieran al patrón xnymxn. por tener un número finito de estados. a pesar de no ser un palíndrono. donde x e y son dos símbolos cualesquiera del alfabeto. Problema 6. veremos que existe un procedimiento sistemático para formular la expresión regular que representa al lenguaje Linv.

Si r es la expresión regular que representa el lenguaje L. E2…EL. ∀ f ∈ F. se añaden las transiciones δinv (ιinv. Si M (S. tales que desde Ej-1 existe un arco rotulado por xj hacia Ej. obtenido por el procedimiento descrito: . · y ∗. ιinv. M acepta una cadena x1x2. E1 = ι y EL ∈ F.los símbolos de Σ. Es fácil ver que: I(∅) = ∅ I(x) = x ∀ x ∈Σ ∀ r.x) = q si δ(q. ι. el lenguaje Linv será reconocido por el autómata Minv (Sinv. x) = s.. (con E1 = ι. Finv) tal que: Sinv = S∪ιinv δinv: Sinv x Σ → Sinv. ιinv. ιinv } si ι ∈ F (los estados de aceptación son el estado inicial de M y el nuevo estado inicial). para todo valor de j. Σ. s expresiones regulares en Σ: I(r·s) = I(r) · I(s) I(r*) = (I(r))* I(r∪s) = I(r)∪I(s) La demostración puede basarse asimismo en la demostración de existencia de un autómata finito que reconoce tal lenguaje. Finv = {ι. y un símbolo x∈Σ entonces δinv (s. denominaremos I(r) a la expresión regular que representa al lenguaje constituido por las cadenas inversas de las cadenas contenidas en L. estado inicial Finv = {ι} si ι ∉F (el único estado de aceptación es el estado inicial de M). el autómata Minv reconocerá la cadena xL…x2x1 ya que la secuencia de estados ιinv. Además. construído a partir del autómata que reconoce el lenguaje de partida. estado de aceptación de Minv) verifica que desde ιinv existe un arco rotulado por x1 hacia EL-1 y desde EL-j existe un arco rotulado por xj+2 hacia EL – j+1. La afirmación anterior implica que el autómata Minv acepta una cadena si y sólo si el autómata M acepta la cadena inversa. x) = f.xL si y sólo si existe una secuencia de estados E1. función de transición inversa de δ. Σ. Dado su procedimiento de construcción.EL-1…E2.x) = q si δ(q. δ. cualquier combinación de expresiones regulares mediante las operaciones ∪. para todo valor de j entre 1 y L. F) es el autómata finito que reconoce el lenguaje L. δinv. El ejemplo muestra el autómata que reconoce el lenguaje constituido por las cadenas inversas del lenguaje generado por la expresión regular (x·y*·z) ∪ y. tal que dado un estado s ∈ Sinv. E1.

eliminarse del diagrama: y x z y z Problema 7 El lenguaje L’ definido por la colección de cadenas de L cuyas inversas también se encuentran en L puede expresarse como: L’ = Linv∩L Y por tanto es un lenguaje regular. ya que todo lenguaje regular es el lenguaje obtenido al invertir las cadenas de otro lenguaje regular (en particular. Por un razonamiento análogo al utilizado en el problema 4 puede deducirse que un autómata finito (y. todas las cadenas del tipo xnyn. por tanto. obviamente. Problema 10 El lenguaje descrito debería incluir. en particular. el lenguaje constituido por las cadenas inversas.y x z y x z y y y z Los estados de aceptación del autómata de partida pueden. L = (Linv)inv). con un número finito de estados) que acepte dichas cadenas aceptará también determinadas cadenas que respondan al patrón xnym. con n ≠m. Problema 9 Dado un conjunto de reglas gramaticales que genera un lenguaje regular. en este caso. que no pertenecerán al lenguaje especificado. Tal lenguaje será. para n∈N. por tanto. . Demostrar que todo lenguaje regular puede generarse mediante una gramática de estas características es trivial. un lenguaje regular (resultado obtenido en el problema 6). la gramática que resulta al intercambiar el orden entre terminales y no terminales en la parte derecha de las reglas generará.

si L = {ωi}i=1…n. b 1 b 3 2 a b b 1 23 b a 13 a 3 12 2 a . x x x y x x y x x y y x y y Problema 12 Cualquier lenguaje finito puede expresarse como la unión finita de los lenguajes que constituyen cada una de sus cadenas. Es decir. A continuación se muestran los respectivos diagramas de los autómatas que reconocen los dos lenguajes anteriores. Este último lenguaje es regular. Su lenguaje complementario es también por tanto regular (ver problema 3).Problema 11 El lenguaje que consiste en aquellas cadenas que no contienen tres xs consecutivas es el lenguaje complementario del que consiste en aquellas cadenas que sí contienen tres xs consecutivas. entonces L = {∪ Li}i=1…n Problema 13 El diagrama se obtiene siguiendo las indicaciones del libro de texto (página 46). y Li ={ωi}. puesto que puede representarse mediante la expresión regular: (x∪y)* ·x·x·x· (x∪y)*.

((x·x*)·y·y*)) Cadenas que empiezan por una sucesión de xs (con al menos una x) y termina con una sucesión de ys (con al menos una y) c. no determinismo. la transición λ se elimina y a su estado origen se añaden todos los arcos que partían de su estado destino (conservando sus etiquetas y destinos). Todas las cadenas que consisten en un número impar de xs y un número par de ys. el diagrama D´ conduce a un estado de aceptación bajo la lectura de las mismas cadenas que D. Lógicamente en este proceso de construcción del nuevo diagrama pueden aparecer etiquetas repetidas en los arcos y.q) del diagrama D se sustituye en el diagrama D’ por el conjunto de transiciones {(p. ((x·x*)∪(y·y*)) Cadenas de xs con al menos una x y cadenas de ys con al menos una y. x · (x · x) * b.λ.si) | (q. abreviando el tránsito de p a los estados si al saltarse el estado q.xi. Veremos primero cuál es el autómata finito que reconoce este lenguaje y de ahí derivaremos la expresión regular que lo describe. Es decir. a. El lenguaje puede verse como la intersección de dos lenguajes más sencillos: el conjunto de cadenas con un .Eliminando los estados no accesibles se obtiene: b a Problema 14 Cada transición (p. Puesto que la transición λ no implica la lectura de ningún símbolo de la cadena de entrada. d. Problema 16 a. ((x*·y*)·z)) Cadenas formadas por cero o más xs seguidas de cero o más ys seguidas de cero o más zs. por tanto. Todas las cadenas que consisten en un número impar de x.xi.si) transición de D}. Problema 15 (z ∪ y)* · x Cualquier combinación de z e y seguida de x. o bien una única x b.

El autómata que reconoce el lenguaje puede construirse a partir de los correspondientes autómatas.número impar de xs y el conjunto de cadenas con un número par de ys. x· x y· y y· x x· y 24 13 y x x 23 y (y · x) · (x · x)* · (x · y) ∪ (y · y) (((y · x) · (x · x)* · (x · y))∪ (y · y) y · (x · x)*) · y 13 (y · (x · x)*) · (x · y)) ∪ x 23 Aplicando las reglas de obtención de expresiones regulares correspondientes a autómatas de dos estados (uno inicial y otro de aceptación): r s t u (((r · s) · t ) · (u · ((r · s) · t*))*) * * * . y x 1 x 2 y ∩ y y 13 14 x y 4 y 3 x x x x x 23 24 y y Siguiendo el procedimiento indicado en la página 63 del libro de texto. el autómata anterior puede describirse mediante un diagrama de tan sólo dos estados.

Si xω∈ L y ω ≠ λ. Todas las cadenas de x e y tales que cada y esté inmediatamente precedida por una x e inmediatamente seguida por una x. y en la parte derecha de sus reglas aparece el símbolo de cadena vacía o bien un símbolo terminal seguido de un no terminal o un solo símbolo terminal. Dicha gramática verifica las propiedades de las gramáticas regulares: en la parte izquierda de sus reglas sólo aparecen símbolos no terminales. existe una regla de reescritura S → xA. Si L es regular. donde S es el símbolo de inicio de la gramática. existe una gramática regular que lo genera. Si ω = λ entonces la regla S → x forma parte de la gramática. Es posible pues seleccionar de entre las reglas de la gramática que genera el lenguaje L un subconjunto que genera el lenguaje constituido por las cadenas ω (el subconjunto que reescribe a símbolos terminales el no terminal A) al que habrá que añadir la regla S → λ en el caso en que x∈ L. Demostraremos que el lenguaje {ω | ω∈Σ∗ y xω∈ L} es regular mostrando que existe una gramática regular que lo genera. Considerando reglas lineales por la izquierda (ver problema 9) se demuestra análogamente que el lenguaje {ω | ω∈Σ∗ y ωx∈ L} es también regular. . y desde cuyo estado de aceptación existan transiciones distintas de aquellas que conducen a un estado de error o captación global.Se obtiene la expresión regular: ((((((y · x) · (x · x)* · (x · y))∪ (y · y ))* · (((y · x) · (x · x)*) · y) ∪ x) · (y · (x · x)*) · y)* · (y · (x · x)*) · (x · y)) ∪ x) · (((((y · x) · (x · x)* · (x · y))∪ (y · y ))* · (((y · x) · (x · x)*) · y) ∪ x))*) c. tal que la reescritura del símbolo no terminal A mediante la aplicación de cierta secuencia de reglas genera la cadena ω. partiendo del autómata: x x y Se obtiene la expresión regular: (x · x*) · (y · x · x*)* Problema 18. Problema 19 Vale como ejemplo cualquier lenguaje regular que se exprese como la unión de lenguajes cuya intersección sea el lenguaje vacío. Análogamente.

rotulado por la etiqueta que se indica en la figura. 2) En cada uno de los diagramas anteriores se van suprimiendo estados hasta que sólo queden el estado inicial y el de aceptación. considerando la notación de la figura: . es decir. El autómata aceptará también necesariamente cualquier cadena de la forma x1x2…(xjxj+1…xj+k)m…xn ∀ n ∈ N. Forzosamente en el reconocimiento de esta cadena el autómata pasa más de una vez por un cierto estado. El lenguaje aceptado por el autómata que representa el diagrama de transiciones original es igual a la unión de los lenguajes aceptados por los autómatas que representan los diagramas así obtenidos. uno de inicio y otro de aceptación. Problema 21 El algoritmo se deduce de la demostración de equivalencia entre los lenguajes aceptados por los autómatas finitos y los lenguajes generados por expresiones regulares (ver página 63 del libro de texto). Por cada estado suprimido se suprimen también sus arcos incidentes y emergentes y. pero de modo que en cada réplica sólo uno de los estados de aceptación siga siendo de aceptación. r p q ((p · r*) · q) 3) Una vez que se dispone de un diagrama con sólo dos estados. y por tanto aceptara un número infinito de cadenas. alguna subcadena xjxj+1…xk es reconocida en un camino cerrado entre estados del autómata. El algoritmo consta de tres etapas: 1) El diagrama de transiciones se replica tantas veces como estados de aceptación tenga el autómata. por cada par de arcos eliminado (uno que llega al estado y otro que emerge de él) se añade un arco desde el estado origen del primero al estado destino del segundo.b a a b ∪ a b b a Problema 20 Denotemos la cadena con un número de símbolos mayor que el número de estados del autómata como x1x2…xn.

que pk= m + kj + n – m – j = (k – 1)j +n no puede ser un número primo para todo valor de k. . Si k = n + 1. a. Problema 23 Análogamente (k – 1)j +n no puede tener raíz cuadrada exacta para todo valor de k. entonces el conjunto de cadenas en L de longitud impar es también un lenguaje regular. ya que no existe una serie infinita de números {pk} con raíz cuadrada exacta tales que pk+1 > pk ∀ k ∈ N y que la diferencia entre dos números consecutivos de la serie sea constante (pk+1 – pk = j). pn+1= n(j+1). Problema 24 a. (x ∪ y*) y (x ∪ y*) (x ∪ y*) b. ((x ∪ y) · (x ∪ ∅)) y (x ∪ y) · (x ∪ y)* ((x ∪ y) · (x ∪ ∅)) Problema 25. finalmente. (x · (x ∪ y)* y ((x ∪ y)* · y) x · (x ∪ u)* · y c. Si a > b > c. cualquier cadena de tipo xmxkjxn-m-j será también reconocida por el autómata. b. c∈ N entonces a2-b2 > b2-c2. Si xj es una subcadena leída en un camino cerrado (xn = xmxjxn-m-j). ∀ k ∈ N. Para cadenas con n superior al número de estados del autómata. si no existe el arco etiquetado por u (((r* · s) · t*) · (u · ((r* · s) · t*))*). (((x ∪ y) · y) · (x ∪ y)*) y (y · (x ∪ y)*) y ·y · (x ∪ y)* d.r s t u Se obtiene la expresión regular asociada como: ((r* · s) · t*) . necesariamente el autómata pasa más de una vez por un mismo estado en el proceso de reconocimiento. si existe el arco etiquetado por u Problema 22 Veamos que no existe ningún autómata finito que reconozca exclusivamente las cadenas indicadas. Si L es un lenguaje regular. que no es un número primo. Veamos.

El conjunto de cadenas en L de longitud par coincide con la intersección entre el lenguaje L y el lenguaje de las cadenas de longitud par de Σ*. se obtiene el autómata correspondiente por el procedimiento indicado en la página 54 del libro de texto. así como de la unión de una colección finita de lenguajes regulares se obtiene siempre un lenguaje regular. Convirtiendo la gramática en una gramática regular con reglas λ es más fácil. El conjunto de cadenas en L de longitud impar es el complementario en L del lenguaje anterior. que no es regular Problema 28 Convirtiendo la gramática en una gramática regular con reglas λ es más fácil. S → xN S → xZ Z→λ . y es también por tanto un lenguaje regular. ya sea finito o infinito. entonces L = {∪ Li}i=1…n.Si el antiguo estado de aceptación no tenía arcos de salida puede eliminarse. y Li ={ωi}.j (xixj))*. Los anteriores estados de aceptación dejan de serlo. se duplican todos los arcos de entrada con los mismos orígenes y etiquetas dándoles como destino el nuevo estado de aceptación 3. Por tanto. coincide con el lenguaje {xnyn. puede trazarse un arco desde los antiguos estados de aceptación hacia el nuevo estado de aceptación con la etiqueta λ. Lo anterior es cierto. Así por ejemplo.Por cada uno de los anteriores estados de aceptación. no siempre es el caso cuando se trata de la unión de una colección infinita. y por tanto es también un lenguaje regular. el lenguaje L = {∪ xiyi}i=0…∞. El diagrama de un autómata finito con más de un estado de aceptación puede transformarse en el diagrama de un autómata – posiblemente no determinista . n∈ N}. Problema 27 Cualquier lenguaje. en particular. donde n puede tener un valor infinito).Se dibuja un nuevo estado que será ahora el único estado de aceptación del autómata. Problema 26. Como alternativa a la etapa 2).Consideremos el lenguaje constituido por el conjunto de todas las cadenas de longitud par de Σ*. para los lenguajes no regulares. 2. ya que puede representarse mediante la expresión regular: (∪i.que reconoce el mismo lenguaje y tiene un único estado de aceptación mediante el siguiente procedimiento: 1. Dicho lenguaje es regular. se obtiene el autómata correspondiente por el procedimiento indicado en la página 54 del libro de texto. dejando inalterado el resto del autómata. puede expresarse como la unión de una colección de lenguajes regulares tales que cada uno de ellos consiste exclusivamente en una de sus cadenas (Si L = {ωi}i=1…n.

N → yM N → yQ Q→λ M → zN M → zT T→λ y x S x N y Z z M zz T Q La expresión regular correspondiente es: S → xN S → xZ Z→λ N → yM N → yQ Q→λ M → zN M → zT T→λ y x S x N y Z Q z T M zz .

dichas cadenas tendrán una longitud no nula. Problema 30. En autómatas que tienen caminos cerrados. Si el autómata no tiene ningún camino cerrado. y será no vacía si el lenguaje incluye cadenas distintas de la cadena vacía. La longitud de esta cadena será obviamente menor o igual que el número de estados del autómata.La expresión regular correspondiente es: (x ∪ (x · (y · z)* · y) ∪ (x · y ) · (z · y)* · z ) Problema 29 Demostración en el capítulo 2. página 94. Si el lenguaje incluye más cadenas aparte de la cadena vacía. siempre existirá al menos una cadena de símbolos cuya lectura lleve al autómata a un estado de aceptación recorriendo sus caminos cerrados una única vez (y pasando por tanto una sola vez por cada estado). las cadenas de longitud mayor que el número de estados del autómata se reconocen pasando más de una vez por alguno o algunos de los estados. Sin embargo. toda cadena reconocida tendrá un número de símbolos inferior o igual al número de estados del autómata. Problema 31 El diagrama de transiciones es el siguiente: x w w y z w z x z w w x y y .

b. {x}. {xmynxmyn | m. {xnyx | n ∈ N+} ∪ {xnyxn| n ∈ N+}. Es el lenguaje generado por la siguiente gramática. S → AB A → xAy A→λ B → yBz B→λ Problema 3. {xnyxn| n ∈ N+}. n ∈ N+}. Existe una expresión regular que lo representa: xx*yy*. ∅. {xmymzn | n. {λ}. en el reconocimiento de la primera subcadena xm forzosamente se recorren más de una vez uno o más estados (se recorren bucles). pero no es regular: {xnyn| n ∈ N+}. • Lenguaje independiente del contexto reconocido por un autómata de pila determinista que vacía su pila antes aceptar una cadena. Problema 2. Por tratarse de un autómata finito. Supongamos que existe tal autómata. Es el lenguaje generado por la siguiente gramática. {xz. {xnynz | n ∈ N+}. • Lenguaje regular: Σ*. Problema 3. Para m > número de estados del autómata. y}. • Lenguaje general. o 2 . n ∈ N+}. n ≥ m}. debería existir también un autómata finito que lo reconociese. a. {xmynxn| m. Esto significa que podrán reconocerse cadenas con más x’s antes de las y’s que después de las y’s. {xn| n ∈ N+}. debería tener un número finito de estados. S → xSx S → xMx M → yM M→ y Si el lenguaje fuera regular. n ∈ N+}. • Lenguaje independiente del contexto que no puede ser reconocido por ningún autómata de pila determinista: {xnyn | n ∈ N+} ∪ {xn y2n | n ∈ N+} • Lenguaje independiente del contexto no reconocido por ningún autómata de pila determinista que vacíe su pila antes de aceptar una cadena: {xn | n ∈ N+} ∪ {xnyn | n ∈ N+}. y lo mismo ocurre en el reconocimiento de la segunda subcadena xm. {xmyn | m. no independiente del contexto: {xnynzn | n ∈ N+}. m ∈ N+.Problemas de repaso del capítulo 2 Problema 1.

un autómata de pila que reconoce el lenguaje {xmynynxm | m. Existe un autómata de pila determinista que acepta dicho lenguaje: Problema 5. Problema 6. o bien un símbolo terminal o bien un par de símbolos no terminales) junto con un par de reglas S´ → S. teorema 1. Sería posible guardar en la pila la primera secuencia de x´s y a continuación la primera secuencia de y´s. (demostración análoga en la página 40. Problema 3. resulta evidente que un autómata de pila no puede llevar el recuento de las dos variables x e y independientemente (cuando el número de x’s y de y’s puede ser arbitrariamente grande) puesto que sólo dispone de una pila para almacenar símbolos. c. Problema 4. Sin embargo.2). No existe pues el autómata de pila que reconozca las cadenas del lenguaje. S → zMNz M → aMa M→ z N → bNb N→z S / / \ \ z M N z / /|\ z b N b /|\ bNb | z 3 . Una gramática independiente del contexto siempre puede escribirse al menos parcialmente en la forma normal de Chomsky (en la parte izquierda de las reglas aparece un único símbolo no terminal y en la parte derecha. porque cada bucle puede recorrerse en el autómata un número indeterminado de veces. Las reglas de reescritura de la gramática que genera el lenguaje de las cadenas de L escritas a la inversa se obtienen sin más que alterar las reglas de tipo A → BC convirtiéndolas en A → CB. Este lenguaje verifica el lema de bombeo (condición necesaria pero no suficiente para que un lenguaje sea independiente del contexto). n ∈ N+}. No podemos por tanto utilizar este lema para demostrar que no es independiente del contexto. pero después no sería posible acceder a las x´s sin vaciar primero las y´s. sin embargo. S → λ si contiene la cadena vacía.viceversa. Las reglas de reescritura que definen la gramática de dicho lenguaje siguen verificando las restricciones propias de las gramáticas independientes del contexto. Sí existe. n ∈ N+} o el lenguaje {xmynxnym | m.

n ≥ m}. Problema 9.Derivación por la izquierda: S → zMNz → zzNz → zzbNbz → zzbbNbbz → zzbbzbbz Derivación por la derecha: S → zMNz → zMbNbz → zMbbNbbz → zMbbzbbz → zzbbzbbz Otra derivación: S → zMNz → zMbNbz → zzbNbz → zzbbNbbz → zzbbzbbz Hay en total tres derivaciones posibles. Este autómata acepta cadenas con cualquier número de x e y tal que al leer la cadena de izquierda a derecha el número de y leídas no supera al número de x leídas en ningún momento. m ∈ N. Es el lenguaje {xnym | n. S → S1 S1 → x S1 y S1 → xy (estas tres reglas generan las cadenas con m = n ) S → S2 S2 → xS2 yy S2 → xy (estas tres reglas generan las cadenas con m = 2n ) Problema 12. Problema 8. S → xSy S→y S x xSy y y FDC error 4 x xSz y y z error FDC error . Problema 10. Las cadenas que se aceptan cuando la pila no está vacía es el subconjunto del anterior cuyas cadenas tienen más x’s que y’s. S → xSz S→y S Problema 13.

etc.λ. S → Sy S → xSy S→y 5 . La gramática del enunciado es equivalente a la siguiente: S → xM M → yN N → zS N→z N→λ que es regular. S → xS S → xSy S→x Problema 22. Es generado por una gramática independiente del contexto: S → xSx S → ySy S→x S→y S→λ Problema 22. S → xSx S → ySy S→λ Problema 21. Basta construir un autómata finito determinista a partir de esta gramática y luego sustituir cada transición x por x.λ. Problema 20.Problema 18. a. {xmyn | m y n son enteros no negativos donde n < m}. b. {xmyn | m y n son enteros no negativos donde n > m}.

Para un número de estados determinado. cada uno de los cuales tiene solamente una cadena (estos lenguajes. si la colección es infinita. S2. V2. los autómatas de pila que reconocen lenguajes de este alfabeto constituyen un conjunto contable. se consideran todas las distintas combinaciones de transiciones posibles (considerando todas las operaciones posibles sobre la pila). el número de lenguajes definibles sobre Σ es incontable. Es evidente que también pueden escribirse una a una de forma ordenada si consideramos la forma normal de Chomsky y tomamos como criterio de ordenación el número de símbolos no terminales en la gramática). por ser finitos. Como el conjunto Σ* es infinito. luego existen más lenguajes que los lenguajes independientes del contexto. el lenguaje {xnynzn} puede formarse como la unión de infinitos lenguajes. puede que la unión no sea independiente del contexto. y el cuarto con la unión de los tres primeros. etc. son regulares y. R2) G = G1 ∪ G2 → T = T1 ∪ T2 V = V1 ∪ V2 ∪ S (nuevo símbolo inicial) R = R1 ∪ R2 ∪ {S → S1 . (Igualmente podría haberse demostrado el carácter contable del conjunto de los lenguajes independientes del contexto viendo que también las gramáticas independientes del contexto constituyen un conjunto contable. V1. Sin embargo. S1. por tanto. Por ejemplo. S → S2} Por inducción (es decir. Si se trata de dos lenguajes. uniendo el tercer lenguaje con la unión de los dos primeros.) se puede demostrar que la unión finita de una colección de lenguajes independientes del contexto es independientes del contexto. a continuación los autómatas de dos estados etc.Problema 28. S → MzN M → xM M→λ N → yN N→λ 1) Encadenamientos: M→λ N→λ => S → MzN M → xM 6 . independientes del contexto): {xnynzn} = {λ} ∪ {xyz} ∪ {xxyyzz} ∪ {xxxyyyzzz} ∪ … Problema 29. Problema 32. R1) G2 = (T2. es posible realizar la unión a partir de las reglas correspondientes a sus respectivas gramáticas: G1 = (T1. ya que puede idearse un procedimiento para enumerarlos: empezamos por los autómatas de un estado. Considerando un alfabeto Σ.

S → zMNz M → aMa M→z N → bNb N→z 2) => S → ZMNZ Z → z M → AMA A → a M→z B→b N → BNB N→z 3) => S → ZR Z → z M → AV A → a M→z B→b N → BW T → NZ N → z V → MA R → MT W → NB Problema 34. X → xY Y → yZ Z→z Z→λ 7 .S → zN M → x S → Mz N → yN S→z N→y 2) Eliminación de terminales mezclados con no terminales: => S → MZN M → XM Y → y S → ZN M → x Z → z S → MZ N → YN X → x S→z N→y 3) Eliminación de más de dos no terminales: => S → MA M → XM Y → y S → ZN M → x Z → z S → MZ N → YN X → x S → z N → y A → ZN Problema 33.

X → xyz X→x La primera da lugar a un analizador LL(1) (sólo se necesita conocer el siguiente símbolo para saber qué regla aplicar: Z → z o Z → λ ) En cambio. para la segunda se necesita un analizador LL(2): hace falta conocer por anticipado dos símbolos para deducir la aplicación de la regla X → xyz (aplicable si los dos primeros símbolos son xy) o X →x (aplicable en presencia de xFDC). añadiéndose las nuevas reglas de reescritura correspondientes. 2) En las reglas cuyo lado derecho comience por un símbolo no terminal. cada no terminal forzosamente puede reescribirse al menos en una forma en términos de símbolos terminales) 3) Una vez que el lado derecho de todas las reglas empieza por un terminal. Veamos un ejemplo: S → MzN M → xM M→λ N → yN N→λ 1) => S → MzN S → zN S → Mz S→z M → xM M→x N → yN N→y y y S → xzN S → xz 2) => De S → MzN obtenemos S → xMzN De S → Mz obtenemos S → xMz Conservamos las otras reglas: S → zN S→z M → xM M→x N → yN N→y 8 . Problema 35. se sustituyen los terminales que aparezcan en otras posiciones por nuevos símbolos no terminales (del mismo modo en que se hacía para obtener la forma normal de Chomsky). se reescribe este (de todas las formas posibles) utilizando el resto de las reglas hasta conseguir que aparezca un terminal al principio de la cadena (en todo conjunto de reglas de una gramática bien constituido. La forma normal de Griebach puede obtenerse aplicando los siguientes pasos: 1) Se eliminan las reglas λ (siempre es posible cuando el lenguaje no contiene la cadena vacía).

Lo que es mucho más complicado demostrar es que todas las cadenas del lenguaje pueden ser generadas por esta gramática. La cadena vacía. la cadena resultante de suprimir 1 La demostración es bastante compleja. Todas las cadenas de longitud igual a 5 (en total. Si no. 10 cadenas) también son generadas por la gramática. Así se demuestra que hay al menos una subcadena nula. está claro que puede ser generada por la gramática. luego la formada por los símbolos 2-6. obtenemos una secuencia tal que. hasta llegar a la subcadena 5-10 (la segunda de las subcadenas que teníamos). Observamos primero que toda cadena que pertenezca al lenguaje debe tener una longitud múltiplo de 5. debe ser 0. es generada por la gramática. Si la secuencia tiene 10 o más símbolos terminales. Si f es nula para alguna de ellas. la dividimos en varias subcadenas de longitud 5. f(cadena) = 2 × nX − 3 × nY. que es la suma de las f’s de las subcadenas.. Dadas dos subcadenas consecutivas de signos opuestos. y denominaremos como subcadena nula. ya hemos demostrado que hay al menos una subcadena nula (de ahí su nombre). Toda cadena que pertenece al lenguaje y tiene longitud mayor que cinco contiene al menos una subcadena de longitud 5 que también pertenece al lenguaje. 9 . Si esta nueva secuencia tiene cinco símbolos terminales (que necesariamente serán 3 x’s y 2 y’s). tomamos la subcadena formada por los símbolos 1-5 (la primera subcadena). en este “viaje” el signo de f ha pasado de positivo a negativo —o viceversa— y para alguna de estas subcadenas que están “a caballo” de las dos subcadenas iniciales f debe ser nula. dada una cadena cuyo número de x’s es nX y cuyo número de y’s es nY. Como punto de partida definimos una función f tal que. sino que debe pasar primero de positiva a nula y luego a negativa.3) => S → xMZN S → xZN S → xMZ S → xZ S → zN S→z Problema 37. que forman una cadena de longitud 10.1 si sustituimos esta subcadena por S. de longitud múltiplo de 5). S S S S S S S S S S S S →λ → SS → xSxSxSySy → xSxSySxSy → xSxSySySx → xSySxSxSy → xSySxSySx → xSySySxSx → ySxSxSxSy → ySxSxSySx → ySxSySxSx → ySySxSxSx M → xM M→x N → yN N→y Z→z Observe que estas reglas incluyen todas las permutaciones de las x’s y las y’s: P53+2 = C35 × C22 = 5! / (3! × 2!) = 10. porque f nunca puede psar de positiva a negativa al sustituir una x por una y —o viceversa—. Dada una cadena del lenguaje (por tanto. Está claro que todas las cadenas generadas por esta gramática pertenecen al lenguaje. f debe ser positiva para unas subcadenas y negativa para otras. que pertenece al lenguaje. es de nuevo una cadena del lenguaje. porque la f de la cadena primitiva. salvo por la S. etc. Una cadena pertenece al lenguaje si y sólo si f(cadena) = 0.

Buscando de nuevo la subcadena nula llegamos a yxxxxSxyxyy. que puede reescribirse como yxxxSy. Sustituimos esta subcadena por S y obtenemos yxxxxSyxxxyxyxyy. Empezamos buscando una subcadena nula. Ilustramos el proceso tomando como ejemplo la cadena yxxxxxyxyxyxxxyxyxyy. por la segunda regla de la gramática. La cadena resultante al omitir la S también pertenece al lenguaje. en plural. y por ello debe contener una subcadena nula: yxxxxyxxxyxyxyy. la secuencia anterior. que resulta ser yxxxxSyxxxyxyxyy (lo único que hemos hecho ha sido subrayar la cadena nula). de longitud 20. Nótese que en este proceso lo que hacemos siempre es buscar la subcadena nula y aplicar a la inversa alguna de las reglas de la gramática. El resultado es una derivación de la cadena a partir de la gramática. pero a la inversa.la S (o las S’s. y ésta a su vez como yxxxxSxyxyy. De hecho. Recuperando la S que habíamos eliminado. que puede ser sustituida por S. en sucesivas iteraciones) es de nuevo una cadena del lenguaje. que identificamos mediante un subrayado: yxxxxxyxyxyxxxyxyxyy. El proceso se puede repetir sucesivamente hasta llegar a una secuencia de cinco símbolos no terminales. y debe contener una subcadena nula. el ejemplo anterior puede resumirse así: yxxxxxyxyxyxxxyxyxyy ← yxxxxSyxxxyxyxyy ← yxxxxSyxxxyxyxyy ← yxxxxSSxyxyy ← yxxxxSxyxyy ← yxxxxSxyxyy ← yxxxxSxyxyy ← yxxxSy ← S 10 . puede reescribirse como yxxxxSSxyxyy. una secuencia generada por la gramática.

S→M S→N S→P M → xMx M→λ N → yNy N→λ P → xUP P → PVy P→λ Ux → xU Uy → xy UV → VU yV → Vy xV → xy Observe que las reglas que contienen M generan el lenguaje {x2m. m > 0}. En el segundo caso hay una terminación anormal si la celda inicial es el extremo de la cinta. y Problema 2.Problemas de repaso del capítulo 3 Problema 1. m ≥ 0}. 11 . →R∆ L x. n ≥ 0}. Problema 6. y Otra solución: } u #R∆R∆ uL# u →R∆ L x. y las que cotienen P. } u ∆R∆R∆ uL∆L∆u → R∆SLL∆ Problema 3. las que contienen N generan {y2n. U o V generan {xm yn xm yn.

S → S1 S1 → xyMS1z yMx → xyM yMz → yyz yMy → yyM S1 → λ S → S2 S2 → xyNS2z yNx → xyN yNz → yz yNy → yyN S2 → λ Problema 8. [i∆xyx∆] [i*xyx∆] [*pxyx∆] [*xpyx∆] [*xypx∆] [*xyxp∆] [*xyqx∆] [*xyq∆][*xqy∆] [*xq∆] [*qx∆] [*q∆] [q*∆] [h∆] Problema 10. S → xN N → Sx xNx → y Lo es. S → SPQR S→λ QP → PQ PQ → QP PR → RP 12 . Podría describirse con la gramática independiente del contexto: S → xA A → xAx A→y Es el lenguaje {xnyxn-1| n ∈ N+} Problema 11.Problema 7. [s∆∆yx∆] [∆t∆yx∆] [∆h∆yx∆] Problema 9.

Problema 15. hasta provocar una terminación anormal. por las razones que se expusieron en el problema 28 del capítulo 2. No. y por tanto no puede entrar en funcionamiento la parte de M’ que llevaría a una terminación anormal. Si el lenguaje no es decidible. Problema 16. porque para las cadenas que no pertenecen al lenguaje L puede ocurrir que la máquina original M no se detenga nunca.. Cuando se detienen borran la segunda cinta y vuelven las cabezas a su posición inicial... y.→ Mn Donde las máquinas Mi son máquinas de dos cintas. Problema 15. Problema 16. en cualquier orden. y’s y z’s. b. En este caso. Sólo si L es decidible. porque si fuera así. En ese caso existe una máquina de Turing M que se detiene con la configuración ∆Y∆∆ para las cadenas de L y con la configuración ∆N∆∆. Sea L’ el complementario de L.. Al poderse detectar las cadenas en Σ*–L. porque un autómata de pila no puede llevar el recuento de 3 variables independientes. el autómata que acepta la intersección de lenguajes puede diseñarse del siguiente modo: M| → M1 → M2 . a. a. en las cadenas de Σ*–L.. z} con el mismo número de x’s. puede modificarse M para construir una M’ que en esos casos provoque un desplazamiento repetido hacia la izquierda.. Podemos ordenar las cadenas de L’ (en orden alfabético) y 13 . b.. Intuitivamente se ve que no es un lenguaje independiente del contexto... todo lenguaje sería estructurado por frases (por el mismo motivo que expusimos en la solución del problema 28 del capítulo 2). Lo demostramos por reducción al absurdo. Para que una cadena sea aceptada por M cada uno de los Mi debe alcanzar el estado de parada con dicha cadena.RP → PR QR → RQ RQ → QR P→x Q→y R→z Se trata de cadenas del alfabeto Σ = {x. Sea un lenguaje no estructurado por frases.. Sí. L.. de modo que inicialmente duplican la cadena de entrada desde la primera a la segunda cinta y a continuación trabajan sobre la réplica. en general no es posible construir tal máquina M’. la demostración rigurosa puede hacerse por el lema de bombeo.

…. eso significa que las cadenas estaban ordenadas y no se ha hecho ninguna modificación. 2 14 . y si w pertenece a todos los Li. Luego va desplazando simultáneamente las cabezas de estas dos cintas hasta encontrar el primer símbolo en que difieren estas cadenas. entonces L sería estructurado por frases. Construimos una máquina M de varias cintas basándonos en una máquina auxiliar M1. si la intersección de una colección de lenguajes estructurados por frases fuera siempre un lenguaje estructurado por frases. Problema 18. ha de existir al menos una gramática estructurada por frases para L. considerar reglas de tipo: S → S1. A partir de ella podemos generar otras gramáticas introduciendo tantos símbolos innecesarios y reglas redundantes como deseemos. Por definición. y por tanto el Li correspondiente excluye w. por ejemplo. Problema 21. Como el conjunto de lenguajes generales es la unión del conjunto de los lenguajes estructurados por frases y el La demostración es ésta: si una cadena w pertenece a L. se sitúa en el inicio de la cinta y simula M1 hasta situarse entre las dos últimas cadenas. S1 → S2. también pertenece a la intersección de todos ellos. Por el contrario. — si hay al menos dos cadenas. Sea Li el lenguaje que contiene todas de Σ* excepto la i-ésima cadena de L’. 3 La máquina M1 puede funcionar así: copia la primera cadena de la derecha en la tercera cinta y la segunda cadena en la cuarta cinta. escribe Y en la segunda cinta.numerarlas. lo cual permite decidir cuál de las dos debe ir antes que la otra en el orden. y por eso se detiene. de donde se deduce que w no pertenece a la intersección. que sólo tiene una cadena. mientras que el conjunto de lenguajes generales no lo es. cada Li es regular (porque su complementario. Sn → S.2 Por tanto. y por tanto no hay ningún Li que excluya w. se detiene. no modifica esta cinta. Baste. M1 funciona así: — si en la cinta de entrada sólo hay una cadena a la derecha de la cabeza lectora. Entonces si en la segunda cinta no hay nada escrito. entonces pertenece a L’. lee las dos primeras. lo cual está en contradicción con nuestro punto de partida.3 La máquina M funciona así: — si hay menos de dos cadenas para ordenar. La intersección de todos los Li es el conjunto L. las escribe otra vez en la cinta ordenadas y se detiene en el espacio de separación entre ambas. borra esta Y. se detiene. — si hay dos o más cadenas a la derecha. El conjunto de lenguajes aceptados por máquinas de Turing (estructurados por frases) es contable. no pertenece a L’. si no. si se ha cambiado el orden de estas dos cadenas. S → xSy xSy → λ Problema 19. si una cadena w no pertenece a L. si hay una Y en la segunda cinta. es regular) y estructurado por frases. vuelve al inicio de la primera cinta repite el proceso. Problema 20.

que son infinitos. V’. V. desplaza la cabeza de la primera cinta tantas celdas como símbolos tiene waux. Si |w| ≤ |waux|. En otro caso. Consideremos los siguientes conjuntos: {L | L y Σ*–L son aceptados por máquinas de Turing} {L | L es aceptado y Σ*–L no lo es} {L | L no es aceptado y Σ*–L sí lo es} {L | L no es aceptado y Σ*–L tampoco} Puesto que la unión de estos cuatro conjuntos es conjunto de los lenguajes generales. Σ* es un lenguaje estructurado por frases. Por ejemplo. la máquina acepta la cadena. Problema 23. Problema 22. S’. Problema 25. y sin embargo existe un número incontable de lenguajes del alfabeto Σ que no lo son. el conjunto de los lenguajes no estructurados por frases debe ser por fuerza incontable y. y waux a la cadena que está en la segunda cinta en cada momento. S. por tanto.conjunto de los lenguajes no estructurados por frases. R’) T’= T V‘= V R’ = R ∪ {S → SS} Problema 27. Es infinita porque contiene a los lenguajes independientes del contexto. L* será aceptable si también existe una gramática estructurada por frases que genere L*. que no se modifica. de mayor cardinalidad que el anterior. puesto que los tres primeros conjuntos son contables. pueden darse tres casos: 15 . De otro modo. Es aceptado por la siguiente máquina de Turing de dos cintas: llamaremos w a la cadena analizada (primera cinta). Si w es la cadena vacía. la máquina entra en un bucle (rechaza la cadena). Si el lenguaje es aceptable según Turing entonces existe una gramática estructurada por frases que lo genera. Problema 26. deducimos que el cuarto conjunto debe ser no vacío e incontable. Utilizaremos de nuevo un argumento de cardinalidad. que inicialmente será xx (con un espacio a su izquierda). esto nos garantiza que acepta x y xx. No. Esta gramática se construye del siguiente modo a partir de la gramática G de L: G = (T. R) G’ = (T’. La colección de lenguajes decidibles es contable por ser un subconjunto de los lenguajes estructurados por frases (que son contables). su unión también sería un conjunto contable. y por tanto es un conjunto incontable.

por ejemplo: S → xyNSz S→λ yNx → xyN yNz → yz yNy → yyN se convierte en S → XYNSZ S→λ YNX → XYN YNZ → YZ YNY → YYN X→x Y→y Z→z Problema 35. una regla del tipo X → x y sustituir en el resto de las reglas todos los símbolos terminales por el no terminal correspondiente. y así sucesivamente. es decir. eso indica que la longitud de la cadena de la primera cinta es múltiplo de |waux|. para cada terminal x. Basta con añadir. Si |w| es número primo. y repetir el proceso. significa que |w| no es múltiplo de |waux|. Esta máquina aplica las reglas de reescritura para generar las cadenas y compararlas con la cadena analizada. vuelve a desplazarse |waux| celdas hacia la derecha. En la demostración del teorema 3. la máquina se detiene cuando |w| = |waux|. los lenguajes estructurados por frases. deberíamos escribir X’ u otro terminal diferente que no pertenezca a la gramática original. y por eso la máquina debe entrar en un bucle. — si la cabeza de la primera cinta está sobre una x que tiene a su derecha un espacio en blanco. para no aceptar la cadena. — si está sobre un espacio en blanco.) Así. llevar la cabeza de la primera cinta al inicio. La máquina que buscamos puede prescindir de la cinta 1 y mostrar como resultado las cadenas que genera en la cinta 2. Problema 34. Entonces debe añadir una x más a waux. (Naturalmente. si lo fuera.— si la cabeza de la primera está sobre una x que tiene a su derecha otra x. Los lenguajes recursivamente enumerables son aquéllos que pueden aceptar una máquina de Turing. suponemos que X no era un símbolo de la gramática original. 16 . hasta que se cumpla una de las condiciones siguientes. 176-177) se muestra cómo diseñar una máquina que acepte un lenguaje a partir de las reglas de reescritura de la gramática que lo genera.4 (págs.

Sign up to vote on this title
UsefulNot useful