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

Documentos relacionados
Computabilidade e Complexidade (ENG10014)

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

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

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

Máquinas de Turing - Computabilidade

Linguagens Não-Regulares

Problemas Computáveis

Aula 10: Decidibilidade

Aula 10: Decidibilidade

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

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

Linguagens Formais e Problemas de Decisão

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

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de

14.1 Linguagens decidíveis ou Turing reconhecíveis

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Linguagens Formais e Autômatos Decidibilidade

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

Universidade Federal de Alfenas

Teoria da Computação. Computabilidade e complexidade computacional

Universidade Federal de Alfenas

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

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

Matemática Discreta para Ciência da Computação

Autômatos Finitos e Não-determinismo

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

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

Modelos Universais de Computação

Faculdade de Computação

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Faculdade de Computação

LLC's: Lema do Bombeamento e Propriedades de Fechamento

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

Capítulo 2: Procedimentos e algoritmos

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

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

Capítulo 2. Conjuntos Infinitos

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

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

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

LINGUAGENS FORMAIS E AUTÔMATOS

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito

Linguagens Formais e Autômatos P. Blauth Menezes

Computabilidade e Complexidade (ENG10014)

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

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

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

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

Linguagens Formais e Autômatos (LFA)

Enumerabilidade. Capítulo 6

Linguagens Formais e Autômatos P. Blauth Menezes

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

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

S. C. Coutinho. Máquina de Turing Universal p. 1/22

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Livres-do-Contexto

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

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

1. Uma linguagem de uma máquina de Turing

LR's: Lema do Bombeamento e Propriedades de Fechamento

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

COMPUTABILIDADE 2. Indecidibilidade

Teoria da Computação 19 de Abril de 2017 Teste 1A Duração: 1h30

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

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

Terminologia, Técnicas de Prova, Enumerabilidade

a n Sistemas de Estados Finitos AF Determinísticos

Capítulo 0: Conjuntos, funções, relações

Problemas Algoritmicos

Gramáticas Livres de Contexto

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

PCC104 - Projeto e Análise de Algoritmos

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

A Tese de Church-Turing e Máquinas de Turing

Propriedades das Linguagens Livres do Contexto

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

Aulas 10 e 11 / 18 e 20 de abril

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

Turing e Complexidade

Universidade Federal de Alfenas

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

Lema do Bombeamento para Linguagens Livres do Contexto

Linguagens recursivamente enumeráveis

Aula 9: Máquinas de Turing

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não!

Máquina de Turing. Controle finito

Linguagens Formais e Autômatos Apresentação da Disciplina

Máquinas de Turing 3

printing problem: dado um programa e um valor arbitrários, o problema de determinar se sim ou não se vai obter como output do programa esse valor;

Variedades Adicionais das Máquinas de Turing

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não!

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

Linguaguens recursivamente enumeráveis e recursivas

2019/01. Estruturas Básicas: Conjuntos, Funções, Sequências, e Somatórios Área de Teoria DCC/UFMG /01 1 / 76

Transcrição:

Decidibilidade Mário S Alvim (msalvim@dccufmgbr) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 1 / 45

Decidibilidade: Introdução Na unidade anterior introduzimos a máquina de Turing (MT) como um modelo de computador de propósito geral Em particular, apresentamos a Tese de Church-Turing: Um problema tem solução algorítmica se, e somente se, ele tem solução em uma máquina de Turing Aqui vamos investigar os limites das soluções computacionais, mostrando que existem problemas que não têm solução computacional Mais precisamente, vamos estudar o conceito de insolubilidade em si mesmo Ser capazes de identificar quando um problema não tem solução computacional é útil para que saibamos que é preciso simplificá-lo Além disso, entender os limites intrínsecos da computação nos ajuda a compreender melhor o que é computar Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 2 / 45

Linguagens Decidíveis Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 3 / 45

Linguagens Decidíveis Vamos começar nosso estudo sobre decidibilidade identificando várias linguagens decidíveis relevantes Lembre-se de que: estudar linguagens é essencial porque todo problema de decisão pode ser descrito como um problema de linguagens, e a notação x denota a representação do objeto x como uma cadeia de símbolos Exemplo 1 O problema de decisão x + y = z, para x, y, z Z? é equivalente ao problema de decidir a pertinência de uma cadeia à linguagem L x+y=z = { x, y, z x, y, z Z e x + y = z} Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 4 / 45

Problemas decidíveis sobre linguagens regulares Vamos começar analisando os seguintes problemas de decisão sobre linguagens regulares: problema da aceitação: decidir se um autômato finito aceita uma cadeia; problema da vacuidade: decidir se a linguagem de um autômato finito é vazia; e problema da equivalência: decidir se dois autômatos finitos são equivalentes Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 5 / 45

Problemas decidíveis sobre linguagens regulares O problema da aceitação para AFDs concerne a seguinte linguagem: A AFD = { B, w B é um AFD que aceita a cadeia de entrada w} Teorema A AFD é uma linguagem decidível A prova está no livro-texto; aqui daremos sua essência Para mostrar que esta linguagem é decidível, temos que mostrar uma MT que decide A AFD A MT M abaixo faz exatamente isso M = Sobre a entrada B, w, onde B é um AFD, e w, uma cadeia: 1 Simule B sobre a cadeia de entrada w 2 Se a simulação termina em um estado de aceitação do AFD, aceite Se ela termina em um estado de não-aceitação do AFD, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 6 / 45

Problemas decidíveis sobre linguagens regulares O problema da aceitação para AFNs concerne a seguinte linguagem: A AFN = { B, w B é um AFN que aceita a cadeia de entrada w} Teorema A AFN é uma linguagem decidível A MT N abaixo decide A AFN N = Sobre a entrada B, w, onde B é um AFN, e w, uma cadeia: 1 Usando o algoritmo que já vimos neste curso para converter um AFN em um AFD, converta o AFN B em um AFD equivalente C 2 Rode a MT M do exemplo anterior, que decide A AFD, sobre a entrada C, w 3 Se M aceita, aceite; caso contrário, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 7 / 45

Problemas decidíveis sobre linguagens regulares O problema da expressão regular concerne a seguinte linguagem: A EXR = { R, w R é uma expressão regular que gera a cadeia w} Teorema A EXR é uma linguagem decidível A MT P abaixo decide A EXR P = Sobre a entrada R, w, onde R é uma expressão regular, e w, uma cadeia: 1 Usando o algoritmo que já vimos neste curso para converter uma ER em um AFN, converta a ER R em um AFN equivalente A 2 Rode a MT N do exemplo anterior, que decide A AFN, sobre a entrada A, w 3 Se N aceita, aceite; caso contrário, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 8 / 45

Problemas decidíveis sobre linguagens regulares O problema da vacuidade para AFDs concerne a seguinte linguagem: V AFD = { A A é um AFD e L(A) = } Teorema V AFD é uma linguagem decidível Note que um AFD aceita uma cadeia se é possível atingir um estado de aceitação a partir do estado inicial, passando pelas setas do AFD A MT T abaixo decide V AFD verificando se algum estado de aceitação é atingível a partir do estado inicial do AFD em questão T = Sobre a entrada A, onde A é um AFD: 1 Marque o estado inicial de A como atingível 2 Repita o passo (3) até que nenhum estado novo venha a ser marcado 3 Marque como atingível qualquer estado que tenha uma transição chegando nele a partir de qualquer estado que já esteja marcado como atingível 4 Se nenhum estado de aceitação estiver marcado como atingível, aceite; caso contrário, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 9 / 45

Problemas decidíveis sobre linguagens regulares O problema da equivalência de AFDs concerne a seguinte linguagem: EQ AFD = { A, B A e B são AFDs e L(A) = L(B)} Teorema EQ AFD é uma linguagem decidível Para provar este teorema vamos usar o resultado que já provamos de que V AFD é decidível (ou seja, é possível decidir se a linguagem de um AFD é vazia) Para isto, vamos construir a partir dos AFDs A e B um novo AFD C que aceita a diferença simétrica de L(A) e L(B), ou seja, L(C) contém toda cadeia que é aceita por A ou por B, mas não por ambos L(C) = ( ) L(A) L(B) ( ) L(A) L(B) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 10 / 45

Problemas decidíveis sobre linguagens regulares (Continuação) Note que L(A) = L(B) se, e somente se, L(C) = (Isto ocorre porque L(C) contém toda cadeia que está em L(A) mas não em L(B), ou está em L(B) mas não em L(A), e uma cadeia assim existe se, e somente se, L(A) L(B)) Agora note que podemos construir C a partir A e B usando as propriedades de fechamento das linguagens regulares sob união, complementação e interseção Estes são algoritmos que podem ser realizados por MTs Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 11 / 45

Problemas decidíveis sobre linguagens regulares (Continuação) Uma vez construído C, podemos usar a MT P para testar se a linguagem C é vazia; se ela for, L(A) = L(B) F = Sobre a entrada A, B, onde A e B são AFDs: 1 Construa o AFD C que reconhece a diferença simétrica de L(A) e L(B) 2 Rode a MT T construída para decidir se uma linguagem de um AFD é vazia sobre a entrada C 3 Se T aceita; senão, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 12 / 45

Problemas decidíveis sobre linguagens regulares Vamos agora tratar dos seguintes problemas de decisão sobre linguagens livres-do-contexto: problema da gramática: decidir se uma gramática livre-do-contexto (GLC) gera uma cadeia; problema da vacuidade: decidir se a linguagem de uma GLC é vazia; e problema da equivalência: decidir se duas GLCs são equivalentes Os problemas de decisão sobre linguagens livres-de-contexto (LLCs) são particularmente importantes porque linguagens de programação são LLCs Parte do trabalho de todo compilador é resolver o problema da gramática para GLCs! Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 13 / 45

Problemas decidíveis sobre linguagens livres-do-contexto O problema da GLC concerne a seguinte linguagem: A GLC = { G, w G é uma GLC que gera a cadeia w} Teorema A GLC é uma linguagem decidível A prova completa encontra-se no livro-texto, mas a MT S abaixo decide A GLC S = Sobre a entrada G, w, onde G é uma GLC, e w, uma cadeia: 1 Converta G para uma gramática equivalente na forma normal de Chomsky, usando o algoritmo visto neste curso 2 Liste todas as derivações com 2n 1 passos, onde n é o comprimento de w, exceto se n = 0; nesse último caso, liste todas as derivações com 1 passo 3 Se alguma dessas derivações gera w, aceite; se não, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 14 / 45

Problemas decidíveis sobre linguagens livres-do-contexto O problema da vacuidade para GLCs concerne a seguinte linguagem: V GLC = { G G é uma GLC e L(G) = } Teorema V GLC é uma linguagem decidível A MT S abaixo decide V GLC verificando se a variável de partida da GLC em questão consegue gerar uma cadeia formada apenas por terminais R = Sobre a entrada G, onde G é uma GLC: 1 Marque todos os símbolos terminais em G como útil 2 Repita o passo (3) até que nenhuma variável nova venha a ser marcada 3 Marque como útil qualquer variável A onde G tem uma regra A U 1U 2 U k e cada símbolo U 1, U 2,, U k já tenha sido marcado como útil 4 Se a variável inicial está marcada como útil, rejeite; caso contrário, aceite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 15 / 45

Problemas decidíveis sobre linguagens livres-do-contexto O problema da equivalência de GLCs concerne a seguinte linguagem: EQ GLC = { G, H G e H são GLCs e L(G) = L(H)} Teorema EQ GLC não é uma linguagem decidível Prova (discussão) A princípio poderíamos pensar que como EQ AFD é decidível, EQ GLC deveria ser também decidível, e que poderíamos provar isto usando uma técnica semelhante nos dois casos, verificando se a diferença simétrica (L(A) L(B)) (L(A) L(B)) é vazia Entretanto, linguagens livres-do-contexto não são fechadas sob interseção e complemento, e não temos garantia de que (L(A) L(B)) (L(A) L(B)) é também livre-do-contexto para poder usar solução de V GLC nesse caso A prova completa de que EQ GLC é indecidível é dada no livro-texto da disciplina, e usa um método particular de redução de um problema a outro (redução via histórias de computação) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 16 / 45

Problemas decidíveis sobre linguagens livres-do-contexto Teorema Toda linguagem livre-do-contexto é decidível Dada uma GLC G para uma linguagem A, podemos projetar a MT M G abaixo que decide A M G = Sobre a entrada w: 1 Rode a MT S, que decide A GLC, sobre a entrada G, w 2 Se S aceita G, w, aceite; se ela rejeita, rejeite Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 17 / 45

A Hierarquia de Chomsky Ao demonstrar que toda LLC é decidível, o teorema anterior estabelece mais uma relação na Hierarquia de Chomsky Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 18 / 45

Toda linguagem finita é decidível Um resultado importante da Ciência da Computação é que apenas linguagens infinitas (ie, que contenham um número infinito de cadeias) podem ser indecidíveis Isto é formalizado no próximo resultado Teorema Toda linguagem finita é decidível Esta prova é um dos exercícios da lista correspondente a este capítulo Dica: Mostre que para toda linguagem finita existe uma MT que decida a linguagem Note que você não precisa construir a MT, mas apenas mostrar que ela existe Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 19 / 45

O Problema da Parada Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 20 / 45

Os limites das soluções algorítmicas Nesta seção estudaremos dois dos resultados mais interessantes da ciência da computação: 1 Existem problemas que não têm solução computacional (ie, existem linguagens que não são Turing-reconhecíveis) 2 Além disso, veremos um problema específico que não tem solução algorítmica: o problema da parada Estes resultados foram considerados muito surpreendente quando descobertos Neste contexto, uma pergunta importante é: Quais tipos de problemas são insolúveis por computadores? Em particular, queremos saber se problemas insolúveis são raros e obscuros, ou se há problemas relevantes que não têm solução algorítmica A resposta, infelizmente, é que há muitos problemas extremamente relevantes que são insolúveis! Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 21 / 45

Os limites das soluções algorítmicas Um exemplo de problema relevante que é insolúvel verificar automaticamente se uma peça de software está correta (sem bugs) Mais precisamente, se você recebe: 1 um programa de computador, e 2 uma especificação precisa do que ele deve fazer (por exemplo, ordenar uma lista de números), no geral é impossível decidir se o programa realmente satisfaz a especificação! Neste curso ainda vamos estudar vários problemas insolúveis e técnicas de como provar isso Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 22 / 45

O método da diagonalização Para provar os resultados desejados, vamos usar o método da Diagonalização de Cantor, que se baseia nos conceitos de enumerabilidade e não-enumerabilidade Nós já estudamos estes conceitos neste curso; aqui vamos revisitá-los Dados dois conjuntos A e B e uma função f : A B, dizemos que: f é um-para-um ou injetora se ela nunca mapeia dois elementos diferentes do domínio para um mesmo elemento do contra-domínio: a, a A : a a = f (a) f (a ) f é sobrejetora se ela atinge todo elemento de B: b B : a A : f (a) = b f é bijetora ou uma correspondência se ela é ao mesmo tempo um-para-um e sobrejetora Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 23 / 45

O método da diagonalização Cantor generalizou o conceito de tamanho de conjuntos finitos para conjuntos infinitos, introduzindo o conceito de cardinalidade Dois conjuntos têm a mesma cardinalidade se, e somente se, existe uma função bijetora (ou correspondência) entre seus elementos Um conjunto é enumerável (ou contável) se ele é finito ou tem a mesma cardinalidade que os naturais N Caso contrário o conjunto é não-enumerável (ou incontável) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 24 / 45

O método da diagonalização Exemplo 2 Mostre que o conjunto dos números naturais pares N Par = {0, 2, 4, 6, } é enumerável Solução Queremos mostrar existe uma bijeção entre N Par e os naturais N = {0, 1, 2, 3, } A função f : N N Par tal que f (n) = 2n é uma bijeção entre N e N Par : n f (n) 0 0 1 2 2 4 3 6 Portanto, os dois conjuntos têm a mesma cardinalidade e N Par é enumerável Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 25 / 45

O método da diagonalização Exemplo 3 Mostre que o conjunto dos racionais não-negativos Q + = { p /q p, q N, p > 0, e q 0} é enumerável Solução Temos que mostrar que existe uma bijeção entre N e Q + A seguinte tabela estabelece esta correspondência Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 26 / 45

O método da diagonalização Teorema O conjunto dos números reais R não é enumerável A prova utiliza o método da Diagonalização de Cantor, que já estudamos no início deste curso A prova segue por contradição: assumimos que R seja enumerável e que, portanto, exista uma enumeração (ie, uma lista completa) de seus elementos Então mostramos que, qualquer que seja a enumeração (lista) proposta, ela necessariamente está incompleta (isto é, sempre existe um real que não está na lista) Isto contradiz a hipótese de que R seja enumerável, e concluímos que R deve necessariamente ser não-enumerável Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 27 / 45

O método da diagonalização (Continuação) O método da diagonalização recebe uma enumeração (lista) qualquer dos reais e mostra que ela está necessariamente incompleta A ideia é produzir um novo real x ausente da lista da seguinte forma: x não pode ser o n-ésimo real da lista porque a n-ésima casa decimal de x difere da n-ésima casa decimal do n-ésimo real na lista Logo, x não pode estar na lista! A maneira de construir o elemento x é produzir uma diagonal na lista (e daí vem o nome de diagonalização para o método) n f (n) 0 314159 1 5555555 2 012345 3 050000 x 04641 Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 28 / 45

Existem linguagens Turing-irreconhecíveis O método da diagonalização de Cantor pode ser usado para mostrar que existem linguagens que não são decidíveis, nem mesmo Turing-reconhecíveis A ideia da prova é mostrar que: 1 o conjunto de todas as MTs é enumerável, mas 2 o conjunto de todas as linguagens P(Σ ) é não-enumerável Portanto concluímos que há (muito) mais linguagens do que há MTs, logo algumas linguagens não podem ser reconhecidas por nenhuma MT! Teorema Algumas linguagens não são Turing-reconhecíveis A prova tem duas partes: primeiro mostramos que o conjunto de todas as MTs é enumerável, depois mostramos que o conjunto P(Σ ) de todas as linguagens é não-enumerável Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 29 / 45

Existem linguagens Turing-irreconhecíveis (Continuação) Parte I: o conjunto de todas as MTs é enumerável Primeiro, note que toda MT M pode ser representada como uma cadeia M que codifica a 7-tupla correspondente à MT Mais precisamente, M é uma cadeia em um alfabeto Σ finito apropriado (este alfabeto contém todos símbolos (Σ) da linguagem, os símbolos da fita (Γ), mais os símbolos necessários para formar a 7-tupla: (, ),,, etc) Mas note que dado qualquer alfabeto finito Σ, o conjunto Σ é enumerável (você já mostrou isso em uma lista de exercícios anterior): basta escrever todas as cadeias de Σ da menor para a maior, em ordem lexicográfica E como o conjunto de todas as MTs é um subconjunto de Σ, temos que o conjunto de todas as MTs deve ser, também, enumerável Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 30 / 45

Existem linguagens Turing-irreconhecíveis (Continuação) Parte II: o conjunto P(Σ ) de todas as linguagens não é enumerável (Você também já fez esta parte da prova em uma lista de exercícios, mas aqui vamos relembrar a prova) Vamos usar o método de diagonalização de Cantor, o mesmo usado para mostrar que o conjunto dos números reais não é enumerável Por contradição, assuma que P(Σ ) seja enumerável Então existe uma enumeração L 0, L 1, L 2, de todas as linguagens sobre o alfabeto Σ Esta enumeração pode ser representada numa tabela em que cada linha representa uma linguagem, e cada coluna representa uma cadeia w Σ (Note que podemos enumerar o conjunto Σ nas colunas da tabela porque Σ é enumerável: basta ordená-las e ordem lexicográfica) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 31 / 45

Existem linguagens Turing-irreconhecíveis (Continuação) Cada entrada (i, j) da tabela contém o símbolo se a cadeia da coluna j pertence à linguagem da linha i, ou / em caso contrário Por exemplo, a cadeia w 0 pertence à linguagem L 0, mas não pertence à linguagem L 1 Enumeração w 0 w 1 w 2 w 3 w 4 w 5 w 6 w 7 w 8 L 0 / / / / L 1 / / / / / / / L 2 / / / / L i / / / / Se encontrarmos uma linguagem ˆL P(Σ ) que não esteja listada nesta tabela, temos uma contradição (pois por hipótese a lista estaria completa) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 32 / 45

Existem linguagens Turing-irreconhecíveis (Continuação) Construímos ˆL assim: cada cadeia w j (correspondente à coluna j) pertence a ˆL sse w j não pertence à linguagem L j (correspondente à linha j) Enumeração w 0 w 1 w 2 w 3 w 4 w 5 w 6 w 7 w 8 L 0 / / / / L 1 / / / / / / / L 2 / / / / L i / / / / ˆL / Mas a linguagem ˆL não pode estar na lista, pois ela é diferente de todos os demais números da lista (ˆL difere de cada L j exatamente na cadeia w j ) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 33 / 45

Existem linguagens Turing-irreconhecíveis (Continuação) Logo, a lista não pode estar completa, pois ˆL não se encontra nela, e chegamos a uma contradição Portanto, o conjunto P(Σ ) de todas as linguagens sobre Σ não é enumerável Parte III: Conclusão Finalmente, para concluir a prova, note que do fato de que o conjunto de MTs é enumerável e o conjunto de todas as linguagens é não-enumerável, concluímos que há mais linguagens do que há MTs Portanto, há linguagens para as quais não há MT correspondente Estas linguagens não podem ser, portanto, Turing-reconhecíveis Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 34 / 45

O Problema da Parada O resultado anterior mostra que existem linguagens Turing-irreconhecíveis e, portanto, Turing-indecidíveis Entretanto, nós ainda não provemos nenhum exemplo de linguagem específica que seja indecidível; vamos fazer isso agora O primeiro problema insolúvel que vamos estudar é o de se determinar se uma máquina de Turing aceita uma dada cadeia de entrada O problema da aceitação para MTs concerne a seguinte linguagem: A MT = { M, w M é uma MT e M aceita w} Interessantemente, enquanto os problemas de aceitação para AFDs (A AFD ) e para GLCs (A GLC ) eram decidíveis, o problema de aceitação para MTs (A MT ) não é decidível Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 35 / 45

O Problema da Parada Teorema A MT é indecidível A prova de que A MT é indecidível será feita nos próximos slides Por enquanto, podemos notar que A MT é pelo menos Turing-reconhecível, já que a MT U abaixo reconhece A MT U = Sobre a entrada M, w, onde M é uma MT, e w, uma cadeia: 1 Simule M sobre a cadeia de entrada w 2 Se M em algum momento entra em seu estado de aceitação, aceite; se M em algum momento entra em seu estado de rejeição, rejeite Note que a MT U entra em loop sobre a entrada M, w se a MT M entra em loop sobre w Portanto a MT U não decide a linguagem A MT, mas apenas a reconhece Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 36 / 45

O Problema da Parada Se U tivesse de alguma forma a capacidade de determinar que M entra em loop ao processar w, a MT poderia então rejeitar a entrada M, w Por essa razão a linguagem A MT é, às vezes, denominada o problema da parada (Apesar de tecnicamente o nome correto ser problema da aceitação para MTs ) Vamos em breve demonstrar que este problema é indecidível, mas antes vamos nos focar um pouco na MT U em si mesma Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 37 / 45

O Problema da Parada A máquina U é interessante em si mesma, pois ela é uma máquina de Turing universal (MTU) Uma máquina de Turing universal é capaz de simular o comportamento de qualquer outra máquina de Turing cuja descrição é fornecida como entrada Primeiro proposta por Turing, a MTU criou o conceito de programa-armazenado A descrição da MT M dada como entrada para U funciona como um programa (ou software) que permite que U tenha comportamentos diferentes A MTU é a base de vários resultados da teoria da computação, e vamos revisitá-la muitas vezes ao longo do curso! Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 38 / 45

O problema da parada é indecidível Agora estamos prontos para mostrar que o problema da aceitação para MTs (aka, o problema da parada) é indecidível Teorema A linguagem é indecidível A MT = { M, w M é uma MT e M aceita w} A prova se dá por contradição Assumimos que A MT seja decidível e derivamos um absurdo Suponha que exista um decisor H para A MT, que se comporte da seguinte forma: { aceite, se M aceita w, H( M, w ) = rejeite, se M não aceita w Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 39 / 45

O problema da parada é indecidível (Continuação) Se o decisor H existe, é possível construir uma nova MT D que utiliza H como uma subrotina A MT D recebe uma MT M como entrada e pergunta ao decisor H se M pára ou entra em loop quando M recebe sua própria descrição M como entrada O que o decisor responder, a MT D inverte seu comportamento D = Sobre a entrada M, onde M é uma MT: 1 Rode H sobre a entrada M, M 2 Dê como saída o oposto do que H dá como saída: se H aceita, rejeite; se H rejeita, aceite Note que D terá o seguinte comportamento: { aceite, se M não aceita M, D( M ) = rejeite, se M aceita M Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 40 / 45

O problema da parada é indecidível (Continuação) Agora chegamos ao cerne da prova: verificamos o que acontece quando rodamos a MT D com sua própria descrição D como entrada O comportamento de D com D como entrada será: { aceite, se D não aceita D, D( D ) = rejeite, se D aceita D Mas note que isso é um absurdo: D aceita a cadeia D se, e somente se, D não aceita a cadeia D! Evidentemente é impossível D aceitar e não aceitar uma mesma entrada ao mesmo tempo, logo chegamos a uma contradição e devemos concluir que nossa hipótese era falsa: ou seja, não pode existir decisor H para o A MT Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 41 / 45

Uma linguagem Turing-irreconhecível Uma linguagem é co-turing-reconhecível se ela for o complemento de uma linguagem Turing-reconhecível O próximo resultado afirma que uma linguagem é decidível exatamente quando ela e seu complemento são ambas Turing-reconhecíveis Teorema Uma linguagem é decidível se, e somente se, ela é Turing-reconhecível e co-turing-reconhecível Temos duas direções a provar Primeiro note que se uma linguagem A for decidível, então tanto A quanto seu complemento A são Turing-reconhecíveis Isto ocorre porque qualquer linguagem decidível é Turing-reconhecível, e o complemento de uma linguagem decidível também é decidível Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 42 / 45

Uma linguagem Turing-irreconhecível (Continuação) Para a outra direção, se tanto A quanto A são Turing-reconhecíveis, então existe um reconhecedor M 1 para A e um reconhecedor M 2 para A Podemos então combinar M 1 e M 2 no seguinte decisor M para A M = Sobre a entrada w: 1 Rode ambas M 1 e M 2 sobre a entrada w em paralelo 2 Se M 1 aceita, aceite; se M 2 aceita, rejeite Rodar as duas máquinas em paralelo significa que M tem duas fitas, uma para simular M 1 e outra para simular M 2, e M alternadamente simula um passo de cada máquina até que uma delas aceite Para ver que M decide A, note que toda cadeia w ou está em A ou está em A, logo ou M 1 ou M 2 deve necessariamente aceitar w Como M pára sempre que ou M 1 ou M 2 aceita, M sempre pára Além disso, M aceita todas as cadeias em A e rejeita todas as demais Isto mostra que A é decidível Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 43 / 45

Uma linguagem Turing-irreconhecível Corolário A MT não é Turing-reconhecível Primeiro, note que já sabemos que A MT é Turing-reconhecível Por contradição, assuma que A MT também seja Turing-reconhecível Neste caso A MT seria co-turing-reconhecível Mas se A MT é Turing-reconhecível e co-turing-reconhecível, A MT deve ser decicível Mas isto é uma contradição: já provamos que A MT não é decidível Logo A MT não pode ser Turing-reconhecível Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 44 / 45

A Hierarquia de Chomsky Ao demonstrar que existem linguagens Turing-irreconhecíveis, demonstramos que existem problemas sem solução computacional Com isso, completamos a Hierarquia de Chomsky que nos propusemos a cobrir neste curso Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 45 / 45