• Nenhum resultado encontrado

Linguagens Formais e Autômatos

N/A
N/A
Protected

Academic year: 2021

Share "Linguagens Formais e Autômatos"

Copied!
13
0
0

Texto

(1)

Linguagens Formais e Autômatos

Soluções para a Lista 4 – Universidade Federal do ABC

Aritanan Gruber

aritanan.gruber@ufabc.edu.br

http://professor.ufabc.edu.br/∼aritanan.gruber

Os exercícios marcados com [?] deveriam ter sido entregues via Tidia-4 até 06/05/2018.

1. [?] Considere a gramática livre de contexto G = (V, T, P, S), em que V = {A, S}, T = {a, b} e P = {S → AA, A → AAA, A → a, A → bA, A → Ab}.

(a) Quais são as palavras de L(G) que podem ser produzidas por derivações de quatro ou menos passos? (b) Forneça, pelo menos, quatro derivações distintas para a palavra babbab.

(c) Para todos m, n, p > 0, descreva a derivação em G para a palavra bmabnabp.

Solução:

(a) O conjunto das palavras que podem ser produzidas por quatro ou menos derivações é: {aa, aab, aba, baa}. (b)

S =⇒ AA =⇒ bAA =⇒ bAbA =⇒ babA =⇒ babbA =⇒ babbAb =⇒ babbab, S =⇒ AA =⇒ bAA =⇒ bAAb =⇒ bAbAb =⇒ babAb =⇒ babbAb =⇒ babbab, S =⇒ AA =⇒ bAA =⇒ bAAb =⇒ bAbAb =⇒ bAbbAb =⇒ babbAb =⇒ babbab, S =⇒ AA =⇒ bAA =⇒ bAAb =⇒ bAbAb =⇒ bAbbAb =⇒ bAbbab =⇒ babbab, são quatro derivações distintas para a palavra babbab. Existem outras.

(c) Para todos m, n, p > 0, a palavra bmabnabppode ser derivada (gerada) da seguinte forma: inicialmente,

aplica-se a produção S → AA; depois aplica-aplica-se m vezes a produção A → bA na variável A mais à esquerda; em seguida, aplica-se n vezes a produção A → Ab na variável A mais à esquerda; na seqüência, aplica-se p vezes a produção A → Ab na variável A mais à direita; finalmente, aplica-se a produção A → a nas duas variáveis A. Esquematicamente, temos:

S =⇒ AA=⇒ bm mAA=⇒ bn mAbnA=⇒ bp mAbnAbp=⇒ bmabnAbp=⇒ bmabnabp. Claramente, existem outras formas possíveis para derivação da mesma palavra.

2. Construa gramáticas livres de contexto para as linguagens abaixo: (a) La = {wcwR: w ∈ {a, b}∗}

(b) Lb= {wwR: w ∈ {a, b}∗}

(c) Lc= {w ∈ {a, b}∗: w = wR}

(d) Ld= {ambn : m ≥ n}

(e) Le= {w ∈ {a, b}∗: w possui duas vezes mais a’s que b’s}

Solução:

(a) Ga= ({S}, {a, b}, {S → aSa | bSb | c}, S).

(b) Gb= ({S}, {a, b}, {S → aSa | bSb | λ}, S).

(c) Gc= ({S}, {a, b}, {S → aSa | bSb | a | b | λ}, S).

(d) Gd= ({S}, {a, b}, {S → aSb | aS | λ}, S).

(e) Ge= ({S}, {a, b}, P, S), em que P é o conjunto das produções a seguir:

S → aAB | aBA | bAA | λ, A → aS | bAAA,

(2)

Formalmente, resta mostrar que cada gramática acima descreve precisamente a linguagem para a qual foi criada, isto é, que L(Gx) = Lx. As gramáticas para os ítens (a)–(d) são simples o suficiente para que não haja dúvidas

quanto aos seus poderes de expressão. O mesmo não acontece com (e). Vamos então, fornecer uma prova adequada. Proposição 1. L(Ge) = {w ∈ {a, b}∗: |w|a = 2|w|b}.

Demonstração. A prova consiste em mostrar que S =⇒ x∗ se e somente se x ∈ L. Para atingir este objetivo, vamos provar algo ligeiramente mais forte. Vamos provar que

S=⇒ x ⇐⇒ |x|∗ a= 2|x|b, (1)

A=⇒ x ⇐⇒ |x|∗ a= 2|x|b+ 1, (2)

B=⇒ x ⇐⇒ |x|∗ a= 2|x|b− 2. (3)

A necessidade é por indução no número de derivações, denotado por n, de x. Caso n = 1, temos que S =⇒ λ pela produção S → λ e que esta é a única possibilidade, pois todas as demais produções de Ge possuem ao menos uma

variável no lado direito. Logo, S deriva λ em um passo, e A e B não derivam nenhuma palavra em um passo. Como |λ|a = |λ|b= 0, o resultado segue.

Considere então n > 0 e suponha que as relações são válidas para derivações com no máximo n − 1 passos. Para as A-produções, considerando derivações em n passos, temos que

A =⇒ aS=⇒ x∗ ou que A =⇒ bAAA=⇒ x.∗ No primeiro caso, S ∗

=⇒ x0 em n − 1 passos e assim, |x0|a = 2|x0|b. Como x = ax0, obtemos |x|a = 2|x|b+ 1. No

segundo, x = buvw com A <n

=⇒ u, A=⇒ v<n , e A=⇒ w<n . Por hipótese de indução, |z|a = 2|z|b+ 1com z ∈ {u, v, w}.

Como |x|b− 1 = |u|b+ |v|b+ |w|b, segue que

|x|a= |u|a+ |v|a+ |w|a = (2|u|b+ 1) + (2|v|b+ 1) + (2|w|b+ 1) = 2(|x|b− 1) + 3 = 2|x|b+ 1.

Para B-produções, a argumentação é semelhante. Dos quatro possíveis casos,

B =⇒ bS=⇒ x,∗ B =⇒ aABB=⇒ x,∗ B =⇒ aBAB=⇒ x,∗ ou B =⇒ aBBA=⇒ x,∗ temos dois a considerar pois os três últimos são semelhantes. Quando B =⇒ bS ∗

=⇒ x, x = bx0e S =⇒ xn−1 0, implicando em |x|a = |x0|a = 2|x0|b e |x|b+ 1 = |x0|b. Logo, |x|a = 2|x|b− 2. Em caso contrário, B =⇒ az

=⇒ x, em que z é uma permutação cíclica de uvw e A <n

=⇒ u, B=⇒ v<n , e B =⇒ w<n . De qualquer forma, |x|a− 1 = |u|a+ |v|a+ |w|a e

|x|b= |u|b+ |v|b+ |w|b e, por hipótese de indução, |u|a= 2|ub| + 1, |v|a = 2|v|b− 2, |w|a= 2|w|b− 2. Logo,

|x|a− 1 = (2|ub| + 1) + (2|v|b− 2) + (2|w|b− 2) = 2(|u|b+ |v|b+ |w|b) − 3 ⇐⇒ |x|a= 2|x|b− 2.

Finalmente, para S-produções, temos dois casos: S =⇒ aAB ∗

=⇒ x (que engloba S =⇒ aBA =⇒ x∗ , já que este contém uma permutação cíclica de AB), e S =⇒ bAA=⇒ x∗ . Caso x = auv ou x = avu com A=⇒ u<n e B =⇒ v<n , temos que |x|a= |u|a+ |v|a+ 1 e |x|b= |u|b+ |v|b. Por hipótese, |u|a= 2|u|b+ 1 e |v|a= 2|v|b− 2, resultando em

|x|a= (2|u|b+ 1) + (2|v|b− 2) + 1 ⇐⇒ |x|a= 2|x|b.

Caso S =⇒ bAA ∗

=⇒ x, temos que x = buv, A=⇒ u<n , A=⇒ v<n , |x|a = |u|a+ |v|ae |x|b= |u|b+ |v|b+ 1. Por hipótese,

|u|a= 2|u|b+ 1e |v|a= 2|v|b+ 1. Portanto,

|x|a= (2|u|b+ 1) + (2|v|b+ 1) = 2|x|b,

e x ∈ L sempre que S ∗

=⇒ x.

A suficiência é por indução no comprimento das palavras x ∈ L, que são sempre múltiplos de 3. Caso x = λ, temos que S =⇒ λ, A =⇒ aS =⇒ a e B =⇒ bS =⇒ b e o resultado segue, pois as quantidades de a’s e b’s derivadas satisfazem as relações (1), (2) e (3), respectivamente.

Considere então que |x| = 3k para algum k > 0 e suponha, a título de hipótese de indução, que (1), (2) e (3) são válidas para qualquer subpalavra própria de x. Temos que (i) x = auv ou x = avu com A ∗

=⇒ ue B=⇒ v∗ , ou que (ii) x = byz com A ∗

(3)

As derivações de u, y e z à partir de A, isto é, A =⇒ r∗ com r ∈ {u, y, z}, ocorrem via A =⇒ aS =⇒ r∗ ou via A =⇒ bAAA=⇒ r∗ — com a escolha independente para cada identidade de r. Logo, r = as com S=⇒ s∗ ou r = bopq com A=⇒ o, p, q∗ . Como |s|, |o|, |p|, |q| < |r|, segue que |s|a= 2|s|b, |o|a = 2|o|b+ 1, |p|a= 2|p|b+ 1e |q|a= 2|q|b+ 1,

o que resulta em |r|a− 1 = |s|a= 2|s|b ⇐⇒ |r|a = 2|s|b+ 1, ou |r|b− 1 = |o|b+ |p|b+ |q|b = (|o|a− 1) + (|p|a− 1) + (|q|a− 1) 2 = |o|a+ |p|a+ |q|a− 3 2 = |r|a− 3 2 ,

implicando em |r|a = 2|r|b+ 1e garantindo que (2) é válida. Isto já é suficiente para mostrar que (ii) é válido, já

que |x|b− 1 = |y|b+ |z|b= (|y|a+ |z|a− 2)/2 = (|x|a− 2)/2o que ocorre se e somente se |x|a= 2|x| − b.

Para B ∗

=⇒ v, temos que v ∈ {aopq, apoq, apqo : A=⇒ o, B∗ =⇒ p, q}∗ ou que v = bs com S=⇒ s∗ . De forma análoga, como |s|, |o|, |p|, |q| < |v|, segue que |s|a = 2|s|b, |o|a= 2|o|b+ 1, |p|a= 2|p|b− 2e |q|a = 2|q|b− 2, o que resulta em

|v|b− 1 = |s|b= |s|a/2 = |v|a/2 ⇐⇒ |v|a= 2|v|b− 2,

ou

|v|a− 1 = |o|a+ |p|a+ |q|a= (2|o|b+ 1) + (2|p|b− 2) + (2|q|b− 2) = 2|v|b− 3,

e garantindo que (3) é válida. Com isto, fechamos o caso (i), pois

|x|a− 1 = |u|a+ |v|a= |u|b+ 1 + |v|b− 2 ⇐⇒ |x|a = 2|x|b,

e obtemos que S ∗

=⇒ xpara toda palavra x ∈ L.

3. [?] Considere a gramática livre de contexto G = (V, T, P, S), em que V = {S}, T = {a, b} e P = {S → bS | Sa | aSb | λ}.

Qual a linguagem gerada por G? Prove sua afirmação.

Solução: Considere a gramática livre de contexto G especificada acima. Realizando algumas derivações em G, intuimos que L(G) é a linguagem de todas as palavras compostas por a’s e b’s.

Proposição 2. L(G) = {a, b}∗.

Demonstração. Não é difícil perceber que as sentenças geradas por G possuem apenas a’s e b’s, o que implica em L(G) ⊆ {a, b}∗. Vamos mostrar a recíproca por indução no comprimento das palavras em {a, b}∗.

Seja w ∈ {a, b}∗. Caso w = λ, a produção S → λ garante que S =⇒ λ e o resultado segue.

Considere agora que |w| > 0 e suponha, a título de hipótese de indução, que S ∗

=⇒ x, para toda palavra x ∈ {a, b}∗ com |x| < |w|. Podemos dividir a argumentação em três casos:

(i) w começa com b, (ii) w termina com a, ou

(iii) o complementar dos anteriores, isto é, w começa com a e termina com b.

Não é difícil perceber que qualquer palavra em {a, b}∗ enquadra-se em uma e somente uma das possibilidades e

que w = bx, ou w = xa, ou w = axb, respectivamente. Em todos os casos, por hipótese de indução, S ∗

=⇒ x. Utilizando-se, respectivamente, as produções S → bS, ou S → Sa, ou S → aSb na primeira derivação, obtemos que S =⇒ bS=⇒ bx = w∗ , ou S =⇒ Sa=⇒ xa = w∗ , ou S =⇒ aSb=⇒ axb = w∗ , resultando em w ∈ L(G).

4. [?] A seguinte gramática livre de contexto G = (V, T, P, S), em que V = {S}, T = {a, b} e P = {S → aS | aSbS | λ} é ambígua. Encontre uma gramática livre de contexto inambígua equivalente, isto é, encontre uma gramática livre de contexto H tal que L(G) = L(H).

Solução: A gramática G é ambígua, pois a palavra aab possui mais de uma derivação mais à esquerda (lm), como ilustrado a seguir:

S =⇒

(4)

O problema ocorre na derivação de a’s não emparelhados com b’s — a’s para os quais não existe um b correspondente. Claramente, isto se dá pelo fato de aS ser um prefixo comum aos lados direitos das produções S → aS e S → aSbS. Introduzimos nova variável X e produção X → aXbX | λ para restringir o prefixo comum e forçar a derivação dos a’s não emparalhados por S → aS. Formalmente, H = ({R, X}, T, P0, R), com P0dado pelo conjunto de produções abaixo:

R → aR | aXbR | λ, X → aXbX | λ.

A prova do argumento apresentado acima enconra-se na proposição que segue.

Proposição 3. As gramáticas livres de contexto G e H descrevem a mesma linguagem, com a diferença de que H é inambígua.

Demonstração. Seja L = L(G) M L(H) e suponha que L 6= ∅. Logo, existe uma palavra x ∈ L que satisfaz uma e apenas uma das possibilidades: (i) x ∈ L(G) \ L(H), ou (ii) x ∈ L(H) \ L(G). Considere o primeiro caso e para u, v ∈ T∗, seja S=⇒∗ lm uaSbSv =⇒ uaaSbSv ∗ =⇒ lm x

uma derivação mais à esquerda para x em G, em que destacamos uma forma sentencial na qual a produção S → aS foi usada para substituir a variável S mais à esquerda em aSbS, resultando em aaSbS. Esta substituição foi exatamente a que proibímos em H com a substituição do S mais à esquerda em aSbS por X, conjuntamente com a introdução das X-produções.

Como G é ambígua, a subsentença aaSbS pode ser derivada mais à esquera de duas formas: aSbS =⇒

lm aaSbS ou aS =⇒lm aaSbS.

Considere então uma derivação Gxmais à esquerda para x em G em que aSbS =⇒

lm aaSbS não ocorre. Não é difícil

perceber agora que existe uma correspondência biunívoca entre Gxe uma derivação mais à esquerda Hx para x em

H, pois todas as substituições realizadas em Gxpossuem um equivalente em Hx. Logo, x ∈ L(H) contradizendo a

hipótese.

A mesma correspondência biunívoca utilizada no caso (i) garante que o caso (ii) também não pode ocorrer, implicando em L(G) = L(H).

Quando à inambiguidade de H, basta observar que a substituição do S mais à esquerda na produção S → aSbS por S → aXbS, conjuntamente com a introdução das X-produções garante que há apenas uma forma de derivar a’s não emparelhados, e o resultado segue.

5. Para cada uma das gramáticas livres de contexto abaixo, elimine as λ-produções, as produções unitárias, os símbolos inúteis e coloque-as na Forma Normal de Chomsky (CNF).

(a) S → ASB | λ A → aAS | a B → SbS | A | bb (b) S → 0A0 | 1B1 | BB A → C B → S | A C → S | λ (c) S → AAA | B A → aA | B B → λ (d) S → aAa | bBb | λ A → C | a B → C | b C → CDE | λ D → A | B | ab

Solução: Os passos a serem seguidos são: eliminar as λ-produções, as produções unitárias, os símbolos inúteis, e reduzir os lados direitos das produções longas pela introdução de novas variáveis e produções de ligação.

(5)

(a) Observe que somente a variável S é anulável, devido à produção S → λ. Após a eliminação das λ-produções, obtemos:

S → ASB | AB A → aAS | aA | a

B → SbS | Sb | bS | b | A | bb.

A única produção unitária é B → A. Logo, é suficiente substituir essa ocorrência de A pelos lados direitos das produções cujo lado esquerdo é A (A-produções). Com isso, temos:

S → ASB | AB A → aAS | aA | a

B → SbS | Sb | bS | b | aAS | aA | a | bb.

Não existem símbolos inúteis, pois: (i) A e B geram palavras formadas por terminais e, consequentemente, S também; (ii) todos os símbolos (terminais e variáveis) da gramática são atingíveis a partir de S. Substituindo os símbolos terminais não isolados por variáveis e incluindo as produções adequadas:

S → ASB | AB A → CAS | CA | a

B → SDS | SD | DS | b | CAS | CA | a | DD C → a

D → b.

Finalmente, quebrando as produções que têm mais de duas variáveis no lado direito, obtemos uma gramática equivalente, a menos de λ, na Forma Normal de Chomsky:

S → AE | AB A → CF | CA | a B → SG | SD | DS | b | CF | CA | a | DD C → a D → b E → SB F → AS G → DS.

(b) Neste caso, todas as variáveis são anuláveis, pois C → λ, A → C, B → A e S → BB. Após a eliminação das λ-produções, obtemos:

S → 0A0 | 00 | 1B1 | 11 | BB | B A → C

B → S | A C → S.

As produções unitárias dessa gramática são: S → B, A → C, B → S, B → A e C → S. Observe que, inclusive, existem ciclos. Após a eliminação destas produções, temos:

S → 0A0 | 00 | 1B1 | 11 | BB A → 0A0 | 00 | 1B1 | 11 | BB B → 0A0 | 00 | 1B1 | 11 | BB C → 0A0 | 00 | 1B1 | 11 | BB.

A variável C não é atingivel a partir de S. Logo, ela e todas as C-produções podem ser eliminadas. Isso resulta em:

S → 0A0 | 00 | 1B1 | 11 | BB A → 0A0 | 00 | 1B1 | 11 | BB B → 0A0 | 00 | 1B1 | 11 | BB.

(6)

Observando que todas as A-, B- e S-produções são iguais, simplificamos a gramática para: S → 0S0 | 00 | 1S1 | 11 | SS.

Finalmente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de com-primento maior que 2, obtemos uma gramática equivalente, a menos de λ, na Forma Normal de Chomsky:

S → ZA | ZZ | U B | U U | SS A → SZ

B → SU Z → 0 U → 1.

(c) Neste caso, todas as variáveis são anuláveis, pois B → λ, A → B, S → B e, ainda, S → AAA. Após a eliminação das λ-produções, obtemos:

S → AAA | AA | A | B A → aA | a | B.

As produções unitárias dessa gramática são: S → A, S → B e A → B. Após a eliminação destas produções, temos:

S → AAA | AA | aA | a | B A → aA | a | B.

Como você deve ter percebido, não tivemos como eliminar as produções unitárias S → B e S → A acima, pois B é um símbolo inútil que não gera nada. Eliminando-o da gramática, vem:

S → AAA | AA | aA | a A → aA | a.

Finalmente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de com-primento maior que 2, obtemos uma gramática equivalente, a menos de ε, na Forma Normal de Chomsky:

S → AB | AA | CA | a A → CA | a

B → AA C → a.

(d) Neste caso, todas as variáveis são anuláveis, pois S → λ, C → λ, A → C, B → C, e D → A e, ainda D → B. Após a eliminação das λ-produções, obtemos:

S → aAa | aa | bBb | bb A → C | a

B → C | b

C → CDE | DE | CE | E D → A | B | ab.

As produções unitárias dessa gramática são: A → C, B → C, C → E, D → A e D → B. Eliminando a produção D → A: S → aAa | aa | bBb | bb A → C | a B → C | b C → CDE | DE | CE | E D → C | a | B | ab.

(7)

Eliminando a produção D → B: S → aAa | aa | bBb | bb A → C | a B → C | b C → CDE | DE | CE | E D → C | a | b | ab. Eliminando a produção C → E: S → aAa | aa | bBb | bb A → C | a B → C | b C → CDE | DE | CE D → C | a | b | ab. Eliminando as produções A → C, B → C e D → C: S → aAa | aa | bBb | bb A → CDE | DE | CE | a B → CDE | DE | CE | b C → CDE | DE | CE D → CDE | DE | CE | a | b | ab.

Temos que a variável E não é geradora, assim após sua eliminação a gramática fica: S → aAa | aa | bBb | bb

A → a B → b D → a | b | ab.

Temos ainda que a variável D não é alcançável a partir de S. Logo: S → aAa | aa | bBb | bb A → a

B → b.

Finalmente, incluindo variáveis e produções para os terminais não isolados e quebrando as produções de com-primento maior que 2, obtemos uma gramática equivalente, a menos de ε, na Forma Normal de Chomsky:

S → AF | AA | BG | BB A → a

B → b F → AA G → BB.

6. [?] Para w ∈ {0, 1}∗, definimos o complemento Booleano de w, denotado por por w, como a palavra obtida pela

complementação de cada símbolo em w. Ou seja, se w = 010, então w = 101. Considere o conjunto A = {w ∈ {0, 1}∗: w = wR}.

(8)

(b) Forneça uma gramática na forma normal de Chomsky para o conjunto A − {λ}.

Como exemplo, observe que as palavras 011001 e 010101 pertencem a A, mas a palavra 101101 6∈ A. Solução:

(a) Uma gramática livre de contexto para o conjunto A é G = (V, T, P, S), em que V = {S}, T = {0, 1} e P é o conjunto de produções:

S → 0S1 | 1S0 | λ.

A idéia é gerar símbolos complementares à mesma distância das extremidades. Não é difícil provar que L(G) = A.

(b) Uma gramática na Forma Normal de Chomsky para o conjunto A − {λ} é G0 = (V, T, P, S), em que V =

{S, A, B, Z, U }, T = {0, 1} e P é o conjunto de produções:

S → ZU | U Z | ZA | U B, A → SU, B → SZ, Z → 0, U → 1.

7. Mostre que toda linguagem livre de contexto que não possua λ pode ser gerada por uma gramática livre de contexto na qual todas as produções são da forma A → a, A → aB ou A → aBC, para a terminal e A, B e C variáveis. Sugestão, comece com uma gramática na Forma Normal de Greibach para a linguagem em questão.

Solução:

Sejam L uma linguagem livre de contexto que não possui λ, e G = (V, T, P, S) uma gramática livre de contexto na Forma Normal de Greibach para L. Todas as produções em P são da forma A → aβ, para A ∈ V , a ∈ T e β ∈ V∗.

Suponha que k é o maior número de símbolos que aparecem do lado direito das produções em P , e seja V0:=[γ] : γ ∈ V+ e |γ| < k .

Defina, inicialmente, P0 = ∅. Para cada produção A → aγ pertencente a P , com A ∈ V , a ∈ T e γ ∈ V+ (|γ| < k) e

cada variável [Aδ] pertencente a V0, inclua em P0 a produção

• [Aδ] → a, se γ = δ = λ; • [Aδ] → a[γ], se γ 6= λ e δ = λ; • [Aδ] → a[δ], se γ = λ e δ 6= λ; • [Aδ] → a[γ][δ], se γ 6= λ e δ 6= λ.

Ao final desse processo, teremos uma gramática equivalente a G na qual todas as produções são da forma A → a, A → aB ou A → aBC, para a terminal e A, B e C variáveis.

8. Mostre que as linguagens abaixo não são livres de contexto. (a) [?] {aibjck : i < j < k}. (b) {aibj: j = i2}. (c) {ap: pé um número primo}. (d) [?] {a2i : i ≥ 0}. Solução:

Vamos utilizar o lema de iteração (pumping lemma) para linguagens de contexto em cada uma das linguagens acima. Como é o caso quando se utiliza este resultado, todas as provas serão por contradição.

(a) Demonstração. Suponha que L = {aibjck : i < j < k}é livre de contexto e seja n > 0 a constante cuja existência

é garantida pelo lema de iteração. Considere a palavra z = anbn+1cn+2 ∈ L. Claramemte |z| = 3n + 3 > n.

Seja então z = uvwxy uma decomposição qualquer de z satisfazendo |vwx| ≤ n e vx 6= λ. Vamos mostrar que existem valores de ` ≥ 0 tais que a palavra uv`wx`y 6∈ L.

Temos dois casos relevantes para analisar (todas as demais possibilidades são cobertas por estes casos). No primeiro caso, vwx não possui nenhum símbolo c. Com isso, para ` = 3, z0 = uv3wx3ypossui no mínimo n + 2

(9)

Em caso contrário, vwx possui pelo menos um c e temos que ela não possui nenhum a, já que |vwx| ≤ n e existem n + 2posições entre o último a e o primeiro c, inclusive. Logo, para ` = 0, a palavra z00 = uv0wx0y = uwy

possui n símbolos a e não mais que 2n + 2 b’s e c’s, já que |vx| > 0. Como não é possível com esses valores termos mais b’s do que a’s e mais c’s do que b’s, segue que z006∈ L.

Logo, independente da forma em que z for dividida, existem valores ` ≥ 0 para os quais uv`wx`y 6∈ L,

contradizendo o lema da iteração. Portanto, L não é livre de contexto.

(b) Demonstração. Suponha que L = {aibj : j = i2}é livre de contexto e seja n > 0 a constante cuja existência é

garantida pelo lema de iteração. Considere a palavra z = anbn2 ∈ L, com |z| = n2+ n > n. Seja z = uvwxy

uma decomposição qualquer de z satisfazendo |vwx| ≤ n e vx 6= λ.

Se vwx possui apenas a’s, então para ` = 0 a palavra z0 = uv`wx`y = uwy consiste em n2 símbols b e no

máximo n − 1 símbolos a, implicando que z06∈ L. Um argumento análogo mostra que se vwx possui apenas b’s,

z0também não pertence a L. Caso v ou x possua simultaneamente a’s e b’s, claramente a palavra uv2wx2y 6∈ L, pois nem à linguagem a∗bela pertence.

O último e mais interessante caso ocorre quando v consiste de k símbolos a e x consiste de m símbolos b, com k, m > 0. Para todo ` > 1, a palavra z00= uv`wx`yconsiste em n + `k símbolos a e n2+ `msímbolos b. Temos

que z00∈ Lse e somente se (n + `k)2= n2+ `m, pois o número de b’s deve ser igual ao quadrado do número

de a’s. No entanto, (n + `k)2= n2+ 2`kn + `2k2e assim é necessário que

2`kn + `2k2= `m

com k, m > 0 e ` > 1. Como o lado esquerdo da equação acima cresce quadraticamente e o direito linearmente, não é possível satisfazer a igualdade para todo ` > 1 — lembre-se que n26∈ O(n). Ou seja, existe algum valor

`para o qual z006∈ Le isso completa a prova.

(c) Demonstração. Suponha que L = {ap : pé um número primo} é livre de contexto e seja n > 0 a constante

cuja existência é garantida pelo lema de iteração. Seja p ≥ n + 2 primo e considere a palavra z = ap ∈ L.

Seja z = uvwxy uma decomposição qualquer de z satisfazendo |vwx| ≤ n e vx 6= λ. Se |vx| = m, então |uwy| = p − m. Tome ` = p − m e considere a palavra z0 = uv`wx`y = uvp−mwxp−my. Temos que:

|z0| = |uwy| + (p − m)|vx| = (p − m) + (p − m)m = (1 + m)(p − m).

Para z0pertençer a L, |z0|deve ser primo. Isso ocorre se e somente se m + 1 ou p − m for igual a 1. No entanto,

temos que

• m + 1 > 1, pois vx 6= λ e assim m = |vx| > 0, e que • p − m > 1, pois p ≥ n + 2 e m ≤ n, já que |vwx| ≤ n. Portanto, z0 6∈ Le L não é livre de contexto.

(d) Demonstração. Suponha que L = {a2i : i ≥ 0} é livre de contexto e seja n > 0 a constante cuja existência

é garantida pelo lema de iteração. Considere a palavra z = a2n ∈ L e seja z = uvwxy uma decomposição

qualquer de z satisfazendo |vwx| ≤ n e vx 6= λ. Tome ` = 2 e considere z0 = uv2wx2z. Temos que

2n< |z0| = |z| + |vx| ≤ 2n+ n,

pois |vwx| ≤ n e |vx| > 0. Como 2n+1> 2n+ n para todo n não negativo, segue que o número de a’s em z0

não é uma potência de 2 e, consequentemente, que z0 6∈ L. Logo, L não é livre de contexto.

9. Escreva autômatos com pilha para as seguintes linguagens abaixo: (a) {wcwR: w ∈ {a, b}}

(b) {w ∈ {a, b}∗: w = wR}

(c) {aibjck: i = jou j = k}

(d) {w ∈ {a, b}∗: wpossui duas vezes mais a’s que b’s}

(e) L(G), em que G = ({S}, {(, ), [, ]}, {S → (S) | [S] | SS | λ}, S). (f) L(G), em que G = ({A, S}, {a, b}, {S → aAA, A → aS | bS | a}, S). Especifique o tipo de aceitabilidade de cada autômato com pilha. Solução:

(10)

(a) A = ({p, q, r}, {a, b}, {⊥, a, b}, δA, p, ⊥, {r}), em que δA é como: δA(p, a, ⊥) = {(p, a⊥)} δA(p, b, ⊥) = {(p, b⊥)} δA(p, a, a) = {(p, aa)} δA(p, a, b) = {(p, ab)} δA(p, b, a) = {(p, ba)} δA(p, b, b) = {(p, bb)} δA(p, c, ⊥) = {(q, ⊥)} δA(p, c, a) = {(q, a)} δA(p, c, b) = {(q, b)} δA(q, a, a) = {(q, λ)} δA(q, b, b) = {(q, λ)} δA(q, λ, ⊥) = {(r, λ)}

A aceitabilidade de A é simultaneamente por alcance de estado final e por esvaziamento de pilha. (b) A = ({p, q, r}, {a, b}, {⊥, a, b}, δA, p, ⊥, {r}), em que δA é como:

δA(p, a, ⊥) = {(p, a⊥)} δA(p, b, ⊥) = {(p, b⊥)} δA(p, a, a) = {(p, aa)} δA(p, a, b) = {(p, ab)} δA(p, b, a) = {(p, ba)} δA(p, b, b) = {(p, bb)} δA(p, a, ⊥) = {(q, ⊥)} δA(p, b, ⊥) = {(q, ⊥)} δA(p, a, a) = {(q, a)} δA(p, a, b) = {(q, b)} δA(p, b, a) = {(q, a)} δA(p, b, b) = {(q, b)} δA(p, λ, ⊥) = {(q, ⊥)} δA(p, λ, a) = {(q, a)} δA(p, λ, b) = {(q, b)} δA(q, a, a) = {(q, λ)} δA(q, b, b) = {(q, λ)} δA(q, λ, ⊥) = {(r, λ)}

A aceitabilidade de A é simultaneamente por alcance de estado final e por esvaziamento de pilha. Outro autômato de pilha possível para esta linguagem é B = ({p}, {a, b}, {S, a, b}, δB, p, S), em que δB é como:

δB(p, a, a) = {(p, λ)} δB(p, b, b) = {(p, λ)}

δB(p, λ, S) = {(p, aSa)} δB(p, λ, S) = {(p, bSb)}

δB(p, λ, S) = {(p, a)} δB(p, λ, S) = {(p, b)}

δB(p, λ, S) = {(p, λ)}

A aceitabilidade de B é por esvaziamento de pilha.

(c) A = (Q, {a, b}, {⊥, a, b, c}, δA, p, ⊥, {q3, q7}), em que Q = {qi: 0 ≤ i ≤ 7}e δA é como:

δA(q0, λ, ⊥) = {(q1, ⊥), (q4, ⊥)} δA(q1, a, ⊥) = {(q1, a⊥)} δA(q1, a, a) = {(q1, aa)} δA(q1, λ, ⊥) = {(q2, ⊥)} δA(q1, λ, a) = {(q2, a)} δA(q2, b, a) = {(q2, λ)} δA(q2, λ, ⊥) = {(q3, ⊥)} δA(q3, c, ⊥) = {(q3, ⊥)} δA(q4, a, ⊥) = {(q4, ⊥)} δA(q4, λ, ⊥) = {(q5, ⊥)} δA(q5, b, ⊥) = {(q5, b⊥)} δA(q5, b, b) = {(q5, bb)} δA(q5, λ, ⊥) = {(q6, ⊥)} δA(q5, λ, b) = {(q6, b)} δA(q6, c, b) = {(q6, λ)} δA(q6, λ, ⊥) = {(q7, ⊥)}

A aceitabilidade de A é por alcance de estado final.

(d) B = ({p}, {a, b}, {S, A, B, a, b}, δB, p, S), em que δB é como:

δB(p, a, a) = {(p, λ)} δB(p, b, b) = {(p, λ)} δB(p, λ, S) = {(p, aAB)} δB(p, λ, S) = {(p, aBA)} δB(p, λ, S) = {(p, bAA)} δB(p, λ, S) = {(p, λ)} δB(p, λ, A) = {(p, aS)} δB(p, λ, A) = {(p, bAAA)} δB(p, λ, B) = {(p, aABB)} δB(p, λ, B) = {(p, aBAB)} δB(p, λ, B) = {(p, aBBA)} δB(p, λ, B) = {(p, bS)}

A aceitabilidade de B é por esvaziamento de pilha (veja Exercício 2 ítem (e)). (e) B = ({p}, {(, ), [, ]}, {S, (, ), [, ]}, δB, p, S), em que δB é como:

δB(p, (, () = {(p, λ)} δB(p, ), )) = {(p, λ)}

δB(p, [, [) = {(p, λ)} δB(p, ], ]) = {(p, λ)}

δB(p, λ, S) = {(p, (S))} δB(p, λ, S) = {(p, [S])}

δB(p, λ, S) = {(p, SS)} δB(p, λ, S) = {(p, λ)}

(11)

(f) B = ({p}, {a, b}, {S, A, a, b}, δB, p, S), em que δB é como:

δB(p, a, a) = {(p, λ)} δB(p, b, b) = {(p, λ)}

δB(p, λ, S) = {(p, aAA)} δB(p, λ, A) = {(p, aS)}

δB(p, λ, A) = {(p, bS)} δB(p, λ, A) = {(p, a)}

A aceitabilidade de B é por esvaziamento de pilha.

10. [?] Um autômato com pilha P = (Q, Σ, Γ, δ, q0, ⊥, F ) é determinístico se:

(1) Sempre que δ(q, a, X) é não vazia para algum a ∈ Σ, então δ(q, λ, X) é vazia (para qualquer X ∈ Γ), e (2) Para cada q ∈ Q, a ∈ Σ ∪ {λ} e X ∈ Γ, |δ(q, a, X)| ≤ 1 (isto é, δ(q, a, X) contém no máximo um elemento). A regra (1) elimina a possibilidade de escolha entre a realização de uma transição consumindo um símbolo da entrada ou através de uma λ-transição. A regra (2) elimina a possibilidade de escolha entre transições para um mesmo símbolo da entrada.

Construa autômatos com pilha determinísticos para as seguintes linguagens: (a) {anbm: n ≤ m}.

(b) {anbm: n ≥ m}.

(c) {anbman: n, m ≥ 0}.

Solução:

(a) A = ({p, q, r}, {a, b}, {⊥, a, b}, δ, p, ⊥, {r}), em que δ é como:

δ(p, a, ⊥) = {(p, a⊥)} δ(p, a, a) = {(p, aa)} δ(p, b, ⊥) = {(q, ⊥)} δ(p, b, a) = {(q, λ)} δ(q, b, a) = {(q, λ)} δ(q, λ, ⊥) = {(r, ⊥)} (b) A = ({p, q, r}, {a, b}, {⊥, a, b}, δ, p, ⊥, {r}), em que δ é como:

δ(p, a, ⊥) = {(p, a⊥)} δ(p, a, a) = {(p, aa)} δ(p, b, a) = {(q, λ)} δ(q, b, a) = {(q, λ)} δ(q, λ, a) = {(r, a)} δ(q, λ, ⊥) = {(r, ⊥)} (c) A = ({p, q, r, s}, {a, b}, {⊥, a, b}, δ, p, ⊥, {s}), em que δ é como:

δ(p, a, ⊥) = {(p, a⊥)} δ(p, a, a) = {(p, aa)} δ(p, b, ⊥) = {(q, ⊥)} δ(p, b, a) = {(q, a)} δ(q, b, ⊥) = {(q, ⊥)} δ(q, b, a) = {(q, a)} δ(q, a, a) = {(r, λ)} δ(r, a, a) = {(r, λ)} δ(r, λ, ⊥) = {(s, ⊥)}

Sugestão: desenhe os diagramas correspondentes para observar melhor como cada autômato funciona.

11. Seja L ⊆ {a}∗ uma linguagem sobre um alfabeto unitário. Mostre que L é livre de contexto se e somente se L é

regular. Solução:

Demonstração. Para necessidade, observe que todo DFA D pode ser interpretado como um DPDA que não faz uso da pilha. Formalmente, para D = (Q, Σ, δ, s, F ), defina um DPDA D0 = (Q, Σ, Σ ∪ {⊥}, δ0, s, ⊥, F ) em que para

todos p, q ∈ Q e a ∈ Σ tal que δ(p, a) = q, tem-se que δ0(p, a, ⊥) = (q, ⊥). Claramente, L(D) = L(D0).

Para suficiência, seja L ⊆ {a}∗uma linguagem livre de contexto e seja n > 0 a constante cuja existência é garantida

pelo lema da iteração para linguagens livres de contexto. Para todo k ≥ n e toda palavra z = ak ∈ L, o lema da

iteração estabelece que que z = uvwxy com vx 6= λ e |vwx| ≤ n, e que z(i) = uviwxiy ∈ L para todo i ≥ 0.

Defina pk = |vx|e mk = |uwy|de forma que z(i) = amk+ipk ∈ Le observe que mk+ ipk é uma progressão aritmética

(12)

é uma linguagem fundamentalmente periódica ou, em outras palavras, regular (cf. Teorema 6, Lista 2). Defina S := L ∩ {a`: 0 ≤ ` < n}. Claramente S é finita e portanto, regular (cf. Exercício 2, Lista 2). Vamos mostrar então

que o número de progressões aritméticas em L é finito, isto é, que um número finito de valores para k é suficiente para descrever L \ S.

Seja K := {k ≥ n : ak∈ L}e observe que

L = S ∪ {ak: k ∈ K} ⊆ S ∪ [ k∈K amk(apk)∗ ! ⊆ L, implicando em {ak : k ∈ K} =S k∈Ka

mk(apk)∗. Agora, para cada valor de k ∈ K, temos que amk(apk)⊆ ark(apk)∗,

em que rk≥ 0e rk≡ mk(mod pk), resultando em

[

k∈K

amk(apk) [

k∈K

ark(apk).

Para mostarmos que a recíproca da inclusão acima, defina o conjunto

P := {(r, p) : 1 ≤ p ≤ n, 0 ≤ r < pe existe k ∈ K com pk = pe rk ≡ r (mod pk)},

e para todos os pares (r, p) ∈ P , defina

q(r, p) := min{rk : k ∈ K com pk= pe rk≡ r (mod pk)}.

Temos então que

[ (r,p)∈P aq(r,p)(ap)∗⊆ [ k∈K amk(apk). Logo, L = S ∪   [ (r,p)∈P aq(r,p)(ap)∗  ,

isto é, L é a união de uma linguagem finita com |P | ≤ n2linguagens fundamentalmente periódicas e, portanto, L é

regular.

Nota: Observe que a técnica utilizada na prova para limitar o número de linguagens fundamentalmente periódicas é semelhante à utilizada no Teorema 7 da Lista 2.

12. Uma gramática livre de contexto G = (V, T, P, S) é linear se toda produção em P é da forma A → α ou A → β B γ, em que A, B ∈ V e α, β, γ ∈ T∗. Ou seja, todas as produções de G possuem no máximo um não terminal (variável)

no lado direito. Uma linguagem livre de contexto L é linear se existe uma gramática livre de contexto linear G tal que L = L(G).

Mostre a seguinte versão do lema de iteração para linguagens livres de contexto lineares.

Se L é livre de contexto e linear, então existe uma constante n tal que se z ∈ L com |z| ≥ n, então existe uma decomposição z = uvwxy com |uvxy| ≤ n e |vx| ≥ 1 tal que uviwxiy ∈ Lpara todo i ≥ 0.

Solução:

Demonstração. Seja G = (V, T, P, S) uma gramática livre de contexto para L e, sem perda de generalidade, suponha que G não possui produções unitárias do tipo A → B em P , com A, B ∈ V — a suposição é sem perda de generalidade pois podemos eliminar tais produções e obter uma gramática equivalente, como fizemos em um dos passos da normalização de Chomsky. Sejam

p := |V | e k := max{|α| : A → α ∈ P },

o número de não-terminais (variáveis) e o número máximo de símbolos no lado direito de uma produção em G, respectivamente. Defina n := (p + 1)k, seja z ∈ L com |z| ≥ n e considere S ∗

=⇒

lm z uma derivação mais à equerda

(13)

passos na derivação de z. Sejam 0 < i < j < p + 1 os números de derivações até a primeira e a segunda ocorrências de A na derivação de z, isto é, S=⇒i lm uAy j−i =⇒ lm uvAxy ∗ =⇒ lm uvwxy = z, (4)

para palavras u, v, w, x, y ∈ T∗. Como i < j < p + 1, temos que |uvxy| ≤ (p + 1)k = n, e vx 6= λ pelo fato de G não

possuir produções unitárias.

A última afirmação agora é provada manipulando-se as derivações em (4). Para todo ` ≥ 0, começando com S=⇒i

lm uAy, repetindo-se ` vezes A j−i

=⇒

lm vAx, e finalizando com A ∗ =⇒ lm w, obtemos S=⇒i lm uAy ∗ =⇒ lm uwy caso ` = 0, ou S=⇒i lm uAy j−i =⇒ lm uvAxy j−i =⇒ lm uv 2Ax2y=⇒j−i lm uv 3Ax3y=⇒j−i lm · · · j−i =⇒ lm uv `Ax`y=⇒∗ lm uv `wx`y

Referências

Documentos relacionados

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a

seu represenlante na cõrte dc Paris as neeesstirias iistriicções e poderes para resolver as objcôes que por ventura A acoitaçflo (10 mesmo contracto, tal qual.

publicação dos resultados 7.2 Os candidatos aprovados que tenham efetivamente concluído o Ensino Médio ou equivalente podem matricular-se, tornando-se nula, de pleno direito, a

PROGRAMA DE PREVENÇÃO PROGRAMA DE PREVENÇÃO DE RISCOS AMBIENTAIS DE RISCOS AMBIENTAIS - DOCUMENTO BASE - - DOCUMENTO BASE - MAIO 2002

a) Remuneração adequada: remuneração necessária para o empregado viver dignamente dentro das necessidades pessoais e dos padrões culturais, sociais e econômicos

opera apenas com a’s e b’s na pilha. Para garantir que  só vai ser usado uma vez, convém reservar ao estado inicial apenas a ação de marcar o fundo da pilha. Entretanto, pela

 Desmembrar as formas sentenciais de comprimento 3 ou mais em uma cascata de produções, cada uma com uma forma sentencial consistindo em 2

Os profissionais do NDRO acreditam que o Laboratório desenvolve atividades para o aperfeiçoamento pessoal e profissional de seus colaboradores, capacitando-os não só