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:

F = {f ∈ S . 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. estado producto de los estados iniciales ι1 y ι2. ι ∈ S. y un símbolo x∈Σ entonces δ(s. L = L1 – L2 es el conjunto de las cadenas con un número impar de xs y un número par de ys. tales que desde Ej-1 existe un arco rotulado por xj hacia Ej. F ⊆ S.x)). ι2). Dado el procedimiento de construcción del autómata.S = S1 x S2. reconoce el lenguaje L = L1 – L2. e12…e1L con e11 = ι1 y e1L ∈ F1.x). tal que dado un estado s = (s1. δ: S x Σ → S. producto cartesiano de los conjuntos de estados S1 y S2.xL si y sólo si existe una secuencia de estados E1.f2). y por tanto la cadena es reconocida por el autómata M1. s2). q ∈ S q = (δ1(s1. tal que desde e1j-1 existe un arco rotulado por xj hacia e1j. δ2(s2. 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. El reconocimiento de la cadena lleva sin embargo al autómata M2 a un estado e2L que no es de aceptación.x) = q. respectivamente. Si este es el caso existe asimismo una secuencia de estados e11. | f = (f1. desde cada estado s = (s1. 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: . e2j)). función de transición definida en términos de las funciones δ1 y δ2. s2) se traza un arco hacia q = (q1. Σ alfabeto de los lenguajes L1 y L2.. 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. E2…EL (Ej = (e1j. rotulado por x) ι = (ι1. con s1 ∈ S1 y s2 ∈ S2. con E1 = ι y EL ∈ F. 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. f1 ∈ F1 y f2 ∉ F2}. para todo valor de j. (al dibujar el diagrama del autómata.

El lenguaje que consiste en las cadenas de la forma ων. veremos que existe un procedimiento sistemático para formular la expresión regular que representa al lenguaje Linv. que caracteriza un lenguaje no regular. En ese caso. El autómata que reconociese este lenguaje debería. y considerando la relación L1 –L2 = L1 ∩ (Σ* . por tener un número finito de estados. a pesar de no ser un palíndrono. Las cadenas capicuas de este lenguaje responden precisamente al patrón xnymxn.L2) Problema 4. Expresiones regulares de un alfabeto Σ son: ∅ (que representa el lenguaje vacío). recorriendo un bucle o camino cerrado en el diagrama de estados.a Un autómata finito no puede reconocer la colección de palíndronos de Σ*. donde x e y son dos símbolos cualesquiera del alfabeto. 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. . para n y m arbitrariamente grandes. Para demostrar esto. Problema 6.b La colección de palíndronos de un lenguaje regular no necesariamente es un lenguaje regular. cualquier cadena de configuración xn+kjymxn sería asimismo reconocida por el autómata para cualquier valor de k ∈ N. 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 Σ*). 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. Supongamos que el número de símbolos xs leídos en ese tránsito es j. Para n mayor que el número de estados del autómata. con ω∈ L y ν ∈(Σ*-L) es regular por ser la concatenación de dos lenguajes regulares: el lenguaje L y su lenguaje complementario.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) . Problema 5. reconocer cadenas que respondieran al patrón xnymxn. en particular. también es regular el lenguaje Linv obtenido al escribir de forma inversa las cadenas de L. Problema 4.

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

un lenguaje regular (resultado obtenido en el problema 6). con un número finito de estados) que acepte dichas cadenas aceptará también determinadas cadenas que respondan al patrón xnym. en este caso. obviamente. L = (Linv)inv). todas las cadenas del tipo xnyn. en particular. que no pertenecerán al lenguaje especificado. Demostrar que todo lenguaje regular puede generarse mediante una gramática de estas características es trivial. 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. Problema 9 Dado un conjunto de reglas gramaticales que genera un lenguaje regular. para n∈N. por tanto. con n ≠m. Por un razonamiento análogo al utilizado en el problema 4 puede deducirse que un autómata finito (y. ya que todo lenguaje regular es el lenguaje obtenido al invertir las cadenas de otro lenguaje regular (en particular. 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. Problema 10 El lenguaje descrito debería incluir. por tanto. Tal lenguaje será. la gramática que resulta al intercambiar el orden entre terminales y no terminales en la parte derecha de las reglas generará.

y Li ={ωi}. puesto que puede representarse mediante la expresión regular: (x∪y)* ·x·x·x· (x∪y)*. si L = {ωi}i=1…n. b 1 b 3 2 a b b 1 23 b a 13 a 3 12 2 a . Es decir. 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. entonces L = {∪ Li}i=1…n Problema 13 El diagrama se obtiene siguiendo las indicaciones del libro de texto (página 46).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. 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).

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

el autómata anterior puede describirse mediante un diagrama de tan sólo dos estados. 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.número impar de xs y el conjunto de cadenas con un número par de ys. El autómata que reconoce el lenguaje puede construirse a partir de los correspondientes autómatas.

Todas las cadenas de x e y tales que cada y esté inmediatamente precedida por una x e inmediatamente seguida por una x. Demostraremos que el lenguaje {ω | ω∈Σ∗ y xω∈ L} es regular mostrando que existe una gramática regular que lo genera. existe una gramática regular que lo genera. tal que la reescritura del símbolo no terminal A mediante la aplicación de cierta secuencia de reglas genera la cadena ω. Si ω = λ entonces la regla S → x forma parte de la gramática. 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. Si xω∈ L y ω ≠ λ. donde S es el símbolo de inicio 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. existe una regla de reescritura S → xA. 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. Si L es regular. Análogamente.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. 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. Considerando reglas lineales por la izquierda (ver problema 9) se demuestra análogamente que el lenguaje {ω | ω∈Σ∗ y ωx∈ L} es también regular. . partiendo del autómata: x x y Se obtiene la expresión regular: (x · x*) · (y · x · x*)* Problema 18. y desde cuyo estado de aceptación existan transiciones distintas de aquellas que conducen a un estado de error o captación global.

El algoritmo consta de tres etapas: 1) El diagrama de transiciones se replica tantas veces como estados de aceptación tenga el autómata. r p q ((p · r*) · q) 3) Una vez que se dispone de un diagrama con sólo dos estados. rotulado por la etiqueta que se indica en la figura. 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. pero de modo que en cada réplica sólo uno de los estados de aceptación siga siendo de aceptación. considerando la notación de la figura: . es decir. uno de inicio y otro de aceptación. El autómata aceptará también necesariamente cualquier cadena de la forma x1x2…(xjxj+1…xj+k)m…xn ∀ n ∈ N. Por cada estado suprimido se suprimen también sus arcos incidentes y emergentes y. 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). y por tanto aceptara un número infinito de cadenas. 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. Forzosamente en el reconocimiento de esta cadena el autómata pasa más de una vez por un cierto estado. alguna subcadena xjxj+1…xk es reconocida en un camino cerrado entre estados del autómata. 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.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.

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

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

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 .

La longitud de esta cadena será obviamente menor o igual que el número de estados del autómata. 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). Si el lenguaje incluye más cadenas aparte de la cadena vacía. dichas cadenas tendrán una longitud no nula. Problema 30. En autómatas que tienen caminos cerrados. Problema 31 El diagrama de transiciones es el siguiente: x w w y z w z x z w w x y y . toda cadena reconocida tendrá un número de símbolos inferior o igual al 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. Sin embargo. Si el autómata no tiene ningún camino cerrado. 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. página 94. y será no vacía si el lenguaje incluye cadenas distintas de la cadena vacía.

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

viceversa. 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. un autómata de pila que reconoce el lenguaje {xmynynxm | m. n ∈ N+}. sin embargo. c. (demostración análoga en la página 40. porque cada bucle puede recorrerse en el autómata un número indeterminado de veces. Problema 3. 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. pero después no sería posible acceder a las x´s sin vaciar primero las y´s. teorema 1. S → λ si contiene la cadena vacía. 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. Sin embargo. Sí existe. 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 . Las reglas de reescritura que definen la gramática de dicho lenguaje siguen verificando las restricciones propias de las gramáticas independientes del contexto. Problema 6.2). o bien un símbolo terminal o bien un par de símbolos no terminales) junto con un par de reglas S´ → S. Existe un autómata de pila determinista que acepta dicho lenguaje: Problema 5. Problema 4. No podemos por tanto utilizar este lema para demostrar que no es independiente del contexto. n ∈ N+} o el lenguaje {xmynxnym | m. Sería posible guardar en la pila la primera secuencia de x´s y a continuación la primera secuencia de y´s. Este lenguaje verifica el lema de bombeo (condición necesaria pero no suficiente para que un lenguaje sea independiente del contexto).

S → xSz S→y S Problema 13. m ∈ N. Es el lenguaje {xnym | n. Problema 10. n ≥ m}. Problema 9. S → xSy S→y S x xSy y y FDC error 4 x xSz y y z error FDC error . Problema 8. 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.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. 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. 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.

Basta construir un autómata finito determinista a partir de esta gramática y luego sustituir cada transición x por x. a. b. Problema 20. S → xSx S → ySy S→λ Problema 21. etc. S → xS S → xSy S→x Problema 22.λ.Problema 18. Es generado por una gramática independiente del contexto: S → xSx S → ySy S→x S→y S→λ Problema 22. {xmyn | m y n son enteros no negativos donde n < m}.λ. 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. {xmyn | m y n son enteros no negativos donde n > m}.

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

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

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).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). 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. 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). añadiéndose las nuevas reglas de reescritura correspondientes. 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. 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 .

y denominaremos como subcadena nula. f(cadena) = 2 × nX − 3 × nY. La cadena vacía. Observamos primero que toda cadena que pertenezca al lenguaje debe tener una longitud múltiplo de 5. Todas las cadenas de longitud igual a 5 (en total. Está claro que todas las cadenas generadas por esta gramática pertenecen al lenguaje. la cadena resultante de suprimir 1 La demostración es bastante compleja. 9 . f debe ser positiva para unas subcadenas y negativa para otras. ya hemos demostrado que hay al menos una subcadena nula (de ahí su nombre). Una cadena pertenece al lenguaje si y sólo si f(cadena) = 0. que es la suma de las f’s de las subcadenas. 10 cadenas) también son generadas por la gramática. Dada una cadena del lenguaje (por tanto. 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. porque f nunca puede psar de positiva a negativa al sustituir una x por una y —o viceversa—. dada una cadena cuyo número de x’s es nX y cuyo número de y’s es nY. Si esta nueva secuencia tiene cinco símbolos terminales (que necesariamente serán 3 x’s y 2 y’s). la dividimos en varias subcadenas de longitud 5. debe ser 0. de longitud múltiplo de 5).1 si sustituimos esta subcadena por S. 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. Así se demuestra que hay al menos una subcadena nula. es generada por la gramática.3) => S → xMZN S → xZN S → xMZ S → xZ S → zN S→z Problema 37. salvo por la S. es de nuevo una cadena del lenguaje. Como punto de partida definimos una función f tal que. Dadas dos subcadenas consecutivas de signos opuestos. obtenemos una secuencia tal que. Lo que es mucho más complicado demostrar es que todas las cadenas del lenguaje pueden ser generadas por esta gramática. está claro que puede ser generada por la gramática. etc. Si la secuencia tiene 10 o más símbolos terminales. que pertenece al lenguaje. que forman una cadena de longitud 10. Si no. 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.. luego la formada por los símbolos 2-6. sino que debe pasar primero de positiva a nula y luego a negativa. porque la f de la cadena primitiva. Si f es nula para alguna de ellas. tomamos la subcadena formada por los símbolos 1-5 (la primera subcadena). hasta llegar a la subcadena 5-10 (la segunda de las subcadenas que teníamos).

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

Problema 6. las que contienen N generan {y2n. y Otra solución: } u #R∆R∆ uL# u →R∆ L x. n ≥ 0}. y Problema 2.Problemas de repaso del capítulo 3 Problema 1. y las que cotienen P. En el segundo caso hay una terminación anormal si la celda inicial es el extremo de la cinta. m > 0}. →R∆ L x. 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. 11 . U o V generan {xm yn xm yn. m ≥ 0}. } u ∆R∆R∆ uL∆L∆u → R∆SLL∆ Problema 3.

Problema 7. [i∆xyx∆] [i*xyx∆] [*pxyx∆] [*xpyx∆] [*xypx∆] [*xyxp∆] [*xyqx∆] [*xyq∆][*xqy∆] [*xq∆] [*qx∆] [*q∆] [q*∆] [h∆] Problema 10. S → S1 S1 → xyMS1z yMx → xyM yMz → yyz yMy → yyM S1 → λ S → S2 S2 → xyNS2z yNx → xyN yNz → yz yNy → yyN S2 → λ Problema 8. S → xN N → Sx xNx → y Lo es. S → SPQR S→λ QP → PQ PQ → QP PR → RP 12 . [s∆∆yx∆] [∆t∆yx∆] [∆h∆yx∆] Problema 9. 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.

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

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

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

eso indica que la longitud de la cadena de la primera cinta es múltiplo de |waux|. — si está sobre un espacio en blanco. Los lenguajes recursivamente enumerables son aquéllos que pueden aceptar una máquina de Turing. Entonces debe añadir una x más a waux. para no aceptar la cadena. significa que |w| no es múltiplo de |waux|. y así sucesivamente. (Naturalmente. si lo fuera. 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.) Así. vuelve a desplazarse |waux| celdas hacia la derecha. y repetir el proceso. para cada terminal x. Problema 34. 16 . 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. Esta máquina aplica las reglas de reescritura para generar las cadenas y compararlas con la cadena analizada. En la demostración del teorema 3. la máquina se detiene cuando |w| = |waux|.4 (págs. Si |w| es número primo. hasta que se cumpla una de las condiciones siguientes. La máquina que buscamos puede prescindir de la cinta 1 y mostrar como resultado las cadenas que genera en la cinta 2. es decir. llevar la cabeza de la primera cinta al inicio. deberíamos escribir X’ u otro terminal diferente que no pertenezca a la gramática original. — si la cabeza de la primera cinta está sobre una x que tiene a su derecha un espacio en blanco. y por eso la máquina debe entrar en un bucle. una regla del tipo X → x y sustituir en el resto de las reglas todos los símbolos terminales por el no terminal correspondiente. suponemos que X no era un símbolo de la gramática original. los lenguajes estructurados por frases. Basta con añadir.— si la cabeza de la primera está sobre una x que tiene a su derecha otra x.

Sign up to vote on this title
UsefulNot useful