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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

110 CHAPTER 6. PROPIEDADES DE LOS LENGUAJES LIBRES DE CONTEXTOPara G b se tomaS b → 0S b 0|2S b 2|εPara la sustitución f(a) = L a y f b = L b ; entonces f(L) es generado por la siguiente gramáticaS → S a SS b S|S b SS a S|εS a → 0S a 1|01S b → 0S b 0|2S b 2|εDebiera observarse que, ya sea que a, b, ab y a ∗ son lenguajes libres <strong>de</strong> contexto, la clausura <strong>de</strong> loslenguajes libres <strong>de</strong> contexto bajo sustitución por LLC, implica clausura bajo unión, concatenación y clausura<strong>de</strong> Kleene. La unión <strong>de</strong> L a y L b es simplemente la sustitución <strong>de</strong> L a y L b en {a, b}; similarmente, L a L b y L ∗ ason las sustituciones en {ab} y a ∗ , respectivamente. Es <strong>de</strong>cir, el primer teorema pue<strong>de</strong> ser presentado comoun corolario <strong>de</strong> este último.Ya que un homomorfismo es un caso especial <strong>de</strong> una sustitución, se establece el siguiente corolario:Corolario 1 Los lenguajes libres <strong>de</strong> contexto son cerrados bajo homomorfismos.Teorema 30 Los lenguajes libres <strong>de</strong> contexto son cerrados bajo el inverso <strong>de</strong> un homomorfismo.Demostración : Sea h : Σ → ∆ ∗ un homomorfismo y sea L un lenguaje libre <strong>de</strong> contexto. Sea L = L(M)en que M es el AA (Q, ∆, Γ, δ, q 0 , Z 0 , F ). Se construye un AA, M ′ , que acepta h −1 (L) como sigue. Dado uninput a, M ′ genera h(a) y simula a M en h(a). Si M fuera un AF, todo lo que podría hacer en h(a) seríacambiar estados y M ′ podría simularlo en una sola movida. Pero como M es un AA, pue<strong>de</strong> hacer pop <strong>de</strong>muchos símbolos o (por ser no <strong>de</strong>terminístico) hacer movidas que ponen un número arbitrario <strong>de</strong> símbolosen el stack. Es <strong>de</strong>cir, M ′ no pue<strong>de</strong>, necesariamente, simular las movidas <strong>de</strong> M en h(a) con una (o cualquiernúmero finito) <strong>de</strong> sus propias movidas.Se da, entonces, a M ′ un buffer en que pue<strong>de</strong> almacenar h(a). M ′ pue<strong>de</strong> entonces simular cualquiermovida <strong>de</strong> M que <strong>de</strong>see, consumiendo un símbolo <strong>de</strong> h(a) a la vez, como si fuera el input <strong>de</strong> M. Como elbuffer es parte <strong>de</strong>l control finito <strong>de</strong> M ′ , no se le pue<strong>de</strong> permitir crecer en forma arbitraria. Para asegurarésto, se permite que M ′ lea un símbolo <strong>de</strong>l input sólo cuando el buffer está vacío. Es <strong>de</strong>cir, el buffer siemprecontiene un sufijo <strong>de</strong> h(a) para algún a. M ′ acepta su input w si el buffer está vacío y M está en un estadofinal. Esto es, M ha aceptado h(w). Es <strong>de</strong>cir,L(M ′ ) = {w/h(w) ∈ L} = h −1 (L(M))Sea M ′ = (Q ′ , Σ, Γ, δ ′ , [q 0 , ε] , Z 0 , F × {ε}) en que Q ′ consta <strong>de</strong> los pares [q, x] tales que q ∈ Q y x es unsufijo (no necesariamente propio) <strong>de</strong> h(a) para algún a ∈ Σ. La función δ ′ se <strong>de</strong>fine como sigue:1. δ ′ ([q, x] , ε, Y ) contiene todos los ([p, x] , γ) tales que δ(q, ε, Y ) contiene (p, γ). Simula las movidas-ε <strong>de</strong>M in<strong>de</strong>pendientemente <strong>de</strong>l contenido <strong>de</strong>l buffer.2. δ ′ ([q, ax] , ε, Y ) contiene todos los ([p, x] , γ) tales que δ(q, a, Y ) contiene (p, γ). Simula a M en inputa ∈ ∆, removiendo a <strong>de</strong>l primer lugar <strong>de</strong>l buffer.3. δ ′ ([q, ε] , a, Y ) contiene ([q, h(a)] , Y ) ∀a ∈ Σ e Y ∈ Γ. Pone h(a) en el buffer leyendo a ∈ Σ <strong>de</strong>s<strong>de</strong>el input <strong>de</strong> M ′ ; el estado y stack <strong>de</strong> M no cambian.Para mostrar que L(M ′ ) = h −1 (L(M)) obsérvese primero que , por una aplicación <strong>de</strong> la regla (3) seguidapor aplicaciones <strong>de</strong> las reglas (1) y (2), si (q, h(a), α) ⊢ M∗(p, ε, β), entonces([q, ε] , a, α) ⊢ M ′([q, h(a)] , ε, α) ⊢ M ′ ∗([p, ε] , ε, β)✷

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

Saved successfully!

Ooh no, something went wrong!