You are on page 1of 8

Lista 5

MAC4722 - Linguagens, Autômatos e Computabilidade

Carlos Eduardo Leal de Castro∗

1. Use o Lema do Bombeamento para mostrar que as seguintes linguagens não são
livres de contexto.
(b) Lb = {w ∈ {0, 1}∗ : w = wR , |w|0 = |w|1 }.
Solução. Mostraremos que Lb = {w ∈ {0, 1}∗ : w = wR , |w|0 = |w|1 } não é
uma linguagem livre de contexto (LLC). Para tanto, suponha por absurdo que Lb
é uma LLC. Seja p ∈ N o comprimento de bombeamento para Lb , garantida a sua
existência pelo Lema do Bombeamento. Seja s = 0p 1p 1p 0p . Note que s ∈ Lb , pois
|s|0 = 2p = |s|1 e sR = 0p 1p 1p 0p = s.
Como |s| ≥ p, pelo Lema do Bombeamento, s pode ser bombeada e pode ser dividida
em s = uvxyz de modo que

(a) para cada i ≥ 0, uv i xy i z ∈ Lb ;


(b) |vy| > 0 e;
(c) |vxy| ≤ p.

A condição (c) do Lema garante que o fator da palavra s, vxy, pode conter apenas
0’s, conter 0’s e 1’s e conter apenas 1’s. Vamos analisar os casos:

(i) Se vxy contiver apenas 0’s ou apenas 1’s, a condição (b) garante que v ou
y é não vazio. Logo, temos que s0 = uv 2 xy 2 v ∈ / Lb pois, como temos pelo
menos um 0 ou pelo menos um 1’s sendo bombeado, existe um k ∈ N tal que
|s0 |0 = 2p − k < 2p = |s0 |1 ou |s0 |1 = 2p − k < 2p = |s0 |0 . Violamos, assim, a
condição (a) do Lema do Bombeamento. Absurdo!
(ii) Se vxy contiver 0’s e 1’s, a condição (c) do Lema do Bombeamento garante que
se v tem 0’s e 1’s, x e y terão somente 1’s ou x e y terão somente 0’s (ou serão

Aluno de Doutorado - NUSP: 11921804 - E-mail: carlos.castro@ime.usp.br

1
ε). Se y tem 0’s e 1’s, v e x terão somente 0’s ou v e x terão somente 1’s (ou
serão ε). Ou ainda, se x tem 0’s e 1’s, v contém somente 0’s (ou pode ser ε se
|y| =
6 0) e y contém somente 1’s (ou pode ser ε se |v| =
6 0) ou v contém somente
1’s e y contém somente 0’s (respeitando a condição (b) do Lema). Em qualquer
um dos casos citados acima, s0 = uv 2 xy 2 z ∈/ Lb , pois em qualquer um deles,
0 0R
teremos s 6= s . Violamos, assim, a condição (a) do Lema do Bombeamento.
Absurdo!

Em todos os casos, chegamos a uma contradição à condição (a) do Lema do Bom-


beamento e, portanto, Lb não é uma LLC.


(d) Ld = {ai bj ck : i < j < k}


Solução. Mostraremos que Ld = {ai bj ck : i < j < k} não é uma linguagem livre
de contexto (LLC). Para tanto, suponha por absurdo que Ld é uma LLC. Seja p ∈ N
o comprimento de bombeamento para Ld , garantida a sua existência pelo Lema do
Bombeamento. Seja s = ap bp+1 cp+2 . Note que s ∈ Ld , pois i = p, j = p + 1 e
k = p + 2 e i < j < k.
Como |s| ≥ p, pelo Lema do Bombeamento, s pode ser bombeada e pode ser dividida
em s = uvxyz de modo que

(a) para cada i ≥ 0, uv i xy i z ∈ Lb ;


(b) |vy| > 0 e;
(c) |vxy| ≤ p.

Observe que a condição (c) do Lema do Bombeamento garante que o fator da palavra
s, vxy, pode: ter somente a’s, ter apenas a’s e b’s, apenas b’s, ter apenas b’s e c’s ou
ter somente c’s.
Nos casos em que o fator vxy tenha somente a’s ou somente b’s, temos que s0 =
uv 3 xy 3 z ∈
/ Ld , pois a condição (b) nos garante que v ou y seja não vazia. Logo,
∃` ∈ N tal que s0 = ap+2` bp+1 cp+2 ou s0 = ap bp+1+2` cp+2 , fazendo com o que |s0 |a =
p + 2` ≥ p + 2 = |s0 |c ou |s0 |b = p + 1 + 2` ≥ p + 2 = |s0 |c , violando, assim, a condição
(a) do Lema do Bombeamento. Absurdo!
Nos casos em que o fator vxy tenha somente c’s, temos que s0 = uv 0 xy 0 z ∈ / Ld , pois
a condição (b) nos garante que v ou y seja não vazia. Logo, ∃` ∈ N, 1 ≤ ` ≤ p + 2 tal

2
que s0 = ap bp+1 cp+2−` , fazendo com o que |s0 |b = p + 1 ≥ p + 2 − ` = |s0 |c , violando,
assim, a condição (a) do Lema do Bombeamento. Absurdo!
Nos casos em que o fator vxy tenha a’s e b’s, temos que s0 = uv 3 xy 3 z ∈
/ Ld , pois s0
terá, pelo menos, p + 2 a’s ou p + 3 b’s.
Com efeito, analisaremos todos os possı́veis casos:

• se v for da forma v = am e x = ah temos que y poderá ser da forma y = an bq ,


com m, n, q, h ∈ N ∪ {0} quaisquer, m + h + n ≤ p, q ≤ p + 1 e respeitando a
condição (b) do Lema. Assim,

s0 = uv 3 xy 3 z = ap−m−h−n (am )3 ah (an bq )3 bp+1−q cp+2


= ap−m−h−n a3m ah a3n b3q bp+1−q cp+2
= ap+2m+2n bp+2q+1 cp+2 .

Note que a condição (b) do Lema garante que pelo menos um dentre os números
m, n, q é maior ou igual a 1, fazendo com o que |s0 |a ≥ |s0 |c ou |s0 |b ≥ |s0 |c .
Portanto, s0 não poderia pertencer a Ld , contradizendo a condição (a) do Lema
do Bombeamento. Absurdo!
• se v for da forma v = am bh e y = bq , temos que x = bn , com m, n, q, h ∈ N ∪ {0}
quaisquer, m ≤ p, h + n + q ≤ p + 1 e respeitando a condição (b) do Lema.
Assim,
s0 = uv 3 xy 3 z = ap−m (am bh )3 bn (bq )3 bp+1−q−n−h cp+2
= ap−m a3m b3h bn b3q bp+1−q−n−h cp+2
= ap+2m bp+1+2q+2h cp+2 .
Note que a condição (b) do Lema garante que pelo menos um dentre os números
m, q, h é maior ou igual a 1, fazendo com o que |s0 |a ≥ |s0 |c ou |s0 |b ≥ |s0 |c .
Portanto, s0 não poderia pertencer a Ld , contradizendo a condição (a) do Lema
do Bombeamento. Absurdo!
• se v for da forma v = am e y = bn , temos que x = aq bh , com m, n, q, h ∈ N ∪ {0}
quaisquer, m + q ≤ p, n + h ≤ p + 1 e respeitando a condição (b) do Lema.
Assim
s0 = uv 3 xy 3 z = ap−m−q (am )3 aq bh (bn )3 bp+1−n−h cp+2
= ap−m−q a3m aq bh b3n bp+1−n−h cp+2
= ap+2m bp+1+2n cp+2 .
Note que a condição (b) do Lema garante que pelo menos um dentre os números

3
m, n é maior ou igual a 1, fazendo com o que |s0 |a ≥ |s0 |c ou |s0 |b ≥ |s0 |c .
Portanto, s0 não poderia pertencer a Ld , contradizendo a condição (a) do Lema
do Bombeamento. Absurdo!

Por fim, nos casos em que vxy tenha somente b’s e c’s, temos que s0 = uv 0 xy 0 z ∈
/ Ld ,
pois se v ou y tiverem pelo menos um b, temos que |s0 |b ≤ p = |s0 |a . Ainda, se v ou
y tiverem pelo menos um c, temos que |s0 |c ≤ p + 1 = |s0 |b . Portanto, em todos os
casos, contradizemos a condição (a) do Lema do Bombeamento. Absurdo!
Em todos os casos, chegamos a uma contradição à condição (a) do Lema do Bom-
beamento e, portanto, Ld não é uma LLC.


2. (b) Se L1 é uma linguagem livre de contexto e L2 é uma linguagem regular, então


L1 ∩ L2 é livre de contexto. Prove ou dê um contra-exemplo.
Solução. Seja L1 uma linguagem livre de contexto (LLC) e L2 uma linguagem
regular. Mostraremos que L1 ∩ L2 é uma LLC.
Como L1 é uma LLC, então L1 = L(M1 ) para algum autômato a pilha M1 =
(Q1 , Σ, Γ1 , δ1 , q01 , F1 ). Além disso, como L2 é uma linguagem regular, então L2 =
L(M2 ) para algum autômato finito M2 = (Q2 , Σ, δ2 , q02 , F2 ).
Considere o autômato a pilha M = (Q, Σ, Γ, δ, q0 , F ) definido por:

O conjunto de estados Q = Q1 × Q2 ;
O alfabeto Σ;
O conjunto das variáveis da pilha Γ = Γ1 ;
A função de transição δ : Q × Σε × Γε −→ P(Q × Γε ) cujas transições não
vazias são definidas como segue: para quaisquer q11 , q21 ∈ Q1 , q12 , q22 ∈ Q2 , α ∈ Σ
e a, b ∈ Γε , δ((q11 , q12 ), α, a) = {((q21 , q21 ), b)} para α 6= ε, δ1 (q11 , α, a) = {(q21 , b)} e
δ2 (q12 , a) = q22 e δ((q11 , q12 ), ε, a) = {((q21 , q12 ), b)} para δ1 (q11 , ε, a) = {(q21 , b)}.
O estado inicial q0 = (q01 , q02 );
O conjunto de estados finais F = F1 × F2 .

Mostraremos que L(M ) = L1 ∩ L2 . Para isso, mostraremos que L(M ) ⊆ L1 ∩ L2 e


L1 ∩ L2 ⊆ L(M ).
(⇒)L(M ) ⊆ L1 ∩ L2 .

4
Seja w ∈ L(M ) qualquer. Mostraremos que w ∈ L1 ∩ L2 . Como w ∈ L(M ),
pela definição de computação, w pode ser escrita como w = w1 · · · wm , onde cada
wi ∈ Σε e as sequências de estados r0 , · · · , rm ∈ Q e cadeias s0 , · · · , sm ∈ Γ∗ existem,
satisfazendo

(a) r0 = q0 = (q01 , q02 ) e s0 = ε;


(b) Para i = 0, · · · , m − 1, temos que (ri+1 , b) ∈ δ(ri , wi+1 , a), si = at e si+1 = bt,
para algum a, b ∈ Γε e t ∈ Γ∗ ;
(c) rm ∈ F = F1 × F2 .

Note que, tomando ri = (qi1 , qi2 ) ∈ Q, qi1 ∈ Q1 e qi2 ∈ Q2 , para cada i = 0, · · · , m − 1,


pela definição da função de transição δ, temos que

1 2
((qi+1 , qi+1 ), b) ∈ δ((qi1 , qi2 ), wi+1 , a)

para δ1 (qi1 , wi+1 , a) = {qi+1


1
, b} e δ2 (qi2 , wi+1 ) = qi+1
2 2
, se wi+1 6= ε ou qi+1 = qi2 se
1
wi+1 = ε. Isto é, para cada i = 1, · · · , m − 1, a função de transição leva qi1 para qi+1
em M1 e qi2 para qi+1 2
em M2 ou leva qi1 para qi+1 1
em M1 e permanece em qi2 em M2
(quando δ lê um ε), para cada wi de w lido por δ.
Como rm ∈ F1 × F2 , temos que (rm , ε) ∈ δ(rm−1 , wm , $), $ ∈ Γ, em que sm−1 =
1 2 1 2
$ e sm = ε. Dessa forma, se rm = (qm , qm ) e rm−1 = (qm−1 , qm−1 ), temos que
1 2 1 2 1 2 1
((qm , qm ), ε) ∈ δ((qm−1 , qm−1 ), wm , $), em que (qm , qm ) ∈ F1 × F2 , δ1 (qm−1 , wm , $) =
1 2
{(qm , ε)} e δ(qm−1 , wm ) = qm se wm 6= ε ou qm−1 = qm se wm = ε.
1
Como w = w1 · · · wm , wi ∈ Σε , temos que existem uma sequência de estados r01 · · · rm ∈
Q1 e cadeias s0 , · · · , sm ∈ Γ∗1 = Γ∗ , satisfazendo

(a1 ) r01 = q01 e s0 = ε;


1
(b1 ) Para i = 0, · · · , m − 1, temos que (ri+1 , b) ∈ δ1 (ri1 , wi+1 , a), si = at e si+1 = bt,
para algum a, b ∈ Γ1 ∪ {ε} = Γε e t ∈ Γ∗1 = Γ∗ ;
1 1
(c1 ) rm = qm ∈ F2 .

Além disso, seja k ∈ N ∪ {0} tal que m ≥ k. Se para i = 1, 2, · · · , m existirem k


valores de wi iguais a ε, temos que w = w1 · · · wm = w̃1 · · · w̃m−k , w̃i ∈ Σ. Assim,
temos que existe uma sequência de estados r02 · · · rm−k
2
∈ Q2 que satisfaz

(a2 ) r02 = q02 ;

5
2
(b2 ) Para i = 0, · · · , m − k − 1, temos que ri+1 = δ2 (ri2 , w̃i+1 ) e
2 2
(c2 ) rm−k = qm ∈ F2 .

Assim, temos que w = w1 · · · wm = w̃1 · · · w̃m−k ∈ L(M1 ) = L1 e w = w1 · · · wm ∈


L(M2 ) = L2 e, portanto, w ∈ L1 ∩ L2 .
(⇐)L1 ∩ L2 ⊆ L(M )
Seja w ∈ L1 ∩ L2 qualquer. Mostraremos que w ∈ L(M ). Como w ∈ L1 ∩ L2 , temos
que w ∈ L1 e w ∈ L2 .
Como w ∈ L1 , pela definição de computação, w pode ser escrito como w = w1 · · · wm , m ∈
N, onde cada wi ∈ Σε e as sequências de estados r01 , · · · , rm
1
∈ Q1 e cadeias s0 , · · · , sm ∈

Γ1 existem, satisfazendo

(a1 ) r01 = q01 e s0 = ε;


1
(b1 ) Para i = 0, · · · , m − 1, temos que (ri+1 , b) ∈ δ1 (ri2 , wi+1 , a), si = at e si+1 = bt,
para algum a, b ∈ Γ1 ∪ {ε} e t ∈ Γ∗1 ;
1
(c1 ) rm ∈ F1 .

Como w ∈ L2 , pela definição de computação, w pode ser escrito como w = w̃1 · · · w̃` , ` ∈
N, onde cada w̃i ∈ Σ e as sequências de estados r02 , · · · , r`2 ∈ Q2 existem, satisfazendo

(a2 ) r02 = q02 ;


2
(b2 ) Para i = 0, · · · , ` − 1, temos que ri+1 = δ2 (ri2 , w̃i+1 );
(c2 ) r`2 ∈ F2 .

Como w1 · · · wm = w̃1 · · · w̃` , defina k = m − ` ∈ N ∪ {0} como sendo o número de


vezes em que ε aparece em w1 · · · wm . Isso significa que, dentre os m sı́mbolos de
w = w1 · · · wm , podem existir k wi ’s que são iguais a ε.
Defina r0 , · · · , rm ∈ Q = Q1 × Q2 de modo que, r0 = (q01 , q02 ), para cada i ∈
{1, . . . , m}, ri = (ri1 , ri−j
2
), em que j é o número de vezes que ε aparece em w1 · · · wi .
Note que pela definição da função de transição δ e como w ∈ L1 , temos que a pilha
começa vazia, i.e., s0 = ε e finaliza a computação de w com a pilha vazia, ou seja,
sm = ε. Isso ocorre pois δ só empilha algum sı́mbolo de Γε , quando δ1 empilhar
um sı́mbolo de Γ1 ∪ {ε} = Γε . Da mesma forma, δ irá desempilhar um sı́mbolo
de Γε da pilha, quando δ1 também o fizer. Logo, podemos dizer que, para cada
i = 0, · · · , m − 1, temos que (ri+1 , b) ∈ δ(ri , wi+1 , a), si = at, si+1 = bt para algum

6
a, b ∈ Γε e t ∈ Γ∗ . Além disso, para i = m, como sabemos que o número de ε que
1 2 1
aparecem em w1 · · · wm é k, temos que rm = (rm , rm−k ) = (rm , r`2 ) ∈ F1 × F2 = F .
Assim, dada construção acima, como w pode ser escrito como w = w1 · · · wm , onde
cada wi ∈ Σε e existem as sequências de estados r0 · · · rm ∈ Q e cadeias s0 , · · · , sm ∈
Γ∗ , satisfazendo

(a) r0 = q0 = (q01 , q02 ) e s0 = ε;


(b) Para i = 0, · · · , m − 1, temos que (ri+1 , b) ∈ δ(ri , wi+1 , a), si = at e si+1 = bt
para algum a, b ∈ Γε e t ∈ Γ∗ ;
1
(c) rm = (rm , r`2 ) ∈ F1 × F2 = F .

Portanto, obtemos que w ∈ L(M ).


Dada arbitrariedade de escolha de w, temos que w ∈ L(M ) se e somente se w ∈
L1 ∩L2 e, portanto, se L1 for uma LLC e L2 for uma linguagem regular, então L1 ∩L2
é uma LLC.


3. Considere a máquina de Turing M1 descrita no Exemplo 3.9 do livro do Sipser.


Descreva a computação (isto é, a sequência de configurações) das palavras 01#01 e
110#111.
Solução. Descreveremos a sequência de configurações das palavras 01#01 e 110#111
pela máquina de Turing M1 descrita no exemplo 3.9 do Sipser. As configurações,
aqui, serão descritas na forma de uma tabela, ordenada para ser lida de cima para
baixo, da esquerda para a direita. Obtemos, assim, uma tabela para cada palavra,
com ı́ndices i e configurações Ci .
Para a palavra w = 01#01, a sequência de configurações para w é dada por

i = 1, . . . , 5 i = 6, . . . , 10 i = 11, . . . , 15 i = 16, . . . , 20
q1 01#01 xq7 1#x1 xx#xq5 1 xx#q8 xx
xq2 1#01 q7 x1#x1 xx#q6 xx xx#xq8 x
Ci x1q2 #01 xq1 1#x1 xxq6 #xx xx#xxq8
x1#q4 01 xxq3 #x1 xq7 x#xx xx#xxxyqaceita
x1q6 #x1 xx#q5 x1 xxq1 #xx

Para a palavra w = 110#111, a sequência de configurações para w é dada por

7
i = 1, . . . , 5 i = 6, . . . , 10 i = 11, . . . , 15 i = 16, . . . , 20 i = 21, · · · , 25
q1 110#111 x10q6 #x11 xxq3 0#x11 xx0q6 #xx1 xxx#q4 xx1
xq3 10#111 x1q7 0#x11 xx0q3 #x11 xxq7 0#xx1 xxx#xq4 x1
Ci x1q3 0#111 xq7 10#x11 xx0#q5 x11 xq7 x0#xx1 xxx#xxq4 1
x10q3 #111 q7 x10#x11 xx0#xq5 11 xxq1 0#xx1 xxx#xx1qrejeita
x10#q5 111 xq1 10#x11 xx0#q6 xx1 xxxq2 #xx1

Observe que na configuração C23 , quando a máquina está estado q4 , não há nenhuma
transição com um 1. Logo, o Sipser indica que, nesses casos, a máquina vai para o
estado qrejeita .


You might also like