Prévia do material em texto
Lista de Exerc´ıcios de Teoria da Computac¸a˜o Campus de Sorocaba da UFSCar Prof. Jose´ de Oliveira Guimara˜es Para facilitar a resoluc¸a˜o dos exerc´ıcios, voceˆ pode assumir que o alfabeto da MT e´ composto apenas por 0, 1 e espac¸o. A menos de menc¸a˜o em contra´rio, todas as entradas para uma MT e´ um nu´mero inteiro em bina´rio. Usamos < a, b > para a codificac¸a˜o dos nu´meros a e b. Enta˜o uma codificac¸a˜o poss´ıvel poderia ser < ., . >: N2−→N tal que < a, b >= 2a(2b + 1) 1 no qual x y e´ igual a x − y se x − y > 0 ou 0 caso contra´rio. Esta codificac¸a˜o e´ uma func¸a˜o bijetora (na˜o precisaria ser). A func¸a˜o sg : N−→N retorna 1 se x > 0 e 0 se x = 0. Usamos < M > para a codificac¸a˜o da MT M e M(x) para o resultado que a MT M produz com entrada x. Se M na˜o parar a sua execuc¸a˜o, escrevemos M(x) ↑. Se parar, podemos escrever M(x) ↓. Um enumerador e´ uma MT com duas fitas que ignora a sua entrada e escreve nu´meros na segunda fita, separados por brancos. Os nu´meros da segunda fita fazem parte de um conjunto recursivamente enumera´vel. Seja S o conjunto de todas as linguagens sobre {0, 1}, 2N o conjunto de todas as func¸o˜es de N em {0, 1}, NN o conjunto de todas as func¸o˜es de N em N, T o conjunto de todas as ma´quinas de Turing e TD o conjunto de todas as MT de decisa˜o (a cada uma delas esta´ associada uma linguagem). Usamos (*) para os exerc´ıcios mais importantes. Questo˜es 1. (*) Desenhe a a´rvore de execuc¸a˜o de uma MT na˜o determin´ıstica de decisa˜o com certa entrada x, mostrando todos os poss´ıveis casos (retorna 0, 1 ou na˜o pa´ra). Esta questa˜o pede apenas um esboc¸o do que pode acontecer, na˜o e´ necessa´rio utilizar um exemplo real de MT. O que representa cada ve´rtice da a´rvore? E as folhas? 2. Baseado na a´rvore da questa˜o anterior, mostre porqueˆ a simulac¸a˜o de uma MTND por uma MT determin´ıstica que utiliza busca em profundidade na a´rvore de execuc¸a˜o na˜o funciona. 3. Explique como funciona uma MT determin´ıstica M que simula a execuc¸a˜o de uma MT na˜o determin´ıstica N . 4. Fac¸a uma MT que soma dois nu´meros dados como entrada em una´rio e separados por um u´nico branco. 5. Fac¸a uma MT que soma dois nu´meros dados como entrada em bina´rio. 6. Fac¸a uma MT que decida a linguagem L = {2 ∗ n : n ∈ N}. 7. (*) Fac¸a uma MT que decida a linguagem L = {2n : n ∈ N}. 1 8. Explique as diferenc¸as entre uma MT e um autoˆmato finito. 9. Um certo tipo de MT chamado de MTDir permite apenas movimentos para a direita. Este tipo de ma´quina de Turing permite realizar qualquer computac¸a˜o? Sena˜o, elas teˆm o poder de qual outro tipo de autoˆmato? 10. Um certo tipo de MT chamado de MTDir2 permite apenas movimentos para a direita e, apo´s um destes movimentos, um u´nico movimento para a esquerda, depois do qual deve ser feito um outro movimento para a direita. Se a ma´quina tenta fazer dois movimentos para a esquerda em sequeˆncia ela pa´ra. Este tipo de ma´quina de Turing permite realizar qualquer computac¸a˜o? Sena˜o, elas teˆm o poder de qual outro autoˆmato? 11. Explique as diferenc¸as entre uma MT e uma MT de decisa˜o. 12. (*) Seja M uma ma´quina de Turing qualquer (que sempre toma um elemento de Σ? como paraˆmetro). Enta˜o M ′(x) = if M(x) > 0 then 1 else 0 e´ uma MT de decisa˜o? 13. Toda MT que retorna 0 ou 1, quando termina, e´ uma MT de decisa˜o? 14. Toda MT que sempre termina e´ uma MT de decisa˜o? 15. Mostre como construir uma MT de uma u´nica fita que simula uma MT com duas fitas. 16. (*) Mostre como construir uma MT de uma u´nica fita que simula uma MT com k > 1 fitas. 17. M e´ uma MT com uma fita infinita em ambas as direc¸o˜es. Construa uma MT M ′ com uma fita infinita em apenas uma das direc¸o˜es que simula M . 18. M e´ uma MT com uma fita infinita em apenas uma das direc¸o˜es (como as MT do livro do Sipser). Construa uma MT M ′ com uma fita infinita em ambas as direc¸o˜es que simula M . Cuidado, na˜o e´ completamente trivial. 19. Uma MT com uma fita com ce´lulas numeradas 0, 1, 2, . . . possui mais ce´lulas do que uma MT com ce´lulas numeradas . . .− 2,−1, 0, 1, 2, . . .? Prove a sua afirmac¸a˜o. 20. (*) Uma MT com k > 1 fitas possui mais ce´lulas do que uma MT com uma u´nica fita? Prove! 21. Que conceitos estudados na disciplina “Matema´tica Discreta” esta˜o sendo utilizados em “Teoria da Computac¸a˜o”? 22. Cada linguagem recursiva esta´ associada a pelo menos uma ma´quina de Turing. O conjunto das MTs e´ enumera´vel. Prove que Rec, o conjunto de todas as linguagens recursivas e´ enumera´vel. 23. Sendo L uma linguagem qualquer, prove que L e´ enumera´vel (S e´ enumera´vel se S ∼ N ou S e´ finito). 2 24. (*) Prove que existem linguagens que na˜o podem ser decididas por nenhuma MT. 25. (*) Enuncie o teorema de Church-Turing (algumas vezes chamado apenas de Teorema de Church). Explique-o. 26. Deˆ exemplo de uma linguagem recursivamente enumera´vel (computacionalmente enumera´vel). 27. (*) Deˆ exemplo de uma linguagem recursivamente enumera´vel (r.e ou c.e.) que na˜o seja recursiva. 28. (*) Fac¸a um enumerador para o conjunto dos nu´meros pares. 29. Deˆ exemplo de uma linguagem que na˜o seja r.e. 30. Fac¸a uma MT que escreva os nu´meros inteiros na fita, sendo dois nu´meros separados por branco. Isto e´, fac¸a um enumerador para o conjunto N. Naturalmente, a ma´quina nunca ira´ parar. 31. (*) Dada uma MT M , podemos construir uma outra ma´quina de Turing N com treˆs fitas que escreve na primeira fita os nu´meros inteiros, sendo dois deles separados por um branco e simule: (a) o primeiro passo da execuc¸a˜o de M com entrada 0. As simulac¸o˜es sa˜o feitas na segunda fita; (b) o segundo passo da execuc¸a˜o de M com entrada 0 e o primeiro passo da execuc¸a˜o de M com entrada 1; (c) o terceiro passo da execuc¸a˜o de M(0), o segundo passo de M(1), o primeiro passo de M(2); (d) e assim por diante. Quando uma computac¸a˜o pa´ra, a entrada e´ escrita na terceira fita, precedida de um espac¸o em branco. Isto e´, quando M(n) pa´ra, unionsqn e´ escrito na terceira fita. Formalize o algoritmo dado acima usando s´ımbolos para “o n-e´simo passo da execuc¸a˜o de M(x)”. 32. Dada uma MT M , descreva uma outra ma´quina de Turing que enumere o domı´nio de M , isto e´, o conjunto {x : M(x) ↓}. 33. Usando a mesma te´cnica da questa˜o anterior, e´ poss´ıvel enumerar os elementos do conjunto {x : M(x) ↑} ? 34. (*) Prove que, se uma linguagem L e´ recursiva, enta˜o L e´ r.e. 35. (*) Prove que, se L e´ recursiva, Lc = Σ? − L e´ recursiva. 36. (*) Prove que, se L e Lc sa˜o recursivamente enumera´veis, L e Lc sa˜o recursivas. 37. (*) Sejam ML e MK MTs que decidem as linguagens L e K, respectivamente. Escreva a linguagem decidida por cada uma das ma´quinas abaixo. (a) M1(x) = sg(ML(x) + MK(x)) 3 (b) M2(x) = ML(x) ∗ (1−MK(x)) (c) M3(x) = ML(x) ∗MK(x) (d) M4(x) = 1−ML(x) (e) M5(x) = 1−M1(x) 38. (*) Considere um procedimento int teste(X, Y) { return 1 - Resultado(X, Y); } no qual: (a) X e Y sa˜o inteiros (na˜o limitados a quatro bytes); (b) <teste> e´ uma codificac¸a˜o de teste (o nu´mero inteiro que representa esta func¸a˜o); (c) Resultado e´ uma func¸a˜o que toma uma codificac¸a˜o de uma MT M de decisa˜o como primeiro paraˆmetro e uma entrada x para esta MT como segundo paraˆmetro e retorna o resultado de M(x). Enta˜o podemos fazer teste(<teste>, <teste>) O que provamos? Explique detalhadamente o seu racioc´ınio. 39. (*) O que e´ uma MT Universal? Quantas MT universais existem? Uma MT universal sempre pa´ra o seu processamento? 40. Seja U uma MT Universal que e´ executada como U(< M >, x) e que retorna na˜o M(x) mas M(x) + 1 (assim U nunca retorna 0). Seja Us(< M >, x) a aplicac¸a˜o de U por s passos. Se depois de s passos a ma´quina M parou, o valor retornado por U e´ M(x). Sena˜o Us(< M >, x) = 0. Descreva o conjuntoSM = {x : ∃s Us(< M >, x) > 0} Observe que fixamos a ma´quina M . Para cada M ha´ um conjunto diferente. 41. (*) Uma MT M computa uma certa func¸a˜o f (enta˜o M sempre pa´ra a sua execuc¸a˜o). Mostre que existem infinitas MTs que computam f . Mostre como construir explicitamente estas ma´quinas. 42. Seja M0,M1,M2, . . . uma enumerac¸a˜o de todas as ma´quinas de Turing que sempre param a sua execuc¸a˜o (admita que isto seja poss´ıvel). Considere agora a MT M(x) = Mx(x) + 1 Assuma que e´ poss´ıvel implementar M (e´ poss´ıvel mesmo, apesar de M utilizar um ı´ndice x em Mx(x)). Pergunta-se: M sempre pa´ra? Se sim, enta˜o M esta´ na lista M0,M1,M2, . . ., na˜o? Enta˜o 4 M = Me para algum e. Derive uma contradic¸a˜o com este fato. Dica: fac¸a x = e na definic¸a˜o de M . 43. (*) Seja H = {< M > unionsqx : M(x) ↓}. Prove que H na˜o e´ recursiva. 44. Prove que S ∼ 2N. Dica: para descobrir a func¸a˜o f ∈ 2N que esta´ associado a uma linguagem L ∈ S, primeiro fac¸a uma enumerac¸a˜o dos elementos de L. Associe esta enumerac¸a˜o a f(0), f(1), f(2), etc. 45. (*) Prove que [0, 1] ∼ 2N. 46. Encontre uma func¸a˜o bijetora entre o conjunto de todas as linguagens sobre {0, 1} e o conjunto [0, 1]. 47. Explique porqueˆ TD ∼ T . Dica: ambas sa˜o enumera´veis. 48. (*) Fac¸a um diagrama de Venn mostrando os conjuntos de linguagens R (regular), LLC (livres de contexto), LSC (sens´ıveis ao contexto), LEF (estrutura de frase), Rec (recursivas) e RE (recursivamente enumera´veis). 49. Explique o que e´ TIME(f). Deˆ exemplo de linguagens em TIME(n) e TIME(nk), k > 1 de sua escolha. 50. Explique o que e´ SPACE(f). Deˆ exemplo de linguagens em SPACE(n). 51. (*) Uma MT executa por t passos. Enta˜o no ma´ximo quantas ce´lulas diferentes da fita ela utilizou? Isto e´, qual, no ma´ximo, o espac¸o utilizado pela MT? Conclua que se L ∈ TIME(n) enta˜o L ∈ SPACE(n). Mais geralmente, se L ∈ TIME(f), enta˜o L ∈ SPACE(f). 52. Suponha que uma MT M na˜o determin´ıstica sempre tem dois caminhos a escolher em cada passo (qualquer MT na˜o determin´ıstica pode ser modificada para que isto seja verdade). Enta˜o depois de t passos, quantas folhas, no pior caso, possui a a´rvore que mostra todas as computac¸o˜es poss´ıveis da MT? Se M executa em tempo polinomial, nk para algum k, qual o tempo de execuc¸a˜o de uma MT determin´ıstica que simula a execuc¸a˜o de todos as escolhas poss´ıveis com dada entrada? 53. Deˆ exemplo de duas linguagens pertencentes a` classe P . 54. (*) Deˆ exemplo de duas linguagens da classe NP . 55. (*) Explique porqueˆ, se as MT M e R executam em tempo polinomial, a composic¸a˜o delas tambe´m executa em tempo polinomial. Isto e´, M ′(x) = M(R(x)) tambe´m executa em tempo |x|k para algum k. Dicas: assuma que R execute em tempo nk e M em tempo nm no qual n = |x| e´ o nu´mero de ce´lulas da entrada (que e´ tambe´m o nu´mero de bits da entrada). A sa´ıda de R tem no ma´ximo quantas ce´lulas? Qual e´ a entrada para M na composic¸a˜o M(R(x)) ? 56. Explique o que e´ a reduc¸a˜o polinomial. Quando uma linguagem L e´ redut´ıvel polinomialmente a uma linguagem K? 5 57. Suponha que L e´ redut´ıvel polinomialmente a K (L 6P K) e K 6P SAT . Enta˜o temos L 6P SAT ? 58. Suponha que SAT 6P L. Mostre que qualquer linguagem em NP e´ polinomialmente redut´ıvel a L. 59. A linguagem L da questa˜o anterior e´ NP-completa? Se na˜o, escreva as condic¸o˜es necessa´rias para que ela seja. 60. (*) Se L ∈ NP , K ∈ NP e temos SAT 6P L e L 6P K, enta˜o SAT 6P K. Isto quer dizer que ambas L e K sa˜o NP-completas? 61. (*) Uma linguagem L e´ redut´ıvel a SAT por uma MT R que executa em tempo n3 e que produz sa´ıdas de tamanho |x|2 sendo |x| a entrada de R. Suponha que foi encontrado uma MT M que decida SAT em tempo n5. Usando a reduc¸a˜o de L a SAT atrave´s de M e R, qual a complexidade da MT M(R(x)) que decide L? 6