INSTITUTO TECNOLÓGICO DE AERONÁUTICA
RELATÒRIO PADRONIZADO LISTEX2 – CT200
CIRO FERNANDES MATRIGRANI
PROFESSOR: DR. PAULO M. TASINAFFO
SÃO JOSÉ DOS CAMPOS 2012
1 Projete gramáticas livres de contexto para as seguintes
linguagens:
1.1 O conjunto {0n1n |n > 1}, isto é, o conjunto de todos os strings de
um ou mais 0’s seguidos por uma quantidade igual de 1’s.
S 0S1 S 01
1.2 O conjunto {aibjck | i ≠ j ou j ≠ k }, ou seja, o conjunto de strings de
a’s seguidos por b’s e por c’s, tal que exista um número diferente
de a’s e b’s ou um número diferente de b’s e c’s, ou ambos.
S DC | EC | AF | AG | A | B | C A aA | a B bB | b C cC | c D aDb | B E aEb | A F bFc | C G bGc | B
2 A gramática a seguir gera a linguagem de expressões regulares
0*1(0+1)*.
S A1B
A 0A | ε
B 0B | 1B | ε
Forneça derivações mais à esquerda e mais à direita dos seguintes
strings:
2.1 00101;
S LM A1B LM 0A1B LM 00A1B LM 00ε1B LM 00ε10B LM 00ε101B LM
00ε101ε
S RM A1B RM A10B RM A101B RM A101ε RM 0A101ε RM 00A101ε RM
00ε101ε
2.2 1001;
S LM A1B LM ε1B LM ε10B LM ε100B LM ε1001B LM ε1001ε S RM A1B RM A10B RM A100B RM A1001B RM A1001ε RM ε1001ε
2.3 00011
S LM A1B LM 0A1B LM 00A1B LM 000A1B LM 000ε1B 000ε11B LM 000ε11ε
S RM A1B RM A11B RM A11ε RM 0A11ε RM 00A11ε RM 000A11ε RM 000ε11ε
3 Considere a gramática
S aS | aSbS | ε
Essa gramática é ambígua. Mostre em particular que o string aab
tem duas:
3.2 Derivações mais à esquerda;
S LM aSbS LM aaSbS LM aaεbS LM aaεbε
S LM aS LM aaSbS LM aaεbS LM aaεbε
3.3 Derivações mais à direita.
S LM aSbS LM aSbε LM aaSbε LM aaεbε
S RM aS RM aaSbS RM aaSbε RM aaεbε
4 A gramática a seguir gera expressões de prefixo com
operandos x e y e os operadores binários +, - e *:
E +EE | *EE | -EE | x | y
4.1 Encontre as derivações mais à esquerda e mais à direita, e uma
árvore de derivações para o string +*-xyxy.
E LM +EE LM +*EEE LM +*-EEEE LM +*-xEEE LM +*-xyEE LM +*-xyxE
LM +*-xyxy
E
RM +EE RM +Ey RM +*EEy RM +*Exy RM +*-EExy RM +*-Eyxy RM
+*-xyxy
5 Comece com a gramática:
S ASB | ε
A aAS | a
B SbS | A | bb
Variáveis anuláveis S ε
S ASB | AB A aAS | aA | a
B SbS | bS | Sb | b | A | bb
5.2 Elimine quaisquer produções unitárias na gramática resultante;
Pares Unitários (SS) (SA) (SB) (AA) (AB) (AS) (BB) (BA) (BS)
S ASB | AB A aAS | aA | a
B SbS | bS | Sb | b | A | bb | aAS | aA | a
5.3 Elimine quaisquer símbolos inúteis na gramática resultante;
Símbolos Geradores A, B, S, a, b Símbolos Úteis A, B, S, a, b
5.4 Coloque a gramática resultante na forma normal de Chomsky.
S ASB | AB B SCS | C | A | CC | SSC | CS | DAS | DA | D C b D a A DAS | DA | D S AE | AB
B SF | C | A | CC | F | CS | DG | DA | D C b D a A DG | DA | D E SB F SC G AS
6 Para as transparências 8 e 9 da Aula 7 do Prof. Carlos
Henrique, obter a função de “Descrições Instantâneas” para
cada um dos Autômatos de pilha lá presentes,
respectivamente. Para cada um destes ADP passe “dois strings”
uma que é aceito pelo ADP e outro que não é.
δF Q={q1,q2,q3,q4,q5,q6,q7}, ={a,b,c}, ={a,$}, F={q4,q7} Fita a b c ε Pilha a $ ε a $ ε a $ ε a $ ε q1 (q2,$) q2 (q2,a) (q3,ε) (q5,ε) q3 (q3,ε) (q4,ε) q4 (q4,ε) q5 (q5,ε) (q6,ε) q6 (q6,ε) (q7,ε) q7
String Aceita aaabccc String NÃO Aceita aabb
δF Q={q1,q2,q3,q4}, ={0,1}, ={0,1,$}, F={q1,q4} Fita 0 1 ε Pilha 0 1 $ ε 0 1 $ ε 0 1 $ ε q1 (q2,$) q2 (q2,0) (q2,1) (q3,ε) q3 (q3,ε) (q3,ε) (q4,ε) q4 String Aceita 00001111
String NÃO Aceita 01
7 Converta a gramática
S 0S1 | AA 1A0 | S | ε
Em um ADP que aceite a mesma linguagem por pilha vazia.
G = ({S,A}, {0,1}, P, S) P = (Q, ∑, Γ, δ, q0, Z0)
Terminais para o ADP {0,1} Γ = V ∪ ∑ = {0,1,A,S} δ δ (q,ε,S) = {(q,0S1), (q,A)} δ (q,ε,A) = {(q,1A0), (q,S)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} P=({AS}, {0,1}, {0,1,A,S}, δ, q0, S)
8 Converta a gramática
S aAA
A AS | bS | a
Em um ADP que aceite a mesma linguagem por pilha vazia.
G = ({S,A}, {a,b}, P, S) P = (Q, ∑, Γ, δ, q0, Z0)
Terminais para o ADP {a,b}
Γ = V ∪ ∑ = {a,b,A,S}
δ
δ (q,ε,S) = {(q,aAA)}
δ (q,ε,A) = {(q,AS), (q,bS), (q,a)} δ (q,a,a) = {(q,ε)}
δ (q,b,b) = {(q,ε)}
9 Para a gramática
I a | b | Ia | Ib | I0 | I1
E I | E*E | E+E | (E)
Determine:
9.1 Um ADP P equivalente a esta gramática livre de contexto;
= ({I,E}, {a,b,0,1,*,+,(,)}, P, I) P = (Q, ∑, Γ, δ, q0, Z0)
Terminais para o ADP { a,b,0,1,*,+,(,)}
Γ = V ∪ ∑ = { a,b,0,1,*,+,(,),I,E}
δ
δ (q,ε,I) = {(q,a), (q,b), (q,Ia), (q,Ib), (q,I0), (q,I1)}
δ (q,ε,E) = {(q,I), (q,E*E), (q,E+E), (q,(E)} δ (q,a,a) = {(q,ε)} δ (q,b,b) = {(q,ε)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} δ (q,+,+) = {(q,ε)} δ (q,*,*) = {(q,ε)} δ (q,(,() = {(q,ε)} δ (q,),)) = {(q,ε)}
9.2 Esboce graficamente o ADP P resultante.
10 (*) – Prove o seguinte teorema:
“Se P = (Q, ∑, Γ, δ, q0, Z0, F) é um ADP, e se (q, x, ) *p (p, y,
⊢
β), então para
quaisquer w em ∑* e em Γ*, também é verdade que, (q, xw, ) *p (p,
⊢
yw, β)”.
Seja P = (Q, ∑, Γ, δ, q0, Z0, F), x ∑*, α Γ*, q Q y ∈ ∈ ∈ ∑*, β Γ*, p Q. Supomos também que:
∈ ∈ ∈
(q, x, )
⊢
*p (p, y, β)
Pelo Teorema 1.1, sabemos que a mesma derivação também é verdade se uma mesma string w ∑* for concatenado à ∈ direita de x e y. Assim:
(q, xw, )
⊢
*p (p, y, β)
Pelo Teorema 1.2, sabemos que a mesma derivação também é verdade se uma mesma string Γ* for concatenado ao fundo∈ ddas pilhas α e β. Assim:
(q, xw, )
⊢
*p (p, yw, β), cqd.
11 Para um ADP P = ({q,p}, {0,1}, {Z0,X}, δ, q, Z0, {p}) com uma
função transição ou “descrição instantânea” dada por:
0 1
q (q,XX) (q,XZ0) (q,X) (p,ε)
p (p,XX) (p,ε) (p,ε)
11.1 : 0011
(q,0011,Z0) ⊢ (q,011,XZ0) ⊢ (q,11,XXZ0) ⊢ (q,1,XXZ0) ⊢ (q,ε,XXZ0) ⊢ (p,ε,XZ0) (q,011,XZ0) ⊢ (p,011,Z0) (q,11,XXZ0) ⊢ (p,11,XZ0) ⊢ (p,1,XXZ0) ⊢ (p,ε,XXXZ0) (q,1,XXZ0) ⊢ (p,1,XZ0) ⊢ (p,ε,XXZ0) (p,11,XZ0) ⊢ (p,11,Z0) ⊢ (p,1,ε) (p,1,XXZ0) ⊢ (p,1,XZ0) ⊢ (p,ε,XXZ0)11.2 : 010
(q,010,Z0) ⊢ (q,10,XZ0) ⊢ (q,0,XZ0) ⊢ (q,ε,XXZ0) ⊢ (p,ε,XZ0) (q,10,XZ0) ⊢ (p,10,Z0) ( q,0,XZ0) ⊢ (p,0,Z0)12 (*) – Mostre a seguinte propriedade “Se w está em L(PF), então
w está em N(PN)”. Ver página 10 para auxiliá-lo na
demonstração (lá o sentido desta propriedade encontra-se
demonstrado).
Supõe-se PN construído a partir de PF pelo algoritmo
apresentado em aula. Se ∈ L (PF), então:
(p0,w,X0)
⊢PN
(p,w,Z0X0)Pelo Teorema 1, temos que:
(p0,w,Z0X0)
⊢PF
(q,ε,Z0X0)As transições do estado q permitem retirar todos os símbolos da pilha, o que não era possível somente com os outros estados de PF, pois nenhuma transição desempilha X0.
Assim: (q,ε,Z0X0)
⊢
*PN (pF,ε,ε). E w é aceita por PN.13 Projete um ADP para aceitar cada uma das linguagens a seguir.
Você pode decidir projetá-lo por “estado final” ou por pilha
vazia.
13.1 (*) – O conjunto de todos os string de 0’s e 1’s com um número
igual de 0’s e 1’s.
S 0S1 S 01
G = ({S}, {0,1}, P, S) P = (Q, ∑, Γ, δ, q0, Z0)
Terminais para o ADP {0,1}
δ δ (q,ε,S) = {(q,0S1), (q,01)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} P=({S}, {0,1}, {0,1,S}, δ, S)
13.2 {aibjck | i=j ou j=k}
S DC | AE A aA | a B bB | b C cC | c D aDb | ε E bEc | ε G = ({S,A,B,C,D,E}, {a,b,c}, P, S) P = (Q, ∑, Γ, δ, q0, Z0)Terminais para o ADP {a,b,c}
Γ = V ∪ ∑ = {a,b,c,S,A,B,C,D,E}
δ
δ (q,ε,S) = {(q,DC), (q,AE)} δ (q,ε,A) = {(q,aA), (q,a)} δ (q,ε,B) = {(q,bB), (q,b)} δ (q,ε,C) = {(q,cC), (q,c)} δ (q,ε,D) = {(q,aDb), (q,ε)} δ (q,ε,E) = {(q,bEc), (q,ε)} δ (q,a,a) = {(q,ε)} δ (q,b,b) = {(q,ε)} δ (q,c,c) = {(q,ε)} P=({S}, {a,b,c}, {a,b,c,S,A,B,C,D,E}, δ, S)
13.3 {0n1n | n > 1} O conjunto de todos os string de 0’s e 1’s com um
número igual de 0’s e 1’s.
S 0A1B | 1B0A A 01B | B | ε B 10A | A | ε G = ({S,A,B}, {0,1}, P, S) P = (Q, ∑, Γ, δ, q0, Z0)Terminais para o ADP {0,1}
Γ = V ∪ ∑ = {0,1,S,A,B} δ δ (q,ε,S) = {(q,0A1B), (q,1B0A)} δ (q,ε,A) = {(q,01B), (q,B), (q,ε)} δ (q,ε,B) = {(q,10A), (q,A), (q,ε)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} δ (q,ε,ε) = {(q,ε)} P=({S}, {0,1}, {0,1,S,A,B}, δ, q0, S)
14 Para os três itens do exercício anterior, 4.a, 4.b(*) e 4.c(*),
obtenha o ADP por “pilha vazia” para aquele que foram
projetados por “estado final” e obtenha o ADP por “estado
final” para aquele que foram projetados por “pilha vazia”.
G = (S,{0,1},P,S)
PN = ({q},{0,1},{0,1,S,A,B}, N, q,S) δ (q,ε,S) = {(q,0S1), (q,01)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} PF = ({p,q,r},{0,1},{0,1,S,A,B,X0}, F, p, X0, {r}) δ (q,ε,X0) = {(q,SX0)} δ (p,ε,S) = {(q,0S1), (q,01)} δ (q,0,0) = {(q,ε)} δ (q,1,1) = {(q,ε)} δ (q,ε,X0) = {(r,ε)}
15 Converta o ADP P = ({p,q}, {0,1}, {X,Z0}, δ, q, Z0) em uma
gramática livre de contexto, se δ for dado por (Teorema de
Chomsky, 1962):
δ(q, 1, Z0) = {(q, XZ0)} δ(q, 1, X) = {(q, XX)} δ(q, 0, X) = {(q, Z0)} δ(q, ε, X) = {(q, Xε)} δ(q, 1, X) = {(q, Xε)} δ(q, 0, Z0) = {(q, Z0)} P = ({p,q}, {0,1}, {X,Z0}, δ, q, Z0) Q p,q ∑ 0,1 Γ X,Z0P para os demais à direita q para os demais à direita [p a p] [q a q] [p a q] [q a p] Produções de G: ∑ 0,1 V = [pXp],[pXq],[qXp],[pZ0p],[pZ0q],[qZ0p],[qXq], [qZ0q], S S [qZ0q] S [qZ0p] [qZ0q] 1[qXq][qZ0q] [qZ0q] 1[qXp][pZ0q] [qZ0p] 1[qXq][qZ0p] [qZ0p] 1[qXp][pZ0p] [qXq] 1[qXq][qXq] [qXq] 1[qXp][pXq] [qXp] 1[qXq][qXp] [qXp] 1[qXp][pXp] [qXq] 0[pXq] [pXp] 0[pXp] [qXq] ε [pXp] 0 [qZ0q] 0[qZ0q] [pZ0p] 0[qZ0p]
16 (*) – Utilizando o teorema de Chomsky e Miller. 1958 pesquise
um “autômato finito” que você ache interessante e converta-o
para uma gramática regular. Agora faça o inverso, ou seja,
pesquise uma gramática regular e transforme-a num autômato
finito.
Propriedade das Linguagens Regulares
Teorema: (O lema do bombeamento para linguagens regulares). Seja L uma
linguagem regular. Então, existe uma constante n (que depende de L) tal que,
para todo string w em L tal que |w| > n, pode-se dividir w em três strings,
w=xyz, tais que:
1. y ≠ ε 2. |xy| < n
3. Para todo k > 0, o string xyhz está em L.
Propriedade das Linguagens Livre de Contexto
Teorema: Seja L uma linguagem livre de contexto. Então, existe uma
constante n (que depende de L) tal que, se Z L e |Z| > n, pode-se escrever Z =
∈
uvwxy de modo que:
1. |vx| > 1 2. |vwx| < n 3. uviwxiy ∈ L, para todo i > 0. 1º) G = ({q0,q1,q2,q3}, {a,b}, P, q0) b a a a a b b b
q0
q1
q2
q3
q0 aq2 | bq1 q1 aq3 | bq0 q2 aq0 | bq3 q3 aq1 | bq2 | ε 2º) G = ({q0,q1,q2}, {0,1}, P, q0) q0 0q2 | 1q1 q1 1q2 q2 0 | 1
17 Utilizando o lema de bombeamento para Linguagens Livre de
Contexto, mostre que as linguagens, como definidas abaixo,
não devem ser livre de contexto:
17.1 {aibjck | i < j < k};
17.2 {anbnci | i < n};
17.3 {0i1j | j = i2};
a. Seja Z ∈ L, Z = an b2n c3n, |Z|>n
Tomando u=an/2, v=an/4, w=an/4, x=ε, y=b2n, c3n temos que
z=uvwxy. |vx|>1 e |vwx|<n e ∀i, uviwxiy deveria pertencer à
L, mas isto não acontece. Para i = 7: an/2, a7n/4, an/4, b2n, c3n = a9n/4 > 2n. 0 1 0,1
q
0q
2q
1 ε 1Absurdo! Assim, L não é livre de contexto. b. {anbnci|i < n}
Seja Z ∈ L, Z = a2n b2n cn, |Z|>n
Tomando u=a2nb2n, v=cn/4, w=cn/4, x=ε, y=cn/2.
Temos que z=uvwxy. |vx|>1 e |vwx|<n e ∀i, uviwxiy deveria
pertencer à L, mas isto não acontece. Para i = 7:
a2n, b2n, c7n/4, cn/4, cn/2 = a2n b2n c9n/2, mas
9 n
2
> 2n.Absurdo! Assim, L não é livre de contexto. c. {0i1j|j = i2}
Seja Z ∈ L, Z = 0n 1n2 |Z|>n
Tomando u=0n/2, v=0n/4, w=0n/4, x=ε, y=1n2.
Temos que z=uvwxy. |vx|>1 e |vwx|<n e ∀i, uviwxiy deveria
pertencer à L, mas isto não acontece. Para i = 2: 0n/2, 02n/4, 0n/4, 1n2 = 00n/4 1n2, mas n2 ≠
(
9 n
4
)
2 =81
16
n2.18 Resolver exercícios das transparências do Prof. Carlos
Henrique (Aula 9 – pg. 14) (Aplicação da Tupla de 5 elementos
das Ações da Máquina de Turing).
a. 1 0 b 0 0 0 b 0 0 0 b 1
b. 0 0 1 b 0 0 0 1 b 1 0 1 1 b 0 0 1 1 b 0 c. 0 0 b 0 0 0 b 1 0 1 b 0
19 Verificar os strings de entrada, especificados abaixo, para a
Máquina de Turing na Aula 9 – pg. 15 – das Transparências do
Prof. Carlos Henrique.
19.1 :0011
19.2 :00111
a. q00011 ⊢ Xq1011 ⊢ X0q111 ⊢ Xq20Y1 ⊢ q2X0Y1 ⊢ Xq00Y1 ⊢ XXq1Y1 ⊢ XXYq11 ⊢ XXq2YY ⊢ XXq0YY ⊢ XXXq3Y ⊢ XXYYq3B ⊢ XXYYBq4B A string é aceita b.q000111 ⊢ Xq10111 ⊢ X0q1111 ⊢ Xq20Y11 ⊢
q2X0Y11 ⊢
Xq00Y11 ⊢ XXq1Y11 ⊢ XXYq111 ⊢ XXq1YY1 ⊢
Xq1XYY1 ⊢
XXq1YY1 ⊢ XXYq3Y1 ⊢ XXYYq31
A string não é aceita