Teorema da Recursão Teoria da Computação

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Variantes de Máquina de Turing
Laboratório de programação III Linguagem C
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
3 AUTÓMATOS FINITOS.
Ling. Formais e Autômatos Autômatos finitos
Técnica Diagonalização de Cantor
Máquinas de Turing Não Deterministas
Equivalência de Autômatos
Problema de Correspondência de Post (PCP)
Máquinas de Turing Teoria da Computação.
Mestrado em Ciência da Computação Profa. Sandra de Amo
Problema da Aceitação ATM
Envolvendo Autômatos e Linguagens Livres do Contexto
Teoria da Computação Sandra de Amo
Cálculo Relacional Datalog não-recursivo
Complexidade de Linguagens Influência do Modelo de Computação
Lema do Bombeamento – Gramáticas Livres do Contexto
Pós-graduação em Ciência da Computação – UFU
Mineração de Preferências (a partir de amostras superiores e inferiores) J.Pei et al. KDD 2008 AULA 18 Data Mining Profa. Sandra de Amo.
Datalog Recursivo AULA 6 PGC Sistemas de Banco de Dados
15 Introdução à Manipulação de Planilhas Eletrônicas Planilhas Eletrônicas são tabelas usadas para comunicar informações de forma clara, precisa e sucinta.
Linguagens Não Decidíveis
esquerda p/ direita,read only
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
autômatos finitos com transições e
Máquina de Turing e Computabilidade
Avaliando e Compreendendo o Desempenho - Respostas
Máquinas de Turing, Procedimentos, Algoritmos e Tese de Church
Progressão Geométrica
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
4 - DECIDIBILIDADE Universidade Federal da Paraíba
SIPSER – Capítulo 3: A tese de Church-Turing
Informática Teórica Engenharia da Computação
Ling. Formais e Autômatos AFN-ε
Inteligência Artificial
Máquina de Turing Universal
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Máquinas de Turing.
LFA: Unidade 03 – Parte B Engenharia/Ciência da Computação
BCC101 – Matemática Discreta
Redução.
Como analisar um algoritmo
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Números Primos – algoritmos e aplicações
MÁQUINAS DE TURING Acadêmicos: Karen Juliani Tosta Tomaz RA – 47566
Informática Teórica Aula 8 Por: Tarcisio Coutinho da Silva
Tese de Church-Turing.
Informática Teórica Arthur Ramos David Hulak
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Aula 8: Completeza em R, Supremos e Ínfimos
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação. REDUTIBILIDADE POR MAPEAMENTO Formalizaremos a noção de redutibilidade de uma dentre várias maneiras. Formalizaremos.
Informática Teórica Engenharia da Computação. REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de.
Transcrição da apresentação:

Teorema da Recursão Teoria da Computação Pós-graduação em Ciência da Computação Profa. Sandra de Amo

Auto-referência Máquina de Turing SELF SELF = No input w Apaga w da fita; Insere na fita o string <SELF> <SELF> = código da máquina SELF

Como construir a máquina SELF Passo 1 : Máquina Pw = máquina que imprime w na fita Pw = No input x Ignora x Imprime w na fita Exemplo : w = 00 Código da máquina P00 δ(q0,x) = (q1,0,R), para qualquer simbolo x da fita δ(q1,x) = (q2,0,R), para qualquer simbolo x da fita δ(q2,x) = (q2,B,R), para x ≠ B δ(q2,B) = (qa,B,R).

Como construir a máquina SELF Passo 2 : Máquina Q = máquina que no input w imprime o código da máquina que imprime w. Máquina de 2 fitas: Q = No input w 1. Constrói o string <Pw> na fita 2 2. Apaga w da fita 1 3. Copia <Pw> na fita 1 w <Pw> Q Input = w Output = <Pw> (código da máquina Pw)

Como construir a máquina SELF Passo 3 : Máquina B B = No input <M> Computa Q(<M>) = < P<M>> Imprime na fita < P<M> . M > Pára < P<M> . M > é o código “concatenado” de < P<M>> e <M> δ(q0,..) = (q1,...) δ(q’_0, ...) = ... δ(q0,...)= (q1,...) ........ ........ ... ..... δ(q,..) = (qa,..) δ(q’,..) = (q’a,....) δ(q,...) = (q’_0,...) ........ δ(q’,...) = (q’a,...) < M > <P< M > >

Como construir a máquina SELF Passo 4 : Máquina A A = P<B> Passo 5 : Máquina SELF SELF = A . B

Máquina SELF Self = No input x faça Ignora x Executa A: Imprime código da máquina B na fita Executa B sobre o string da fita (no caso <B>) : Imprime código da máquina que imprime B na fita seguido do código de B Resultado na fita = <A.B>

Máquina SELF = A.B < B > < A .B > Input w a1 a2 a3 a4 a5 A < B > qB0 q1 R # q1 ... B < A .B > qA0 q4 1 L # qB0 q1 R # q1 < P <B> > = <A> < B >

Teorema da Recursão Seja T máquina de Turing a duas fitas que recebe como input dois strings : w na primeira fita e u na segunda fita T : (w, u)  z Então existe máquina de Turing R com uma fita tal que R(u) = T(<R>, u)

Prova do Teorema da Recursão Considere a máquina Pw a duas fitas Pw = No input x Transporta x para a segunda fita Imprime w na primeira fita Seja A = P <BT> R = A.B.T

< P <BT> > = <A> < B.T > Input w a1 a2 a3 a4 a5 1a fita A < B.T > qBT0 q1 R # q1 ... 1a fita B 1a fita < A.B.T > qA0 q4 1 L # qBT0 q1 R # q1 < P <BT> > = <A> < B.T > a1 a2 a3 a4 a5 2a fita T LOGO : ABT (a1a2....a5) = T(<ABT>,a1a2...a5)

Característica da Máquina R Constrói uma réplica de seu próprio código. Continua o restante de seu cálculo que pode incluir ações envolvendo seu próprio código. Programas de vírus contém construção análoga à descrita na prova do teorema da recursão.

Outra formulação do Teorema da Recursão Seja T máquina de Turing a duas fitas. Para cada w fixo, seja a máquina de Turing a uma fita Tw : u  z Existem infinitas máquinas deste tipo. O teorema da Recursão afirma que existe uma máquina de Turing R a uma fita tal que T<R> = R

Aplicações do Teorema da Recursão Virus: Dada uma máquina T, é possivel construir uma máquina T’ equivalente a T que replica seu próprio código na fita. T’ = A.B.T T’: No input x faça Executa A Executa B % Após a execução do passo 2, tem-se o código de T’ na fita 1 e x na fita 2 Executa T sobre x (que está na 2a fita) Se T aceita x, aceita. Se T rejeita x, rejeita.

Aplicações do Teorema da Recursão Outra prova que o Problema da Parada é indecidível. Suponha que Halt fosse decidível. Seja H uma MT que decide Halt. Considere a máquina H que retorna o oposto de H: H(<M,w>) = qa se H(<M,w>) = qr H(<M,w>) entra em loop se H(<M,w>) = qa Considere a máquina H’ = ABH H’ : No input w faça: 1) Executa A 2) Executa B % Após a execução do passo 2, tem-se o código <H’ > de H’ na fita 1 e w na fita 2 3) Executa H em <H’,w> H’(w) = qa (pára) se H(H’,w) = qr (isto é, se H’ não pára ao ser executada em w) H’(w) entra em loop (não pára) se H(H’,w) = qa (isto é, se H’ pára ao ser executada em w) ABSURDO !

Aplicações do Teorema da Recursão M é uma máquina minimal se não é possivel encontrar máquina M’ equivalente com código mais curto. Problema MIN = {<M> | M é uma MT minimal} não é Turing Reconhecível. É fácil ver que o MIN é infinito (existem infinitas máquinas que são minimais).

Prova Suponha que MIN fosse Turing Reconhecível. Seja E uma máquina enumeradora de MIN. Seja E a seguinte máquina: E : No input x faça: Aciona o enumerador E A primeira vez que aparece um código de máquina de Turing D no dispositivo de impressão de E que seja maior do x, simule D em x. Repare que como MIN é infinito, sempre vai aparecer um código D maior do que x no dispositivo de impressão de E.

Prova (continuação) Considere a máquina M’ = ABE M’ = No input w faça 1) Executa A 2) Executa B % Após a execução do passo 2, tem-se o código <M’ > de M’ na fita 1 e w na fita 2 3) Executa E em <M’> M’(w) = D(w). Como o código de D é maior do que o de M’ então D não pode estar em MIN. Mas o código de D aparece na enumeração dos códigos de MIN !! ABSURDO

Teorema do Ponto Fixo Seja f: ∑*  ∑* uma função computável qualquer. f pode ser aplicada sobre códigos de máquina de Turing, produzindo como resposta um string que pode ou não ser código de máquina de Turing. Teorema do Ponto Fixo: Existe uma máquina de Turing F tal que f(<F>) é um código de MT equivalente a F Isto é: o comportamento da máquina F fica inalterado após a transformação de seu código via f.

Prova do Teorema do Ponto Fixo Considere a seguinte máquina G G(<M,w>) = f(<M>)(w) Considere a máquina F = ABG. Vamos mostrar que F é equivalente à máquina f(<F>) F = No input w faça: Execute A Execute B % Após a execução do passo 2, tem-se o código <F > de F na fita 1 e w na fita 2 Execute G em (<F,w>) Logo: F(w) = G(<F,w>) = f(<F>)(w). Portanto F é equivalente a f(<F>).