11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.8. EQUIVALENCIA ENTRE LLC Y AUTÓMATAS APILADORES 99 ✷Teorema 26 Si L es N(M) para algún AA, M, entonces L es un lenguaje libre <strong>de</strong> contexto.Demostración : Sea M el AA Q, Σ, Γ, δ, q 0 , Z 0 , ∅). Sea G = (V, Σ, P, S) una gramática libre <strong>de</strong> contexto enque V es un conjunto <strong>de</strong> objetos <strong>de</strong> la forma [q, A, p], en que q y p ∈ Q y A ∈ Γ, a<strong>de</strong>más <strong>de</strong> un nuevo símboloS. P es el conjunto <strong>de</strong> producciones1. S → [q 0 , Z 0 , q] ∀q ∈ Q2. [q, A, q M+1 ] → a [q 1 , B 1 , q 2 ] [q 2 , B 2 , q 3 ] . . . [q M , B M , q M+1 ] para cada q, q 1 , q 2 , . . . , q M+1 ∈ Q, cada a ∈Σ ∪ {ε} y A, B 1 , B 2 , . . . , B M en Γ tales que δ(q, a, A) contiene (q 1 , B 1 B 2 . . . B M ). Si M = 0, la producciónes [q, A, q 1 ] → a.Las variables y producciones <strong>de</strong> G se han <strong>de</strong>finido <strong>de</strong> forma que una <strong>de</strong>rivación por la izquierda <strong>de</strong> Xen G es una simulación <strong>de</strong>l AA, M, en input X. En particular las variables que aparecen en cualquier paso<strong>de</strong> una <strong>de</strong>rivación por la izquierda en G, correspon<strong>de</strong>n a los símbolos en el stack <strong>de</strong> M al momento en queM ha visto tanto <strong>de</strong>l input como lo generado por la gramática. Puesto <strong>de</strong> otra forma, la intención es que[q, A, p] <strong>de</strong>rive X si y sólo si X hace que M elimine una A <strong>de</strong> su stack usando una secuencia <strong>de</strong> movidas quecomienzan en el estado q y terminan en el estado p.Para mostrar que L(G) = N(M), se prueba por inducción en el número <strong>de</strong> pasos en una <strong>de</strong>rivación <strong>de</strong> Go número <strong>de</strong> movidas <strong>de</strong> M, que[q, A, p] ⇒ G∗X ssi (q, X, A)⊢M∗(p, ε, ε)Primero se muestra por inducción en i, que si (q, X, A) ⊢(p, i ∗ε, ε) entonces [q, A, p] ⇒ X. Si i = 1 entoncesδ(q, X, A) <strong>de</strong>be contener (p, ε). Aquí X es ε o un símbolo simple. Por lo tanto [q, A, p] → X es una producción<strong>de</strong> G. Si i > 1, sea X = aY y(q, aY, A) ⊢ (q 1 , Y, B 1 B 2 . . . B N ) i−1⊢ (p, ε, ε)el string Y pue<strong>de</strong> escribirse Y = Y 1 Y 2 . . . Y N en que Y j tiene el efecto <strong>de</strong> hacer pop <strong>de</strong> B j <strong>de</strong>s<strong>de</strong> el stack(posiblemente <strong>de</strong>spués <strong>de</strong> muchas movidas). Esto es, sea Y 1 el prefijo <strong>de</strong> Y al fin <strong>de</strong>l cual el stack por primeravez llega a tener N − 1 símbolos. Sea Y 2 el substring <strong>de</strong> Y que sigue a Y 1 , tal que al final <strong>de</strong> Y 2 por primeravez el stack tiene N − 2 símbolos, y así sucesivamente.Nótese que B 1 no es necesariamente el n-ésimo símbolo en el stack durante el tiempo en que Y 1 está siendoleido por M; B 1 pue<strong>de</strong> ser cambiado si está al tope <strong>de</strong>l stack y ser reemplazado por uno o más símbolos.Sin embargo, ninguno <strong>de</strong> B 2 , B 3 , . . . , B N están nunca al tope mientras Y 1 está siendo leido, por lo tanto nopue<strong>de</strong>n ser cambiados ni influenciar las movidas. En general B j permanece sin cambios en el stack mientrasY 1 , . . . , Y j−1 es leido.Existen estados q 2 , q 3 , . . . , q N+1 = p tales que(q j , Y j , B j ) ∗ ⊢(q j+1 , ε, ε)en menos <strong>de</strong> i movidas <strong>de</strong> M (q j es el estado al que se entra cuando por primera vez el stack tiene n − j + 1símbolos). Por la hipótesis <strong>de</strong> inducción[q j , B j , q j+1 ] ∗ ⇒Y j (1 ≤ j ≤ N)De la primera movida: (q, aY, A) ⊢ (q 1 , Y, B 1 B 2 . . . B N ) se sabe que[q, A, p] ⇒ a [q 1 , B 1 , q 2 ] [q 2 , B 2 , q 3 ] . . . [q N , B N , q N+1 ]y por lo tanto[q, A, p] ∗ ⇒aY 1 Y 2 . . . Y N = aY = X

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!