• Nenhum resultado encontrado

Linguagens Livres do Contexto: Propriedades

Exerc´ıcios

3.5 Linguagens Livres do Contexto: Propriedades

Nesta se¸c˜ao, algumas propriedades das LLCs, com prop´ositos an´alogos `aqueles da Se¸c˜ao 2.4, ser˜ao apresentadas. Inicialmente, ser´a mostrado o lema do bombeamento (LB) para LLCs, cuja aplica¸c˜ao principal ´e a demonstra¸c˜ao de que uma linguagem n˜ao ´e livre de contexto. Em seguida, ser˜ao apresentadas algumas propriedades de fechamento para essa classe de linguagens.

Na Se¸c˜ao 2.4, o LB para linguagens regulares foi obtido raciocinando-se a partir dos autˆomatos que reconhecem tais linguagens. J´a o LB para linguagens livres de contexto ´e mais facilmente obtido raciocinando-se a partir das gram´aticas que geram tais linguagens. Mais especificamente, o LB ser´a obtido a partir da estrutura das ´arvores de deriva¸c˜ao associadas a GLCs.

Lema 57 Seja L uma linguagem livre do contexto. Ent˜ao existe uma constante k > 0 tal que para qualquer palavra z ∈ L com |z| ≥ k existem u, v, w, x e y que satisfazem

as seguintes condi¸c˜oes:

• z = uvwxy; • |vwx| ≤ k; • vx 6= λ; e

• uviwxiy ∈ L para todo i ≥ 0.

Prova

Se a LLC L ´e finita, o lema vale por vacuidade: basta tomar uma constante k maior que o tamanho da maior palavra de L. Assim, seja G = (V, Σ, R, P ) uma GLC sem regras λ, nem regras unit´arias, que gere uma LLC L infinita. Como L ´e infinita, existe palavra em L de todo tamanho. No entanto, V e R s˜ao finitos. Isso nos leva a concluir que existe um n´umero k > 0 tal que qualquer palavra z ∈ L com |z| ≥ k ter´a uma AD da forma mostrada na Figura 3.28, na qual X ´e uma vari´avel que ´e um r´otulo que se repete em algum caminho simples que se inicia na raiz. Nessa figura, u, v, w, x, y ∈ Σ∗ e qualquer uma dessas subpalavras pode ser λ. Mas, como G n˜ao tem

regras λ nem unit´arias, pelo menos um dentre v e x ´e diferente de λ. E pelo mesmo motivo, a repeti¸c˜ao do r´otulo X em uma subAD com raiz de r´otulo X ocorre, no mais tardar, quando a subpalavra gerada correspondente `a subAD, vwx, tem k s´ımbolos. Logo, tem-se que |vwx| ≤ k e vx 6= λ. Pela estrutura da AD, vˆe-se que:

• P ⇒ uXy;∗ • X ⇒ vXx; e∗ • X ⇒ w.∗

Tem-se, ent˜ao, que P ⇒ uXy∗ ⇒ uv∗ iXxiy, para i ≥ 0, e, portanto, P ⇒ uv∗ iwxiy,

i ≥ 0. Assim, uviwxiy ∈ L para todo i ≥ 0.

7

Para aqueles com tendˆencia para a formalidade, aqui vai um enunciado mais formal: L ´e LLC → ∃k ∈ N∀z ∈ L[|z| ≥ k → ∃u, v, w, x, y(z = uvwxy ∧ |vwx| ≤ k ∧ |vx| ≥ 1 ∧ ∀i ∈ Nuviwxiy∈ L)].

P X X .. . .. . u v w x y

Figura 3.28 Esquema de AD para palavra “grande”.

O exemplo a seguir ilustra como utilizar o LB para mostrar que uma linguagem n˜ao ´e livre do contexto.

Exemplo 100 A linguagem L = {anbncn| n ∈ N} n˜ao ´e livre do contexto, como

mostrado abaixo, por contradi¸c˜ao, aplicando-se o lema do bombeamento.

Suponha que L seja uma LLC. Seja k a constante referida no LB, e seja z = akbkck. Como |z| > k, o lema diz que existem u, v, w, x e y de forma que as seguintes condi¸c˜oes se verificam:

• z = uvwxy; • |vwx| ≤ k; • vx 6= λ; e

• uviwxiy ∈ L para todo i ≥ 0.

Suponha, ent˜ao, que akbkck= uvwxy, |vwx| ≤ k e vx 6= λ. Considera-se dois casos:

• vx cont´em algum a. Como |vwx| ≤ k, vx n˜ao cont´em cs. Portanto, uv2wx2y

cont´em mais as que cs. Assim, uv2wx2y 6∈ L.

• vx n˜ao cont´em a. Como vx 6= λ, uv2wx2y cont´em menos as que bs e/ou cs. Dessa

forma, uv2wx2y 6∈ L.

Logo, em qualquer caso uv2wx2y 6∈ L, contrariando o LB. Portanto, a suposi¸c˜ao original de que L ´e livre do contexto n˜ao se justifica. Conclui-se que L n˜ao ´e LLC.

Exemplo 101 A linguagem L = {0n| n ´e primo} n˜ao ´e livre do contexto, como pode

ser observado a seguir.

Suponha que L seja uma LLC. Seja k a constante referida no LB, e seja z = 0n, em que n ´e um n´umero primo maior que k. A existˆencia de n ´e garantida pelo teorema provado no Exemplo 131 da Se¸c˜ao A.1, p´agina 282. Como |z| > k, o lema diz que existem u, v, w, x e y tais que:

• z = uvwxy; • |vwx| ≤ k; • vx 6= λ; e

• uviwxiy ∈ L para todo i ≥ 0.

Para provar que L n˜ao ´e livre do contexto, basta ent˜ao supor que z = uvwxy, |vwx| ≤ k e vx 6= λ, e encontrar um i tal que uviwxiy 6∈ L, contrariando o LB. Pelas informa¸c˜oes

anteriores, tem-se que uviwxiy = 0n+(i−1)(|vx|) (pois z = 0n). Assim, i deve ser tal que n + (i − 1)|vx| n˜ao seja um n´umero primo. Ora, para isso, basta fazer i = n + 1, obtendo-se n + (i − 1)|vx| = n + n|vx| = n(1 + |vx|), que n˜ao ´e primo (pois |vx| > 0). Desse modo, uvn+1wxn+1y 6∈ L, contradizendo o LB. Logo, L n˜ao ´e LLC.

O fato de que as LLCs s˜ao fechadas sob as opera¸c˜oes de uni˜ao, concatena¸c˜ao e fecho de Kleene pode ser demonstrado trivialmente utilizando-se gram´aticas, como mostrado no pr´oximo teorema. Antes, os m´etodos nos quais se baseia o teorema.

etodo 24 GLC para a uni˜ao

Sejam duas LLCs L1e L2com gram´aticas G1= (V1, Σ1, R1, P1) e G2 = (V2, Σ2, R2, P2),

com V1∩ V2 = ∅. Uma gram´atica para L1∪ L2 seria (V3, Σ3, R3, P3), em que:

• V3 = V1∪ V2∪ {P3};

• Σ3 = Σ1∪ Σ2;

• R3 = R1∪ R2∪ {P3→ P1, P3 → P2}; e

• P3 6∈ V1∪ V2.

etodo 25 GLC para a concatena¸c˜ao

Sejam duas LLCs L1e L2com gram´aticas G1= (V1, Σ1, R1, P1) e G2 = (V2, Σ2, R2, P2),

com V1∩ V2 = ∅. Uma gram´atica para L1L2 seria (V3, Σ3, R3, P3), em que:

• V3 = V1∪ V2∪ {P3};

• Σ3 = Σ1∪ Σ2;

• R3 = R1∪ R2∪ {P3→ P1P2}; e

• P3 6∈ V1∪ V2.

etodo 26 GLC para o fecho de Kleene

Seja uma LLC L com gram´atica G = (V, Σ, R, P ). Uma gram´atica para L∗ seria (V′, Σ, R, P), em que:

• V′= V ∪ {P};

• R′ = R ∪ {P→ P P, P→ λ}; e

Teorema 30 A classe das LLCs ´e fechada sob uni˜ao, concatena¸c˜ao e fecho de Kleene.

Prova

Segue trivialmente das t´ecnicas apresentadas nos M´etodos 24 a 26.

O seguinte teorema mostra que, ao contr´ario das linguagens regulares, as LLCs n˜ao s˜ao fechadas sob as opera¸c˜oes de interse¸c˜ao e complementa¸c˜ao.

Teorema 31 A classe das LLCs n˜ao ´e fechada sob interse¸c˜ao nem sob complementa¸c˜ao.

Prova

Sejam as linguagens livres de contexto L1 = {anbnck| n, k ≥ 0} e L2 = {anbkck| n, k ≥

0}. Tem-se que L1 ∩ L2 = {anbncn| n ≥ 0}, que, como mostrado no Exemplo 100,

n˜ao ´e LLC. Dado esse contra-exemplo, conclui-se que as LLCs n˜ao s˜ao fechadas sob interse¸c˜ao. De Morgan diz que L1∩ L2 = L1∪ L2. Logo, como as LLCs s˜ao fechadas

sob uni˜ao, se elas fossem fechadas sob complementa¸c˜ao, seriam fechadas tamb´em sob interse¸c˜ao. Assim, as LLCs n˜ao s˜ao fechadas sob complementa¸c˜ao.

Apesar de a classe das LLCs n˜ao ser fechada sob interse¸c˜ao, a interse¸c˜ao de uma LLC L com uma linguagem regular R ´e sempre uma LLC, como mostra o teorema seguinte. A id´eia, concretizada no m´etodo a seguir, similar `a utilizada para construir um AFD para L1∩ L2 a partir de AFDs para L1 e L2, ´e simular o funcionamento “em

paralelo” de um APN que reconhece L e de um AFD que reconhece R. Evidentemente, a pilha do APN resultante ´e aquela do APN que reconhece L.

etodo 27 APN para interse¸c˜ao de LLC com regular

Sejam M1 = (E1, Σ1, Γ, δ1, I, F1) um APN para L e M2 = (E2, Σ2, δ2, i, F2) um AFD

para R. Um APN que reconhece L ∩ R ´e M3 = (E3, Σ3, Γ, δ3, I′, F3), em que:

• E3 = E1× E2;

• Σ3 = Σ1∩ Σ2;

• para cada par de transi¸c˜oes [e′

1, z] ∈ δ1(e1, a, A) e δ(e2, a) = e′2, em que e1, e′1 ∈

E1, e2, e′2 ∈ E2, a ∈ Σ3, A ∈ Γλ, e z ∈ Γ∗, h´a uma transi¸c˜ao [(e′1, e′2), z] ∈

δ3((e1, e2), a, A); e para cada transi¸c˜ao λ, [e′1, z] ∈ δ1(e1, λ, A), h´a transi¸c˜oes

[(e′1, e2), z] ∈ δ3((e1, e2), λ, A) para cada e2∈ E2.

• I′= I × {i}; e • F3= F1× F2.

Teorema 32 Seja L uma LLC e R uma linguagem regular. Ent˜aoL ∩ R ´e uma LLC. Prova

Sejam M1 um APN para L, M2 um AFD para R e M3 para L ∩ R como obtido no

M´etodo 27. Pode-se mostrar, por indu¸c˜ao sobre n, que para todo i1∈ I, w ∈ Σ∗, e1 ∈

E1e e2 ∈ E2, que [[i1, i], w, λ] n

⊢M3 [[e1, e2], λ, λ] se, e somente se, [i1, w, λ]

n

⊢M1 [e1, λ, λ]

e ˆδ2(i, w) = e2.

O exemplo a seguir usa o Teorema 32 para mostrar que uma linguagem n˜ao ´e LLC. Exemplo 102 A linguagem

L = {w ∈ {a, b, c}∗| w tem o mesmo n´umero de as, bs e cs} n˜ao ´e livre do contexto, como se pode observar a seguir.

Suponha que L seja uma LLC. Ent˜ao, como R = L(a∗b∗c∗) ´e uma linguagem regular, pelo Teorema 32 L ∩ R ´e LLC. Mas, L ∩ R = {anbncn| n ∈ N}, que n˜ao ´e LLC, como

mostrado no Exemplo 100. Logo, L n˜ao ´e LLC.

No Cap´ıtulo 2 mostrou-se que o problema de determinar se L(F) ´e vazia, em que F ´e um AF, ER ou GR qualquer, ´e decid´ıvel. Esse mesmo problema ´e decid´ıvel, caso F seja um AP ou uma GLC, como mostra o exemplo a seguir.

Exemplo 103 Aqui, mostra-se que o problema de determinar se L = ∅, em que L ´e uma linguagem livre do contexto, ´e decid´ıvel. J´a que um AP pode ser tranformado em uma GLC equivalente, e vice-versa, basta usar um dos dois formalismos, AP ou GLC. Seja uma GLC G = (V, Σ, R, P ) qualquer. Aplicando-se o algoritmo da Figura 3.19a, p´agina 164, obt´em-se o conjunto SG = {X ∈ V | X ⇒ w e w ∈ Σ∗ ∗}. Ora L(G) = ∅ se

e somente se P 6∈ SG.

V´arios problemas decid´ıveis para as linguagens regulares n˜ao s˜ao decid´ıveis para linguagens livres do contexto. Alguns exemplos s˜ao (L, L1, L2 s˜ao LLCs):

• Determinar se L = Σ∗.

• Verificar se L1∩ L2= ∅.

• Determinar se L1⊆ L2.

• Decidir se L1= L2.

A prova da indecidibilidade de alguns desses problemas, assim como de alguns outros, ser´a vista no Cap´ıtulo 5.

Exerc´ıcios

a) {w ∈ {0, 1}∗| w tem n´umero par de 0s};

b) {w ∈ {0, 1}∗| w tem n´umero igual de 0s e 1s}.

2. Use o lema do bombeamento para mostrar que as seguintes linguagens n˜ao s˜ao livres do contexto: a) {an2 | n ≥ 0}; b) {anb2nan| n ≥ 0}; c) {ambnck| m < k e n < k}; d) {anbnck| k ≥ n}; e) {anbkcndk| k, n > 0}. 3. Sejam

L1 = {anbn| n ≥ 0} e L2 = {w ∈ {a, b}∗| |w| ´e m´ultiplo de 5}.

Mostre, para cada linguagem a seguir, que ela ´e ou n˜ao uma LLC: a) L1;

b) (L1L2)∗;

c) L1∩ L2;

d) L1∩ L2.

4. Para cada linguagem a seguir, mostre que ela ´e ou n˜ao ´e LLC: a) {w ∈ {a, b, c}∗| n a(w) = nb(w)}; b) {w ∈ {a, b, c}∗| n a(w) 6= nb(w)}; c) {w ∈ {a, b, c}∗| na(w) = nb(w) = nc(w)}; d) O complemento de {w ∈ {a, b, c}∗| n a(w) = nb(w) = nc(w)}; e) {w ∈ Σ∗| |w| ≥ 100 e n

f(w) = nt(w) = nc(w)}, sendo Σ o conjunto das 26

letras min´usculas do alfabeto da l´ıngua portuguesa; f ) {w ∈ {a, b, c}∗| n

c(w) ´e quadrado perfeito};

g) {akbmcn| m > k e m > n}.

5. Dˆe exemplos de linguagens L1 e L2 tais que L1 ⊂ L2 e:

a) L1 ´e LLC e L2 tamb´em ´e.

b) L1 ´e LLC, mas L2 n˜ao ´e.

c) L1 n˜ao ´e LLC, mas L2 ´e.

d) L1 n˜ao ´e LLC e L2 tamb´em n˜ao ´e.

6. Mostre que sim ou que n˜ao ou que `as vezes sim e `as vezes n˜ao: L1− L2 ´e LLC

se:

b) L1 ´e regular e L2 ´e LLC;

c) L1 ´e LLC e L2 ´e LLC;

d) L1 n˜ao ´e LLC e L2 ´e regular.

7. Seja uma ´arvore estritamente bin´aria ordenada (infinita) em que cada v´ertice tenha exatamente dois filhos, o da esquerda e o da direita. Um giro na ´arvore ´e uma sequˆencia de movimentos de trˆes tipos, para o filho da esquerda (e), para o

filho da direita (d) e para cima (para o pai) (c), em que: • o giro inicia e termina na raiz;

• na raiz, os ´unicos movimentos poss´ıveis s˜ao e e d;

• em um v´ertice diferente da raiz, qualquer um dos trˆes movimentos ´e poss´ıvel; Desta forma, giros podem ser representados por palavras no alfabeto {e, d, c}. Seja a linguagem L = {w ∈ {e, d, c}∗| w representa um giro}. Por exemplo,

λ, ec, edccec ∈ L, e c, edc 6∈ L. a) Prove que L n˜ao ´e regular. b) Mostre que L ´e livre do contexto.

8. Seja uma ´arvore estritamente bin´aria ordenada (infinita) como na quest˜ao an- terior, e defina-se um giro econˆomico como um giro em que um movimento de

um v´ertice para cada um dos filhos pode ser efetuado no m´aximo uma vez. (Com isto, um movimento de um dos filhos para o pai ´e sempre efetuado uma ´unica vez.) Exemplos de giros econˆomicos: λ, ec, ecdc, edccdc. Giros n˜ao econˆomicos: ecec, edccec. Fa¸ca uma GLC que gere {w ∈ {e, d, c}∗| w representa um giro

econˆomico}.

9. Mostre que as LLCs s˜ao fechadas sob reverso.

10. Mostre que se L ´e uma LLC e R uma linguagem regular, ent˜ao L − R ´e LLC. 11. Mostre que as LLCs n˜ao s˜ao fechadas sob diferen¸ca nem sob diferen¸ca sim´etrica. 12. Mostre que a classe das linguagens n˜ao inerentemente amb´ıguas n˜ao ´e fechada

sob as opera¸c˜oes de uni˜ao e interse¸c˜ao.

13. Sejam as defini¸c˜oes de homomorfismo e de substitui¸c˜ao apresentadas nos Exerc´ıcios 26 e 28 da Se¸c˜ao 2.9, p´agina 126. Mostre que as LLCs s˜ao fechadas sob substi- tui¸c˜ao e sob homomorfismo. (Dica: Use gram´aticas para mostrar o fechamento sob substitui¸c˜ao.)

14. Construa um AP para L1 = {w ∈ {0, 1}∗| n1(w) > n0(w)}. Construa um AFD

Documentos relacionados