2. Í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
3. 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.
4. 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.
5. 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.
6. 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.
8. A Máquina AUTO
Passo 1: máquina Pw
Pw = “Sobre a entrada x:
1. Ignore x;
2. Imprima w na fita.”
9. 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.
10. A Máquina AUTO
Q = “Sobre a entrada w:
1. Construa a m.T. Pw.
2. Imprima <Pw> na fita.”
11. A Máquina AUTO
Passo 3: máquinas A e B
A = 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.
12. A Máquina AUTO
AUTO = “Sobre a entrada x:
1. Ignore x
2. Executa A: Imprime código da máquina B na fita
3. 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>
16. 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.
17. O Teorema da Recursão
A
B
T
( = P(BT))
Controle para R
…….
Onde:
1. A = P(BT) e
2. T recebe como parâmetros (<R>, w)
22. O Teorema da Recursão
Construção de AUTO
T = “Sobre a entrada <M, w>:
1. Imprima <M> e pare.”
23. O Teorema da Recursão
Construção de AUTO
T = “Sobre a entrada <M, w>:
1. Imprima <M> e pare.”
r(w) = t(R, w) - Definição de AUTO
24. O Teorema da Recursão
Construçã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>.”
25. Aplicações
AMT é 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.”
26. Aplicações
Teorema 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.
27. Aplicações
Prova:
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.”
28. Aplicações
Ví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.
29. Aplicações
Seja 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 A
2. 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.”
30. 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=2sChUvGM4HK2gXfhIHYCQ&usg=AFQjCNGDziN8Kp7QccoIYQ2D1cwrpJre3g&si
g2=wQSkbHg5Jzq5v52RPEcVZw&bvm=bv.57752919,d.b2I> acesso em
dez. 2013