Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)
|
|
- Henrique Álvaro
- 5 Há anos
- Visualizações:
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)
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 maisRedutibilidade. 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 maisECO026 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 maisACH2043 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 maisMá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 maisLinguagens 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 maisProblemas 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 maisAula 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 maisAula 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 maisCapí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 maisMarcos 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 maisLinguagens 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 maisCapí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 maisLinguagem 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 mais14.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 maisUniversidade 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 maisLinguagens 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 maisApostila 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 maisUniversidade 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 maisTeoria 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 maisUniversidade 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 maisMá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 maisIntroduçã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 maisMatemá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 maisAutô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 maisDraft-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 maisPrimeira 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 maisModelos 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 maisFaculdade 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 maisApostila 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 maisModelos 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 maisFaculdade 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 maisLLC'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 maisI.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 maisCapí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 maisTeoria 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 maisProcedimentos 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 maisCapí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 maisMelhores 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 maisIntroduçã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 maisformais 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 maisCapí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 maisComputaçã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 maisLINGUAGENS 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 maisCapí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 maisLinguagens 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 maisComputabilidade 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 maisACH2043 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 maisAná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 maisLema 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 maisINE5317 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 maisLinguagens 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 maisEnumerabilidade. 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 maisLinguagens 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 maisMelhores 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 maisLimites 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 maisS. 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 maisLinguagens 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 maisLinguagens 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 maisSCC 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 maisLinguagens 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 mais1. 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 maisLR'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 maisUNIVERSIDADE 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 maisCOMPUTABILIDADE 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 maisTeoria 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 maisTerceira 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 maisACH2043 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 maisTerminologia, 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 maisa 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 maisCapí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 maisProblemas 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 maisGramá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 maisTeoria 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 maisPCC104 - 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 mais2. 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 maisACH2043 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 maisA 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 maisPropriedades 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 maisACH2043 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 maisAulas 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 maisPropriedades 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 maisTuring 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 maisUniversidade 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 maisLema 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 maisLema 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 maisLinguagens 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 maisAula 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 maisQue 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 maisMá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 maisLinguagens 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 maisMá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 maisprinting 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 maisVariedades 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 maisConceitos 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 maisQue 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 maisPCS3616. 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 maisLinguaguens 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 mais2019/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