COMPUTABILIDADE 2. Indecidibilidade

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

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

COMPUTABILIDADE 3. Funções Parciais Recursivas

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

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

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

Computabilidade e Complexidade (ENG10014)

Faculdade de Computação

Linguagens Formais e Autômatos Decidibilidade

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

Aula 10: Decidibilidade

Aula 10: Decidibilidade

Teoria da Computação. Computabilidade e complexidade computacional

Máquinas de Turing - Computabilidade

SCC-5832 Teoria da Computação

6. Decidibilidade, indecidibilidade e decidibilidade parcial

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

SCC Teoria da Computação e Linguagens Formais

Linguagens recursivamente enumeráveis

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

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

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

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

A Teoria Matemática que serviu como Base para Turing.

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

SCC Introdução à Teoria da Computação

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

Linguaguens recursivamente enumeráveis e recursivas

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

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

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

Computabilidade e Complexidade (ENG10014)

Teoria da Computação

Máquinas de Turing 3

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áquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

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

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

Linguagens Formais e Problemas de Decisão

Universidade da Madeira Ano lectivo 2006/07-2º semestre Responsável: Prof. José Carmo

Teoria da Computação. Aula 01

Lógica Computacional Aulas 8 e 9

Aulas Práticas. 1ª Aula Prática Perguntas sobre a Implementação de Funções Simples na Máquina URM...1

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Complexidade computacional

Análise I Solução da 1ª Lista de Exercícios

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

Máquinas de Turing: uma introdução

Exercícios de Teoria da Computação Computabilidade

Os números inteiros. Álgebra (Curso de CC) Ano lectivo 2005/ / 51

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Teoria da Computação. Computabilidade e complexidade computacional

INTRATABILIDADE e NP-COMPLETUDE

Máquinas de Turing 3

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

Teoria da Computação. Computabilidade

O problema da parada. Problemas como linguagens. 1. O que um computador pode fazer? Existem limites? Se sim, que

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Capítulo 2: Procedimentos e algoritmos

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014

Exercícios de Teoria da Computação Computabilidade

Lógica Matemática - Quantificadores

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

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

MÓDULO II - PARTE II LÓGICA DOS PREDICADOS

Transcrição:

Licenciatura em Ciências da Computação COMPUTABILIDADE 2. Indecidibilidade José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho 15 de Novembro de 2011

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 2/18 Um problema de decisão é uma coleção de questões, cada uma das quais admite como resposta sim ou não. EXEMPLO Seja, para cada n > N, Pˆn a questão n é um quadrado perfeito?. O problema P consiste portanto das perguntas: Pˆ1 : 1 é um quadrado perfeito? Pˆ2 : 2 é um quadrado perfeito? Pˆ3 : 3 é um quadrado perfeito? Este problema pode ser visto como um predicado Pˆn, que envolve um único parâmetro (ou variável) n e cujo domínio é N. Cada Pˆk diz-se uma instância do problema.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 3/18 PROBLEMAS DECIDÍVEIS DEFINIÇÃO Uma solução para um problema de decisão P é um algoritmo que fornece a resposta para cada instância do problema. Um problema que admite uma solução diz-se solúvel ou decidível. Caso contrário diz-se insolúvel ou indecidível.

Outros exemplos de problemas de decisão: 1 Dado um número inteiro n, n é um número primo? 2 Dados um autómato finito determinista A e uma palavra w, tem-se w > LˆA? 3 Dadas uma máquina de Turing T e uma palavra w, tem-se w > LˆT? 4 Dadas uma linguagem regular L e uma palavra w, tem-se w > L? 5 Seja L uma linguagem recursiva. Dada uma palavra w, tem-se w > L? 6 Dada uma palavra w > x, y, tem-se w > AutoAceite? 7 Dada uma máquina de Turing T, será que T aceita o seu código cˆt? 8 Problema da paragem: Dadas uma máquina de Turing T e uma palavra w, será que T pára com w? 9 Problema da aceitação: Dadas uma máquina de Turing T e uma palavra w, será que T aceita w? José Carlos Costa DMA-UMinho 15 de Novembro de 2011 4/18

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 5/18 Dos problemas anteriores, são decidíveis o 1, o 2, o 4 e o 5. Note-se que o problema 6 é indecidível devido à linguagem AutoAceite ser não recursiva. Não existe um algoritmo que decida AutoAceite. No entanto esta linguagem é recursivamente enumerável. Diz-se então que o problema 6 é semi-decidível (isto significa que existe uma máquina de Turing que permite responder nos casos afirmativos, ou seja, nos casos em que w é uma palavra de AutoAceite).

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 6/18 CODIFICAÇÃO DE PROBLEMAS DEFINIÇÃO Seja P um predicado de domínio D, um conjunto enumerável. Para cada d > D, Pˆd é uma afirmação verdadeira ou falsa. Suponhamos que existe uma aplicação injectiva e D Ð A, onde A é um alfabeto. Seja L P eˆd > A Pˆd é verdadeira. A linguagem L P é dita a codificação do problema P. Diz-se que P é um problema: decidível se L P é uma linguagem recursiva. indecidível se não é decidível. semi-decidível se L P é uma linguagem recursivamente enumerável.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 7/18 INDECIDIBILIDADE DO PROBLEMA DA ACEITAÇÃO PROBLEMA DA ACEITAÇÃO DADOS: uma máquina de Turing T e uma palavra w. AFIRMAÇÃO: T aceita w. TEOREMA O problema da aceitação é indecidível mas semi-decidível. Demonstração: O problema da aceitação pode ser codificado pela linguagem L A cˆt cˆw > x, y T aceita w. Portanto, o problema da aceitação é indecidível se L A não é recursiva. Suponhamos, por contradição, que L A é recursiva e mostremos que, então, a linguagem AA é recursiva.

INDECIDIBILIDADE DO PROBLEMA DA ACEITAÇÃO Seja T A uma máquina de Turing que decide L A e seja T AA T 1 T A onde T 1 é uma máquina de Turing, de alfabeto de entrada x, y, que transforma a fita da forma w em wcˆw. Verifiquemos que T AA decide AA. Por um lado, se w > AA, então w cˆt para alguma máquina de Turing T que aceita w. Logo, T AA aceita w dando como resultado 1 pois wcˆw cˆt cˆw > L A e T A decide L A. Por outro lado, se T AA dá como resultado 1 para a entrada w, então wcˆw > L A. Isto significa que wcˆw cˆt œ cˆw œ para alguma máquina de Turing T œ e alguma palavra w œ tais que T œ aceita w œ. Da definição da função de codificação resulta que cˆw cˆw œ e portanto que w w œ cˆt œ o que mostra que w > AA. José Carlos Costa DMA-UMinho 15 de Novembro de 2011 8/18

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 9/18 INDECIDIBILIDADE DO PROBLEMA DA ACEITAÇÃO Conclui-se assim que T AA decide AA, o que é uma contradição pois já sabemos que AA não é recursiva. Portanto L A não é recursiva e o problema da aceitação é indecidível. Para mostrar que o problema da aceitação é semi-decidível basta notar que L A é reconhecida pelas máquinas de Turing universais. De facto, se T U é uma máquina de Turing universal, tem-se que T aceita w se e só se T U aceita cˆt cˆw. Ou seja, cˆt cˆw > L A se e só se T U aceita cˆt cˆw. Portanto, T U aceita L A, o que mostra que L A é uma linguagem recursivamente enumerável e que o problema da aceitação é semi-decidível. j

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 10/18 REDUÇÃO DE UM PROBLEMA A OUTRO DEFINIÇÃO Sejam P e P œ dois problemas de decisão, de domínios D e D œ respectivamente. Diz-se que P é redutível a P œ (ou que P se reduz a P œ ), e escreve-se P B P œ, se existe uma máquina de Turing R que transforma cada instância Pˆd do problema P numa instância P œˆd œ do problema P œ de tal forma que Pˆd é verdadeira se e só se P œˆd œ é verdadeira.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 11/18 REDUÇÃO DE UM PROBLEMA A OUTRO OBSERVAÇÕES 1 Note-se que a máquina de Turing R da definição anterior aplica cada elemento d > D num elemento d œ > D œ. Podemos portanto dizer que P B P œ se existe uma função computável r D Ð D œ tal que Pˆd é válida se e só se P œˆr ˆd é válida. 2 Uma formulação alternativa da definição anterior é a seguinte. Sejam P e P œ dois problemas de decisão e sejam L P b A e L P œ b B codificações de P e P œ, respectivamente. Então P B P œ se existe uma função computável r A Ð B tal que w > L P se e só se r ˆw > L P œ.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 12/18 APLICAÇÃO DA REDUTIBILIDADE A QUESTÕES DE DECIDIBILIDADE PROPOSIÇÃO Sejam P e P œ dois problemas de decisão tais que P B P œ. a) Se P œ é decidível, então P é decidível. b) Se P é indecidível, então P œ é indecidível. c) Se P œ é semi-decidível, então P é semi-decidível. Como consequência da alínea b) desta proposição e do facto de já sabermos que o problema da aceitação é indecidível, pode-se provar que o problema da paragem é também indecidível (ver o Exercício 2.4). Podemos agora apresentar mais alguns exemplos de problemas indecidíveis.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 13/18 TEOREMA Os seguintes problemas são indecidíveis. 1 Aceita ɛˆt : T aceita ɛ. 2 Pára ɛˆt : T pára com ɛ. 3 AceitaNadaˆT : LˆT g. 4 AceitaTudoˆT : LˆT A, onde A é o alfabeto de T. Demonstração: 1 Para mostrar que Aceita ɛ é indecidível basta provar que o problema da aceitação se reduz a Aceita ɛ. Dadas uma máquina de Turing T e uma palavra w, seja T w Escreve w T onde Escreve w é a MT que, começando com a palavra vazia termina com w. Então T aceita w T w aceita ɛ. Como a função ˆT, w ( T w é computável, deduz-se que AceitaçãoB Aceita ɛ e conclui-se que Aceita ɛ é indecidível.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 14/18 2 Dado que já sabemos que o problema da paragem é indecidível, basta provar que esse problema se reduz a Pára ɛ. Ora, dadas uma MT T e uma palavra w, tem-se que T pára com w T w pára com ɛ. Logo ParagemB Pára ɛ, donde se conclui que Pára ɛ é indecidível. 3 Mostremos que Aceita ɛ se reduz a AceitaNada. Dada uma MT T, seja ApagaFita T T g onde ApagaFita é a MT que transforma x em. Então T aceita ɛ T g aceita alguma palavra. Como a função ˆT, w ( T g é computável, deduz-se que Aceita ɛ B AceitaNada. Como Aceita ɛ é indecidível, AceitaNada também o é. Logo AceitaNada também é indecidível.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 15/18 4 Note-se que T aceita ɛ T g aceita A. Logo Aceita ɛ B AceitaTudo, donde AceitaTudo é indecidível. j COROLÁRIO Os problemas 1 AceitaNadaˆT : LˆT x g ; 2 AceitaTudoˆT : LˆT x A, onde A é o alfabeto de T ; são indecidíveis.

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 16/18 DEFINIÇÃO Um problema P, de domínio D, diz-se trivial se: ou ou Pˆd é uma afirmação verdadeira para todo o d > D, Pˆd é uma afirmação falsa para todo o d > D. Em particular, se P é um problema sobre linguagens recursivamente enumeráveis, ou seja, se D L L é uma linguagem recursivamente enumerável, então P é trivial se todas as linguagens de D satisfazem P ou nenhuma o satisfaz.

TEOREMA [RICE, 1953] Se P é uma propriedade não trivial sobre linguagens recursivamente enumeráveis, então P é indecidível. EXEMPLOS Os problemas seguintes, sobre uma linguagem recursivamente enumerável L b A, são indecidíveis. 1 ɛ > L. 2 L g. 3 L A. Note-se que o Teorema de Rice estabelece que qualquer problema envolvendo a linguagem aceite por uma máquina de Turing, ou é trivial, ou é indecidível. No entanto, nem todos os problemas sobre máquinas de Turing são indecidíveis, como mostra o próximo resultado. José Carlos Costa DMA-UMinho 15 de Novembro de 2011 17/18

José Carlos Costa DMA-UMinho 15 de Novembro de 2011 18/18 TEOREMA O seguinte problema é decidível. Escreve Não Branco: Dada uma máquina de Turing T, será que T escreve algum símbolo não branco quando é iniciada com a fita vazia? Demonstração: Suponhamos que T tem n estados. Em n passos, ou T atinge uma configuração de paragem ou T passa duas vezes no mesmo estado q. Se até essa altura nenhum símbolo branco foi escrito, então nunca o será. Isto é evidente no 1º caso, ou seja, no caso de T parar em menos de n passos. No 2º caso, T repete sempre os mesmos passos entre duas passagens por q, entrando assim em ciclo. Portanto, um algoritmo de decisão para este problema é executar T durante n passos, se não parar antes: T escreve um símbolo não branco se e só se o faz durante esse período.