Teorema da Recursão
Priscila Silva Neves LimaSérgio Ferreira Maia
Índice● Introdução
● Paradoxo do estudo da vida
● A máquina AUTO
● O teorema da recursão
● Aplicações
○ Teorema da parada
○ Teorema do ponto fixo
○ Vírus de computador
● Bibliografia
● Dúvidas
Introdução
O teorema da recursão é um resultado matemático que desempenha um papel fundamental em teoria da computabilidade.
Ele tem conexões com lógica matemática, teoria de sistemas auto-reprodutivos e vírus de computador.
Paradoxo do estudo da vida
1. Coisas vivas são máquinas.
2. Coisas vivas podem se reproduzir.
3. Máquinas não podem se auto reproduzir.
Paradoxo do estudo da vida
Como resolver o paradoxo:
○ A afirmação 3 está incorreta pois o Teorema da Recursão mostra como uma máquina pode se auto reproduzir.
A Máquina AUTO
AUTO é uma máquina de Turing que ignora a entrada e imprime uma cópia de sua própria descrição.
A Máquina AUTO
Auto-referência
AUTO = “Sobre a entrada w:1. Ignore a entrada w.2. Imprima <AUTO>.”
<AUTO> = código da máquina AUTO.
A Máquina AUTO
Passo 1: máquina Pw
Pw = “Sobre a entrada x:1. Ignore x;2. Imprima w na fita.”
A Máquina AUTO
Passo 2: máquina Q
Lemma (6.1 - Sipser)Existe uma função computável q: Σ* Σ*, onde se w é uma cadeia qualquer, q(w) é a descrição de uma m.T. Pw que imprime w e pára.
A Máquina AUTO
Q = “Sobre a entrada w:1. Construa a m.T. Pw.2. Imprima <Pw> na fita.”
A Máquina AUTO
Passo 3: máquinas A e BA = P<B>
B = “Sobre <M>, uma porção de uma m.T.:1. Compute q(<M>) = P<M>2. Imprima na fita <P<M>
o M> e pare”
<P<M>o M> é a concatenação de P<M> e M.
A Máquina AUTOAUTO = “Sobre a entrada x:
1. Ignore x2. Executa A: Imprime código da máquina B na fita3. Executa B sobre a string na fita (no caso <B>): Imprime o código da máquina que imprime B na fita (A) seguido do código de B”
Resultado na fita = <A.B>
A Máquina AUTO
A Máquina AUTO
A Máquina AUTO
O Teorema da Recursão
Seja T uma máquina de Turing que computa t: Σ* x Σ* Σ*. Existe uma m.T R que computa uma função r: Σ* Σ*, onde para todo w:
r(w) = t(<R>, w)
Em outras palavras: Uma m.T. pode construir uma réplica de seu próprio código e continuar o restante de seu cálculo, que pode até mesmo incluir ações envolvendo seu próprio código.
O Teorema da Recursão
Onde: 1. A = P(BT) e2. T recebe como parâmetros (<R>, w)
A
( = P(BT))
B T
…….
Controle para R
O Teorema da Recursão
O Teorema da Recursão
O Teorema da Recursão
LOGO : ABT (a1a2....a5) = T(<ABT>,a1a2...a5) => R(w) = T(<R>, w)
O Teorema da RecursãoConstrução de AUTO
O Teorema da RecursãoConstrução de AUTO
T = “Sobre a entrada <M, w>:1. Imprima <M> e pare.”
O Teorema da RecursãoConstrução de AUTO
T = “Sobre a entrada <M, w>:1. Imprima <M> e pare.”
r(w) = t(R, w) - Definição de AUTO
O Teorema da RecursãoConstrução de AUTO
T = “Sobre a entrada <M, w>:1. Imprima <M> e pare.”
r(w) = t(R, w) - Definição de AUTO
AUTO = “Sobre uma entrada w:1. Obtenha, por meio do Teorema da Recursão, a própria
descrição <AUTO>.2. Imprima <AUTO>.”
AplicaçõesAMT é indecidível:
Assuma que a m.T. H decide AMT. Construa a seguinte m.T. M:
M = “Sobre a entrada w:1. Obtenha, por meio do Teorema da Recursão, sua própria
descrição <M>.2. Rode H sobre a entrada <M, w>3. Se H rejeita, aceite. Se H aceita, rejeite.”
AplicaçõesTeorema do ponto fixo:Seja t: Σ* Σ* uma função computável. Então existe uma m.T. F para a qual t(<F>) descreve uma m.T. equivalente a F. Se a entrada não for uma descrição válida, a saída será uma m.T. que sempre rejeita.
Em outras palavras, existe uma m.T F tal que, se t(<F>) = G, sobre a mesma entrada, G imprimirá a mesma saída que F.
AplicaçõesProva:
Seja F a seguinte m.T.:
F = “Sobre a entrada w:1. Obtenha, por meio do Teorema da Recursão, sua própria
descrição <F>.2. Compute t(<F>) para obter a descrição de uma m.T. G.3. Simule G sobre w.”
AplicaçõesVírus:Um programa projetado para se espalhar entre computadores.
Quando em um computador hospedeiro, começam a transmitir cópias de si mesmos para outros computadores acessíveis.
Podem se utilizar do teorema da recursão para se multiplicarem.
AplicaçõesSeja a m.T. V, uma m.T. que simula um vírus, tal que
V = ABT
V: “Sobre a entrada w faça:1. Rode A2. Rode B
(após a execução do passo 2, tem-se wABT na fita, ou seja, wV)3. Rode T sobre w. Se T aceita, aceite. Se T rejeita, rejeite.”
Bibliografia➢ SIPSER, Michael. Introdução à teoria da computação. Tradução técnica
Ruy José Guerra Barretto de Queiroz. 2ª ed. São Paulo: Thomson, 2007.
➢ John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. 2ª ed.
➢ Slide: Tópicos Avançados em Teoria da Computação, Sandra de Amo, em <https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&ved=0CE8QFjAE&url=http%3A%2F%2Fwww.deamo.prof.ufu.br%2Farquivos%2FTeo-recursao.ppt&ei=2sChUv-GM4HK2gXfhIHYCQ&usg=AFQjCNGDziN8Kp7QccoIYQ2D1cwrpJre3g&sig2=wQSkbHg5Jzq5v52RPEcVZw&bvm=bv.57752919,d.b2I> acesso em dez. 2013
Teorema da Recursão
Priscila Silva Neves LimaSérgio Ferreira Maia
Top Related