Curso Básico de Computación -...

48
Curso Básico de Computación 9 La Jerarquía de Chomsky Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN <[email protected]> 2010 Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 1 / 48

Transcript of Curso Básico de Computación -...

Page 1: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Curso Básico de Computación9 La Jerarquía de Chomsky

Feliú Sagols Troncoso

MatemáticasCINVESTAV-IPN

<[email protected]>

2010

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 1 / 48

Page 2: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

9 La Jerarquía de Chomsky

De las tres principales clases de lenguajes que se han estudiado -losconjuntos regulares, los lenguajes libres de contexto, y los lenguajesrecursivamente enumerables- únicamente los LLC son los que se hancaracterizado gramaticalmente. En este capítulo, se darán definicionesgramaticales de los conjuntos regulares y los lenguajes r.e.

También, se introducirá una nueva clase de lenguajes, que viven entrelos LLC y los lenguajes r.e., proporcionando ambas caracterizacionesmáquina y gramatical para esta nueva clase.

Las cuatro clases de lenguajes son a menudo llamadas la jerarquía deChomsky, en honor a Noam Chomsky, quién definió estas clasescomo modelos potenciales de lenguajes naturales.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 2 / 48

Page 3: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

9.1 Gramáticas Regulares

Si todas las producciones de una GLC son de la forma A→ wB oA→ w , donde A y B son variables y w es una cadena de terminales(posiblemente vacía), entonces se dice que la gramática es linealderecha. Si todas las producciones son de la forma A→ Bw oA→ w , entonces la gramática se llama lineal izquierda. Unagramática lineal derecha o izquierda se conoce como gramáticaregular.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 3 / 48

Page 4: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo: 9.1

El lenguaje 0(10)∗ puede ser generado por la gramática lineal derecha

S → 0A

A → 10A|ǫ

y por la gramática lineal izquierda

S → S10|0

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 4 / 48

Page 5: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Equivalencia entre gramáticas regulares y autómatasfinitosLas gramáticas regulares caracterizan a los conjuntos regulares, en elsentido de que un lenguaje es regular si y sólo si tiene una gramáticalineal izquierda y si y sólo si tiene una gramática lineal derecha. Estosresultados se prueban en los dos teoremas siguientes.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 5 / 48

Page 6: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.1)

Si L tiene una gramática regular, entonces L es un conjunto regular.

Demostración:Primero, supóngase que L = L(G) para alguna gramática linealderecha G = (V ,T ,P, S). Se construye un AFND con movimientosǫ, M = (Q,T , δ, [S], {[ǫ]}) que simule derivaciones en G .

Q consiste de los símbolos [α] tales que α es S o un sufijo (nonecesariamente propio) del lado derecho de alguna producción en P.

Defínase δ por:

1 Si A es una variable, entonces δ([A], ǫ) = {[α]|A→ α es unaproducción}.

2 Si a está en T y α está en T ∗ ∪ T ∗V , entoncesδ([aα], a) = {[α]}.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 6 / 48

Page 7: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Entonces una sencilla inducción sobre la longitud de una derivación osucesión de movimientos muestra que δ([S],w) contiene [α] si y sólosi S

⇒ xA⇒ xyα, donde A→ yα es una producción y xy = w , o siα = S y w = ǫ. Como [ǫ] es el estado final único, M acepta w si ysólo si S

⇒ xA⇒ w . Pero como cada derivación de una cadenaterminal tiene por lo menos un paso, se puede ver que M acepta w siy sólo si G genera a w . Por lo tanto, cada gramática lineal derechagenera un conjunto regular.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 7 / 48

Page 8: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ahora, sea G = (V ,T ,P, S) una gramática lineal izquierda.Considérese G ′ = (V ,T ,P ′, S) donde P ′ contiene las produccionesde G con lados derechos invertidos, esto es,

P ′ = {A→ α|A→ αR está en P}.

Si se invierten las producciones de una gramática lineal izquierda seobtiene una gramática lineal derecha, y viceversa. Así, G ′ es unagramática lineal derecha, y es fácil mostrar que L(G ′) = L(G)R . Porlo anterior, L(G ′) es un conjunto regular.

Pero como los conjuntos regulares son cerrados bajo inversión,entonces L(G ′)R = L(G) es también un conjunto regular. Luego, cadagramática lineal derecha o izquierda define un conjunto regular.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 8 / 48

Page 9: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo 9.2El AFND construido por el Teorema 9.1 a partir de la primeragramática del Ejemplo 9.1 se muestra en la siguiente figura:

ε[ ]Start

1

ε

ε

[10A]

[A][0A][S]

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 9 / 48

Page 10: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ahora considérese la segunda gramática del Ejemplo 9.1. Si seinvierten sus producciones, se obtiene

S → 01S|0

La construcción en el Teorema 9.1 para esta gramática produce elAFND de la siguiente figura:

[ ]ε

1

0

0

ε

ε

[0]

Start [S] [01S] [1S]

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 10 / 48

Page 11: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Si se invierten las aristas de dicho AFND e intercambian los estadosinicial y final, se obtiene otro AFND para 0(10)∗:

[01S]

10

0

ε

εStart ε [1S][S][0][ ]

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 11 / 48

Page 12: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.2)

Si L es un conjunto regular, entonces L es generado por algunagramática lineal izquierda y por alguna gramática lineal derecha.

Demostración:Sea L = L(M) para el AFD M = (Q,Σ, δ, q0,F ). Primero supóngaseque q0 no es un estado final. Entonces L = L(G) para la gramáticalineal derecha G = (Q,Σ,P, q0), donde P consiste de lasproducciones p → aq cuando δ(p, a) = q y p → a cuando δ(p, a) esun estado final. Entonces claramente, δ(p,w) = q si y sólo sip∗

⇒ wq. Si wa es aceptada por M, sea δ(q0,w) = p, lo que implicaque q0

⇒ wp. También, δ(p, a) es final, entonces p → a es unaproducción. Así, q0

⇒ wa. Recíprocamente, se tiene q0∗

⇒ x .Entonces x = wa, y q0

⇒ wp ⇒ wa para algún estado (variable) p.Entonces δ(q0,w) = p, y δ(p, a) es final. Así x está en L(M). Por lotanto, L(M) = L(G) = L.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 12 / 48

Page 13: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ahora supóngase que q0 está en F , entonces ǫ está en L. Notése quela gramática G definida arriba genera L− {ǫ}. La gramática G puedemodificarse añadiendo un nuevo símbolo de inicio S con produccionesS → q0|ǫ. La gramática resultante sigue siendo lineal derecha ygenera a L.

Para producir una gramática lineal izquierda para L, se comienza conun AFND que acepte LR y entonces se invierten los lados derechos detodas las producciones de la gramática lineal derecha resultante.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 13 / 48

Page 14: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo 9.3

En la siguiente figura se puede ver un AFD para 0(10)∗.

01

1 1

0,1

00

Start A

D

CB

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 14 / 48

Page 15: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

La gramática lineal derecha para este AFD es:

A → 0B|1D|0

B → 0D|1C

C → 0B|1D|0

D → 0D|1D

Como D es una variable inútil, puede eliminarse y obtener lagramática:

A → 0B|0

B → 1C

C → 0B|0

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 15 / 48

Page 16: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

9.2 Gramáticas sin Restricción

La familia más grande de gramáticas en la jerarquía de Chomskypermite producciones de la forma α→ β, donde α y β son cadenasarbitrarias de símbolos de gramáticas, con α 6= ǫ. Estas gramáticas seconocen como semi-Thue, tipo 0, estructura de frase o gramáticassin restricción.

Se continuará usando la notación G = (V ,T ,P, S) para gramáticassin restricción. Se dice que γαδ ⇒ γβδ si α→ β es una producción.Tal como antes,

⇒ representa la cerradura transitiva y reflexiva de larelación ⇒:

L(G) = {w |w está en T ∗ y S∗

⇒ w},

exactamente como para las GLC.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 16 / 48

Page 17: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo 9.4

A continuación se presenta una gramática que genera {ai |i espotencia positiva de 2}.

1) S → ACaB2) Ca → aaC3) CB → DB4) CB → E5) aD → Da6) AD → AC7) aE → Ea8) AE → ǫ

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 17 / 48

Page 18: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Las variables A y B sirven como los marcadores finales izquierdo yderecho de las formas sentenciales; C es un marcador que se mueve através de la cadena de a′s entre A y B, duplicando su número debidoa la producción (2). Cuando C coincide con el marcador final derechoB, se convierte en D o E según la producción (3) o (4). Si se escogeD, dicha variable se mueve a la izquierda por la producción (5) hastaque el marcador final izquierdo A sea alcanzado.

En este punto, D se convierte otra vez en C por la producción (6), yel proceso comienza nuevamente. Si se elige E , el marcador finalderecho desaparece. La variable E se mueve a la izquierda por laproducción (7) y consume el marcador final derecho, dejando unacadena de 2i a′s para algún i > 0.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 18 / 48

Page 19: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Se puede probar por inducción sobre el número de pasos en laderivación que si la producción (4) no es utilizada, entonces cualquierforma sentencial es

1 o S,

2 o de la forma AaiCajB, donde i + 2j es una potencia positiva de2,

3 o de la forma AaiDajB, donde i + j es una potencia positiva de2.

Cuando se usa la producción (4) queda una forma sentencial AaiE ,donde i es una potencia positiva de 2. Entonces los únicos pasosposibles en una derivación son i aplicaciones de (7) para producirAEai seguidos de una aplicación de (8), lo que produce ai donde i esuna potencia positiva de 2.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 19 / 48

Page 20: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Equivalencia entre gramáticas de tipo 0 y máquinas deTuringLos siguientes dos teoremas prueban que las gramáticas sin restriccióncaracterizan los lenguajes recursivamente enumerables (r.e.).

El primer teorema afirma que todo lenguaje de tipo 0 genera unconjunto recursivamente enumerable. Una sencilla prueba bastaríapara dar un algoritmo que enumere todas las cadenas generadas poruna gramática de tipo 0. En vez de esto, se construye una máquinade Turing que reconoce enunciados generados por una gramática detipo 0, ya que esta construcción servirá más tarde para una pruebasimilar sobre gramáticas sensibles al contexto (la clase que resta en lajerarquía de Chomsky).

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 20 / 48

Page 21: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.3)

Si L es L(G) para la gramática sin restricción G = (V ,T ,P, S),entonces L es un lenguaje recursivamente enumerable.

Demostración:Se contruye una máquina de Turing no determinística M con doscintas que reconoce L. La primer cinta de M es la entrada, sobre lacual se coloca una cadena w . La segunda cinta se usa para manteneruna forma sentencial α de G . La máquina M inicializa α con S.Entonces M hace lo siguiente repetidamente:

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 21 / 48

Page 22: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

1 Selecciona de manera no determinística una posición i en α,para que cualquier i entre 1 y |α| pueda ser elegido. Esto es,empieza a la izquierda y repetidamente elige moverse a laderecha o selecciona la posición actual.

2 Selecciona de manera no determinística una producción β → γde G .

3 Si β aparece comenzando en la posición i de α, reemplaza β porγ, usando la técnica de corrimiento de la sección 7.4, quizásrecorriendo a la izquierda si |γ| < |β|.

4 Compara la forma sentencial resultante con w en la cinta 1. Sicoinciden, acepta; w es una sentencia de G . Si no, se va al paso(1).

Es fácil mostrar que todas y cada una de las formas sentenciales de Gaparecen en la cinta 2 cuando se ejecuta el paso (4) después dealguna sucesión de elecciones. Así, L(M) = L(G) = L, luego, L esrecursivamente enumerable.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 22 / 48

Page 23: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.4)

Si L es un lenguaje r.e., entonces L = L(G) para alguna gramática Gsin restricción.

Demostración:Supóngase que L es aceptado por una máquina de TuringM = (Q,Σ, Γ, δ, q0,B,F ). Se construye una gramática G que generade manera no determinística 2 copias de una representación dealguna palabra en Σ∗ y que luego simula la acción de M sobre unacopia. Si M acepta la palabra, entonces G convierte la segunda copiaen una cadena terminal. Si M no la acepta, la derivación nuncallevará a una cadena terminal.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 23 / 48

Page 24: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Formalmente, sea

G = (V ,Σ,P,A1),

donde

V = ((Σ ∪ {ǫ})× Γ) ∪ {A1,A2,A3}

y las producciones en P son:

1) A1 → q0A2

2) A2 → [a, a]A2 para cada a en Σ.3) A2 → A3

4) A3 → [ǫ,B]A3

5) A3 → ǫ6) q[a,X ]→ [a,Y ]p para cada a en Σ ∪ ǫ

y cada q en Q y; X y Y en Γ, tal queδ(q,X ) = (p,Y ,R).

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 24 / 48

Page 25: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

7) [b,Z ]q[a,X ]→ p[b,Z ][a,Y ] para cadaX ,Y y Z en Γ, a y b en Σ ∪ ǫ y q enQ, tal que δ(q,X ) = (p,Y , L).

8) [a,X ]q → qaq, q[a,X ]→ qaq, y q → ǫpara cada a en Σ ∪ ǫ,X en Γ,y q en F .

Aplicando las reglas (1) y (2), se tiene que

A1∗

⇒ q0[a1, a1][a2, a2] · · · [an, an]A2,

donde ai está en Σ para cada i . Supóngase que M acepta la cadenaa1a2 · · · an. Entonces para alguna m, la máquina M no usa más quem celdas hacia la derecha de su entrada. Aplicando la regla (3),luego, la regla (4) m veces, y finalmente la regla (5), se tiene

A1∗

⇒ q0[a1, a1][a2, a2] · · · [an, an][ǫ,B]m.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 25 / 48

Page 26: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

A partir de este punto, sólo las reglas (6) y (7) pueden usarse hastaque un estado de aceptación se genere. Nótese que las primerascomponentes de las variables en (Σ ∪ ǫ)× Γ nunca cambian. Sepuede mostrar por inducción sobre el número de movimientos hechospor M que si

q0a1a2 · · · an*M X1X2 · · · Xr−1qXr · · · Xs ,

entonces

q0[a1, a1][a2, a2] · · · [an, an][ǫ,B]m*

G [a1,X1][a2,X2] · · · [ar−1,Xr−1]q[ar ,Xr ] · · · [an+m,Xn+m],

donde a1, a2, ..., an están en Σ, an+1 = an+2 = · · · = an+m = ǫ,X1,X2, ...,Xn+m están en Γ, Xs+1 = Xs+2 = · · · = Xn+m = B.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 26 / 48

Page 27: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

La hipótesis inductiva se cumple trivialmente para cero movimientos,ya que r = 1 y s = n. Supóngase válido para k − 1 movimientos y sea

q0a1a2 · · · ank−1M X1X2 · · · Xr−1qXr · · · Xs M Y1Y2 · · · Yt−1pYt · · · Yu.

Por hipótesis inductiva,

q0[a1, a1] · · · [an, an][ǫ,B]m*

G [a1,X1] · · · [ar−1,Xr−1]q[ar ,Xr ] · · · [an+m,Xn+m],

donde las a’s y X ’s satisfacen las condiciones a1, a2, ..., an están en Σ,an+1 = an+2 = · · · = an+m = ǫ, X1,X2, ...,Xn+m están en Γ,Xs+1 = Xs+2 = · · · = Xn+m = B.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 27 / 48

Page 28: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Si t = r + 1, entonces el k-ésimo movimiento de M es hacia laderecha, luego, δ(q,Xr ) = (p,Yr ,R). Por la regla (6),q[ar ,Xr ]→ [ar ,Yr ]p es una producción de G . Así

q0[a1, a1] · · · [an, an][ǫ,B]m*

G [a1,Y1] · · · [at−1,Yt−1]p[at ,Yt ] · · · [an+m,Yn+m],

donde Yi = B para i > u.Si t = r − 1, entonces el k-ésimo movimiento de M es hacia laizquierda, y

q0[a1, a1] · · · [an, an][ǫ,B]m*

G [a1,Y1] · · · [at−1,Yt−1]p[at ,Yt ] · · · [an+m,Yn+m],

se puede probar aplicando la regla (7) y las observaciones de quer > 1 y δ(q,Xr) = (p,Yr , L).Por la regla (8), si p está en F entonces

[a1,Y1] · · · [at−1,Yt−1]p[at ,Yt ] · · · [an+m,Yn+m]∗

⇒ a1a2 · · · an.Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 28 / 48

Page 29: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Se ha mostrado así que si w está en L(M), entonces A1∗

⇒ w ,entonces w está en L(G). Para el recíproco, es decir, que w en L(G)implica que w está L(M), una inducción similar a la anterior muestraque

q0[a1, a1][a2, a2] · · · [an, an][ǫ,B]m*

G [a1,X1][a2,X2] · · · [ar−1,Xr−1]q[ar ,Xr ] · · · [an+m,Xn+m],

implica

q0a1a2 · · · an*M X1X2 · · · Xr−1qXr · · · Xs .

Entonces nótese que no hay manera de remover el estado de M delas formas sentenciales de G sin aplicar la regla (8). Así G no puedederivar una cadena terminal sin simular un proceso de aceptación deM. Por la regla (8), la cadena derivada debe ser la primercomponente de las variables en (Σ ∪ {ǫ})× Γ, las cuales nuncacambian al simular los movimientos de M.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 29 / 48

Page 30: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

9.3 Gramáticas Sensibles al Contexto

Supóngase que se impone la restricción sobre las producciones α→ βde una gramática irrestricta de que β tenga por lo menos la longitudde α. Entonces la gramática resultante se llama sensible al contexto ysu lenguaje se conoce como lenguaje sensible al contexto(GSC y LSC,respectivamente).

El término “sensible al contexto"proviene de una forma normal paraestas gramáticas, donde cada producción es de la formaα1Aα2 → α1βα2, con β 6= ǫ. Las producciones de la forma anteriorse parecen a las producciones en una gramática libre de contexto,sólo que las primeras permiten la sustitución de la variable A por lacadena β sólo en el “contexto” α1 − α2.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 30 / 48

Page 31: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Casi cualquier lenguaje puede pensarse como sensible al contexto. Lasúnicas pruebas conocidas de que ciertos lenguajes no son LSC sebasan en la técnica de diagonalización. Estos incluyen al lenguaje Lu

del capítulo 8 y los lenguajes que se pueden reducir a Lu, porejemplo, los lenguajes del capítulo 8 probados como indecidibles. Enla sección 9.4 se probará que existen lenguajes recursivos que no sonLSC, y en el capítulo 12 se refinará esta afirmación. En ambos casos,las pruebas se hacen por diagonalización.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 31 / 48

Page 32: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo 9.5Considérese nuevamente la gramática del Ejemplo 9.4. Existen dosproducciones que violan la definición de una gramática sensible alcontexto. Estas son CB → E y AE → ǫ. Se puede construir una GSCpara el lenguaje {a2i

|i ≥ 1} haciendo que A,B,C ,D, y E no seanmás que marcadores, los cuales desaparecerán finalmente.

En lugar de usar variables por separado para los marcadores, estosmarcadores pueden incorporarse a las a’s creando variables“compuestas” como [CaB], que son en realidad, un solo símbolo queaparece en lugar de la cadena CaB.

El conjunto completo de símbolos compuestos necesario para simularla gramática del Ejemplo 9.4 es [ACaB], [Aa], [ACa], [ADa], [AEa],[Ca], [Da], [Ea], [aCB], [CaB], [aDB], [aE ], [DaB] y [aB].

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 32 / 48

Page 33: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Las producciones de la gramática sensible al contexto, las cuales seagrupan de acuerdo a la producción que simulan del Ejemplo 9.4, son:

1) S → [ACaB]2) [Ca]a → aa[Ca]

[Ca][aB] → aa[CaB][ACa]a → [Aa]a[Ca][ACa][aB] → [Aa]a[CaB][ACaB] → [Aa][aCB][CaB] → a[aCB]

3) aCB → [aDB]4) [aCB] → [aE ]5) a[Da] → [Da]a

[aDB] → [DaB]

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 33 / 48

Page 34: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

[Aa][Da] → [ADa]aa[DaB] → [Da][aB][Aa][DaB] → [ADa][aB]

6) [ADa] → [ACa]7) a[Ea] → [Ea]a

[aE ] → [Ea][Aa][Ea] → [AEa]a

8) [AEa] → a

Se puede probar directamente que S∗

⇒ α en la gramática delejemplo 9.4 si y sólo si S

⇒ α′ en la GSC actual, donde α′ se forma apartir de α agrupando con una a todos los marcadores (A hasta E )que aparecen entre ella y la a a su izquierda y agrupando con laprimera a cualesquiera marcadores hacia su izquierda con la última acualesquiera marcadores hacia su derecha. Por ejemplo, siα = AaaCaB, entonces α′ es [Aa]a[CaB].

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 34 / 48

Page 35: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Autómatas Lineales AcotadosAhora se introducirá una caracterización de los LSC. Un autómatalineal acotado (ALA) es una máquina de Turing no determinísticaque satisface las dos condiciones siguientes:

1 Su alfabeto de entrada incluye dos símbolos especiales ¢ y $, losmarcadores finales izquierdo y derecho, respectivamente.

2 El ALA no tiene movimientos a la izquierda de ¢ o a la derechade $, ni siquiera puede escribir otro símbolo sobre ¢ o $.

El autómata lineal acotado es simplemente una máquina de Turingque en lugar de tener una cinta infinita sobre la cual escribir, serestringe a la porción de la cinta que contiene a la entrada x más losdos cuadros de cinta que guardan a los marcadores finales.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 35 / 48

Page 36: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

En el capítulo 12, se verá que restringir la máquina de Turing a unacantidad de cinta que, para cada entrada, está acotada por algunafunción lineal de la longitud de la entrada, tiene la misma capacidadcomputacional que restringir la máquina de Turing a la porción de lacinta que contiene la entrada. De ahí el nombre de “autómata linealacotado".

Un ALA se denotará por M = (Q,Σ, Γ, δ, q0, ¢, $,F ), dondeQ,Σ, Γ, δ, q0 y F son como en la definición de MT no determinística;¢ y $ son símbolos en Σ, los marcadores finales izquierdo y derecho.El lenguaje aceptado por M, L(M), es

{w |w está en (Σ− {¢, $})∗ y q0¢w$ ⊢ αqβ para alguna q en F}.

Nótese que los marcadores finales están inicialmente sobre la cinta deentrada pero no se consideran parte de la palabra a ser aceptada orechazada. Como un ALA no puede moverse fuera de la entrada, noes necesario suponer que hay cinta en blanco a la derecha de $.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 36 / 48

Page 37: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Equivalencia entre gramáticas sensibles al contexto yautómatas lineales acotadosAhora se mostrará que excepto por el hecho de que un ALA puedeaceptar ǫ mientras una GSC no puede generar ǫ, los ALA aceptanexactamente a los LSC.

Teorema (9.5)

Si L es un LSC, entonces L es aceptado por algún ALA.

Demostración:La prueba es casi la misma que la del Teorema 9.3. La únicadiferencia es que mientras la MT del Teorema 9.3 generaba formassentenciales de una gramática sin restricción sobre una segunda cinta,el ALA utiliza una segunda pista de su cinta de entrada.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 37 / 48

Page 38: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Al encontrar ¢w$ en su cinta, el ALA comienza escribiendo elsímbolo S sobre una segunda pista abajo del símbolo más a laizquierda de w . Si w = ǫ, el ALA para sin aceptar.

En seguida, el ALA adivina una producción y una posición en laforma sentencial escrita sobre la segunda pista repetidamente. Aplicala producción, intercambiando la porción de la forma sentencial a laderecha siempre que la forma sentencial se expanda. Si, sin embargo,la nueva forma sentencial es más larga que w , el ALA para sinaceptar.

Así, el ALA acepta w si existe una derivación S∗

⇒ w tal que ningunaforma sentencial intermedia es más larga que w . Pero como el ladoderecho de cualquier produccción en una GSC es tan o más largo queel lado izquierdo, no podría existir una derivación S

⇒ α∗

⇒ w ,donde α es más larga que w . Así el ALA acepta todas y únicamentelas palabras generadas por la GSC.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 38 / 48

Page 39: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.6)

Si L = L(M) para el ALA M = (Q,Σ, Γ, δ, q0, ¢, $,F ), entoncesL− {ǫ} es un LSC.

Demostración:La prueba es análoga a la construcción de una gramática sinrestricción a partir de una MT en el Teorema 9.4. Las diferenciasradican en que los marcadores finales sobre la cinta del ALA debenincorporarse como símbolos de la cinta adyacentes, y el estado debeser, a su vez, incorporado al símbolo leído por la cabeza de la cinta.

La razón para esto es que si la GSC simula el ALA usando símbolospor separado para los marcadores finales, o estado, no podría borrarestos símbolos después, ya que ello requeriría recortar una formasentencial, lo cual es imposible porque el lado derecho de cadaproducción de la GSC es por lo menos tan largo como el ladoizquierdo.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 39 / 48

Page 40: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

La generación de una sucesión de parejas, donde la primercomponente de dichas parejas forma la cadena terminal a1a2 · · · an yla segunda componente forma la cinta del ALA se logra con lasproducciones

A1 → [a, q0¢a]A2, A1 → [a, q0¢a$],A2 → [a, a]A2, A2 → [a, a$],

para toda a en Σ− {¢, $}.

Las reglas que simulan al ALA son similares a las reglas (6) y (7) enel Teorema 9.4.

Si q es final, entonces se tiene la producción

[a, αqβ]→ a

para toda a en Σ− {¢, $} todas las α y β posibles (esto es, α y/o βpodrían incluir ¢, $ y un símbolo de la cinta).

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 40 / 48

Page 41: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Nótese que el número de producciones definidas es finito. También,se permite el borrado de la segunda componente de una variable siésta es adyacente a una terminal, por

[a, α]b → ab,b[a, α]→ ba

para cualquier a y b en Σ− {¢, $} y todas las α’s posibles.Las producciones mostradas explícitamente son sensibles al contexto.Las producciones del ALA simulado pueden construirse con facilidadde modo que preserven la longitud, así la gramática resultante es unaGSC. Una prueba de que cualquier palabra w salvo ǫ es aceptada porM si y sólo si es generada por la gramática es paralela a la delTeorema 9.4.Nótese que no existe manera de que la gramática pueda configurar laentrada ¢$ del ALA o que simule M sobre dicha entrada. Así ǫ nopuede ser generado por la gramática ya sea que esté o no enL(M).

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 41 / 48

Page 42: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

9.4 Relaciones entre las clases de lenguajes

Las cuatro clases de lenguajes -los conjuntos r.e., los LSC, los LLC, ylos conjuntos regulares- son a menudo referidos como lenguajes detipo 0, 1, 2 y 3, respectivamente. Se puede mostrar que a excepciónde la cadena vacía, los lenguajes tipo-i incluyen propiamente a loslenguajes tipo-(i + 1) para i = 0, 1, 2. Primero es necesario mostarque cada LSC es recursivo, y que de hecho, existen lenguajesrecursivos que no son LSC.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 42 / 48

Page 43: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Lenguajes sensibles al contexto y conjuntos recursivos

Teorema (9.7)

Cada LSC es recursivo.

Demostración:Dado una GSC G = (V ,T ,P, S) y una palabra w en Σ∗ de longitudn, se puede verificar si w está en L(G) de la manera siguiente.Constrúyase un grafo cuyos vertices son las cadenas en (V ∪ T )∗ delongitud menor o igual a n. Póngase un arco de α a β si α⇒ β.Entonces los caminos en el grafo corresponden a las derivaciones enG , y w está en L(G) si y sólo si existe un camino del vértice para Sal vértice para w . Utilícese cualquier algoritmo de búsqueda decaminos para decidir si dicho camino existe.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 43 / 48

Page 44: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Ejemplo 9.6Considérese la GSC del Ejemplo 9.5 y la entrada w = aa. Unamanera de probar caminos en el grafo es comenzar con la cadena S, yen el i-ésimo paso encontrar las cadenas de longitud menor o igual an teniendo un camino a partir de S de longitud menor o igual a i . Sise tiene el conjunto para i − 1 por decir, S , entonces el conjuntopara i es S ∪ {β|α⇒ β para algún α en S y |β| ≤ n}. En elejemplo se obtienen los siguientes conjuntos:

i = 0 : {S}i = 1 : {S, [ACaB]}i = 2 : {S, [ACaB], [Aa][aCB]}i = 3 : {S, [ACaB], [Aa][aCB],

[Aa][aDB], [Aa][aE ]}...

i = 6 : {S, [ACaB], [Aa][aCB], [Aa][aDB], [Aa][aE ],[Aa][DaB], [Aa][Ea], [ADa][aB], [AEa]a, [ACa][aB], aa}

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 44 / 48

Page 45: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Como para i = 6 se ve que aa es alcanzable desde S, no se necesita irmás allá. En general, como el número de formas sentenciales delongitud menor o igual a n es finito para cualquier gramática fija y unn fijo, se sabe que finalmente se llegará a un punto donde no seaumenten nuevas formas sentenciales. Como el conjunto para idepende sólo del conjunto para i − 1, nunca se añadirán cadenasnuevas, así, si para entonces aún no se produce w , ésta nunca seproducirá. En este caso w no está en el lenguaje.

Para probar que los LSC forman un subconjunto propio de loslenguajes recursivos, se requiere probar algo más general. Enparticular, se demostrará que cualquier clase de lenguajes que puedaser enumerada efectivamente, listando una o más máquinas de Turingque paren en todas las entradas, para cada miembro de la clase, esuna subclase propia de los lenguajes recursivos.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 45 / 48

Page 46: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Lema (9.1)

Sea M1,M2, ... una enumeración para algún conjunto de máquinas deTuring que paran en todas las entradas. Entonces existe un lenguajerecursivo que no es L(Mi) para cualquier i .

Demostración:Sea L el subconjunto de (0 + 1)∗ tal que w está en L si y sólo si Mi

no acepta w , donde i es el entero cuya representación binaria es w . Les recursivo, ya que dado w , se puede generar Mi y verificar si w estáo no en L(Mi). Pero ninguna MT de la lista acepta L. Supóngase queL fuera L(Mj), y sea x la representación binaria de j . Si x está en L,entonces x no está en L(Mj), y si x no está en L, entonces x está enL(Mj). Así L 6= L(Mj) como se supuso. Por lo tanto, L es un lenguajerecursivo que no es L(Mj) para cualquier j .

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 46 / 48

Page 47: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

Teorema (9.8)

Existe un lenguaje recursivo que no es sensible de contexto.

Demostración:Por el Lema 9.1, sólo se necesita mostrar que se pueden enumerarmáquinas de Turing que se detienen para los LSC sobre el alfabeto{0,1}. Sea la representación cuádruple para GSC con alfabetoterminal {0,1} dada por alguna codificación binaria. Por ejemplo, sepueden denotar 0, 1, coma, →, {, }, ( y ) por 10, 100,...,108,repectivamente, y denotar a la i-ésima variable por 10i+8. Sea Mj lamáquina de Turing que implementa el algoritmo del Teorema 9.7 yque reconoce al lenguaje de la GSC con código binario j . Claramente,Mj siempre para ya sea su entrada sea aceptada o no. Entonces elteorema se sigue inmediatamente del Lema 9.1.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 47 / 48

Page 48: Curso Básico de Computación - acme.math.cinvestav.mxacme.math.cinvestav.mx/~basico/beamer/cap9.pdf · entonces L es un lenguaje recursivamente enumerable. Demostración: Se contruye

El Teorema de la Jerarquía

Teorema (9.9)

(a) Los conjuntos regulares están contenidos propiamente en loslenguajes libres de contexto.(b) Los LLC que no contienen a la cadena vacía, están contenidospropiamente en los lenguajes sensibles al contexto.(c) Los LSC están contenidos propiamente en los conjuntos r.e.

Demostración:El inciso (a) se sigue del hecho de que toda gramática regular es unaGLC, y {0n1n|n ≥ 1} es un ejemplo de un LLC que no es regular. Laparte (b) se prueba notando que cada GLC escrita en forma normalde Chomsky es una GSC. El conjunto {a2i

|i ≥ 1} es un LSC quepuede ser fácilmente probado no ser un LLC por el lema de bombeo.Para el inciso (c) toda GSC es una gramática sin restricción. Lacontención propia se sigue del Teorema 9.8.

Curso Básico de Computación (Matemáticas) 9 La Jerarquía de Chomsky 2010 48 / 48