Teorema da recursão

31
Teorema da Recursão Priscila Silva Neves Lima Sérgio Ferreira Maia

Transcript of Teorema da recursão

Page 1: Teorema da recursão

Teorema da Recursão

Priscila Silva Neves LimaSérgio Ferreira Maia

Page 2: Teorema da recursão

Í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

Page 3: Teorema da recursão

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.

Page 4: Teorema da recursão

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.

Page 5: Teorema da recursão

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.

Page 6: Teorema da recursão

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.

Page 7: Teorema da recursã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.

Page 8: Teorema da recursão

A Máquina AUTO

Passo 1: máquina Pw

Pw = “Sobre a entrada x:1. Ignore x;2. Imprima w na fita.”

Page 9: Teorema da recursão

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.

Page 10: Teorema da recursão

A Máquina AUTO

Q = “Sobre a entrada w:1. Construa a m.T. Pw.2. Imprima <Pw> na fita.”

Page 11: Teorema da recursão

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.

Page 12: Teorema da recursão

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>

Page 13: Teorema da recursão

A Máquina AUTO

Page 14: Teorema da recursão

A Máquina AUTO

Page 15: Teorema da recursão

A Máquina AUTO

Page 16: Teorema da recursão

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.

Page 17: Teorema da recursão

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

Page 18: Teorema da recursão

O Teorema da Recursão

Page 19: Teorema da recursão

O Teorema da Recursão

Page 20: Teorema da recursão

O Teorema da Recursão

LOGO : ABT (a1a2....a5) = T(<ABT>,a1a2...a5) => R(w) = T(<R>, w)

Page 21: Teorema da recursão

O Teorema da RecursãoConstrução de AUTO

Page 22: Teorema da recursão

O Teorema da RecursãoConstrução de AUTO

T = “Sobre a entrada <M, w>:1. Imprima <M> e pare.”

Page 23: Teorema da recursão

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

Page 24: Teorema da recursão

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>.”

Page 25: Teorema da recursão

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.”

Page 26: Teorema da recursão

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.

Page 27: Teorema da recursão

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.”

Page 28: Teorema da recursão

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.

Page 29: Teorema da recursão

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.”

Page 30: Teorema da recursão

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

Page 31: Teorema da recursão

Teorema da Recursão

Priscila Silva Neves LimaSérgio Ferreira Maia