Professional Documents
Culture Documents
Lista4 Carlos Castro
Lista4 Carlos Castro
1. Projete uma gramática livre de contexto para cada uma das linguagens a seguir.
Dê a definição formal e argumente porque funciona (não é necessário dar uma de-
monstração formal). Mostre passo a passo uma derivação da palavra dada como
exemplo.
(b) {w ∈ {a, b, c, d}∗ | w = am bn cp dq , m, n, p, q ≥ 0 e m+n = p+q}} Ex: aaabbccccd.
R = {S → aSd | A | B,
A → aAc | C,
B → bBd | C,
C → bCc | ε}
– S a variável inicial.
S⇒A⇒C⇒ε
∗
Aluno de Doutorado - NUSP: 11921804 - E-mail: carlos.castro@ime.usp.br
1
ou
S ⇒ B ⇒ C ⇒ ε.
S ⇒ aSd
| · ⇒ am Sdm} ⇒ am Bdm ⇒ am Cdm ⇒
⇒ · · {z
m vezes
m m
⇒ a · ⇒ am bn Ccn dm} ⇒ am bn cp dq .
| bCcd ⇒ · ·{z
n vezes
S ⇒ aSd
| · ⇒ aq Sd}q ⇒ aq Adq ⇒
⇒ · ·{z
q vezes
q q q m−q
⇒ |a aAcd ⇒ · · · ⇒
{z a a Acm−q d}q ⇒ am Ccm−q dq ⇒
m − q vezes
⇒ |am bCccm−q dq ⇒ · · · ⇒ a{z
m p−(m−q)
b Ccp−(m−q) cm−q d}q ⇒ am bn cp dq .
n = p − (m − q) vezes
S ⇒ aSd
| · ⇒ am Sdm} ⇒ am Bdm ⇒
⇒ · · {z
m vezes
m m m q−m
⇒ |a bBdd ⇒ · · · ⇒
{z a b Bdq−m dm} ⇒ am bq−m Cdq ⇒
q − m vezes
⇒ |am bq−m bCcdq ⇒ · · · ⇒ a{z
m q−m n−(q−m)
b b Ccn−(q−m) d}q ⇒ am bn cp dq .
n − (q − m) vezes
2
∗
Para obtermos S ⇒
= aaabbccccd:
2. Projete um autômato com pilha não-determinı́stico para cada umas das linguagens
do exercı́cio anterior. Dê a definição formal, o diagrama e argumente porque ele
funciona (não é necessário dar uma demonstração formal). Mostre passo a passo a
computação da palavra dada como exemplo.
(b) {w ∈ {a, b, c, d}∗ | w = am bn cp dq , m, n, p, q ≥ 0 e m+n = p+q}} Ex: aaabbccccd.
Solução.
Considere o autômato Mb = (Qb , Σb , Γb , δb , q0 , {q0 , qf }) o autômato finito com pilha
não-determinı́stico onde Qb = {q0 , qa , qb , qc , qf }, Σb = {a, b, c, d} Γ = {$, A} e δb :
Qb × Σb ∪ {ε} × Γb ∪ {ε} −→ P(Qb × Γb ∪ {ε}) é a função de transição cujas transições
não vazias são dadas por
3
Figura 1: Autômato a pilha não-determinı́stico da linguagem {w ∈ {a, b, c, d}∗ | w =
am bn cp dq , m, n, p, q ≥ 0 e m + n = p + q}}.
4
r0 = q0 , iniciando com a pilha vazia s0 = ε, e fazendo w = εaaaεbbεccccεdε obtemos
a seguinte sequência:
5
6
Pela definição de computação, o autômato aceita a palavra w se w pode ser escrita
como w = w1 · · · wm , wj ∈ Σc ∪ {ε} e as sequências de estados r0 · · · rm ∈ Qc e
cadeias s0 · · · sm ∈ Γ∗c existem, em que cada sj representa uma sequência do conteúdo
da pilha, em que r0 = q0 , s0 = ε, rm ∈ {q0 , qf } e para j = 0, · · · m − 1, temos
(rj+1 , b) ∈ δc (rj , wj+1 , a), onde sj = at e sj+1 = bt, para algum a, b ∈ Γc ∪ {ε} e
t ∈ Γ∗c .
Assim, computação da palavra w = ((()())()) se dá, a partir do estado inicial r0 = q0 ,
iniciando com a pilha vazia s0 = ε, e fazendo w = ε((()())())ε obtemos a seguinte
sequência:
7
PILHA (inicial: s = ε)
δc (q0 , ε, ε) = {(q, $)} s=$
δc (q, (, ε) = {(q, ζ)} s = ζ$
δc (q, (, ε) = {(q, ζ)} s = ζζ$
δc (q, (, ε) = {(q, ζ)} s = ζζζ$
δc (q, ), ζ) = {(q, ε)} s = ζζ$
δc (q, (, ε) = {(q, ζ)} s = ζζζ$
δc (q, ), ζ) = {(q, ε)} s = ζζ$
δc (q, ), ζ) = {(q, ε)} s = ζ$
δc (q, (, ε) = {(q, ζ)} s = ζζ$
δc (q, ), ζ) = {(q, ε)} s = ζ$
δc (q, ), ζ) = {(q, ε)} s=$
δc (q, ε, $) = {(qf , ε)} s = ε.
3. (a) Coloque a seguinte gramática na Forma Normal de Chomsky usando o procedimento
do Teorema 2.9. G = ({S}, {0, 1}, S → 0S11 | ε, S).
S0 → S
S → 0S11 | ε
2. Removemos a ε-regra
8
S0 → S | ε
S → 0S11 | 011
S0 → 0S11 | 011 | ε
S → 0S11 | 011
S0 → CA | CB | ε
S → CA | CB
A → SB
B → DD
C → 0
D → 1
RG = {S0 → CA | CB | ε,
S → CA,
A → SB,
B → DD,
C → 0,
D → 1}.
(c) Produza uma gramática equivalente ao seguinte autômato com pilha não-determinı́stico
M usando o procedimento do Lema 2.27. Descreva explicitamente todas as regras
de derivação do tipo “Apq → aArs b”, mas não é preciso descrever explicitamente
as regras do tipo “Apq → Apr Arq ” e “App → ε”, apenas mencione sua existência.
Mostre passo a passo a derivação da palavra 011 nessa gramática.
Dica: Não se esqueça de conferir se o autômato possui as propriedades supostas no
inı́cio da demonstração do lema.
M = (Q, {0, 1}, Γ, δ, a, {e}) o autômato finito com pilha não-determinı́stico onde
Q = {a, b, c, d, e}, Γ = {$, A} e δ : Q×Σε ×Γε −→ P(Q×Γε ) é a função de transição
9
cujas transições não vazias são dadas por δ(a, ε, ε) = {(b, $)}, δ(b, 0, ε) = {(b, A)},
δ(b, ε, ε) = {(c, ε)}, δ(c, 1, A) = {(d, ε)}, δ(d, 1, ε) = {(c, ε)} e δ(c, ε, $) = {(e, ε)}.
Solução. Vamos utilizar o procedimento do Lema 2.27 (SIPSER, 2005) para pro-
duzir uma gramática equivalente ao autômato M . Primeiramente, observe que o
autômato tem um único estado de aceitação {e}, o sı́mbolo desempilhado no final é
o sı́mbolo que foi empilhado no inı́cio, ou seja, o autômato esvazia sua pilha antes
de aceitar, mas precisamos mudar o autômato para que se adéque à terceira carac-
terı́stica descrita no inı́cio da ideia de prova do Lema, isto é, substituiremos cada
transição que nem empilha nem desempilha por uma sequência de duas transições
que empilha e depois desempilha um sı́mbolo de pilha arbitrário. A modificação que
faremos será como ilustra o diagrama abaixo.
Considere M 0 = (Q0 , {0, 1}, Γ0 , δ 0 , a, {e}) o autômato finito com pilha não-determinı́stico
onde Q0 = {a, b, b0 , c, d, d0 , e}, Γ0 = {$, A, B, D} e δ 0 : Q × Σε × Γ0ε −→ P(Q × Γ0ε ) é
a função de transição cujas transições não vazias são dadas por δ 0 (a, ε, ε) = {(b, $)},
10
δ 0 (b, 0, ε) = {(b, A)}, δ 0 (b, ε, ε) = {(b0 , B)}, δ 0 (b0 , ε, B) = {(c, ε)}, δ 0 (c, 1, A) =
{(d, ε)}, δ 0 (d, 1, ε) = {(d0 , D)}, δ 0 (d0 , ε, D) = {(c, ε)}, δ 0 (c, ε, $) = {(e, ε)}.
Agora, o procedimento descrito no Lema 2.27 pode ser realizado.
Portanto, considere a gramática Gc . As variáveis de Gc são
11
Assim, adicionamos as regras
Aae → εAbc ε,
Abc → εAb0 b0 ε
Abd → 0Abc 1
Adc → 1Ad0 d0 ε.
– Para cada p, q, r ∈ Q, ponha a regra Apq → Apr Arq . Assim, temos as regras
Aaa → Aaa Aaa | Aab Aba | Aab0 Ab0 a | Aac Aca | Aad Ada | Aad0 Ad0 a | Aae Aea
Aba → Aba Aaa | Abb Aba | Abb0 Ab0 a | Abc Aca | Abd Ada | Abd0 Ad0 a | Abe Aea
Ab0 a → Ab0 a Aaa | Ab0 b Aba | Ab0 b0 Ab0 a | Ab0 c Aca | Ab0 d Ada | Ab0 d0 Ad0 a | Ab0 e Aea
Aca → Aca Aaa | Acb Aba | Acb0 Ab0 a | Acc Aca | Acd Ada | Acd0 Ad0 a | Ace Aea
Ada → Ada Aaa | Adb Aba | Adb0 Ab0 a | Adc Aca | Add Ada | Add0 Ad0 a | Ade Aea
Ad0 a → Ad0 a Aaa | Ad0 b Aba | Ad0 b0 Ab0 a | Ad0 c Aca | Ad0 d Ada | Ad0 d0 Ad0 a | Ad0 e Aea
Aea → Aea Aaa | Aeb Aba | Aeb0 Ab0 a | Aec Aca | Aed Ada | Aed0 Ad0 a | Aee Aea
..
.
Aae → Aaa Aae | Aab Abe | Aab0 Ab0 e | Aac Ace | Aad Ade | Aad0 Ad0 e | Aae Aee
Abe → Aba Aae | Abb Abe | Abb0 Ab0 e | Abc Ace | Abd Ade | Abd0 Ad0 e | Abe Aee
Ab0 e → Ab0 a Aae | Ab0 b Abe | Ab0 b0 Ab0 e | Ab0 c Ace | Ab0 d Ade | Ab0 d0 Ad0 e | Ab0 e Aee
Ace → Aca Aae | Acb Abe | Acb0 Ab0 e | Acc Ace | Acd Ade | Acd0 Ad0 e | Ace Aee
Ade → Ada Aae | Adb Abe | Adb0 Ab0 e | Adc Ace | Add Ade | Add0 Ad0 e | Ade Aee
Ad0 e → Ad0 a Aae | Ad0 b Abe | Ad0 b0 Ab0 e | Ad0 c Ace | Ad0 d Ade | Ad0 d0 Ad0 e | Ad0 e Aee
Aee → Aea Aae | Aeb Abe | Aeb0 Ab0 e | Aec Ace | Aed Ade | Aed0 Ad0 e | Aee Aee
12
Obtemos, assim, a gramática Gc = (Vc , {0, 1}, Rc , Aae ), cujo conjunto de variáveis
Vc e o conjunto das regras Rc estão definidos como descrito anteriormente.
∗
Para obtermos Aae ⇒
= 011:
13