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

Tamanho: px
Começar a partir da página:

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

Transcrição

1 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

2 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

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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

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

21 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

22 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

23 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

24 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

25 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) 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

26 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

27 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

28 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) x Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 28 / 45

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

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

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Decidibilidade O estudo da decidibilidade objetiva determinar a solucionabilidade

Leia mais

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

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Redutibilidade Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Redutibilidade DCC-UFMG (2018/02) 1 / 46 Redutibilidade:

Leia mais

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

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos   Site: ECO026 TEORIA DA COMPUTAÇÃO Prof: Rafael Santos Email: rafafic@gmail.com Site: http://sites.google.com/site/rafafic Máquinas de Turing Uma linguagem Turing-reconhecível (Linguagem recursivamente enumeravel),

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 18. Cap O Problema da Parada ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 18 Cap 4.2 - O Problema da Parada Profa. Ariane Machado Lima ariane.machado@usp.br 1 Nas últimas aulas Tese de Church-Turing Problemas computacionais descritos

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

Linguagens Não-Regulares

Linguagens Não-Regulares Linguagens Não-Regulares Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Não-Regulares DCC-UFMG (2018/02)

Leia mais

Problemas Computáveis

Problemas Computáveis Indecidibilidade Problemas Computáveis Máquinas de Turing ou Problemas Computáveis ou Linguagens Recursivamente Enumeráveis LER (*) podem ser divididas em 2 classes: as MT que sempre param (Algoritmos),

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas são sim ou não. Exemplo

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas

Leia mais

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

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

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

Marcos Castilho. DInf/UFPR. 16 de maio de 2019 16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas

Leia mais

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

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

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

Linguagem Universal. assim como a entrada ser processada por a. (b) A segunda fita de representa a fita de Linguagem Universal 1. Uma máquina de Turing representa um PC? Ou representa um possível problema que um PC pode resolver? 2. Uma máquina de Turing pode ser utilizada para simular uma de Turing máquina.

Leia mais

14.1 Linguagens decidíveis ou Turing reconhecíveis

14.1 Linguagens decidíveis ou Turing reconhecíveis Linguagens decidíveis ou Turing reconhecíveis Problemas decidíveis para Linguagens Regulares Teorema Seja A linguagem A DFA é decidível A DFA = {A : A é um DFA e aceita } Dem Basta mostrar como construir

Leia mais

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

Universidade Federal de Uberlândia Mestrado em Ciência da Computação Universidade Federal de Uberlândia Mestrado em Ciência da Computação Solução da 1 a Prova de Teoria da Computação - 05/05/2010 Questão 1 (Valor = 7 pontos) Um número real é dito algébrico se é raiz de

Leia mais

Linguagens Formais e Autômatos Decidibilidade

Linguagens Formais e Autômatos Decidibilidade Linguagens Formais e Autômatos Decidibilidade Andrei Rimsa Álvares Sumário Introdução A tese de Church-Turing Máquinas de Turing e problemas de decisão Máquina de Turing Universal O problema da parada

Leia mais

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

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 14 Máquinas de Turing humberto@bcc.unifal-mg.edu.br Última aula Autômatos com Pilha Controle de estado a b a a b X Y Y X O que já vimos...

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 16 Decidibilidade humberto@bcc.unifal-mg.edu.br Últimas Aulas Uma Máquina de Turing (MT) possui: uma fita infinita para representar a

Leia mais

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

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1 Máquinas Universais Um modelo de computação diz-se universal se todo o problema efectivamente computável o for nesse modelo. Um modelo universal é suficientemente poderoso para se aceitar a si próprio:

Leia mais

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

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

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

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Autômatos Finitos e Não-determinismo

Autômatos Finitos e Não-determinismo Autômatos Finitos e Não-determinismo Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Autômatos Finitos e Não-determinismo

Leia mais

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

Draft-v0.1. Máquinas de Turing Máquinas de Turing 13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal

Leia mais

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

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens: UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM167 Teoria da Computação Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Primeira Lista de Exercícios 2005/1 Exercício

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

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

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Faculdade de Computação

Faculdade de Computaçã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

Leia mais

LLC's: Lema do Bombeamento e Propriedades de Fechamento

LLC's: Lema do Bombeamento e Propriedades de Fechamento Linguagens Formais e Autômatos LLC's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Sumário

Leia mais

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

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

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

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc. Teoria da Computação Capítulo 1 Máquina de Turing Prof. Wanderley de Souza Alencar, MSc. Pauta 1. Introdução 2. Definição de Máquina de Turing 3. Variações de Máquina de Turing 4. A Tese de Church-Turing

Leia mais

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

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Capítulo 2. Conjuntos Infinitos

Capítulo 2. Conjuntos Infinitos Capítulo 2 Conjuntos Infinitos Não é raro encontrarmos exemplos equivocados de conjuntos infinitos, como a quantidade de grãos de areia na praia ou a quantidade de estrelas no céu. Acontece que essas quantidades,

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136 Melhores momentos AULA PASSADA Complexidade Computacional p. 136 Configurações controle q 7 cabeça 1 0 1 1 0 1 1 1 fita de leitura e escrita Configuração 1 0 1q 7 1 0 1 1 1 Complexidade Computacional p.

Leia mais

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

Introdução à Teoria da Computação Exercícios Introdução à Teoria da Computação Exercícios Livro: Michel Sipser, Introdução à Teoria da Computação 2ª Ed. Capítulo 07 Obs: Exercícios 7.7 e 7.20 estão apresentados em versões simplificadas. NP Dicas

Leia mais

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

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas Capítulo 11 Uma hierarquia de linguagens formais e autómatos 11.1. Linguagens g recursivas e recursivamente enumeráveis. 11.2. Gramáticas não-restringidas 11.3. Gramáticas e linguagens dependentes do contexto

Leia mais

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

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito Capítulo 2 Conjuntos Infinitos Um exemplo de conjunto infinito é o conjunto dos números naturais: mesmo tomando-se um número natural n muito grande, sempre existe outro maior, por exemplo, seu sucessor

Leia mais

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

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

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

Capítulo 2. Conjuntos Infinitos. 2.1 Existem diferentes tipos de infinito Capítulo 2 Conjuntos Infinitos O conjunto dos números naturais é o primeiro exemplo de conjunto infinito que aprendemos. Desde crianças, sabemos intuitivamente que tomando-se um número natural n muito

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014) Sistemas de Informação Computabilidade e Complexidade (ENG10014) Profa. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com Modelo de computação poderoso concebido pelo matemático britânico Alan Turing

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 1. Linguagens Regulares Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br www.each.usp.br/lauretto

Leia mais

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

Análise I Solução da 1ª Lista de Exercícios FUNDAÇÃO EDUCACIONAL SERRA DOS ÓRGÃOS CENTRO UNIVERSITÁRIO SERRA DOS ÓRGÃOS Centro de Ciências e Tecnologia Curso de Graduação em Matemática Análise I 0- Solução da ª Lista de Eercícios. ATENÇÃO: O enunciado

Leia mais

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

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria

Leia mais

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

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 18/11/2013 Linguagens Recursivamente Enumeráveis, Complexidade (Custo) de Tempo/Espaço, Transdutores para exibir complexidade de Tempo/Espaço 1 Linguagens Recursivamente

Leia mais

Enumerabilidade. Capítulo 6

Enumerabilidade. Capítulo 6 Capítulo 6 Enumerabilidade No capítulo anterior, vimos uma propriedade que distingue o corpo ordenado dos números racionais do corpo ordenado dos números reais: R é completo, enquanto Q não é. Neste novo

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205 Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing

Leia mais

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

Limites da Computação Algorítmica: Problemas Indecidíveis Capítulo 10 Limites da Computação Algorítmica: Problemas Indecidíveis Tendo estudado o que as máquinas de Turing podem fazer, estudaremos, agora, o que elas não podem fazer. Embora a tese de Turing nos

Leia mais

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

S. C. Coutinho. Máquina de Turing Universal p. 1/22 Máquina de Turing Universal S. C. Coutinho Máquina de Turing Universal p. 1/22 Objetivo Descrever uma máquina de Turing U, capaz de simular qualquer outra máquina de Turing M. Para isto a máquina deve

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Linguagens Livres-do-Contexto

Linguagens Livres-do-Contexto Linguagens Livres-do-Contexto Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Livres-do-Contexto DCC-UFMG

Leia mais

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

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade SCC-505 - Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de

Leia mais

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

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD) Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma

Leia mais

1. Uma linguagem de uma máquina de Turing

1. Uma linguagem de uma máquina de Turing Linguagem de uma Máquina de Turing 1. Uma linguagem de uma máquina de Turing, é. 2. Linguagens aceitas por uma MT são chamdas recursivamente enumeráveis. O recursivo nesta caso significa decidível, ou

Leia mais

LR's: Lema do Bombeamento e Propriedades de Fechamento

LR's: Lema do Bombeamento e Propriedades de Fechamento Linguagens Formais e Autômatos LR's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Introdução

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Teoria da Computação Ciência da Computação

Leia mais

COMPUTABILIDADE 2. Indecidibilidade

COMPUTABILIDADE 2. Indecidibilidade 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

Leia mais

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

Teoria da Computação 19 de Abril de 2017 Teste 1A Duração: 1h30 19 de Abril de 2017 Teste 1A Duração: 1h30 Construa uma máquina de Turing que calcule a função que a cada natural n N 0 faz corresponder n 2. Deverá usar notação unária para os naturais. Apresente apenas

Leia mais

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

Terceira Lista de Exercícios 2004/2... UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Terceira Lista de Exercícios 2004/2

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Terminologia, Técnicas de Prova, Enumerabilidade

Terminologia, Técnicas de Prova, Enumerabilidade Terminologia, Técnicas de Prova, Enumerabilidade Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Terminologia, Técnicas

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

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

Capítulo 0: Conjuntos, funções, relações Capítulo 0: Conjuntos, funções, relações Notação. Usaremos Nat para representar o conjunto dos números naturais; Int para representar o conjunto dos números inteiros. Para cada n Nat, [n] representa o

Leia mais

Problemas Algoritmicos

Problemas Algoritmicos Problemas Algoritmicos 1 O que pode ser computado? Chegamos a um importante ponto do curso. Vamos agora estudar uma das questões mais fundamentais em Ciência da Computação: Qual seria o limite do poder

Leia mais

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires

Leia mais

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

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio

Leia mais

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

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30 Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3106 - LINGUAGENS FORMAIS E

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Seção 5.1 Problemas indecidíveis Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima 1 Na aula passada... A MT é indecidível (usando diagonalização)

Leia mais

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

A Tese de Church-Turing e Máquinas de Turing A Tese de Church-Turing e Máquinas de Turing Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) A Tese de Church-Turing

Leia mais

Propriedades das Linguagens Livres do Contexto

Propriedades das Linguagens Livres do Contexto Capítulo 7 Propriedades das Linguagens Livres do Contexto As linguagens livres do contexto ocupam uma posição central na hierarquia das linguagens formais. Por um lado, as linguagens livres do contexto

Leia mais

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

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

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

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto UNIVESIDADE ESTADUAL DE MAINGÁ DEPATAMENTO DE INFOMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A classe de linguagens livres de contexto é fechada

Leia mais

Turing e Complexidade

Turing e Complexidade (baseado em material da disciplina PCS2214) PMR2300 Escola Politécnica da Universidade de São Paulo Máquina de Turing Máquina de Turing: modelo mais poderoso de computador, proposto pelo inglês Alan M.

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 15 Máquinas de Turing (parte 2) humberto@bcc.unifal-mg.edu.br Última Aula Uma Máquina de Turing (MT) possui: uma fita infinita para representar

Leia mais

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

Lema do Bombeamento Operações Fechadas sobre LR s Aplicações a n Lema do Bombeamento Operações Fechadas sobre LR s Aplicações (H&U, 969),(H&U, 979), (H;M;U, 2) e (Menezes, 22) Lema do Bombeamento para LR Como decidir que uma linguagem é ou não regular? Não bastaria

Leia mais

Lema do Bombeamento para Linguagens Livres do Contexto

Lema do Bombeamento para Linguagens Livres do Contexto Lema do Bombeamento para Linguagens Livres do Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 44

Leia mais

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

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

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Por exemplo, se dermos como entrada para um processo de verificação da corretude de programas um programa

Leia mais

Máquina de Turing. Controle finito

Máquina de Turing. Controle finito Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos

Leia mais

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

Linguagens Formais e Autômatos Apresentação da Disciplina Linguagens Formais e Autômatos Apresentação da Disciplina Andrei Rimsa Álvares Computação Histórico da Computação O que pode ser computado? Ábaco China Aprox. 3500 a.c. Máquina de Babbage Inglaterra 1823

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas)

Leia mais

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;

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; 1 Introdução 1 No texto que se segue vão ser apresentados resultados sobre não decidibilidade de alguns predicados (sobre os naturais). Para certos predicados vai ser apresentada uma prova de que não é

Leia mais

Variedades Adicionais das Máquinas de Turing

Variedades Adicionais das Máquinas de Turing LFA - PARTE 5 Variedades Adicionais das Máquinas de Turing 1 Máquinas de Turing com uma Fita Infinita de um Sentido A fita da máquina é infinita apenas à direita O quadrado da fita mais à esquerda contém

Leia mais

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

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

Leia mais

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

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Por exemplo, se dermos como entrada para um processo de verificação da corretude de programas um programa

Leia mais

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

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing PCS3616 Programação de Sistemas (Sistemas de Programação) Máquinas de Turing Escola Politécnica da Universidade de São Paulo Objetivos Familiarização com o funcionamento global de software de sistema computacional

Leia mais

Linguaguens recursivamente enumeráveis e recursivas

Linguaguens recursivamente enumeráveis e recursivas Linguaguens recursivamente enumeráveis e recursivas Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente

Leia mais

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

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

Leia mais