teoria lista exercicios 1.0

46
Conceitos básicos de Linguagem; Linguagens regulares; Expressões regulares; 1. Dentro da Teoria da Computação, as Linguagens Formais constituem um importante tópico. Explique o significado da palavra FORMAIS como adjetivo de Linguagens. 2. Considere o conjunto S = { a b }. Seja a linguagem L = S*. Perguntas: a. quantas palavras de comprimento dois tem essa linguagem? b. quantas palavras de comprimento três tem essa linguagem? c. quantas palavras de comprimento n tem essa linguagem? 3. Sejam: L = {x xxx xxxxx xxxxxxx ...}, a = xxx e b = x. A concatenação das palavras a e b pertence à linguagem L? Por quê? 4. Em qualquer linguagem, qual é o comprimento(Λ)? 5. Defina função reverso. Dê um exemplo. 6. Defina Linguagem Palíndromo. 7. Defina Fechamento de Kleene como conceito de definição de uma linguagem a partir de um conjunto de cadeias. Dê um exemplo. 8. Descreva informalmente as linguagens definidas pelas seguintes expressões regulares: a) (0+1)((0+1)(0+1))*; b) 0*1*. 9. Escreva expressões regulares para as seguintes linguagens: a) O conjunto de todas as cadeias binárias que terminam em 00. b) O conjunto de todas as cadeias sobre o alfabeto {a, b} com comprimento ímpar e com exactamente 2 b’s. 10. Descreva informalmente (por palavras) as linguagens representadas pelas seguintes expressões: a) 0(0+1)*0 b) (01)* c) (0+1)*0(0+1)(0+1) d) 0*10*10*10* e) (0+1)*111(0+1)* 11. Diga se são verdadeiras ou falsas as seguintes afirmações:

Upload: thayse

Post on 27-Jun-2015

27.842 views

Category:

Documents


1 download

DESCRIPTION

Alguns exercicios de Teoria da Computação:D

TRANSCRIPT

Page 1: Teoria Lista Exercicios 1.0

Conceitos básicos de Linguagem; Linguagens regulares; Expressões regulares;

1. Dentro da Teoria da Computação, as Linguagens Formais constituem um importante tópico. Explique o significado da palavra FORMAIS como adjetivo de Linguagens.

2. Considere o conjunto S = { a b }. Seja a linguagem L = S*.Perguntas:a. quantas palavras de comprimento dois tem essa linguagem?b. quantas palavras de comprimento três tem essa linguagem?c. quantas palavras de comprimento n tem essa linguagem?

3. Sejam: L = {x xxx xxxxx xxxxxxx ...}, a = xxx e b = x. A concatenação das palavras a e b pertence à linguagem L? Por quê?

4. Em qualquer linguagem, qual é o comprimento(Λ)?

5. Defina função reverso. Dê um exemplo.

6. Defina Linguagem Palíndromo.

7. Defina Fechamento de Kleene como conceito de definição de uma linguagem a partir de um conjunto de cadeias. Dê um exemplo.

8. Descreva informalmente as linguagens definidas pelas seguintes expressões regulares:a) (0+1)((0+1)(0+1))*;b) 0*1*.

9. Escreva expressões regulares para as seguintes linguagens:

a) O conjunto de todas as cadeias binárias que terminam em 00.

b) O conjunto de todas as cadeias sobre o alfabeto {a, b} com comprimento ímpar e com exactamente 2 b’s.

10. Descreva informalmente (por palavras) as linguagens representadas pelas seguintes expressões:

a) 0(0+1)*0b) (01)*c) (0+1)*0(0+1)(0+1)d) 0*10*10*10*e) (0+1)*111(0+1)*

11. Diga se são verdadeiras ou falsas as seguintes afirmações:

Page 2: Teoria Lista Exercicios 1.0

a) (0+1)* == (0*+1*)b) (0+1)* == (0*1*)*

12. Escreva uma expressão regular para as seguintes linguagens:

a) String em a, b, c, d em que o primeiro “b” é precedido de um “a”;

b) Todas as strings que contêm as cinco vogais por ordem alfabética consecutiva.

13. As quantias monetárias são expressas de diferentes formas. Escreva as expressões regulares que permitam fazer o seu reconhecimento das moedas apresentadas na tabela 2.1.

Tabela 2.1: Representação de moedasMOEDA EXEMPLOEuro €12,23; €1,00; €2,35; €23,50

EURLibra £12.50; £22.12; £22.99Dólar $25.13; $5.00; $0.30;Escudo 12$50; 25$00; 150$00; 0$50

14. Determine V para verdadeiro, F para falso:a) Linguagens é o meio de reconhecimento de palavras.b) Linguagens são formadas por, geradores e reconhecedores.c) Em uma linguagem palavras são um conjunto finito de

caracteres.d) Uma gramática fornece as regras para as cadeias de

caracteres pertencentes as linguagens

15. Represente com expressões regulares os seguintes enunciados:e) Para o alfabeto {0,1}, onde w contém 01 imediatamente

após 10 .f) Para o alfabeto {a,b}, onde w não contem baa.g) Para o alfabeto {0,1}, quantidade de 1's é maior que 0's.h) Para o alfabeto {a,b,c}, onde quantidade de a's é maior que

a quantidade de c's + b's.

16. Defina a representação de cada uma das expressões regulares:i) (0+1*)0(1+0)*j) 10*+(0+10)k) ab+ (a+b)l) (a+ b)+(a*b+)

17. Linguagens regulares são:1- Linguagens aceitas por GR;2- Linguagens expressas por gramáticas regulares;3- Linguagens do tipo 3;

Page 3: Teoria Lista Exercicios 1.0

4- Linguagens geradas por gramáticas regulares;5- Linguagens aceitas por AFN;

Quais das alternativas estão corretas, senão, por quê?

18. Qua(l)(is) linguagens podem ser descritas por expressões regulares?

19. Quais os componentes de uma Linguagem formal?

20. Defina os operadores das expressões regulares, e como funcionam cada.

21. O que é alfabeto?21. Defina o conceito de cadeia.22. Defina o conceito de linguagem e mostre um exemplo.23. O que é fechamento de um alfabeto?24. Como se pode descrever uma linguagem formal?25. Fale sobre aplicações de LFA.26. Defina o conceito de subpalavra.27. Prove que se uma cadeia x é prefixo de uma cadeia y e y

também é prefixo de x, então x e y são iguais.28. Prove que se uma cadeia x é prefixo de uma cadeia y e y é

prefixo de uma cadeia z, então x é prefixo de z.29. Dados L1={a, ab} e L2={λ, a, ba}, linguagens sobre {a, b},

determine:a) L1 U L2b) L1 ∩ L2c) L1 – L2d) L2 – L1e) L1*L2f) L2*L1g) L1² = L1*L1h) L2² = L2*L2i) L1

Conceitos de Gramáticas; Gramáticas Regulares

1. Para que servem as gramáticas na teoria da computação? Como funcionam?

2. Dê os formalismos de uma gramática regular.

3. Construa uma Gramática regular linear à direita que gere a linguagem denotada pela expressão regula aa*(ba)*.

4. Seja a gramática regular:

S → aS|Ba|a

Page 4: Teoria Lista Exercicios 1.0

B → bB|Ba|λQual a linguagem que essa gramática gera?

5. A partir da gramática regular construa a expressão regular:

a) S→1A|0B|A0A→ 1A|λB → 0B

b) S → S10|10AA → 1A|λ

6. Construa uma GR que gere strings no alfabeto {a,b} que contenham a seqüência ababb e não contenha a seqüência baba.

7. Construa uma gramática linear à esquerda que contenha, no alfabeto {1,0}, a string 1010.

8. (HU69) Escreva uma gramática regular que gere a seguinte linguagem:

L = { w | w ∈ ∑ {0, 1}*, e w não tem dois 1’s consecutivos}

9. 6. Seja ∑ = {0, 1}. Construa uma gramática regular que gere a linguagem:L = { w | número de ocorrências de 01 é igual ao número de

ocorrências de 10 }. As ocorrências podem ser sobrepostas. Exemplo: 101 ∈ L (1 ocorrência de cada), mas 1010 ∉ L (1 ocorrência de 01 e duas de 10).

10. Escreva uma gramática regular que gere identificadores de C. Ignore o fato que palavras reservadas não podem ser identificadores.

11. Escreva uma gramática regular que gere identificadores com 1 a 6 caracteres e que comecem por I, J, K, L, M ou N (como as variáveis inteiras de FORTRAN).

12. Escreva uma gramática regular que gere comentários que iniciam por /* e terminam por */, sem */ intervenientes, a menos que figurem entre aspas.

13. Escreva uma gramática regular que gere constantes numéricas da linguagem C.Exemplos de constantes numéricas:1, 1, -2 (inteiras decimais)02, 04, -012 (inteiras octais)0X10, 0x12, 0x1A (inteiras hexadecimais)1L, 02L, 0x12L (constantes long)

Page 5: Teoria Lista Exercicios 1.0

10.0, 10.22, -1.0 (constantes double)123.456e-7, 0.12E3 (double em notação científica).

14. Assinale V quando julgar verdadeira, ou F quando julgar falsa cada uma das seguintes afirmações:

a. ( ) Sobre uma linguagem L(G), gerada por uma gramática G, podemos dizer que L(G) = {α ∈T*|S =>α }

b. ( ) A geração direta acontece pela aplicação de uma regra do conjunto P, transformando uma forma sentencial em outra.

c. ( ) Qualquer cadeia que se possa gerar a partir do símbolo de partida de uma gramática é uma forma sentencial desta gramática.

d. ( ) Toda sentença de uma gramática pode ser gerada diretamente a partir do símbolo de partida.

e. ( ) Toda sentença é uma forma sentencial e toda forma sentencial é uma sentença.

15. Gere as gramáticas para a(ba)*:A. Gramatica Linear a Direita.B. Gramatica Linear à Esquerda.

16. Faça as gramáticas quaram todas as palavras de (a+b)*(aa + bb);

A. Gramatica Linear a Direita.B. Gramatica Linear à Esquerda.

17. Escreva uma gramática regular (também chamada linear à esquerda) que gere o conjunto de todos os strings binários que representam números divisíveis por 5.

18. Uma gramática linear à direita é uma gramática livre de contexto em que cada produção deve ser da forma A->Ba, ou A->b, onde a e b são símbolos terminais e A e B são não-terminais. Gramáticas lineares à direita são também equivalentes a DFAs. Explique como converter um DFA em uma gramática linear à direita equivalente. Você pode usar um exemplo para ilustrar o procedimento.

19. Construir gramáticas regulares para as linguagens regulares sobre o alfabeto S {0,1}dadas a seguir:

A. L1 = 0+1+ = { 0 n 1 m | n,m > 0 }

Page 6: Teoria Lista Exercicios 1.0

B. L2 = 0*1* = { 0 n 1 m | n,m ³ 0 }

C. L3 = ( 0 1 )+ = { (0 1) n | n > 0 }

20. Construa uma Gramática regular linear à direita que gere a linguagem denotada pela expressão regula aa*(ba)*.

Conexão entre expressões regulares e linguagens regulares

a) As expressões regulares têm a capacidade de:a) Gerar linguagens regulares;b) Reconhecer Linguagens regulares;c) Denotar as linguagens regulares;

Quais dessas alternativas estão corretas?Explique o que está incorreto.

b) Qual a importância das expressões regulares para as linguagens regulares?

c) Prove que a linguagem {{an bn } n maior igual a 1} não é regular .

d) Como provar que uma linguagem está na classe das linguagens regulares.

e) Seja a expressão regular (1+10)*. Que linguagem define?

f) Seja a expressão regular (0+1)*011). Que linguagem define?

g) Qual é a linguagem representada pela expressão regular:

a) (1+01+001)*(λ+0+00)b) ((0+1)(0+1))*+((0+1)(0+1)(0+1))*

h) Seja Σ = {0,1}. Encontre uma expressão regular para as linguagens:

a. L(r) = {w Є Σ* : w tem pelo menos um par de zeros consecutivos}.

b. L (r) = {wЄ Σ* : w não tem qualquer par de zeros consecutivos}.

10. Mostre que: Se L é uma linguagem regular, então INIC(L) = { x

Page 7: Teoria Lista Exercicios 1.0

| xy Є L } também é uma linguagem regular.

11. Mostre que: Se L é uma linguagem regular, então FIM(L) = { y | xy Є L } também é uma linguagem regular.

12. Mostre que: Se L é uma linguagem regular, então L’ = {a2a1a4a3a6a5. . .anan-1 | a1a2a3. . .an Є L} também é uma linguagem regular.

13. Prove que as linguagens a seguir não são linguagens regulares:

a) La = { 0n1n | n ³ 0 }b) Lb = { 0n | n ³ 0 é um número primo}c) Lc = {x xr | x Є {0,1}* e xr é a cadeia reversa de x }d) Ld = { x x | x Є {0,1}* }e) Le = { x Є {0,1}* | | x | 0 = | x | 1 }

Propriedades das linguagens regulares e Lema do Bombeamento

1. Use as propriedades das linguagens regulares para a linguagem sobre {a,b} onde a quantidade de a's é maior que de 1's:

a) Fechamentob) Uniãoc) §§§Concatenaçãod) intersecçãoe) Complementaçãof) Diferençag) Reversãoh) Homoformismo

2. Mostra que se L e M são regulares, L \M é regular.

3. Seja a linguagem L = {uuRv / u, v Є {a, b}+}. Mostre que esta linguagem embora claramente não seja regular, não pode ser provada pelo lema do bombeamento.

4. Quais das seguintes igualdades são verdadeiras para todas as linguagens regulares e todos os homomorfismos? Justifique.

a) h(L1 U L2) = h(L1) U h(L2)b) h(L1 ∩ L2) = h(L1) ∩ h(L2)c) h(Ln) = h(L)n

d) h(L*) = h(L)*

e) h(LR) = h(L)R

f) h(L1 − L2) = h(L1) − h(L2)

Page 8: Teoria Lista Exercicios 1.0

5. Mostre que existe um algoritmo para determinar se L1 _ L2, para qualquer linguagem regular L1 e L2.

6. Mostre que existe um algoritmo para determinar se a intersecção e união de duas linguagens regulares é finita, vazia ou infinita.

7. Seja ∑ = {0, 1}. Mostre que é possível aplicar o lema do bombeamento para as seguintes linguagens regulares.

a) L = {w Є ∑* / 0110 é um prefixo de w}b) L = {w Є ∑*/ 0110 é um sufixo de w}c) L = {w Є ∑*/ w = u111v para algum u, v Є ∑*}

8. Mostre que as linguagens sobre _ = {a, b}, definidas a seguir, n˜ao s˜ao regulares.

a) L = {w Є ∑* / Na(w) = Nb(w)}b) L = {w Є ∑* / Na(w) ≠ Nb(w)}c) L = {w Є ∑* / u = v para algum prefixo u ≠ λ e sufixo v de

w}.d) L = {ambn/ m > n}e) L = {ambn/ m ≠ n}f) L = {anban+1/ n ≥ 1}g) L = {ambn/ 1 ≤ m ≤ n ≤ 2m}h) L = {am+1bn+1/ 2 ≤ n ≤ m ≤ 3n}

Autômatos Finitos Determinísticos

1. Formalize um AFD.

2. Qual a funcionalidade dos AFD's.

3. Descreva um AFD e suas propriedades.

4. Qual está correto?• Um AFD Gera uma linguagem regular;• Um AFD é o único formalismo que pode representar uma

linguagem regular;• Uma Gramática gera uma linguagem, uma expressão

denota uma linguagem e um AFD reconhece a linguagem;

5. Um AFD tem o poder de reconhecer somente as linguagens regulares:

Dê sua opinião, se aceita ou não, e explique o por quê de seu posicionamento.

6. Tenha o AFD:(q0,1)=(q0)

Page 9: Teoria Lista Exercicios 1.0

(q0,0)=(q1)(q1,1)=(q1)(q1,0)=(q2)(q2,0)=(q2)

7. Explique qual a linguagem que o AFD reconhece.

8. Dado o alfabeto ∑= {a,b}, construa AFDs para as seguintes linguagens:

a) {b(ab)nb | n>0}b) { banba | n ≥ 0}c) {ambn | m+n é par}d) {abmba(ab)n | m, n ≥0}

9. Seja ∑= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, construa AFD’s para as seguintes linguagens:

a) {x Є ∑* | a seqüência descrita por x corresponda a um valor inteiro par}

b) {x Є ∑* | a seqüência descrita por x corresponda a um valor inteiro

c) divisível por 5}d) {x Є ∑* | a seqüência descrita por x corresponda a um

valor inteiro ímpar}

9. Desenvolva autômatos que reconheçam as seguintes linguagens:

a) {w Є{a, b}* | aabb é subpalavra de w}b) {w Є{a, b}* | o sufixo de w é aa}c) {w Є{a, b}* | w uma quantidade ímpar de a e de b}d) {w Є{a, b}* | w possui uma quantidade par de a e ímpar

de b ou uma quantidade ímpar de a e par de b}e) {w Є ∑{a, b}* | o quinto símbolo da direita para a

esquerda de w é a}

10.Elabore um autômato finito determinístico que aceita a linguagem sobre o alfabeto {0,1} tal que as palavras apresentem a seqüência 01 em qualquer posição, ou seja, L = {x01y | x,y Є{0,1}*}

11.Construa um autômato finito determinístico sobre o alfabeto {0.1} que aceite todas as palavras terminadas em 00.

12.Construa AFDs (Autômatos Finitos Determinísticos) que reconheçam as linguagens abaixo:

a) L1 = {w | w Є {0,1}* e w começa por 1 e termina por 0}b) L2 = {w | w Є {0,1}+}c) L3 = {w | w Є {0,1}* e |w| ≤ 3}

13.Descreva um AFD capaz de reconhecer somente datas válidas

Page 10: Teoria Lista Exercicios 1.0

(não levando em consideração anos bissextos) no formato americano mês/dia, onde mês e dia são representados com dois dígitos.

Autômatos Finitos não-Determinísticos e Autômatos com transições vazias

1. Formalize um AFN.2. Qual a diferença do AFN e o AFD.3. Qual a funcionalidade do AFN.4. Formalize o AFN-λ.5. Qual dos AF's tem maior capacidade computacional.6. Segundo a afirmação:

• Os AFN, AFN-λ e AFD tem o mesmo poder computacional, as linguagens reconhecidas por um AFD pode ser reconhecida por AFN e AFN-λ.

Prove a afirmação usando o lema do bombeamento.

7. Construa um AFN que reconheça as cadeias que possuam abb como sub-string.

8. Tenha uma GR:S → 1A|0BA → 1A|λB → 0B|λConstrua um AFN

9. Dado um AFN: (q0,1)=(q1,q0)(q0,0)=(q0)(q1,1)=(q1,q2)(q1,0)=(q2)(q2,0)=(q2)Construa um AFN-λ que reconheça a mesma linguagem que o AFN reconhece

10. Construa autômatos finitos não-determinísticos (AFND) que reconheçam as seguintes linguagens sobre Σ= {0,1}:

a) L1 = {w | w Є ∑* e w começa por 1 e termina por 0}b) L2 = {w00 | w Є ∑*}c) L3 = {x01y | x,y Є {0,1}*}

11. Mostre um AFND que aceita o conjunto de palavras sobre o alfabeto {0,1,...,9} tal que o dígito final já tenha aparecido antes na palavra.

Page 11: Teoria Lista Exercicios 1.0

12. Especifique um AFND para reconhecer o conjunto de palavras abc, abd e aacd sobre o alfabeto {a,b,c,d}. Após, converta o AFND para o AFD correspondente.

13.Represente graficamente e através da tabela de transições, os AFN capazes de reconhecer as seguintes linguagens:

a) String em a,b,c,d em que o primeiro “b” é precedido de um “a”;

b) Todas as strings que contêm as cinco vogais por ordem alfabética consecutivas.

14. Represente graficamente e através da tabela de transições, os AF capazes de reconhecer as seguintes expressões regulares e indique se são Determinísticos ou Não Determinísticos:

a) aa*|bb*b) (a*|b*)*c) (a|b)*abb(a|b)*d) a(a|b)*

15. Represente um AFND capaz de reconhecer números reais no seguinte formato: ‘inteiro’,‘inteiro’. O número real a reconhecer deverá ter sempre uma vírgula e uma casa decimal, não sendo obrigatória a existência de uma parte inteira.

16.Considere a expressão regular α = (a + b)*a(a + b)n, para algum n >1. Justifique a seguinte afirmação:

Existe um autômato finito não-determinístico A com n + 2 estados tal que L(A) = L(α).

17. Construa AFNDs que reconheçam as linguagens geradas pelas ERs abaixo, dando também a sua Especificação Formal Completa.

a) (b*ab*ab*ab*)*b) b*aaab*c) (ab + ba)* (aa + bb)*d) ab (abb* + baa*)* bae) (ab)*(ba)* U aa*f) (ab U aab)* a*g) (ba U b)* U (bb U a)*

Reconhecimento de linguagens regulares por Autômatos Finitos

1. Sejam os autômatos finitos:

Page 12: Teoria Lista Exercicios 1.0

que aceitam as linguagens:L (M1) = {x Є {0,1}* | | x |0 mod 3 = | x |1 mod 3}L (M2) = {x Є {0,1}* | | x | não contém dois 1’s consecutivos}

Utilizando as propriedades das linguagens regulares, pede-se para construir um autômato finito M, a partir de M1 e M2, que aceite a linguagem L, dada por:L = {x Є {0,1}* | | x |0 mod 3 = | x |1 mod 3 e x deve conter dois

1’s consecutivos}

2. Considere os autômatos finitos M1 e M2 a seguir:

Utilizando as propriedades das linguagens regulares, e a partir de M1 e M2, construa os autômatos finitos descritos a seguir:

a) M3 tal que L(M3) = L(M1)*b) M4 tal que L(M4) = L(M1) . L(M2)c) M5 tal que L(M5) = L(M1) ∪ L(M2)d) M6 tal que L(M6) = (complemento ( L(M1) ) ∪ L(M2) )*e) M7 tal que L(M7) = L(M1) ∩ L(M2)

3. Construa um autômato finito que reconhece as sentenças das linguagens abaixo sobre o alfabeto ∑= {0,1}.

Page 13: Teoria Lista Exercicios 1.0

a) L = { 0m1n | m >0, n > 0}b) L = { 0m1n | m > 0, n > 2}c) L = { 0m1n | m > 0, n > 3}

4. Descreva com as suas palavras a linguagem aceita por cada um dos autômatos a seguir:

5. Determine os AF equivalentes as gramáticas regulares abaixo:

a) G=({ S, A, B }, { a, b }, P, S)P = { S => aA|bB|λ,A => aA|bB,B => bB|b }

b) G=({ S, A, B, C }, { 0, 1, 2 }, P, S)P => { S => 0S|1A|2B|0|0C ,A => 1S|1 ,B => 2S|2 ,C => 0S|0 }

6. Construa autômatos não deterministas com lamba movimentos para as linguagens:

Page 14: Teoria Lista Exercicios 1.0

a) (11 + (10)(101)* + 00)*01b) L = {00, 010, 1001,10011}*

7. Para os autômatos abaixo, determine as expressões regulares das linguagens. O estado inicial de cada autômato é A e os finais estão em negrito.

a)Q/ ∑ 0 1A A BB C BC A B

b)Q/ ∑ 0 1A B CB A CC B A

8. Escreva um autômato finito que aceita a linguagem de todos os strings de 0's e 1's nas quais em qualquer substring de cinco símbolos (consecutivos) ocorrem pelo menos dois 0's.

9. Escreva um autômato finito que aceita a linguagem de todos os strings de 0's e 1's que começam ou terminam (ou ambos) com 01.

10.Considere a linguagem composta pelas cadeias no alfabeto {a, b} que contém a cadeia aaa ou a cadeia bb. Ou seja, a linguagem L = { x y z | x, z Є {a, b}* e ( y=aaa ou y=bb ) }. Construa um afnd M que aceite L.

11.Usando as propriedades das linguagens regulares, construa um autômato finito que reconheça a linguagem L = {an |n Є N e n não é múltiplo de 3 e é múltiplo de 5}.

12.Considere a seguinte descrição de um elevador:• O aparelho movimenta-se entre três andares, podendo

estar nos pisos 0, 1 ou 2.• Em cada andar há um botão de chamada único.• Dentro do elevador há três botões a indicar o destino

pretendido.• Os botões não têm memória.• Uma vez em movimento, o elevador desloca-se até atingir o

destino, ignorando quaisquer outros pedidos, internos ou externos, os quais deverão ser repetidos quando o elevador estiver em condições de os receber.

Page 15: Teoria Lista Exercicios 1.0

• Quando chega a um andar, o elevador abre automaticamente a porta e, ao fim de algum tempo, fecha-a também automaticamente.

• Chamar um elevador que se encontra no próprio andar também abre a porta.

• O elevador com a porta aberta não se desloca.

Entradas predefinidas: A, B, C – chamada do andar 0, 1 ou 2, respectivamente;0, 1, 2 – botão de destino interior ao elevador para o andar

indicado.

Apresente um autómato que descreva o funcionamento do elevador. Indique o significado de cada estado. Construir uma 1ª versão mais simples, com transições demoradas, e uma 2ª versão mais detalhada, com transições (quase)instantâneas.

Equivalência entre Autômatos; Redução de número de estados de autômatos finitos

1. Dado um AFD :(q0,1)=(q1)(q0,0)=(q0)(q1,1)=(q1)(q1,0)=(q2)(q2,0)=(q2)

construa um AFN que reconheça a mesma linguagem que o AFD reconhece.

2. Dado um AFN: (q0,1)=(q1,q0)(q0,0)=(q0)(q1,1)=(q1,q2)(q1,0)=(q2)(q2,0)=(q2)

Construa um AFN-λ que reconheça a mesma linguagem que o AFN reconhece.

3. Construa um AFD que reconheça a linguagem das cadeias que não possuem 1101 como sub-string:

a) Construa um AFN equivalente.b) Construa um AFN-λ equivalente c) Construa um AFD que aceite as cadeias 1101.

4. Encontre um AFN - λ equivalente ao AFD:

Page 16: Teoria Lista Exercicios 1.0

5. Minimize o AFD:

(q0,a)=(q1)(q0,b)=(q0)(q1,a)=(q2)(q1,b)=(q0)(q2,a)=(q3)(q2,b)=(q2)(q3,a)=(q3)

6. Tenha um AFD obtenha o AFD minimo para a mesma linguagem do AFD inicial:

a) (q0,0)=(q1)(q0,1)=(q0)(q1,0)=(q1)(q1,1)=(q2)(q2,0)=(q2)(q2,1)=(q3)

b) (q0,a)=(q1)(q0,b)=(q0)(q1,a)=(q1)(q1,b)=(q2)(q2,a)=(q2)

c) (q0,1)=(q1)(q0,0)=(q0)(q1,1)=(q1)(q1,0)=(q2)(q2,0)=(q2)

1. Construa um AFD que reconheça as cadeias de comprimento ímpares e, se possível, construa um AFD- minimo para a mesma linguagem.

2. Construa um AFD que reconheça (a + b)+ b*(a+b)* e construa um AFD-minimo, se possível.

3. Construa um AFD que reconheça (b)+ a*(aa+b)* e construa um AFD-minimo, se possível

q0 q1 q2

c

b c

a b

Page 17: Teoria Lista Exercicios 1.0

4. Dada a expressão regular a (b+a*)b*, construa um AFD, e um AFD-minimo, se possível.

5. Quais os requisitos para a minimização de um AFD.

6. Minimize os seguintes autômatos:

a)

b)

c)

Page 18: Teoria Lista Exercicios 1.0

d)

7. Considera a linguagem de {a, b} definida pela expressão regular seguinte:

(a + b)(aa + bb)*(b + a) + (b + a)(aa + bb)* (1)

a) Descreve informalmente essa linguagem;b) Constrói um autômato nito determinístico mínimo que a

reconheça. Indique as palavras que levam o autômato do estado inicial a cada um dos estados.

8. Seja ∑= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, construa AFD’s mínimos para as seguintes linguagens:

a) {x Є ∑* | a seqüência descrita por x corresponda a um valor inteiro par}

b) {x Є ∑* | a seqüência descrita por x corresponda a um valor inteiro divisível por 5}

c) {x Є ∑* | a seqüência descrita por x corresponda a um

Page 19: Teoria Lista Exercicios 1.0

valor inteiro ímpar}

Funções de transição estendidas. Algoritmo de conversão AFN->AFD.

1. Se possível converta os seguintes AFN para AFD.

a)

b)

c)

d)

e)

Page 20: Teoria Lista Exercicios 1.0

f)

g)

2. Construa um autômato não-determinístico que reconheça qualquer linguagem do alfabeto ∑ = {0, 1} das palavras com um 1 na terceira posição a contar do fim e depois converta-a para um AFD.

3. Considere o autômato nito não-determinístico representados pelo seguinte diagrama:

Page 21: Teoria Lista Exercicios 1.0

Converta, pela construção dos subconjuntos, o autômato num autômato determinístico.

4. Seja A o autômato nito de alfabeto {a, b, c} representado pelo diagrama seguinte.

a) Qual é a linguagem reconhecida pelo autômato A? Porquê?

b) Usando o método da construção de subconjuntos, determineum autômato determinístico que seja equivalente a A.

5. Seja o autômato finito não determinístico (AFND) M = < {q0, q1, q2}, {0,1}, d, q0, {q2} >, com o mapeamento d dado por:

d(q0,0) = {q1,q2} d(q0,1) = {q0}d(q1,0) = {q0,q1} d(q1,1) = { }d(q2,0) = {q0,q2} d(q2,1) = {q1}

Pede-se:a) Encontre um autômato finito determinístico equivalente ao AFND M dado.b) Descreva L(M) por uma expressão regular.

6. Seja o autômato finito não determinístico (AFND) M = < {q0, q1, q2,{0,1}, d, q0, {q2} >, com o mapeamento d dado por:

d(q0,0) = {q1,q2} d(q0,1) = {q0}d(q1,0) = {q0,q1} d(q1,1) = { }d(q2,0) = {q0,q2} d(q2,1) = {q1}

Pede-se:a) Encontre um autômato finito determinístico equivalente ao

AFND M dado.b) Descreva L(M) por uma expressão regular.

7. Converta em AFD.

Page 22: Teoria Lista Exercicios 1.0

8. Dado o AFN abaixo, transforme-o em um AFD equivalente.M = {Q,∑ ,Δ, q0, F}, onde:Q = {A,B,C,D} ∑= {a, b} Δ= {(A, ,B), (A, ,D), (B, a,B), (B, b,C), (D, 'aba',C)}q0 = AF = {C}

9. Dado o AFN abaixo:M = {Q,∑ ,Δ,q0, F}, onde:Q = {q0, q1} ∑ = {0, 1} Δ = {(q0, 0, q0), (q0, 0, q1), (q0, 1, q1), (q1, 1, q0), (q1, 1, q1)}q0 = q0F = {q1}

a) Construa seu diagrama de transição de estados.b) Transforme-o em um AFD.

10. Projete um AFN que reconheça expressões aritméticas de comprimento arbitrário, que envolva apenas inteiros positivos, separados pelos sinais de adição (+), subtração (-), multiplicação (*) e divisão (/). Não considere expressões peripatetizadas. Depois converta-o para um AFD.

11. Projete um AFN que aceite a linguagem que consiste das cadeias sobre o alfabeto ∑ = {w, x, y, z} nas quais o padrão xy é sempre seguido por um w e o padrão yx é sempre seguido por um z. E converta-o para um AFD.

12. Converta o AFN em um AFD equivalente:

Page 23: Teoria Lista Exercicios 1.0

13. O que é função estendida?14. Dê a formalização da função estendida.

Máquinas de Mealy e de Moore.

1. Construa o diagrama de estados de uma máquina de estados finitos (FSM que realize o controle de um elevador. O elevador deverá respeitar a seguinte especificação:

• Se o elevador está parado e o andar requisitado é igual ao andar corrente , então o elevador continua parado.

• Se o elevador está parado e o andar requisitado é menor que o andar corrente, então o elevador deve descer para o andar desejado.

• Se o elevador está parado e o andar requisitado é maior que o andar corrente, então o elevador deve subir para o andar desejado.

Sendo assim:

a) Desenhe o diagrama da máquina de estados que realiza esta operação.

b) Esta máquina é Moore ou Mealy ? Por quê ?

2. Para cada autômato abaixo, verifique se é uma Máquina de Mealy ou de Moore:

Page 24: Teoria Lista Exercicios 1.0

a)

b)

3. “Toda Máquina de Moore pode ser simulada por uma Máquina de Mealy, para entradas não vazias”, e “Toda Máquina de Mealy pode ser simulada por uma Máquina de Moore”. Encontre as máquinas de Mealy e Moore equivalentes as máquinas do exercício anterior.

4. Construa uma Máquina de Mealy que reconheça uma palavra w, |w| ≥ 1, tal que w = x+ e produza uma seqüência de saída v = (ab)+ , em que |v| = 2|w|.

5. Considere a seguinte Máquina de Moore e verifique sua equivalência com a Máquina de Mealy do exercício anterior.

Page 25: Teoria Lista Exercicios 1.0

6. Seja a seguinte Máquina de Moore abaixo, construa uma Máquina de Mealy eqüivalente.

7. Qual a principal diferença entre uma Máquina de Moore e uma Máquina de Mealy ?

8. Descreva o processo de construção de uma Máquina de Mealy a partir de uma Máquina de Moore, e de uma Máquina de Moore a partir de uma Máquina de Mealy.

9. Construa máquinas de Mealy e de Moore para o problema abaixo:

Máquina de atraso de 3 unidades. A máquina recebe uma seqüência formada por cadeias de 0’s e 1’s e emite a mesma saída com 3 unidades de atraso. Para os três primeiros instantes de tempo emita uma seqüência de três 0’s.

10. Construa máquinas de Mealy e de Moore para o problema abaixo:

Máquina de atraso de 4 unidades. A máquina recebe uma seqüência formada por cadeias de 2’s e 1’s e emite a mesma saída com 4 unidades de atraso. Para os três primeiros instantes de tempo emita a seqüência '122'.

11. Construa uma Máquina de Mealy que reconheça uma palavra w, |w| ≥ 2, tal que w = x+ e produza uma seqüência de saída v = (ab)* , em que |v| = 3|w|.

12. Construa uma Máquina de Mealy que reconheça uma palavra w, |w| > 0, tal que w = x* e produza uma seqüência de saída v = (ab)* , em que |v| = 2|w|.

13. Qual a característica comum entre as Máquinas de Moore e Mealy? Comente sobre ela, em particular, relacionando-a à não necessidade de existência de estado final na definição dessas máquinas.

14. A empresa de refrigerantes X deseja projetar um circuito que realize o controle de venda de 1 lata de refrigerante na sua máquina de refrigerantes. Para isto o empresa o contratou, você

Page 26: Teoria Lista Exercicios 1.0

como projetista-chefe do projeto deve especificar (desenhar) o diagrama de uma máquina estados finitos (FSM) que realize o controle da entrada de moedas na máquina. Se entrar o valor correto a latinha deve sair da máquina, caso contrário, deve voltar para o estado inicial e devolver as moedas. Sabe-se que o preço do refrigerante é um real, e também que a máquina somente aceita moedas de 1 real, 50 centavos e 25 centavos. Porém, a máquina pode aceitar qualquer seqüencia de moedas. Sendo assim:

a) Desenhe o diagrama da máquina de estados que realiza esta operação. b) Esta máquina é Moore ou Mealy ? Por quê ?

15. Qual a diferença entre máquinas de estado Moore e Mealy?

16. O que diz a Lei de Moore?

17. Escreva uma maquina que avalia a seguinte expressão: X = (A + B) * (C * D) + E * F

18. Dê a formalização das máquinas de moore e mealy.

19. Como transfomar uma máquina de mealy em uma máquina de moore?

Gramática livre de contexto e Métodos para simplificar GLC

1. Construa as gramáticas livres de contexto:

a){anbn}n maior ou igual a 1b){anbmcp}m,n,p diferentes de 0.c)Que gere um palíndromo no alfabeto {a,b}.d)Que gere parênteses balanceados.e){0m1n+m}, em que m,n maiores que 1.f) 0*1(0+1)*g){anbm}n > 2 e m > 1h){0n1m}n maior ou igual 0 e m > 0i) {0n1m2x}m maior ou igual 0 e n, x > 0. j) 0(0+1)*0k)(01)*l) (0+1)*0(0+1)(0+1)m)0*10*10*10*n)(0+1)*111(0+1)*

2. Depois de gerar as gramaticas da questão anterior use os Métodos de simplificação das GLC para:

Page 27: Teoria Lista Exercicios 1.0

a) elimine os símbolos inúteisb) elimine λ produçõesc) elimine produções unitárias

3. Tenha a gramática livre de contexto:S → ASB| λA → aAS|aB → SbS|A|bb

4. Elabore uma GLC que gere:

a) 01*(0+1*).b) (0+1)((0+1)(0+1))*;c) 0*1*.

Formas Normais para GLC: Chomsky e Greibach

1. Descreva as seguintes gramáticas em Forma Normal de Greibach:a) S =>AB | SCBA =>aA | CB =>bB | bC=>cC | λ

b) S =>aAd | AA =>Bc | λB =>Ac | a

c) S =>A | B | ABSA =>aA | λB =>aBAb | λ

d) S =>AB | CSBA =>aB | CB =>bbB | b

e) S => | ABa | AbAA =>Aa | ƳB =>Bb | BCC =>CB | CA | bB

f) S =>AB | BCSA =>aA | CB =>bbB | bC =>cC | λ

g) S =>aAd | A | λA=>Bc | c

Page 28: Teoria Lista Exercicios 1.0

B =>Ac

h) S =>aAd | A | λA=>Bc | cB =>Ac | SS

2. Descreva as seguintes gramáticas em Forma Normal de Greibach:a) S =>AB | SCB | SB | bB | bA =>aA | a | cC | cB =>bB | bC =>cC | c

b) S =>aAd | ad | BcA =>BcB =>Ac | a | c

c) S =>ABS | BS | AS | AB | aA | a | aBAb | aAb | aBb | abA =>aA | aB =>aBAb | aAb | aBb | ab

d) S =>ABA =>aBB =>bbB | b

e) S =>AbA | bA | Ab | b | Aa | aA =>Aa | a

f) S =>AB | BCS | BS | bbB | bA =>aA | a | cC | cB =>bbB | bC =>cC | c

g) S =>aAd | Bc | cA =>Bc | cB =>Ac

h) S =>aAd | Bc | cA =>Bc | cB =>Ac | SS | aAd | Bc | c

3. Tenha a gramática livre de contexto:S → ASB| λA → aAS|aB → SbS|A|bba) Coloque a gramática na forma normal de chomsky.b) Coloque a gramática na forma normal de greibach.

4. Tenha a GLC que gere a linguagem das palavras que contem a

Page 29: Teoria Lista Exercicios 1.0

quantidade de a's duas vezes mais que a quantidade de b's.a) Obtenha a forma normal de chomskyb) Obtenha a forma normal de greibach

5. Elabore uma GLC que gere 01*(0+1*):a) Obtenha a forma normal de chomskyb) Obtenha a forma normal de greibach

6. Converta a seguinte GLC na forma normal de greibach:S → SSS|RS|0R → RR|SR|1

Autômato de pilha determinístico; Autômato de pilha não-determinístico

1. Assinale V quando julgar verdadeira, ou F quando julgar falsa cada uma das seguintes afirmações.

( ) Autômatos com Pilha só mais poderosos do que AFND's que, por sua vez, só mais poderosos que AFD's.( ) O símbolo base da pilha de um AP deve ser um elemento do alfabeto S. .( ) A configuração de um AP em um dado momento pode ser descrita por uma tripla <s, x, a > onde s é o estado corrente, x é a cadeia da fita que falta ser processada e a é o conteúdo da pilha, com o topo no início de a .( ) Considerando a definição de AP estudada, pode-se afirmar que para uma cadeia ser reconhecida por um AP, o processamento da mesma deve encerrar com um estado final ativo.( ) Autômato com Pilha é um formalismo que pode ser aplicado no projeto sintético de linguagens computacionais.

2. Fale sobre o poder computacional dos Autômatos com Pilha.3. Descreva a função de transição dos Autômatos com Pilha.

4. Considerando a definição de Autômato com Pilha estudada, o que deve

acontecer para que uma cadeia seja reconhecida?

5. Construa Autômatos de Pilha determinístico que reconheça:a){anbn} n maior ou igual a 1.b){0n+m1m} m,n maior que 1.c){anbmcj} n diferente de m ou m diferente j.d) parênteses balanceados.e) fórmulas de lógica com os operadores =>, <=>, ^, v, ~f) um valor em real com até 4 caráteres antes da vírgula e 'R$'. Ex. R$ 2000,00

6. Construa Autômatos de pilha não-determinísticos para:

Page 30: Teoria Lista Exercicios 1.0

a){anbn} n maior ou igual a 1.b){0m1n+m} m,n maior que 1.c){anbmcj} n diferente de m ou m diferente j.d){0n1m} m igual ou maior que n que é maior que 1.e) uma data. Ex.:20/10/1986

7. Construa Autômatos de pilha a partir das seguintes expressões:a) 0*1*b) 00*11*c) (00)*(11)*d) ((00)*(11)*)*

8. Encontre Autômatos a Pilha que reconheçam por estados finais os seguintes conjuntos:

a) L1 = { w ∈ { 0, 1 }* | w contém o mesmo número de 0’s e

1’s }

b) L2 = { an bm| n ≤ m ≤ 2*n e n, m > 0 }

c) L3 = L(G) onde G = ( { S , A } , { a, b } , P, S ) onde

P = { S => a A A , A =>b S | a S | a }

9. Realize as modificações necessárias para transformar os

Autômatos a Pilha do exercício anterior para fazer o

reconhecimento das sentenças por pilha vazia.

10. Considere a gramática livre de contexto G = ( N, ∑ , P, S )

com produções escritas na Forma Normal de Greibach, onde

N = { S , A , B } ∑ = { a , b }

P = { S => a B S | a B | b A S | b A

A => bAA| a

B => aBB | b}

Encontre um autômato a pilha M, tal que N ( M ) =L( G ).

Autômato de pilha e Linguagem livre de contexto (LLC)

1. Dar a gramática livre de contexto que gere a linguagem N ( M ), onde M é dado por: M = ( Q, ∑ , δ, β , q0, Z0, F ) onde Q = { q0 ,

q1 },∑ = { 0 , 1 }, δ = { Z0 , X }e δ por:

Page 31: Teoria Lista Exercicios 1.0

δ ( q0, 1 , Z0 ) = { ( q0 , X Z0 )}

δ ( q0, 1 , X ) = { ( q0 , X X ) }

δ ( q0, β , Z0 ) = { ( q0 , e ) }

δ ( q0, 0, X ) = { ( q1 , X ) }

δ ( q1, 0 , Z0 ) = { ( q0 , Z0 ) }

δ ( q1, 1 , X ) = { ( q1 , e ) }

2. Construa um autômato a pilha que reconhece as sentenças das

linguagens:

a) L1 = { w ∈ { a, b}* | nº(a) = 3*nº(b) ou nº(b) = 3*nº(a) }

b) L2 = { w ∈ { a, b, c}* | nº(a) + nº(b) = nº(c) e w não

contém dois a’s consecutivos }

c) L3 = { 0i 1j 2k | i = j ou j = k , i, j, k >0 }

d) L4 = { 0i 1j | i * j é um número par , i, j >0 }

3. Se L1 é uma linguagem livre de contexto então L2 = { w | wR ∈ L1 } é umalinguagem livre de contexto ? (wR representa w invertido)

4. Se L1 e L2 são linguagens livres de contexto sobre ∑, então L1 ∈L2 é livre de contexo? Justifique.

5. Se L é uma linguagem livre de contexto então Init(L) = { x | para algum y, xy ∈L }é uma linguagem livre de contexto ?

6. Mostre que toda a linguagem livre de contexto sobre um alfabeto de um únicosímbolo é regular.

7. Mostre que se L = { x c y | x, y ∈ {0, 1}* e |x|>|y| } é livre de contexto.

8. Mostre que se L é livre de contexto então L* também é livre de contexto.

9. Para as formulas bem formadas (fbf's) da logica construa uma

Page 32: Teoria Lista Exercicios 1.0

GLC que gere apenas a linguagem das fbf.

10.Dar gramaticas livres de contexto para as seguintes linguagens:

a) palíndromas sobre o alfabeto {a, b},b) o conjunto das palavras formadas por parenteses

balanceadas, por exemplo (()), ()(), (()()), . . .c) as palavras sobre {a, b, ;, ", ., (, ), } das expressões

regulares sobre {a, b}.

11. Considere a GLCG=(V,T,P,S)V={S,A,B}T={0,1}P={S =>A1B, A => 0A | e, B => 0B | 1B | e}Qual a linguagem gerada? Essa linguagem é regular ou livre de contexto? Justifique sua resposta.

12. Construa uma GLC capaz de gerar todo o conjunto de Expressões Regulares válidas sobre o alfabeto {0,1}. Dica: utilize "e" para indicar a palavra vazia da expressão regular.

13. Desenvolva Gramáticas Livre de Contexto (GLC) que geram as seguintes linguagens:

a) L = {a,b, c}*b) L = {w | w e {a,b}, com a's sempre no meio da palavra}c) L = {aib2i | i ≥ 1}d) L = {aibjck | i ≥ j ou j ≥ k}

14. Construa Autômatos com Pilha (AP) que reconheçam as seguintes linguagens:

a) L = {aib2i | i ≥ 1}b) L = {anbmcn+m | n,m ≥ 0}c) L = {ambn | m ≥ n}

Propriedades das linguagens livres de contexto e Lema do Bombeamento

1. Use o lema do bombeamento para provar que as linguagens não são livres de contexto:a){anbmcj} onde n<m<jb){anbncj} onde j é menor que n.c){0n1m} onde m=n².

2. Aplique as propriedades para as linguagens:a){anbn} n maior ou igual a 1.

Page 33: Teoria Lista Exercicios 1.0

b){0n+m1m} m,n maior que 1.c){anbmcj} n diferente de m ou m diferente j.d){0n1m} m igual ou maior que n que é maior que 1.

3. Cite as principais propriedades das linguagens livre de contexto.

4. Verifique quais as linguagens abaixo são livres de contexto. As que achar que são livres de contexto, prove que são.

a) O conjunto de palavras com mesmo número de 0’s e 1’s

b) {x | x ∈ (0+1)* e x = xR}

c) {apbq | p < q e p, q ≥ 0}

d) {ww | w (a+b)*}

e) Linguagem das sentenças bem formadas da lógica proposicional

5. Prove quais as propriedades são válidas para as linguagens livres de contexto:

Fechamento sobre união, interseção, complemento, concatenação, fecho.

6. Para os problemas de decisão abaixo, determine quais são decidíveis e quais são indecidíveis. Para os decidíveis proponha um algoritmo abstrato para resolver o problema.

a) Dado duas linguagens livres de contexto L1 e L2, elas são equivalentes?

b) Dado uma linguagem livre de contexto L e w uma palavra qualquer do alfabeto de L, w ∈ L?

c) Seja L uma linguagem livre de contexto, L é vazia? L é finita? L é infinita?

d) Seja G uma gramática livre de contexto. G é ambígua?

e) Seja L1 e L2 linguagens recursivamente enumeráveis, L1 é equivalente à L2?

7. As linguagens livres de contexto são recursivamente enumeráveis? São recursivas? Justifique.

8. Mostre que as linguagens abaixo não são livres de contexto: a)L = {am bn cm dn | m, n ≥ 0}b)L = {an | n é um quadrado perfeito}c)L = {am bn | m = n2 }d) L = { ww | w ∈ {a, b}* }

9. Quais linguagens abaixo são regulares e quais não são?

Page 34: Teoria Lista Exercicios 1.0

Justifique cuidadosamente suas respostas! Utilize o Lema do Bombeamento convenientemente, quando for o caso.(a) {(011)2i : i ≥ 1}(b) {aibj : i ≥ j }

Máquinas de Turing e Maquinas de Turing Desterministicas

1. Desenvolva Máquinas de Turing, determinísticas ou não, que aceitam as linguagens:a) L3={w | w tem o mesmo número de símbolos de a e b}b) L4={ w | o décimo símbolo da direita para esquerda é a}c) L5={waw | w é palavra de {a,b}* }e) L6={ww | w é palavra de {a,b}* }f) L7={ wwr | w é palavra de {a,b}* }g) L8 = {www | w é palavra de S*}h) L9 = {w | w = a1 b2 a3b4… an-1bn e n é um número natural par}i) L10 = {w | w = anbn ou bnan}j) L11 = {w | w = aibjck, onde i=j ou j=k}

2. Construa uma MT que reconheça a linguagem L = {wwRw | w ∈ {0,1}*}

3. Formalize a máquina de turing.

4. Construa a maquina de turing para:a) {anbncn} n que é maior ou igual 1.b) linguagem de palíndromos em {a,b}.c) Linguagens que comparam se um número é par ou ímpar.d) F(n)=2n, onde n é maior ou igual a 1.e) tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a divisão.f) tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a multiplicação.

5. Projete uma MT que faz uma da cópia de uma cadeia de entrada na ordem inversa àdireita dessa após um espaço em branco.

6. Construa uma máquina de Turing determinística que aceite a linguagem {xx | x Є{ a, b }* }.

7. Construa uma máquina de Turing determinística que aceite a linguagem {xy | x,y Є { a, b }* e y=2x }.

8. Defina Máquina de turing determinística.

9. Construa uma máquina de Turing determinística que aceite a linguagem {xyw | x,y,w Є{ 1,0 }* e y=2x, w=y/x }.

Page 35: Teoria Lista Exercicios 1.0

10. F(n)=n², onde n é maior ou igual a 1.

11. Tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a Fatorial.

12. Desenvolva Máquinas de Turing que processem as funções:

a) Subtração, definida por:

m - n, se m > n

zero, caso contrário

b) Fatorial de n, para n Є N

13. Como, sem perda de generalidade, pode-se supor que a função programa de uma Máquina de Turing seja total?

14. Construir uma Máquina de Turing que compute a soma de dois números naturais escritos em forma binária (Sugestão: Use uma Máquina de Turing com mais de uma fita). Usar um exemplo para mostrar que a Máquina funciona!

15. Construa uma máquina de Turing que calcule a função g: N => N, definida por (resto da divisão inteira de n por 3).

16. Construa uma MT para comparar dois números x, y em representação unária e indicar:

x > y responde 1

x < y responde 0

Construa uma TM para computar o quadrado de n. Fita de entrada:

...A111...11B.... (n 1’s)

17. Projete uma TM para calcular o fatorial de n.

18. Projete uma TM de cópia binária que se comporta como indicado no exemplo:

Fita inicial : .....A121220...B.....

Fita final : .....A121220...B121220...

Usar o alfabeto {0,1,2,A,B,x}

(8 estados são suficientes!)

19. Projete uma máquina de Turing para reverter uma cadeia de caracteres de 1’s e 2’s.

Page 36: Teoria Lista Exercicios 1.0

20. Seja a expressão booleana (EB) definida indutivamente como segue:i) v e f são EB;ii) Se p e q são EB, então p e q e p ou q também são EB.Assuma que o conetivo e tem prioridade sobre o ou:a) Construa uma Máquina de Turing sobre ∑ = { v, f, e, ou } tal

que:ACEITA(M) = { EB | EB é v }REJEITA(M) = { EB | EB é f }LOOP(M) = { W | W não é EB}

21. Projete uma máquina de Turing D que inidica se m divide ou não n, através de seu estado interno. Fita de entrada : ...01m01n0... (m>0, n≥ 0). D eventualmente pára com exatamente a mesma configuração da fita de entrada .

22. Use D da questão anterior como submáquina, projete uma máquina de Turing P que tem como fita de entrada ...01k0... (k≥ 2) e indica através de seu estado interno se k é primo.

23. Uma operação comum em programas de MT´s envolve o “deslocamento”. Projete uma MT que tem uma sub-rotina para efetuar essa operação, durante o reconhecimento da linguagem L = {anbncn |n ≥ 1}, onde a cada símbolo processado é apagado e todos os demais símbolos à direita são deslocados uma casa para esquerda. Por exemplo, se a cadeia de entrada for “aaabbbccc” após o processamento do 1º “a” teremos a cadeia de entrada resultante: “aabbbcccΔ”.

24. Projete uma MT que faz uma da cópia de uma cadeia de entrada na ordem inversa à direita dessa após um espaço em branco. Por exemplo, se entrada “aabbccc” temos como saída “aabbccΔccbbaa”.

25. Descreva uma máquina de Turing com o seguinte comportamento: no inicio a fita tem um input com k 1’s consecutivos. Queremos que a computação acabe sempre e que no final a fita só contenha k+1 1’s consecutivos, estando a cabeça de leitura em cima do 1 mais à esquerda (esta MT calcula a função sucessor suc(k) = k+1).

26. Descreva uma MT que calcule x+y, onde x;y pertencem aos naturais são os inputs. O input da TM é dado por x 1’s consecutivos, seguido de um símbolo branco B, seguido de y 1’s consecutivos. O resultado deve ser calculado em notação unária.

27. Descreva uma MT que calcule max(x;y), onde x;y pertencem aos naturais são os inputs. Os inputs e outputs devem ser dados/obtidos segundo as regras do exercício

Page 37: Teoria Lista Exercicios 1.0

anterior.

28. Descreva uma MT que decida a linguagem {w Є {0,1} *|w contém o mesmo número de1’s que 0’s}

29. Descreva uma MT que calcule a função sucessor para inputs definidos em binário sobre {0,1}*. O resultado também deve ser escrito em binário.

30. Descreva uma MT que decida a linguagem A = 0k | k= 2n

para n Є N.

Máquina de Turing não determinística; outros modelos de Máquina de Turing

1. Dado um alfabeto ∑, construa uma MTND que aceite a linguagem L = $G$w$, onde G é a representação de uma GLC e w é uma sentença sobre ∑. Defina a representação de G de forma conveniente. ($ não está em ∑; você também pode usar símbolos fora de ∑ para representar G).

2. Construa uma MTND que reconheça a linguagem (sobre ∑={0,1,#}), L = { w1#w2#...#wn | wi = i na base 2, para algum i}.

3. Construa uma MT que reconheça a linguagem L = {wwRw | w ∑{0,1}*}

4. Projete uma maquina de turing não-determinística que aceite:a) X>y retorne true, senão false.b) O fatorial de x.

5. Projete uma máquina de turing com duas fitas que:a) retorne se uma cadeia é maior que a outra.b) retorne a soma das cadeias

6. Projete uma máquina de turing com três fitas que:a) retorne a divisão de duas cadeiasb) retorne o fatorial de duas cadeias

7. projete uma máquina de turing com múltiplas fitas que retorne o exponencial de uma cadeia.

8. Para cada uma das linguagens abaixo, forneça 3 exemplos de cadeias que pertençam a elas, e contrua as máquinas de turing não deterministicas para cada uma delas:

Page 38: Teoria Lista Exercicios 1.0

a) L1 = { aibjck | 5≥ i ≥ 0 ; 3≥ j ≥ 1 ; 4 ≥ k ≥ 2 }

b) L2 = { aibjck | i=j ou j=k, i, j, k ≥ 0 }

c) L3 = { aibjck | i=j=3 e k≥ 0, ou j=k=4 e i ≥ 0 }

d) L4 = { aibj | i=2j , " i, j≥ 0 }

e) L5 = { aibj | 0 ≥ i ≥ 5 e 0 ≥ j ≥ 10 }

9. Projete uma máquina de Turing com múltiplas fitas para efetuar:

a) Soma de dois números naturais

b) Multiplicação de dois números naturais

d) divisão de dois números naturaise) exponencial de dois números naturaisf) verificar parenteses balanceadosg) verificar se uma equação química está balanceadah) verificar um endereço válido de e-maili) um valor em reais. Ex.: R$ 200,00

Codificação de Máquinas de Turing

1. Construa maquina de turing e sua codificação:a) {anbncn} n que é maior ou igual 1.b) linguagem de palíndromos em {a,b}.c) Linguagens que comparam se um número é par ou ímpar.d) F(n)=2n, onde n é maior ou igual a 1.e) tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a divisão.f) tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a multiplicação.g) Tenha na fita o formato $$$, em que entre os $ existem {0,1}*, faça a Fatorial.

2. Construa e codifique máquinas de Turing que aceite as linguagens:

a) La = { 0n 1n 2n | N >0 }

b) Lb = { i ( + i ) n | n > 0 }

c) Lc = { w c y |w , y Є { 0, 1 } * e w Є y }

d) Ld = { x Є { 0, 1 } * | x contém o mesmo número de 0’s e

1’s }

e) Le = { 0 i 1 j 2 k | i = j ou j = k , com i, j, k > 0}

Page 39: Teoria Lista Exercicios 1.0

3. Constrói e codifique as máquinas de Turing que aceitem cada uma das seguintes linguagens.(a) {0n1m | n ≥ m}(b) {anbncn | n ≥ 0}(c) {1p01q01n | p + q = n}(d) as palavras de {a, b} com mais a's que b's(e) {an2| n ≥ 1}(f) {a2n| n ≥ 1}(g) {ap | p primo}(h) {wwr | w Є {a, b}*}(i) {w@w | w Є {a, b}*}(j) {ww | w Є {a, b}*}(k) {xcnxR | x Є {a, b}*, |x| = n}(l) {0n1m2k3l | n, m, k, l ≥ 0, n = 3k e m = l}(m) {aibjck | i, j, k ≥ 0 j = 2i e k = i}

Hierarquia das Linguagens Formais e Linguagens recursivas;A hierarquia de Chomsky; e introdução às linguagens recursivas; Linguagens recursivamente enumeráveis; Gramáticas não-restritas; e Gramáticas sensíveis ao contexto

1. Segundo a hierarquia:a) linguagem tipo3b) Linguagem Recursivamente enumerávelc) Linguagens livres de contextod) Linguagem sensíveis ao contexto

2. Defina linguagens recursivas

3. Dê exemplos de linguagens recursivas.

4. Seja L uma linguagem recursiva. A linguagem L' formada pelas strings revertidas de L é recursiva? Justifique .

5. Quando uma linguagem é recusiva?

6. Quando uma linguagem é recussivamente enumerável?

7. “Uma linguagem L ⊆ A∗ é recursiva se e só se existe uma máquina de turing T que reconhece L e é tal que a configuração inicial de qualquer palavra U pertencente a L.” Esta afirmação está correta? Justifique.

8. Classifique as linguagens abaixo no nível mais restrito possível. Por exemplo a linguagem

Page 40: Teoria Lista Exercicios 1.0

é classificada como

regular. Justifique sua resposta.

• .

• .

9. Marque (V) ou (F) justificando.

( )Todo subconjunto de um linguagem recursiva é uma linguagem recursiva. ( )A união de linguagens recursivamente enumeráveis é r.e. ( )A interseção de linguagens r.e. é r.e. ( )O conjunto das linguagens r.e. cujo complemento também é linguagem r.e. é o conjunto das linguagens recursivas. ( )Todas as classes de linguagens da hierarquia de

Chomsky, exceto a classe das não-r.e., possuem a mesma cardinalidade.

10. Se L é recursiva, então: {w | wR L } é recursiva? Recursivamente enumerável? Justifique detalhadamente sua resposta.

11. Se L1 e L2 são recursivos então:a) L1 ∪ L2 é recursiva?b) L1 ∩ L2 é recursiva?c) L¯ 1 é recursiva?d) L1 - L2 é recursiva?e) L* é recursiva?

12. Descreva a Hierarquia de Chomsky, tanto do ponto de vista das gramáticas quanto dos autômatos. Não se esqueça de lembrar que com relação aos autômatos temos tanto versões determinísticas quanto não-determinísticas. Depois escolha 3 tipos (distintos) de linguagens na hierarquia. Para cada tipo escolhido mostre um exemplo de linguagem que pertença a ele e não pertença ao tipo imediatamente mais restrito. Você pode

Page 41: Teoria Lista Exercicios 1.0

escolher, por exemplo, mostrar uma linguagem r.e. que não é recursiva, além de outras duas escolhas. Não vale usar a linguagem da questão 3.

13. Seja L uma linguagem recursiva sobre {0, 1} e L’ = {w’ | w Є L tq |w| = |w’| e todas as posições onde ocorre 1 em w também ocorre 1 em w’}. L’ é recursiva? L’ é recursivamente enumerável?14. Escreva uma gramática sensível ao contexto que gere as sentenças sobre å= {a, b, c} que possuem um número igual de a’s, b’s e c’s.

15. Escreva uma gramática sensível ao contexto que gere a linguagem ∑= {0, 1}.

16. L = { ww | w Є ∑* }, isto é sentenças cuja primeira metade é igual a segunda.

17. Construa uma GSC (Gramática Sensível ao Contexto) G |a) L(G) = { an bn cm | n ≥ 0, m ≥ 0 ∧ n ≠ m }

b) L(G) = { an bm cp dq| n,m,p,q ≥ 0 ∧ n > p ∧ q < m }

c) L(G) = { x | x Є ( a, b,c)* ∧ #a’s ≠ #b’s ≠ #c’s}

d) L(G) = { x | x Є (a)* (b, c,d)+ ∧ #a’s > #c´s ∧ #b’s < #d’s }

18. Use o algoritmo que mostra que as linguagens sensíveis ao contexto são recursivas, e determine se as cadeias abaixo pertencem à linguagem gerada por G. (Qual é o tipo de G?) G=({S, A}, {a, b}, {S→aAS, S→a, A→SbA, A→ba, A→SS}, S):

a) abaa b) abbb c) baaba

19. Transforme a seguinte gramática em uma gramática na forma normal de Chomsky .

G=({S, M, N}, {x, y, z}, {S → MzSzN, S → λ, M → xM, M → x, N → yN, N → z}, S);

20. Converta a gramática S → 0S1|AA → 1A0|S|λ

em PDA que aceite a linguagem por pilha vazia.

21. Converta a gramática

Page 42: Teoria Lista Exercicios 1.0

S → aAAA → aS|bS|a

em PDA que aceite a linguagem por pilha vazia.

22. Converta o PDA em uma gramática livre de contexto.a) (q0,a)=(q0,?,A) (q0,a)=(q0,λ,A) (q0,b)=(q0,A,λ) (q0,λ)=(q1,λ,λ)

b)(q0,()=(q0,?,A) (q0,()=(q0,λ,A) (q0,))=(q0,A,λ) (q0,λ)=(q1,λ,λ)

23. Para as formulas bem formadas da logica faça:a) Construa uma GLC que gere apenas a linguagem das

fbf. b)Construa um PDA que aceite apenas a linguagem das fbf.

24. Se L1 ⊆ Σ* e L2 ⊆ Σ* são linguagens, o quociente de L1 por L2 à direita é definido como: L1/ L2 = {w| w ∈ Σ* : ∃ u ∈ L2 tal que wu ∈ L1}; Mostre que se L1 é livre de contexto e R é regular, então L1/R é livre de contexto (lembre-se das propriedades de fechamento;

25. Mostre que se L é livre de contexto então L ∈ P.

26. Prove que, se A ⊆ B, e A é não enumerável, então B é não enumerável.

27. Mostre que o conjunto dos números reais no intervalo [0, 1] é não enumerável.

28. Dada uma linguagem sensível ao contexto específica (LS), é possível construir um autômato finito, um PDA, um autômato limitado linearmente, e uma máquina de Turing que a reconheça? Responda considerando cada máquina individualmente.

29. É possível construir um autômato finito que seja capaz de reconhecer uma linguagem recursivamente enumerável?

30. Segundo a hierarquia de Chomsky, de que tipo podemos afirmar que é a gramática definida por: G = ( {0,1}, {A, B, C, S}, S , P ), com P = {S=>1AA , SA=>0A01 , S=>Ƴ , A=>Ƴ , S=>1S}?

31. O que é a Hierarquia de Chomsky? Esclareça o que ela

Page 43: Teoria Lista Exercicios 1.0

representa, como ela se estrutura, e discuta sua natureza dual máquina-linguagem (ou máquina-gramática). OBS: Um desenho apenas, sem comentários, não basta!

32. Seja L a linguagem recursivamente enumerável reconhecida pela máquina de Turing TL. Em termos do comportamento de TL, diga o que acontece no caso de TL receber como entrada uma cadeia w1 Є L, e no caso de receber a cadeia w2 Є Lb, onde Lb é o complemento de L (isto é, L Є Lb = ∑*).

33. Para cada uma das linguagens abaixo, forneça 3 exemplos de cadeias que pertençam a elas, e discuta qual poderia ser a máquina mais simples – entre as que aparecem na Hierarquia de Chomsky – que pode ser usada como um reconhecedor delas:

a) L1 = { aibjck | 5 ≥ i ≥ 0 ; 3 ≥ j ≥ 1 ; 4 ≥ k ≥ 2 }

b) L2 = { aibjck | i=j ou j=k, i, j, k ≥ 0 }

c) L3 = { aibjck | i=j=3 e k≥ 0, ou j=k=4 e i ≥ 0 }

d) L4 = { aibj | i=2j , i, j ≥ 0 }

e) L5 = { aibj | 0 ≤ i ≤ 5 e 0 ≤ j ≤ 10 }

Computabilidade, Complexidade e Decibilidade

1. Considere o problema de determinar se um AFD e uma expressão regular são equivalentes. Expresse esse problema como uma linguagem e mostre que ele é decidível.

2. Considere o seguinte problema de decisão: dada uma linguagem arbitrária L sobre um alfabeto Σ definida por uma gramática de estrutura de frase G = (V, Σ, R, S), e uma cadeia arbitrária w *, w pertence a L? Este problema é decidível? Justifique.

3. Prove que o problema seguinte é indecidível: dados dois programas e uma entrada, determinar se os dois programas produzem a mesma saída para a entrada dada. Sugestão: considere os dois programas seguintes e tire partido do facto do problema da terminação ser indecidível.

int f(int x){ /* retorna sempre 0 independentemente do valor de x */ return 0;}

Page 44: Teoria Lista Exercicios 1.0

int g(int x){ /* invoca um procedimento (função) que recebe x e não retorna nada */ p(x); /* retorna sempre 0 independentemente do valor de x */ return 0;}

4. Escolha uma enumeração de ∆*. Para essa enumeração, descreva algoritmos que permitam:

a) dado um natural i, determinar a cadeia xi de ∆* correspondente. b) dada uma cadeia x em Σ*, determinar o natural i tal que x = xi. c) dada uma cadeia xi em ∆*, determinar se xi é ou não a representação de uma mT.

5. O conjunto das funções computáveis é fechado por minimização ilimitada.

6. Existem mais funções computáveis do que não-computáveis

Problema da Parada; Classes de problemas P e NP

1. Diz-se que um problema de decisão L pertence à classe P (polinomial) se existe uma máquina de Turing determinística (em última instância, um algoritmo) que aceita todas as entradas de L num número de passos polinomial no tamanho da entrada e rejeita todas as entradas que não são de L num número finito de passos (sem entrar em ciclo infinito). Com base nesta definição, mostre que os seguintes problemas pertencem à classe P:

a) verificar se um número binário é maior do que outro (por exemplo, a máquina de Turing deve aceitar a cadeia 100>11, mas deve rejeitar a cadeia 100>100) ;

b) verificar se um número binário é divisível por outro; (** trabalhoso)

c) verificar se um número binário é primo (*** extremamente difícil, resolvido em 2002).

2. Considere o seguinte problema (problema dos convidados): Dado um conjunto P de pessoas e um conjunto I de incompatibilidades entre pares de pessoas em P, existe alguma maneira de dispor essas pessoas numa mesa redonda de forma a que não fiquem lado a lado duas pessoas incompatíveis? Por exemplo, dados P = {João, Maria, Ana, Rui} e I = {(João, Rui), (Maria, Ana)}, uma disposição possível é:

Page 45: Teoria Lista Exercicios 1.0

Se, adicionalmente, o João for incompatível com a Ana, não existe nenhuma disposição possível.

a) Diz-se que um problema de decisão pertence à classe NP (de algoritmo não determinístico de verificação em tempo polinomial), se pode ser resolvido em tempo polinomial por uma máquina de Turing não determinística, ou, equivalentemente, se uma solução pode ser verificada em tempo polinomial por uma máquina de Turing determinística (em última instância, um algoritmo determinístico de tempo polinomial).

Mostre que este problema pertence à classe NP.

b) Diz-se que um problema de decisão P1 é redutível a outro problema de decisão P2 em tempo polinomial se é possível converter em tempo polinomial os dados de entrada de uma instância de P1 a dados de entrada de uma instância equivalente de P2.

Mostre que este problema é redutível em tempo polinomial ao problema do circuito (ou ciclo) Hamiltoniano, e vice-versa. Recorde-se que um circuito Hamiltoniano num grafo não dirigido é um circuito simples (sem vértices duplicados) que passa em todos os vértices.

Que pode concluir acerca da dificuldade relativa de resolução dos dois problemas (problema do circuito Hamiltoniano e problema dos convidados)?

c) Diz-se que um problema de decisão é NP-completo se qualquer problema pertencente à classe NP pode ser reduzido àquele em tempo polinomial.

Sabendo que o problema do circuito Hamiltoniano é NP-completo, que pode concluir acerca do problema dos convidados?

d) Ainda ninguém conseguiu encontrar um algoritmo capaz de resolver em tempo polinomial qualquer dos problemas NP-completos conhecidos. Consegue resolver o problema dos convidados em tempo polinomial no número de pessoas (para qualquer conjunto de pessoas e incompatibilidades)?

3. Carcterize o problema da parada.

4. Qual a relação entre as seguintes classes de problemas:

João

MariaAna

Rui

Page 46: Teoria Lista Exercicios 1.0

a) Decidíveis (solucionáveis)b) Semi-decidíveis (Parcialmente solucionáveis) (computáveis)c) Indecidíveis (Não-solucionáveis)e) Completamente indecidíveis (insolucionáveis)

Decidibilidade e Teorema da incompletude de Gödel

1. O que diz o primeiro teorema de Godel?

2. O que diz o segundo teorema de Godel?

3. O que se entende por incompletude?

4. Fale sobre o teorema da imcopletude de Godel.

5. Como podemos provar o teorema da incopletude de Godel?

6. O que é um problema indecidível?

7. Provar que os problemas abaixo são indecidíveis e semi-decidíveis.

a) O problema de determinar se dois programas são equivalentes.

b) O problema da parada da palavra vazia.

Princípio de Redução.

1. Em que consiste o princípio da redução?2. Em que áreas de ciência é usado o principio da redução?3. Como o princípio da redução pode ser útil?