UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Solução da Lista de Exercícios n o 6 - Problemas Indecidiveis Exercicio 7-5.5 do Livro Sipser Mostrar que A T M não é redutível a E T M. Solução: Sabemos que E T M é Turing-Reconhecivel (reveja a demonstração dada em aula!!). Se A T M fosse redutível a E T M então A T M seria redutível a E T M (reveja a demonstração dada em aula!!). Como E T M é Turing-reconhecivel então A T M seria Turing-reconhecivel, o que não é verdade, pois sendo A T M Turing-reconhecivel isto implicaria que A T M seria decidivel. Absurdo! Logo A T M não pode ser redutível a E T M. Exercicio 8-5.6 do Livro Sipser Mostrar que a relação m de redução entre problemas é uma relação transitiva. Solução: Suponha que A m B e B m C. Então existe máquina de Turing M1 que transforma instâncias positivas (resp. negativas) do problema A em instâncias positivas (resp. negativas) do problema B. E existe máquina de Turing M 2 que transforma instâncias positivas (resp. negativas) do problema B em instâncias positivas (resp. negativas) do problema C. Logo a máquina composta M1.M2 transforma instâncias positivas (resp. negativas) do problema A em instâncias positivas (resp. negativas) do problema C. Logo A m C. Exercicio 9-5.7 do Livro Sipser Se A é Turing-Reconhecivel e A m A então A é decidivel. Solução: Se A m A então A m A e portanto A m A. Logo, devido a esta redução e do fato de A ser Turing-reconhecível, concluimos que A é Turing-reconhecível. Logo, tanto A quanto A são Turing-reconhecíveis, o que implica que A é decidível. Exercicio 10-5.4 do Livro Sipser Se A m B e B é uma linguagem regular, isto implica que A é uma linguagem regular? Solução: Isto não é verdade. Considere o seguinte contraexemplo: Seja A = {w w {0, 1}, w = w R } = palindromos. A é sabidamente uma linguagem livre do contexto mas não regular (aplique o lema do bombeamento para linguagens regulares!!). Seja B = 0. Afirmamos que existe uma redução de A para B. A redução é feita da seguinte maneira. Considere a seguinte máquina de Turing f: 1
No input w faça: 1. n = comprimento de w. 2. testa se w é um palíndromo. 3. Se for, faça f(w) = 0 n. 4. Se não for faça f(w) = 1 n Logo: f(w) B se e somente se w A. Portanto f é uma redução de A em B, B é regular e A não é. Veja que se w é a palavra vazia então w é um palindromo, e portanto f(w) = ɛ (palavra vazia) B. Exercicio 11-5.9 do Livro Sipser Seja T = {< M > M é uma M.T. que aceita w R sempre que aceitar w }. Mostre que T é indecidivel. Solução: O conjunto T é composto por códigos de máquina de Turing M tais que L(M) é vazia ou L(M) é constituida de pares de strings w, w R (isto é, se w L(M) então w R L(M). Mostremos que existe uma redução f : A T M T. Seja < M, w >, onde M é uma máquina de Turing e w um string. Seja f(< M, w >) = M 1 definida da seguinte maneira: M 1 = No input x faça: 1. se x 10 e x 01 rejeita 2. Se x = 10 aceita. 3. Se x = 01, 4. Executa M em w. 5. Se M aceita w, aceita. 6. Se M rejeita w, rejeita. Repare que L(M 1 ) = {10, 01} se M aceita w. L(M 1 ) = {10}, caso contrário. Logo, < M, w > A T M se e somente se M 1 T. Exercicio 12-5.10 do Livro Sipser Considere o problema de determinar se uma máquina a duas fitas em algum momento escreve um branco na segunda fita quando executada sobre o input w dado. Formule este problema como uma linguagem e mostre que é indecidivel. Solução: Linguagem correspondente : B = {< M, w > M é uma máquina a 2 fitas que escreve um simbolo branco (b) na segunda fita ao ser executada em w }. 2
Mostremos que A T M m B, isto é, existe M.T f : A T M B que é uma redução. Dado < M, w >, considere a seguinte máquina de Turing M 1 a duas fitas : M 1 = No input x na 1a fita faça: 1. Usa a 1a fita para testar se x = w. 2. Se x w, entra em qr. 3. Se x = w 4. Simula a execução de M em w na primeira fita 5. Se M aceita w, escreve um branco na segunda fita. A máquina M 1 escreve um branco na 2a fita se e somente se M aceita w. Exercicio 13-5.11 do Livro Sipser Considere o problema de determinar se uma máquina a duas fitas em algum momento escreve um branco na segunda fita durante sua execução sobre qualquer input. Formule este problema como uma linguagem e mostre que é indecidivel. Solução: Linguagem correspondente B = {< M, w > M é uma máquina a 2 fitas que escreve um simbolo branco (b) na segunda fita ao ser executada em qualquer string }. Mostremos que A T M m B, isto é, existe M.T f : A T M B que é uma redução. Dado < M, w >, considere a seguinte máquina de Turing M 1 a duas fitas : M 1 = No input x na 1a fita faça: 1. Simula a execução de M em w na primeira fita 2. Se M aceita w, escreve um branco na segunda fita e entra em qa. 3. Se M rejeita w, pára em qr. A máquina M 1 escreve um branco na 2a fita ao ser executada em um string qualquer se e somente se M aceita w. Exercicio 14-5.20 do Livro Sipser Prove que existe um subconjunto indecidivel de 1. Solução: Já provamos em sala de aula que a linguagem E T M = {< M > L(M) = } não é Turing reconhecivel (pois E T M é Turing reconhecivel (relembre esta demonstração)) e E T M é indecidivel. Consideremos a conjunto de números naturais : A = {n N n = < M > M E T M } Mostremos que este conjunto A é indecidivel. Suponha por absurdo que fosse. Vamos mostrar que se isto fosse verdade, então E T M seria Turing reconhecivel. Seja T uma máquina de Turing que decide A. Seja S a seguinte máquina de Turing: S = No input < M > faça: 1. Seja n = < M > ; 3
2. Executa T em n; 3. Se pára em qr, rejeita; 4. Se pára em qa, aceita. Afirmamos que S aceita E T M. De fato: se < M > E T M então n = < M > A. Logo T executada em n pára em qa. Logo S pára em qa. Logo E T M é Turing reconhecivel. Absurdo!! Portanto, A não é decidivel. Consideremos o subconjunto de 1 : {1 n n A}. Este subconjunto é indecidivel (pois se fosse decidivel, A também o seria). Exercicio 17-5.24 do Livro Sipser Seja J = {w w = 0x para algum x A T M ou w = 1y para algum y A T M. Mostre que nem J nem J são Turing reconheciveis. Solução: J não é Turing-reconhecível: Suponha que fosse. Seja M a máquina de Turing que reconhece J. Vamos transformar M numa máquina M 1 que reconhece A T M (o que é absurdo, já que A T M não é Turing-reconhecível. M 1 = No input y faça: 1. Execute M em 1y 2. Se aceita, responde sim. J não é Turing-reconhecível: Repare que w J se e somente se w = 1x, para x A T M ou w = 0y, para y A T M. Mostremos que J não é Turing-reconhecível. Suponha que o fosse. Seja M a máquina de Turing que reconhece J. Consideremos a seguinte máquina de Turing M 2 : M 2 = No input y faça: 1. Execute M em 0y. 2. Se aceita, responde sim. M 2 aceita A T M. Absurdo, pois A T M não é Turing-reconhecível. Exercicio 19-5.31 do Livro Sipser Se A T M fosse decidivel então o problema do 3x + 1 seria decidivel. O problema do 3x + 1 tem como input um número natural x e como pergunta : a sequência x, f(x), f(f(x)),... termina em 1 depois de um número finito de passos?. A funç ao f(x) = 3x + 1 se x é impar e f(x) = x 2 se x é par. 4
Solução: Denotamos f i (x) = f(f(...(f(x))...)) (i vezes) Consideremos a seguinte máquina de Turing M: M = No input x faça: 1. i := 0 2. Enquanto i >= 0 faça: 3. Seja a = f i (x) 4. Testa se a = 1. Se for, pára em qa. 5. Se não for: i:= i+1 Se A T M fosse decidivel, então o problema HALT T M também o seria. Seja S a máquina de Turing que decidiria HALT T M. Considere a seguinte máquina de Turing T : T = No input x faça: 1. Executa S em < M >. 2. Se S pára em qr, T pára em qr (rejeita x) 3. Se S pára em qa, T pára em qa (aceita x) A máquina T decide o problema 3x + 1. 5