Teorema da recursão

Post on 26-May-2015

236 views 2 download

Transcript of Teorema da recursão

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