SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Teorema da
Recursão
Priscila Silva Neves Lima
Sé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 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.
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>
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
A

B

T

( = P(BT))

Controle para R
…….

Onde:
1. A = P(BT) e
2. T recebe como parâmetros (<R>, w)
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ão
Construção de AUTO
O Teorema da Recursão
Construção de AUTO
T = “Sobre a entrada <M, w>:
1. Imprima <M> e pare.”
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
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>.”
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.”
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.
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.”
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.
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.”
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
Teorema da
Recursão
Priscila Silva Neves Lima
Sérgio Ferreira Maia

Mais conteúdo relacionado

Mais procurados

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
Crishna Irion
 
Présentation dpem 2009
Présentation dpem 2009Présentation dpem 2009
Présentation dpem 2009
Younes Benzema
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
Tácito Graça
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
Tácito Graça
 

Mais procurados (20)

Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
PL/SQL:les curseurs
PL/SQL:les curseursPL/SQL:les curseurs
PL/SQL:les curseurs
 
Aula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHPAula13 - Estrutura de repetição (for e while) - PHP
Aula13 - Estrutura de repetição (for e while) - PHP
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Présentation dpem 2009
Présentation dpem 2009Présentation dpem 2009
Présentation dpem 2009
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Aula 03 estrutura de seleção
Aula 03   estrutura de seleçãoAula 03   estrutura de seleção
Aula 03 estrutura de seleção
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
An introduction to thrust CUDA
An introduction to thrust CUDAAn introduction to thrust CUDA
An introduction to thrust CUDA
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Aula 9 - Estruturas Condicionais
Aula 9 - Estruturas CondicionaisAula 9 - Estruturas Condicionais
Aula 9 - Estruturas Condicionais
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Aula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionaisAula 4 - Estruturas condicionais
Aula 4 - Estruturas condicionais
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
bac info : série récursivité
bac info : série récursivitébac info : série récursivité
bac info : série récursivité
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 

Destaque (6)

Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Pged 07
Pged 07Pged 07
Pged 07
 
Recursividade
RecursividadeRecursividade
Recursividade
 
scilab aula 05
scilab  aula 05scilab  aula 05
scilab aula 05
 
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricosCálculo Numérico - Aula01: Introdução aos métodos numéricos
Cálculo Numérico - Aula01: Introdução aos métodos numéricos
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 

Semelhante a Teorema da recursão (10)

Aula2
Aula2Aula2
Aula2
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
Aula02
Aula02Aula02
Aula02
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Portugol_BCC201_2.pdf
Portugol_BCC201_2.pdfPortugol_BCC201_2.pdf
Portugol_BCC201_2.pdf
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 

Teorema da recursão

  • 1. Teorema da Recursão Priscila Silva Neves Lima Sérgio Ferreira Maia
  • 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.
  • 7. 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.
  • 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)
  • 18. O Teorema da Recursão
  • 19. O Teorema da Recursão
  • 20. O Teorema da Recursão LOGO : ABT (a1a2....a5) = T(<ABT>,a1a2...a5) => R(w) = T(<R>, w)
  • 21. O Teorema da Recursão Construção de AUTO
  • 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
  • 31. Teorema da Recursão Priscila Silva Neves Lima Sérgio Ferreira Maia