Máquinas de Turing 3

Documentos relacionados
Máquinas de Turing 3

Técnicas de Extensão de MT

Máquina de Turing. Controle finito

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

Máquina de Turing. Controle finito

Universidade Federal de Alfenas

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

Máquina de Turing. Controle finito

Variantes de Máquinas de Turing

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Teoria da Computação. Máquinas de Turing: variações

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

Aula 10: Tratabilidade

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

Linguagens recursivamente enumeráveis

Modelos Universais de Computação

Universidade Federal de Alfenas

Teoria da Computação. Computabilidade e complexidade computacional

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Teoria da Computação

Teoria da Computação. Computabilidade e complexidade computacional

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

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Complexidade de Algoritmos. Edson Prestes

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

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

Máquinas de Turing - Computabilidade

Linguagens Formais e Autômatos (LFA)

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

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

Variedades Adicionais das Máquinas de Turing

Aula 9: Máquinas de Turing

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014)

Linguagens Formais e Problemas de Decisão

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

Uma forma de classificação

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

Linguaguens recursivamente enumeráveis

Autómatos determísticos de k-pilhas

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

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

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

Faculdade de Computação

Linguagens Formais e Autômatos P. Blauth Menezes

INTRATABILIDADE e NP-COMPLETUDE

Aula 10: Decidibilidade

Máquinas de Turing: uma introdução

PCC104 - Projeto e Análise de Algoritmos

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

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

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

Universidade Federal de Alfenas

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

Turing e Complexidade

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

Universidade Federal de Alfenas

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

Linguaguens recursivamente enumeráveis e recursivas

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

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

SCC 205 Teoria da Computação e Linguagens Formais

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

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

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

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

Aula 10: Decidibilidade

SCC-5832 Teoria da Computação

Variações de Máquinas de Turing

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

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

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

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

Teoria da Computação. Máquinas Universais Máquina de Turing

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Análise e Projeto de Algoritmos

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

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Teoria da Computação 27 de Maio de 2015 Teste 2A Duração: 1h30

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

Teoria da Computação. Computabilidade

Máquinas de Turing (MT)

SCC Teoria da Computação e Linguagens Formais

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

Problemas Intratáveis ou computação eficiente X computação ineficiente

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Universidade Federal de Alfenas

COMPUTABILIDADE 2. Indecidibilidade

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Complexidade computacional

Transcrição:

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) Linguagens Aceitas/Reconhecidas por Máquinas de Turing (Recursivamente Enumeráveis) 1

Usos de uma MT como reconhecedor de linguagens (Visto) para calcular funções para processar problemas de decisão (procedimento) 2

MT como um processador de funções inteiras Tradicionalmente, os inteiros são representados em unário O inteiro i >= 0 é representado pela cadeia 0 i. Deve-se estabelecer um mapeamento: zero é representado por 0; 1 por 00,.../ se naturais 1 = 0; 2 = 11, 3 = 111,... Se a função tem k argumentos (i1, i2,..., ik) então esses inteiros são colocados na fita separados por 1 s como: 0 i1 1 0 i2 1... 1 0 ik O inverso também é possível. Se a máquina pára (não importa se num estado final) com a fita consistindo de 0 m para algum m então dizemos que f(i1,i2,...ik) = m, onde f é uma função de k argumentos computados por essa MT. 3

MT que soma dois números naturais Consider the addition function a+b on non-negative integers Encode the input string on the tape as 0 a 10 b The Turing machine will halt with 0 a+b on the tape Processo: Read 0's and rewrite them on the tape moving right until the 1 is read Replace the 1 with a 0 (SHIFT), and continue moving right without changing the tape until a blank is found Move left and replace the 0 with a blank Não há zeros, então o 1 = 0; 2 = 00,... 4

5

6

MT para processar problemas de decisão Quando usamos a MT para decidir (responder T/F) alguma propriedade, depois que a máquina parar, olhamos na fita a procura do resultado 0/1 após a cadeia de entrada. 7

MT que decide se um número binário é par ou impar Fica em q0 enquanto par Fica em q1 enquanto impar Se Par - pára e escreve 0 Se Impar - pára e escreve 1 8

9

10

Exercícios 1) Construir uma MT que decida se uma seqüência de parênteses é bem formada. Escreve 0 se mal formada Escreve 1 se bem formada Dica: Use um ALL; considere que a cadeia de parênteses é limitada por < e > (um a esq e outra à direita). Idéia: Procurem por um ) e substitua por X e em seguida voltar a esquerda procurando o ( mais próximo para substituir por X também. 2) Construir uma MT que dada uma cadeia w pertencente ao fecho de {0,1} duplique w. Quando a máquina parar a fita deve conter w#w sendo que # indica fim de w. 11

Lembrem que: MT para calcular funções: Se f(n) não é definida para todo n f(n) é função parcial; se sempre é definida é função total Se MT computa f(n) para todo n f(n) é recursiva (algoritmo que computa f(n)) sempre que f(n) é definida mas NÃO pára para aqueles n para os quais f(n) não é definida f(n) é parcialmente recursiva (ou recursivamente enumerável) MT para processar problemas de decisão: Quando consideramos a MT como procedimento, se ela pára para toda a entrada dizemos que o procedimento é um algoritmo. 12

Hierarquia das Classes de Máquinas e Linguagens L Recursivamente Enumeráveis/Máquinas de Turing que Reconhecem L L Recursivas/Máquinas de Turing que Decidem L L Livres de Contexto/Máquinas a Pilha não Determinísticas L Livres de Contexto Determinísticas/ Máquinas a Pilha Determinísticas L Regulares/Autômatos Finitos 13

Modelos Equivalentes Máquinas de Turing Determinísticas (MTD) são extremamente poderosas. Nós podemos simular outros modelos com elas e vice-versa. As variações são equivalentes, isto é, reconhecem a mesma classe de linguagens (seja ela recursiva/re). Uma variação simples é a MT que tem a habilidade de permanecer parada após a leitura. Como provamos que esta variação tem poder equivalente ao da MTD? Lembrem que para mostrar que 2 modelos são equivalentes mostramos que simulamos um pelo outro. Vamos ver outro exemplo em que a simulação ocorre com somente uma perda polinomial de eficiência 14

Máquinas de Turing com múltiplas fitas Inicialmente a entrada é escrita na primeira fita. As outras começam com branco. SIP 136-138 a a b a b b _... b b b b b... b a a b a... As transições permitem acesso simultâneo a todas as fitas: : Q X k -> Q X k X {L,R} k Ex: (qi,a1,...,ak) = (qj,b1,b2,..., bk, L,R,L,R...) 15

Robustez Máquinas de Turing com múltiplas fitas são polinomialmente equivalentes a máquinas com uma fita (que são casos especiais da primeira). Teo 3.8 (Sipser) Toda MT com múltiplas fitas tem uma MT equivalente com uma única fita. A idéia é mostrar como simular M com k fitas em S com 1 fita. S simula o efeito das k fitas armazenando suas informações uma sua fita, separando-as com # e marca as posições de suas cabeças com símbolos marcados (a. e b., por exemplo que são acrescidos ao alfabeto da fita): #w1.w2 wn#.#.#.# O que fazer quando a cabeça chega num #? Nós podemos agora fazer uma afirmação muito mais forte com respeito a robustez de Máquinas de Turing: 16

A Hipótese de Church-Turing Noção Intuitiva de algorítmo Máquina de Turing que decide Lembrem que alguns problemas são parcialmente decidíveis, isto é, existe uma máquina de Turing que os reconhece 17

Existem mais modelos Equivalentes? Vamos ver um modelo computacional menos realista MT Não-Determinísticas que pode ser simulado com uma MT Determinística com uma perda exponencial de eficiência. 18

Computações (q,x) = {(q1,y1,d1),...,(qk,yk,dk)} Computação determinística Árvore de computação não-determinística tempo. Aceita se algum ramo alcança uma configuração de aceitação Nota: o tamanho da árvore é exponencial em sua altura 19

Descrição Alternativa SIP 138-140 Uma máquina não-determinística tem dois estágios: um de advinhação da resposta e outro de verificação. É um modelo para capturar a noção de verificação em tempo polinomial (NP) e não um método para resolver problemas de decisão. 20

Exemplos (1) Uma MT não-determinística que checa se 2 vértices são conectados em um grafo simplesmente chuta um caminho entre eles. Após isto a MT necessita somente verificar se o caminho é válido. 21

Lembram que vimos 2 problemas no início do curso: O problema da Mesa (CICLO-HAMILTONIANO) O problema do Pacote (CAMINHO-HAMILTONIANO) (2) Para o problema de verificar se um grafo é hamiltoniano a MT chuta a lista de vértices no ciclo hamiltoniano. Se o grafo for hamiltoniano o próprio ciclo oferece toda a informação para verificar este fato. Se o grafo não for nenhuma lista de vértices vai enganar o verificador que facilmente verifica se a lista é válida. 22

Sumário Apresentamos os dois modelos principais de computação: MT Determinística e MT Nãodeterminística. A MTD pode ser simulada por uma MTND com uma perda exponencial de eficiência. Por isto que dizemos que a classe NP é a classe de todos os problemas de decisão solúveis por algoritmos não-determinísticos de tempo polinomial. N = não-determinístico P = polinomial A verificação é em tempo polinomial pois não contamos o tempo de advinhação, que será exponencial! 23

Sumário A Hipótese de Church-Turing: MT Deterministicas que decidem são equivalentes a nossa noção intuitiva de algorítmos. Sabendo disto, podemos descrever usualmente algoritmos em pseudo-código ao invés de escrever em MT. 24