Universidade Estadual de Campinas 
Análise e Desenvolvimento de Sistemas 
Trabalho de Conclusão de Curso - 2014 
UM ESTUDO SOBRE RECURSIVIDADE E SUAS 
APLICAÇÕES 
BRUNO SILVA DE OLIVEIRA 
Orientador JOSÉ CARLOS MAGOSSI
2 
AGENDA 
•INTRODUÇÃO 
•JORNADA HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
Motivação 
3
Objetivos 
4 
 Mostrar que a recursão está em todos os lugares 
 Mostrar possíveis equívocos que podemos cometer 
com a definição incompleta do tema 
 Responder a questão: Pra que serve recursão?
INTRODUÇÃO 
5
6 
AGENDA 
•INTRODUÇÃO 
•JORNADA 
HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
Surgimento 
7 
X 
Ouroboros 3000 a.C. [Pike, 1872] Panini 500 a.C. [Chomsky, 1957]
Infinito: Dedekind e Cantor 
“[Teorema 126] Seja θ uma função de Ω em Ω, onde Ω é um conjunto 
qualquer, e seja w um elemento qualquer de Ω. Então, existe uma e só uma 
função ψ de N em Ω, onde N é um conjunto simplesmente infinito 
qualquer, tal que: 
 [1] ψ{1} = w; 
 [2] ψ{n’} = θψ;” 
[Dedekind, 1969] 
8
Decidibilidade: Skolem, Church, Turing 
 {D} Δ(a,b) see (∃x)(a=bx). 
 D(a,b,c), a qual expressa que a é igual ao 
produto de b por um número entre 1 e c 
(fornecendo assim um elemento decisório): 
 Δ(a,b,1) see a=b; 
 Δ(a,b,c+1) see Δ(a,b,c) ou a = b(c+1) 
 {D’} Δ(a,b) see Δ(a,b,a), 
[Biraben, 1994] 
9
Complexidade: Kolmogorov e Ockham 
10 
 A complexidade de Kolmogorov pode ser definida 
simplificadamente como o tamanho do menor 
programa (ou descrição algorítmica) que computa na 
Máquina de Turing uma determinada string binária. 
 "Se em tudo o mais forem idênticas as várias 
explicações de um fenômeno, a mais simples é a 
melhor".
11 
AGENDA 
•INTRODUÇÃO 
•JORNADA HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO 
FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
DEFINIÇÃO FORMAL 
12 
“Sometimes recursion seems to brush paradox very 
closely. For example there are recursive definitions. Such 
a definition may give the casual viewer the impression that 
something is being defined in terms of itself. That would be 
circular and lead to infinite regress, if not to paradox 
proper. Actually a recursive definition never defines 
something in terms of itself but always in terms of 
simpler versions of itself.” – Hofstadter [1979]
Aritmética de Skolem (APR) 
13 
 R (f, x, 0) = x 
 R(f, x, S(y)) = f(R(f, x, y), y) 
 A função f(x,y) = x+y, ficaria, na APR, da seguinte 
forma: 
 f(x,0) = x 
 f(x,y+1) = S(f(x,y))
Funções recursivas primitivas 
14 
 Função constante-0 ξ: é a função ξ, de vários 
argumentos, dado por ξ:N->N, tal que ξ(2)=0; Há 
variações constantes diferentes de zero da função, 
como ξij(n1,...,ni)=j; 
 Funções de projeção π: seja k>=1 e 1<=i<=k, 
define-se a i-ésima função de projeção πjk, com k 
argumentos, como sendo uma função de Nk em N, 
tal que πjk (n1, n2, n3...nn)=nj, para qualquer nj 
pertencente a N. 
 Função sucessor σ: é a função σ:N->N tal que 
σ(n)=n+1 para todo n ∈ N.
Funções recursivas primitivas 
15 
 Regra de Composição: Seja g uma função com L 
argumentos e sejam h1, h2 ... hl, funções com k 
argumentos, tais que, para todo n ∈ Nk. Nessas 
condições, f(n) = g(h1n,....,hLn). Neste caso, f é dita 
obtida a partir de g, h1,...,hl por composição 
 Regra de Recursão Primitiva: Seja k>=0. Seja g 
uma função com k argumentos, e h uma função com 
k+2 argumentos, tal que, para todo n em Nk, 
f(n,0)=g(n), e para todo n em Nk e m em N, 
f(n,m+1)=h(n,m,f(n,m)).
Funções parciais 
16 
 div(x,y) = μ [f](x,y,m), onde 
f(x,y,m) = σ(x) − (m * y + y) 
 div(5,2) = μ[σ(5) – (t*2 + 2)] 
  6 – (0*2 + 2) = 6 – 2 = 4 
  6 – (1*2 + 2) = 6 – 4 = 2 
  6 – (2*2 + 2) = 6 – 6 = 0 
  div(5,2) = 2
Didática em sala de aula 
17 
 a. Solução trivial: Fib(0) = 1 e Fib(1) = 1 
 b. Solução geral: Fib(x) = Fib(x-1) + Fib(x-2) 
 c. Algoritmo de decisão: 
 d. Garantir que a função termine
Didática em sala de aula 
18 
 a. Solução trivial: Fib(0) = 1 e Fib(1) = 1 
 Ideia de complexidade e Teorema de Dedekind 
 b. Solução geral: Fib(x) = Fib(x-1) + Fib(x-2) 
 Funções recursivas de Godel e APR 
 c. Algoritmo de decisão: 
 Ideia de decidibilidade 
 d. Garantir que a função termine 
 Ideia de infinito e ideias de Skolem
19 
AGENDA 
•INTRODUÇÃO 
•JORNADA HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
Johaan Sebastian Bach 
20 
Rei Frederico II Thema Regium [Gainer, 2007] 
J. S. Bach – Musical Offering Part 1
Escher 
21 
Day and Night 
Reptile House of Stairs
Torre de Hanói 
22 
Hanoi (n; posteInicial; posteAuxiliar; posteF inal) 
Se n = 1 entao 
MoveDisco(1; posteInicial; posteFinal) 
senao 
Hanoi(n - 1; posteInicial; posteFinal; posteAuxiliar) 
MoveDisco(n; posteInicial; posteFinal) 
Hanoi(n - 1; posteAuxiliar; posteInicial; posteFinal).
23 
AGENDA 
•INTRODUÇÃO 
•JORNADA HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
Euclides 
24
Mandelbrot 
25
Conjunto de Mandelbrot -> Z = Z*Z + C 
26
Conjunto de Mandelbrot -> Z = Z*Z + C 
27
Auto-semelhança, escala e complexidade 
28
Auto-semelhança, escala e complexidade 
29
Dimensão 
30 
N =64; r =1/4, D = 3 
N = 2; r =1/3; D = 1,59
Camada D Área Fractal (%) 
A não-fractal 3.3 
B 1.52 16.5 
C 1.72 42.5 
D 1.89 70.2 
31
32 
AGENDA 
•INTRODUÇÃO 
•JORNADA HISTÓRICO 
CONCEITUAL 
•DEFINIÇÃO FORMAL 
•APLICAÇÕES DA 
RECURSÃO 
•FRACTAIS E A 
EXPLORAÇÃO DA 
RECURSIVIDADE 
•CONCLUSÃO
CONCLUSÃO 
33 
MOS TRAR QUE A RECURSÃO ES TÁ EM TODOS OS 
LUGARES 
ESTÁ NA ARTE: MÚSICA, ARTES PLÁSTICAS, 
LITOGRAVURA, CINEMA, POEMAS. . . 
ESTÁ NA MATEMÁTICA: ALGORITMOS 
RECURSIVOS, GEOMETRIA, ARITMÉTICA . . . 
ESTÁ NA VIDA DO SER HUMANO, NA 
NATUREZA, NAS CULTURAS, NA LINGUAGEM. . .
CONCLUSÃO 
34 
MOS TRAR EQUÍVOCOS QUE PODEM OCORRER COM 
A CONCEI TUAÇÃO INCOMP LETA DO TEMA 
AS AULAS PASSAM UM MÉTODO CORRETO, 
MAS UMA DEFINIÇÃO INCOMPLETA 
O ENSINO DE RECURSÃO PODERIA SER 
MELHOR COMPREENDIDO SE POSTO EM UM 
CONTEXTO HISTÓRICO
CONCLUSÃO 
35 
RES PONDER À QUES TÃO: PRA QUE SERVE 
RECURSÃO? 
SERVE PARA COMPREENDER OS FENÔMENOS 
CAÓTICOS, SISTÊMICOS, DINÂMICOS, 
COTIDIANOS E TECNOLÓGICOS 
APESAR DE CLÁSSICO, O CAMPO DA 
RECURSÃO AINDA POSSUI DIVERSAS PONTAS 
SOLTAS E VÁRIAS OPORTUNIDADES DE 
PESQUISA COMO O CASO DE FRACTAIS, 
ILUSTRADO PELO TAYLOR E POLLOCK

Um estudo sobre recursividade e suas aplicações

  • 1.
    Universidade Estadual deCampinas Análise e Desenvolvimento de Sistemas Trabalho de Conclusão de Curso - 2014 UM ESTUDO SOBRE RECURSIVIDADE E SUAS APLICAÇÕES BRUNO SILVA DE OLIVEIRA Orientador JOSÉ CARLOS MAGOSSI
  • 2.
    2 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 3.
  • 4.
    Objetivos 4 Mostrar que a recursão está em todos os lugares  Mostrar possíveis equívocos que podemos cometer com a definição incompleta do tema  Responder a questão: Pra que serve recursão?
  • 5.
  • 6.
    6 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 7.
    Surgimento 7 X Ouroboros 3000 a.C. [Pike, 1872] Panini 500 a.C. [Chomsky, 1957]
  • 8.
    Infinito: Dedekind eCantor “[Teorema 126] Seja θ uma função de Ω em Ω, onde Ω é um conjunto qualquer, e seja w um elemento qualquer de Ω. Então, existe uma e só uma função ψ de N em Ω, onde N é um conjunto simplesmente infinito qualquer, tal que:  [1] ψ{1} = w;  [2] ψ{n’} = θψ;” [Dedekind, 1969] 8
  • 9.
    Decidibilidade: Skolem, Church,Turing  {D} Δ(a,b) see (∃x)(a=bx).  D(a,b,c), a qual expressa que a é igual ao produto de b por um número entre 1 e c (fornecendo assim um elemento decisório):  Δ(a,b,1) see a=b;  Δ(a,b,c+1) see Δ(a,b,c) ou a = b(c+1)  {D’} Δ(a,b) see Δ(a,b,a), [Biraben, 1994] 9
  • 10.
    Complexidade: Kolmogorov eOckham 10  A complexidade de Kolmogorov pode ser definida simplificadamente como o tamanho do menor programa (ou descrição algorítmica) que computa na Máquina de Turing uma determinada string binária.  "Se em tudo o mais forem idênticas as várias explicações de um fenômeno, a mais simples é a melhor".
  • 11.
    11 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 12.
    DEFINIÇÃO FORMAL 12 “Sometimes recursion seems to brush paradox very closely. For example there are recursive definitions. Such a definition may give the casual viewer the impression that something is being defined in terms of itself. That would be circular and lead to infinite regress, if not to paradox proper. Actually a recursive definition never defines something in terms of itself but always in terms of simpler versions of itself.” – Hofstadter [1979]
  • 13.
    Aritmética de Skolem(APR) 13  R (f, x, 0) = x  R(f, x, S(y)) = f(R(f, x, y), y)  A função f(x,y) = x+y, ficaria, na APR, da seguinte forma:  f(x,0) = x  f(x,y+1) = S(f(x,y))
  • 14.
    Funções recursivas primitivas 14  Função constante-0 ξ: é a função ξ, de vários argumentos, dado por ξ:N->N, tal que ξ(2)=0; Há variações constantes diferentes de zero da função, como ξij(n1,...,ni)=j;  Funções de projeção π: seja k>=1 e 1<=i<=k, define-se a i-ésima função de projeção πjk, com k argumentos, como sendo uma função de Nk em N, tal que πjk (n1, n2, n3...nn)=nj, para qualquer nj pertencente a N.  Função sucessor σ: é a função σ:N->N tal que σ(n)=n+1 para todo n ∈ N.
  • 15.
    Funções recursivas primitivas 15  Regra de Composição: Seja g uma função com L argumentos e sejam h1, h2 ... hl, funções com k argumentos, tais que, para todo n ∈ Nk. Nessas condições, f(n) = g(h1n,....,hLn). Neste caso, f é dita obtida a partir de g, h1,...,hl por composição  Regra de Recursão Primitiva: Seja k>=0. Seja g uma função com k argumentos, e h uma função com k+2 argumentos, tal que, para todo n em Nk, f(n,0)=g(n), e para todo n em Nk e m em N, f(n,m+1)=h(n,m,f(n,m)).
  • 16.
    Funções parciais 16  div(x,y) = μ [f](x,y,m), onde f(x,y,m) = σ(x) − (m * y + y)  div(5,2) = μ[σ(5) – (t*2 + 2)]   6 – (0*2 + 2) = 6 – 2 = 4   6 – (1*2 + 2) = 6 – 4 = 2   6 – (2*2 + 2) = 6 – 6 = 0   div(5,2) = 2
  • 17.
    Didática em salade aula 17  a. Solução trivial: Fib(0) = 1 e Fib(1) = 1  b. Solução geral: Fib(x) = Fib(x-1) + Fib(x-2)  c. Algoritmo de decisão:  d. Garantir que a função termine
  • 18.
    Didática em salade aula 18  a. Solução trivial: Fib(0) = 1 e Fib(1) = 1  Ideia de complexidade e Teorema de Dedekind  b. Solução geral: Fib(x) = Fib(x-1) + Fib(x-2)  Funções recursivas de Godel e APR  c. Algoritmo de decisão:  Ideia de decidibilidade  d. Garantir que a função termine  Ideia de infinito e ideias de Skolem
  • 19.
    19 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 20.
    Johaan Sebastian Bach 20 Rei Frederico II Thema Regium [Gainer, 2007] J. S. Bach – Musical Offering Part 1
  • 21.
    Escher 21 Dayand Night Reptile House of Stairs
  • 22.
    Torre de Hanói 22 Hanoi (n; posteInicial; posteAuxiliar; posteF inal) Se n = 1 entao MoveDisco(1; posteInicial; posteFinal) senao Hanoi(n - 1; posteInicial; posteFinal; posteAuxiliar) MoveDisco(n; posteInicial; posteFinal) Hanoi(n - 1; posteAuxiliar; posteInicial; posteFinal).
  • 23.
    23 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 24.
  • 25.
  • 26.
    Conjunto de Mandelbrot-> Z = Z*Z + C 26
  • 27.
    Conjunto de Mandelbrot-> Z = Z*Z + C 27
  • 28.
  • 29.
  • 30.
    Dimensão 30 N=64; r =1/4, D = 3 N = 2; r =1/3; D = 1,59
  • 31.
    Camada D ÁreaFractal (%) A não-fractal 3.3 B 1.52 16.5 C 1.72 42.5 D 1.89 70.2 31
  • 32.
    32 AGENDA •INTRODUÇÃO •JORNADA HISTÓRICO CONCEITUAL •DEFINIÇÃO FORMAL •APLICAÇÕES DA RECURSÃO •FRACTAIS E A EXPLORAÇÃO DA RECURSIVIDADE •CONCLUSÃO
  • 33.
    CONCLUSÃO 33 MOSTRAR QUE A RECURSÃO ES TÁ EM TODOS OS LUGARES ESTÁ NA ARTE: MÚSICA, ARTES PLÁSTICAS, LITOGRAVURA, CINEMA, POEMAS. . . ESTÁ NA MATEMÁTICA: ALGORITMOS RECURSIVOS, GEOMETRIA, ARITMÉTICA . . . ESTÁ NA VIDA DO SER HUMANO, NA NATUREZA, NAS CULTURAS, NA LINGUAGEM. . .
  • 34.
    CONCLUSÃO 34 MOSTRAR EQUÍVOCOS QUE PODEM OCORRER COM A CONCEI TUAÇÃO INCOMP LETA DO TEMA AS AULAS PASSAM UM MÉTODO CORRETO, MAS UMA DEFINIÇÃO INCOMPLETA O ENSINO DE RECURSÃO PODERIA SER MELHOR COMPREENDIDO SE POSTO EM UM CONTEXTO HISTÓRICO
  • 35.
    CONCLUSÃO 35 RESPONDER À QUES TÃO: PRA QUE SERVE RECURSÃO? SERVE PARA COMPREENDER OS FENÔMENOS CAÓTICOS, SISTÊMICOS, DINÂMICOS, COTIDIANOS E TECNOLÓGICOS APESAR DE CLÁSSICO, O CAMPO DA RECURSÃO AINDA POSSUI DIVERSAS PONTAS SOLTAS E VÁRIAS OPORTUNIDADES DE PESQUISA COMO O CASO DE FRACTAIS, ILUSTRADO PELO TAYLOR E POLLOCK

Notas do Editor

  • #4 Nos horários de monitoria não sabia responder aos alunos para que servia recursão. Também havia problemas na forma que se passava o conceito, a maioria não sabia do que se tratava