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.

78 CHAPTER 5.ACEPTACIÓN Y GENERACIÓN DE LENGUAJES LIBRES DE CONTEXTOcon la función δ <strong>de</strong>finida como sigue:δ(q 1 , 0, R) = {(q 1 , AR)} δ(q 1 , 1, R) = {(q 1 , V R)}δ(q 1 , 0, A) = {(q 1 , AA)} δ(q 1 , 1, A) = {(q 1 , V A)}δ(q 1 , 0, V ) = {(q 1 , AV )} δ(q 1 , 1, V ) = {(q 1 , V V )}δ(q 1 , c, R) = {(q 2 , R)}δ(q 1 , c, A) = {(q 2 , A)}δ(q 1 , c, V ) = {(q 2 , V )}δ(q 2 , 0, A) = {(q 2 , ε)} δ(q 2 , 1, V ) = {(q 2 , ε)}δ(q 2 , ε, R) = {(q 2 , ε)}Nótese que para cada movida en que el autómata escribe un símbolo en el tope <strong>de</strong>l stack, δ tiene un valor(q, γ) en que |γ| = 2. Por ejemplo δ(q 1 , 0, R) = {(q 1 , AR)}. Si γ fuera <strong>de</strong> longitud 1, el AA simplementereemplazaría el símbolo al tope <strong>de</strong>l stack por un nuevo símbolo, sin incrementar el tamaño <strong>de</strong>l stack. Estohace que si γ es ε, el resultado es un pop <strong>de</strong>l stack.Nótese también que la regla δ(q 2 , ε, R) = {(q 2 , ε)} significa que el AA en estado q 2 con R al tope <strong>de</strong>lstack pue<strong>de</strong> borrar esa R in<strong>de</strong>pendientemente <strong>de</strong>l símbolo <strong>de</strong> entrada. En este caso, la cabeza lectora no seavanza, y en realidad no es necesario que hubiese input adicional.Para <strong>de</strong>scribir formalmente la configuración en que se encuentra un AA en un instante dado, se <strong>de</strong>fineuna <strong>de</strong>scripción instantánea (DI). La DI <strong>de</strong>be, por supuesto, registrar el estado y el contenido <strong>de</strong>l stack; sinembargo es útil que a<strong>de</strong>más incluya el input aún no procesado. Por lo tanto una DI se <strong>de</strong>fine como una triple(q, w, γ) en que q es un estado, w un string <strong>de</strong> símbolos <strong>de</strong> entrada y γ un string <strong>de</strong> símbolos el stack.Si M = (Q, Σ, Γ, δ, q 0 , Z 0 , F ) es un AA, se dice que (q, aw, Zα) ⊢ M (p, w, βα) si δ(q, a, Z) contiene (p, β).Nótese que a pue<strong>de</strong> ser tanto ε como algún símbolo <strong>de</strong> entrada, en esta <strong>de</strong>finición. Por ejemplo, en el AA<strong>de</strong>l ejemplo anterior el hecho <strong>de</strong> que (q 1 , AV ) esté en δ(q 1 , 0, V ) asegura que(q 1 , 011, V V R) ⊢ (q 1 , 11, AV V R)Se usa ⊢ M∗para la clausura reflexiva y transitiva <strong>de</strong>⊢M . Esto es, I ⊢ M∗I para toda DI I, y si I⊢M∗J yJ ⊢ M∗K entonces I⊢M∗K. Se escribirá I⊢MiK si la <strong>de</strong>scripción instantánea I se pue<strong>de</strong> convertir a K <strong>de</strong>spués<strong>de</strong> exactamente i movidas.Para un AA, M = (Q, Σ, Γ, δ, q 0 , Z 0 , F ), se <strong>de</strong>fine L(M), el lenguaje aceptado por estado final a{w/(q 0 , w, Z 0 ) ⊢ M∗(p, ε, γ) con p ∈ F y γ ∈ Γ ∗ }y se <strong>de</strong>fine N(M), el lenguaje aceptado por stack vacío a{w/(q 0 , w, Z 0 ) ⊢ M∗(p, ε, ε) con p ∈ Q}Si la aceptación es por stack vacío, el conjunto <strong>de</strong> estados finales es irrelevante y normalmente, en esoscasos, se <strong>de</strong>fine como el conjunto vacío.Ejemplo 67 El siguiente autómata apilador acepta el lenguaje {ww r /w ∈ {0, 1} ∗ }, por stack vacío.M = ({q 1 , q 2 }, {0, 1}, {R, A, V }, δ, q 1 , R, ∅)δ(q 1 , 0, R) = {(q 1 , AR)}δ(q 1 , 1, R) = {(q 1 , V R)}δ(q 1 , 0, A) = {(q 1 , AA), (q 2 , ε)}δ(q 1 , 0, V ) = {(q 1 , AV )}δ(q 1 , 1, A) = {(q 1 , V A)}δ(q 1 , 1, V ) = {(q 1 , V V ), (q 2 , ε)}δ(q 2 , 0, A) = {(q 2 , ε)}δ(q 2 , 1, V ) = {(q 2 , ε)}δ(q 1 , ε, R) = {(q 2 , ε)}δ(q 2 , ε, R) = {(q 2 , ε)}✷

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

Saved successfully!

Ooh no, something went wrong!