Faculdade de Computação

Documentos relacionados
Faculdade de Computação

Computabilidade e Complexidade (ENG10014)

Aula 10: Decidibilidade

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Modelos de Computação Folha de trabalho n. 10

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada

Aula 10: Decidibilidade

COMPUTABILIDADE 2. Indecidibilidade

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Faculdade de Computação

Máquinas de Turing - Computabilidade

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

Teoria da Computação 31 de Maio de 2017 Teste 2A Duração: 1h30

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Máquinas de Turing 3

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão

I.2 Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Linguagens Formais e Problemas de Decisão

MAC-4722 Linguagens, Autômatos e Computabilidade Lista L3

Faculdade de Computação

Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Máquina de Turing. Controle finito

Lema do Bombeamento. Aplicação para Linguagens Regulares e Livres de Contexto. Maria Adriana Vidigal de Lima. Abril

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Capítulo 2: Procedimentos e algoritmos

Computabilidade e Complexidade (ENG10014)

Linguagens recursivamente enumeráveis

PCC104 - Projeto e Análise de Algoritmos

Definimos a soma de seqüências fazendo as operações coordenada-a-coordenada:

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

s Gabarito da 1. a Prova de PMA Fundamentos de Cálculo Prof. Wagner - 3 de maio de a PARTE

Máquinas de Turing 3

Linguagens Formais e Autômatos Decidibilidade

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações

SCC-5832 Teoria da Computação

Linguagens Formais e Autômatos P. Blauth Menezes

Aula 10: Tratabilidade

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25

SCC Teoria da Computação e Linguagens Formais

AF Não-determinísticos Equivalência entre AFND e AFD

Teoria da Computação. Computabilidade e complexidade computacional

Terceira Lista de Exercícios 2004/2...

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Introdução à Teoria da Computação Exercícios

Aula 9: Máquinas de Turing

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

Linguagens Formais e Autômatos

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

INTRATABILIDADE e NP-COMPLETUDE

a n Sistemas de Estados Finitos AF Determinísticos

Linguaguens recursivamente enumeráveis e recursivas

Máquinas de Turing: uma introdução

Teoria da Computação. Computabilidade

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Limites da Computação Algorítmica: Problemas Indecidíveis

Teoria da Computação

Transcrição:

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 8 - Indecidibilidade Exercicio 1-5.5 do Livro Sipser Mostrar que A T M não é redutível a E T M. 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 2-5.6 do Livro Sipser Mostrar que a relação m de redução entre problemas é uma relação transitiva. 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 3-5.7 do Livro Sipser Se A é Turing-Reconhecivel e A m A então A é decidivel. 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 4-5.4 do Livro Sipser Se A m B e B é uma linguagem regular, isto implica que A é uma linguagem regular? 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 5-5.9 do Livro Sipser Seja T = {< M > M é uma M.T. que aceita w R sempre que aceitar w }. Mostre que T é indecidivel. 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 6-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. 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 7-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. 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 8-5.20 do Livro Sipser Prove que existe um subconjunto indecidivel de 1. 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 9-5.22 do Livro Sipser Mostre que A é Turing-reconhecivel se e somente se A m A T M. Suponha que A é Turing-reconhecivel. Seja M uma máquina de Turing que ACEITA A (pára em qa para elementos de A). Mostremos que A m A T M. Considere a seguinte transformação f: A A T M : f(w) =< M, w >, onde M é a máquina que aceita A. É claro que w A se e somente se < M, w > A T M, já que w A se e somente se M aceita w. Se A m A T M então A é Turing-reconhecivel, pois A T M é Turing reconhecivel (reveja a demonstração disto). Exercicio 10-5.23 do Livro Sipser Mostre que A é decidivel se e somente se A m 0 1. Mostremos que se A é decidivel então A m 0 1. De fato: suponhamos que A é decidivel. Seja M uma máquina de Turing que decide A. Definimos a seguinte máquina de Turing: S = No input w faça: 1. Executa M em w. 2. Se M pára em qa: limpa a fita e escreve o string 01 na fita e pára. 3. Se M pára em qr: limpa a fita e escreve o string 10 na fita e pára. A máquina S sempre pára e: (1) se w A então S(w) 0 1 ; (2) se w A então S(w) 0 1. Logo: A m 0 1 Mostremos que se A m 0 1 então A é decidivel. 4

De fato: Se A m 0 1 então existe máquina de Turing M tal que M(w) 0 1 se e somente se w A. Como a linguagem 0 1 é decidivel, existe máquina de Turing S que decide se um string está ou não em 0 1. Logo a composição das máquinas M.S decide a linguagem A. Exercicio 11-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. 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 12-5.25 do Livro Sipser Dê exemplo de uma linguagem indecidivel B tal que B m B. Considere o conjunto J do exercício (11), isto é: J = {w w = 0x para algum x A T M ou w = 1y para algum y A T M }. Mostremos que J se reduz a J. Seja f a máquina de Turing definida da seguinte maneira: se w = 0x, então f(w) = 1x se w = 1x então f(w) = 0x. 5

É fácil ver que w J se e somente f(w) J. Exercicio 13-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. 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. Exercicio 14 Mostre que HALL T M = {< M > M pára em todos os strings} não é Turing reconhecivel. Mostremos que A T M m HALL T M. Isto implicará que HALL T M não é Turing reconhecivel (por que?) Llembre-se: se x é um string em {0,1}, pos(x) denota a posição do string x na ordenação de todos os strings de {0,1} pelo seu tamanho e em ordem lexicografica - Exemplo: pos(01) = 4) Considere a seguinte transformação f : A T M HALL T M, tal que f(< M, w >) = M 1, onde M 1 é a seguinte máquina de Turing: M 1 = No input x faça: 1. seja i = pos(x) 2. Executa i passos de M em w. 3. Se parou em qa em algum passo até o i-esimo, faça M 1 entrar em loop. 4. Caso contrário, aceita 6

Afirmamos que: (1) se M aceita w então M pára em qa ao ser executada em w. Seja n = número de passos até a parada. Então M 1 não pára em w. Logo < M 1 > HALL T M. (2) se M não aceita w, então L(M 1 ) = {0, 1}. Logo < M 1 > HALL T M. 7