P. 1
problemas-automatas-resueltos

problemas-automatas-resueltos

|Views: 4.715|Likes:
Publicado pormayte2012

More info:

Published by: mayte2012 on Jan 03, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/09/2013

pdf

text

original

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:

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

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

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

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

si L = {ωi}i=1…n. Este último lenguaje es regular. puesto que puede representarse mediante la expresión regular: (x∪y)* ·x·x·x· (x∪y)*. y Li ={ωi}. Su lenguaje complementario es también por tanto regular (ver problema 3). Es decir. A continuación se muestran los respectivos diagramas de los autómatas que reconocen los dos lenguajes anteriores.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. 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. entonces L = {∪ Li}i=1…n Problema 13 El diagrama se obtiene siguiendo las indicaciones del libro de texto (página 46).

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

el autómata anterior puede describirse mediante un diagrama de tan sólo dos estados.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 que reconoce el lenguaje puede construirse a partir de los correspondientes autómatas.

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

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

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

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

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

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

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

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

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

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

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. X → xY Y → yZ Z→z Z→λ 7 .

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). 2) En las reglas cuyo lado derecho comience por un símbolo no terminal. 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. 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 . 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. 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).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. añadiéndose las nuevas reglas de reescritura correspondientes.

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

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

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

[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. S → SPQR S→λ QP → PQ PQ → QP PR → RP 12 .Problema 7. S → xN N → Sx xNx → y Lo es. [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.

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

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

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->