Beruflich Dokumente
Kultur Dokumente
UFMG/ICEx/DCC
MD
Func
o
es
Sumrio
Introduo
Sequncia como funo
Funo como codificao/decodificao de bits
Autmato finito
Funo injetiva e funo hash
Funes sobrejetiva, bijetiva e inversa
Princpio da casa de pombo
Composio de funes
Funo de complexidade
UFMG/ICEx/DCC
MD
Func
o
es
Introduo
Sejam dois conjuntos A e B. Suponha que cada elemento de A possa ser
associado a um elemento especfico de B. A relao entre elementos de A e
B chamada de funo.
Funes so normalmente representadas por uma nica letra como, por
exemplo, f , g, h, F , G. Funes especiais so denotadas por strings, como
log, exp e sin.
UFMG/ICEx/DCC
MD
Func
o
es
Introduo
Definio: A funo f de um conjunto X para um conjunto Y uma relao entre elementos de X e elementos de Y com a propriedade que cada
elemento de X est relacionado a um nico elemento de Y .
A notao f : X Y significa que f uma funo de X para Y .
O conjunto X chamado de domnio e o conjunto Y de co-domnio.
Faixa de f ou imagem de X para f : conjunto de todos os valores que f
pode assumir:
Faixa de f : {y Y |y = f (x), para algum x X}
Imagem inversa de y = {x X|f (x) = y}
Implicao:
Cada elemento de X pode ser associado a um e somente um elemento
de Y .
UFMG/ICEx/DCC
MD
Func
o
es
Introduo
Sejam os conjuntos finitos X e Y definidos da seguinte forma: X = {a, b, c}
e Y = {1, 2, 3, 4}. A funo f : X Y pode ser definida por um diagrama,
como por exemplo:
Domnio de f = {a, b, c};
Co-domnio de f = {1, 2, 3, 4}.
f (a) = 2; f (b) = 4; f (c) = 2.
Faixa de f = {2, 4}.
f
a
b
c
1
2
3
4
Imagem inversa de 1 = ;
Imagem inversa de 2 = {a, c};
Imagem inversa de 3 = ;
Imagem inversa de 4 = {b};
A funo f representada como um conjunto de pares ordenados = {(a, 2), (b, 4), (c, 2)}.
UFMG/ICEx/DCC
MD
Func
o
es
Introduo
Exemplos de funes:
f : x x2.
f : R R a funo quadrado.
f : n n + 1.
f : Z Z a funo sucessor.
f : r 2.
f : Q N a funo constante.
Definio (Igualdade de funes): Sejam f e g funes definidas de X em Y .
Ento,
f = g, sse f (x) = g(x), x X.
UFMG/ICEx/DCC
MD
Func
o
es
Introduo
Exemplos:
Sejam f e g funes definidas
para todo x R.
f = g?
(a) f (x) = |x|
e g(x) = x2.
Sim. |x| = x2, x R.
(b) Sejam as funes
f +g : RR e
g+f : RR
definidas como:
(f + g)(x) = f (x) + g(x),
(g + f )(x) = g(x) + f (x),
x R e
x R.
f + g = g + f?
(f + g)(x) = f (x) + g(x)
= g(x) + f (x)
= (g + f )(x)
UFMG/ICEx/DCC
MD
Func
o
es
definio de f + g
comutatividade da adio
definio de g + f
1,
3
1
2,
(1)n
1
4 , . . . , n+1 , . . .
pode ser definida como uma funo f dos inteiros no-negativos para os
nmeros reais, isto ,
0
1
2
2
...
1
3
Formalmente, f : Z0 R, onde
(1)n
f (n) =
n+1
n
n (1)
n+1
UFMG/ICEx/DCC
MD
Func
o
es
UFMG/ICEx/DCC
MD
Func
o
es
UFMG/ICEx/DCC
MD
Func
o
es
10
UFMG/ICEx/DCC
MD
Func
o
es
11
UFMG/ICEx/DCC
MD
Func
o
es
12
Funes booleanas
Definio: Uma funo Booleana f uma funo cujo domnio o conjunto
de todas n-tuplas ordenadas de 0s e 1s e cujo co-domnio {0, 1}.
Formalmente, o domnio de uma funo Booleana pode ser descrito como o
produto Cartesiano de n cpias do conjunto {0, 1}, que representado por
{0, 1}n. Logo,
f : {0, 1}n {0, 1}.
UFMG/ICEx/DCC
MD
Func
o
es
13
Funes booleanas
Exemplo: f (x1, x2, x3) = (x1 + x2 + x3) mod 2
Entrada
UFMG/ICEx/DCC
Sada
x1
x2
x3
MD
Func
o
es
14
Mas,
1) = 1
f (2
f (3
6) = 3
.
3)
. . f (1
)
=
6
f
(
2
6
UFMG/ICEx/DCC
MD
Func
o
es
15
Funo Estado
Os problemas em Cincia da Computao podem ser vistos, de uma forma
geral, conforme o diagrama abaixo:
Sada 1 -
Entrada 1-
...
Entrada n-
Modelo
Computacional
do Problema
...
Sada m -
MD
Func
o
es
16
Autmato finito
Um autmato finito (AF), em ingls
Finite Automaton ou
Finite State Automaton ou
Finite State Machine
um modelo matemtico de um sistema que possui entradas e sadas discretas.
O sistema pode estar num estado dentre um conjunto finito de estados ou
configuraes.
O estado do sistema sumariza a informao relacionada com entradas passadas que necessria para determinar o comportamento do sistema em
entradas subsequentes.
UFMG/ICEx/DCC
MD
Func
o
es
17
Autmato finito
Exemplo: O mecanismo de controle de um elevador no precisa lembrar
todas as requisies anteriores de servio, mas somente o andar corrente, a
direo de movimento e as requisies pendentes.
Computador digital: pode ser modelado por um autmato finito.
Exemplo: mquina de doce que custa 20 centavos e aceita moedas de 5 e 10
centavos
10
5 Dep
5
0 Dep
15 Dep
10
10
10 Dep
UFMG/ICEx/DCC
MD
10
Func
o
es
20 Dep
18
Autmato finito
Definio: um autmato finito uma quintupla A = (I, S, s0, Q, N ), onde
I: alfabeto de entrada para o autmato, ou seja, conjunto de smbolos vlidos.
S: conjunto de estados do autmato.
s0: estado inicial do autmato, onde s0 S.
Q: conjunto de estados finais, onde Q S.
N : funo de transio ou de prximo estado, onde N : S I S.
Observao importante: essa definio define um autmato determinstico.
UFMG/ICEx/DCC
MD
Func
o
es
19
Autmato finito
Seja um autmato A = (I, S, s0, Q, N ), onde
I = {0, 1}
S = {s0, s1, s2}
s0 = estado inicial do autmato, onde s0 S.
Q = {s2}, onde Q S.
N = {(s0, 0, s1), (s0, 1, s0), (s1, 0, s1), (s1, 1, s2), (s2, 0, s1), (s2, 1, s0)}.
A operao de um autmato finito normalmente descrito por um diagrama
de transio de estados.
1
s0
s1
0
UFMG/ICEx/DCC
MD
Func
o
es
s2
20
Autmato finito
Uma outra forma de representar a operao do autmato (funo de prximo
estado N ) atravs da tabela do prximo estado.
hInicial i
Estado
hFinal i
s0
s1
s2
Entrada
0
1
s1 s0
s1 s2
s1 s0
1
s0
s1
0
UFMG/ICEx/DCC
MD
Func
o
es
s2
21
MD
Func
o
es
22
s0
s1
0
s2
MD
Func
o
es
23
UFMG/ICEx/DCC
MD
Func
o
es
24
s0
s1
s2
s1 s 2 s1 s2 s0 s1
ou seja,
N (s1, 10110) = s1.
UFMG/ICEx/DCC
MD
Func
o
es
25
0,1
0
1
s1
0*
0*10*
s2
0*11(0*1*)*
Estado vlido
0
1
s0
s1
1
s2
MD
Func
o
es
26
s1
s2
s3
E XECUTA AUTMATO(A)
1
2
3
4
5
6
7
8
9
10
state 0
symbol primeiro smbolo do string de entrada
while symbol 6=
do choose state of
0: if symbol = 0 then state 1 else state 0
1: if symbol = 0 then state 1 else state 2
2: if symbol = 0 then state 1 else state 3
3: if symbol = 0 then state 1 else state 0
symbol prximo smbolo do string de entrada
return state O estado final 3 sse o string termina em 011
UFMG/ICEx/DCC
MD
Func
o
es
27
UFMG/ICEx/DCC
MD
Func
o
es
28
Funo injetiva
Definio: Seja F : X Y . F uma funo um-para-um ou injetiva sse
para todos x1, x2 X,
se F (x1) = F (x2) ento x1 = x2,
ou
se x1 6= x2 ento F (x1) 6= F (x2)
UFMG/ICEx/DCC
MD
Func
o
es
29
UFMG/ICEx/DCC
MD
Func
o
es
30
Funo hash
Por melhor que seja a funo h(k) e por mais esparsa que seja a ocupao
da tabela colises ocorrem!
Paradoxo do aniversrio:
Quando 23 ou mais pessoas esto juntas existe mais de 50% de chance
que duas pessoas tenham a mesma data de aniversrio.
Logo, uma tabela com 365 entradas e com 23 chaves ou mais, cujos endereos so calculados como se fossem uniformes e randmicos, mais da
metade das vezes, duas ou mais chaves vo ter o mesmo endereo na
tabela.
UFMG/ICEx/DCC
MD
Func
o
es
31
Funo hash
Uma funo de transformao deve mapear chaves em inteiros (ndices) dentro do intervalo [0..M 1] onde M o tamanho da tabela.
A funo de transformao ideal aquela que:
1. Seja simples de ser computada, e
2. Para cada chave de entrada, qualquer uma das sadas possveis igualmente provvel de ocorrer.
Mtodo mais usado:
Usa o resto da diviso inteira por M :
h(k) = k mod M
onde k um inteiro correspondente chave e que representa um ndice na
tabela.
UFMG/ICEx/DCC
MD
Func
o
es
32
UFMG/ICEx/DCC
MD
Func
o
es
33
n
X
Chave[i] p[i],
i=1
onde
n o nmero de caracteres da chave;
Chave[i] corresponde representao ASCII do i-simo caractere da
chave;
p[i] um inteiro de um conjunto de pesos gerados randomicamente para
1 i n.
Vantagem em usar pesos:
Dois conjuntos diferentes de pesos p1[i] e p2[i], 1 i n, leva a duas
funes de transformao h1(k) e h2(k) diferentes.
UFMG/ICEx/DCC
MD
Func
o
es
34
UFMG/ICEx/DCC
MD
Func
o
es
35
UFMG/ICEx/DCC
MD
Func
o
es
36
UFMG/ICEx/DCC
MD
Func
o
es
37
UFMG/ICEx/DCC
MD
Func
o
es
38
UFMG/ICEx/DCC
MD
Func
o
es
39
MD
Func
o
es
40
UFMG/ICEx/DCC
MD
Func
o
es
41
i.e.,
1 sA 30.
UFMG/ICEx/DCC
MD
Func
o
es
42
UFMG/ICEx/DCC
MD
Func
o
es
43
UFMG/ICEx/DCC
MD
Func
o
es
44
MD
Func
o
es
45
Generalizao do princpio
Princpio (3 a verso):
Para qualquer funo f , definida de um conjunto finito X para um conjunto
finito Y e para qualquer inteiro positivo k, se |X| > k |Y |, ento existe
algum y Y tal que y a imagem de pelo menos k + 1 elementos distintos
de X.
Princpio (4 a versocontrapositivo):
Para qualquer funo f , definida de um conjunto finito X para um conjunto
finito Y e para qualquer inteiro positivo k, se para cada y Y , f 1(y) tem
no mximo k elementos ento X tem no mximo k |Y | elementos.
UFMG/ICEx/DCC
MD
Func
o
es
46
Generalizao do princpio
Use a generalizao do princpio da Casa de Pombo para mostrar que num
grupo de 85 pessoas, a primeira letra dos nomes de pelo menos quatro pessoas a mesma.
85 > 3 26 = 78. Logo, a letra inicial dos nomes de pelo menos quatro
pessoas a mesma.
O mesmo resultado pode ser dado usando a forma contrapositiva e a negao.
Suponha que no existam quatro pessoas que tm a mesma letra inicial no
primeiro nome. Assim, no mximo trs pessoas tm a mesma letra. Pela
forma contrapositiva da generalizao do princpio da Casa de Pombo isto
implica num total de 3 26 = 78 pessoas. Mas isto uma contradio pois
existem 85 pessoas. Logo, pelo menos quatro pessoas tm a mesma letra
inicial no primeiro nome.
UFMG/ICEx/DCC
MD
Func
o
es
47
UFMG/ICEx/DCC
MD
Func
o
es
48
Composio de funes
Definio (composio de funes): Sejam f : X Y 0 e g : Y Z funes
com a propriedade que a faixa de f um subconjunto do domnio de g, i.e.,
Y 0 Y . Defina uma nova funo g f : X Z da seguinte forma:
(g f )(x) = g(f (x)), x X.
A funo g f chamada de composio de f e g.
Exemplo:
f : Z Z, f (n) = n + 1.
g : Z Z, g(n) = n2.
?
f g = g f.
(g f )(n) = g(f (n)) = g(n + 1) = (n + 1)2, n Z
(f g)(n) = f (g(n)) = f (n2) = n2 + 1, n Z
.
. . f g 6= g f.
UFMG/ICEx/DCC
MD
Func
o
es
49
MD
Func
o
es
50
UFMG/ICEx/DCC
MD
Func
o
es
51
Cardinalidade de conjuntos
Definio (mesma cardinalidade): Sejam A e B quaisquer conjuntos. A tem
a mesma cardinalidade de B sse existe uma correspondncia um-para-um
de A para B. Em outras palavras, A tem a mesma cardinalidade que B sse
existe uma funo f de A para B que injetiva e sobrejetiva (i.e., bijetiva).
Teorema:
Para todos os conjuntos A, B e C,
(a) A tem a mesma cardinalidade que A.
propriedade reflexiva da cardinalidade.
(b) Se A tem a mesma cardinalidade que B, ento B tem a mesma cardinalidade que A.
propriedade simtrica da cardinalidade.
(c) Se A tem a mesma cardinalidade que B, e B tem a mesma cardinalidade
que C ento A tem a mesma cardinalidade que C.
propriedade transitiva da cardinalidade.
Definio (mesma cardinalidade): A e B tm a mesma cardinalidade sse, A
tem a mesma cardinalidade que B ou B tem a mesma cardinalidade que A.
UFMG/ICEx/DCC
MD
Func
o
es
52
Conjuntos contveis
Definio (conjunto contvel infinito): Um conjunto chamado contvel infinito
sse ele possui a mesma cardinalidade do conjunto dos inteiros positivos Z+.
Um conjunto chamado contvel sse finito ou contvel infinito. Um conjunto
que no contvel chamado de incontvel.
Exemplo: Mostre que o conjunto Z, conjunto de todos os inteiros contvel.
0
1
1
2
2
...
...
1
2
3
4
5
...
UFMG/ICEx/DCC
MD
Func
o
es
53
Conjuntos contveis
Teorema:
O conjunto de todos os nmeros reais entre 0 e 1 incontvel.
Teorema:
Qualquer subconjunto de um conjunto contvel contvel.
Exemplo: O conjunto de todos os nmeros reais tem a mesma cardinalidade
que o conjunto dos nmeros reais entre 0 e 1.
Exemplo: O conjunto de todos os programas de computador numa dada linguagem de programao contvel.
UFMG/ICEx/DCC
MD
Func
o
es
54
UFMG/ICEx/DCC
MD
Func
o
es
55
UFMG/ICEx/DCC
MD
Func
o
es
56
UFMG/ICEx/DCC
MD
Func
o
es
57
Notao
f (n) = (g(n))
UFMG/ICEx/DCC
MD
Func
o
es
58
Notao
A notao limita a funo por fatores constantes.
Escreve-se f (n) = (g(n)), se existirem constantes positivas c1, c2 e n0
tais que para n n0, o valor de f (n) est sempre entre c1g(n) e c2g(n)
inclusive.
Pode-se dizer que g(n) um limite assinttico firme (em ingls, asymptotically tight bound) para f (n).
f (n) = (g(n)),
c1 > 0, c2 > 0, n0, | 0 c1g(n) f (n) c2g(n), n n0
MD
Func
o
es
59
Notao : Exemplo 1
1 n2 3n = (n2 ).
Mostre que 2
Para provar esta afirmao, devemos achar constantes c1 > 0, c2 > 0, n > 0,
tais que:
1
c1n2 n2 3n c2n2
2
para todo n n0.
Se dividirmos a expresso acima por n2 temos:
1 3
c1 c2 .
2 n
UFMG/ICEx/DCC
MD
Func
o
es
60
Notao : Exemplo 1
A inequao mais a direita ser sempre vlida para qualquer valor de n 1 ao
1.
escolhermos c2 2
Da mesma forma, a inequao mais a esquerda ser sempre vlida para qual1.
quer valor de n 7 ao escolhermos c1 14
Assim, ao escolhermos c1 = 1/14, c2 = 1/2 e n0 = 7, podemos verificar que
1 n2 3n = (n2 ).
2
Note que existem outras escolhas para as constantes c1 e c2, mas o fato importante que a escolha existe.
2 3n.
Note tambm que a escolha destas constantes depende da funo 1
n
2
MD
Func
o
es
61
Notao : Exemplo 2
Usando a definio formal de prove que 6n3 6= (n2).
UFMG/ICEx/DCC
MD
Func
o
es
62
Notao O
f (n) = O(g(n))
UFMG/ICEx/DCC
MD
Func
o
es
63
Notao O
A notao O define um limite superior para a funo, por um fator constante.
Escreve-se f (n) = O(g(n)), se existirem constantes positivas c e n0 tais
que para n n0, o valor de f (n) menor ou igual a cg(n).
Pode-se dizer que g(n) um limite assinttico superior (em ingls, asymptotically upper bound) para f (n).
f (n) = O(g(n)), c > 0, n0, | 0 f (n) cg(n), n n0.
UFMG/ICEx/DCC
MD
Func
o
es
64
Notao O
Quando a notao O usada para expressar o tempo de execuo de um
algoritmo no pior caso, est se definindo tambm o limite (superior) do tempo
de execuo desse algoritmo para todas as entradas.
Por exemplo, o algoritmo de ordenao por insero (a ser estudado) O(n2)
no pior caso.
Este limite se aplica para qualquer entrada.
UFMG/ICEx/DCC
MD
Func
o
es
65
Notao O
Tecnicamente um abuso dizer que o tempo de execuo do algoritmo de
ordenao por insero O(n2) (i.e., sem especificar se para o pior caso,
melhor caso, ou caso mdio):
O tempo de execuo desse algoritmo depende de como os dados de
entrada esto arranjados.
Se os dados de entrada j estiverem ordenados, este algoritmo tem um
tempo de execuo de O(n), ou seja, o tempo de execuo do algoritmo
de ordenao por insero no melhor caso O(n).
O que se quer dizer quando se fala que o tempo de execuo O(n2)
que no pior caso o tempo de execuo O(n2).
Ou seja, no importa como os dados de entrada esto arranjados, o tempo
de execuo em qualquer entrada O(n2).
UFMG/ICEx/DCC
MD
Func
o
es
66
Notao
f (n) = (g(n))
UFMG/ICEx/DCC
MD
Func
o
es
67
Notao
A notao define um limite inferior para a funo, por um fator constante.
Escreve-se f (n) = (g(n)), se existirem constantes positivas c e n0 tais
que para n n0, o valor de f (n) maior ou igual a cg(n).
Pode-se dizer que g(n) um limite assinttico inferior (em ingls, asymptotically lower bound) para f (n).
f (n) = (g(n)), c > 0, n0, |0 cg(n) f (n), n n0.
UFMG/ICEx/DCC
MD
Func
o
es
68
Notao
Quando a notao usada para expressar o tempo de execuo de um algoritmo no melhor caso, est se definindo tambm o limite (inferior) do tempo
de execuo desse algoritmo para todas as entradas.
Por exemplo, o algoritmo de ordenao por insero (n) no melhor
caso.
O tempo de execuo do algoritmo de ordenao por insero (n).
O que significa dizer que o tempo de execuo (i.e., sem especificar se
para o pior caso, melhor caso, ou caso mdio) (g(n))?
O tempo de execuo desse algoritmo pelo menos uma constante vezes
g(n) para valores suficientemente grandes de n.
UFMG/ICEx/DCC
MD
Func
o
es
69
UFMG/ICEx/DCC
MD
Func
o
es
70
UFMG/ICEx/DCC
MD
Func
o
es
71
Pior Caso:
Caso Mdio:
n2
2
n2
4
n
2
3n
4
Melhor caso:
c
(n) = n 1
=
Melhor Caso
n2
n2
UFMG/ICEx/DCC
MD
Func
o
es
72
Teorema
Para quaisquer funes f (n) e g(n),
f (n) = (g(n))
se e somente se,
f (n) = O(g(n)) e f (n) = (g(n))
UFMG/ICEx/DCC
MD
Func
o
es
73
UFMG/ICEx/DCC
MD
Func
o
es
74
Notao o
O limite assinttico superior definido pela notao O pode ser assintoticamente firme ou no.
Por exemplo, o limite 2n2 = O(n2) assintoticamente firme, mas o limite
2n = O(n2) no .
A notao o usada para definir um limite superior que no assintoticamente firme.
Formalmente a notao o definida como:
f (n) = o(g(n)), c > 0 e n0 | 0 f (n) < cg(n), n n0
Exemplo, 2n = o(n2) mas 2n2 6= o(n2).
UFMG/ICEx/DCC
MD
Func
o
es
75
Notao o
As definies das notaes O (o grande) e o (o pequeno) so similares.
A diferena principal que em f (n) = O(g(n)), a expresso
0 f (n) cg(n)
vlida para pelo menos uma constante c > 0.
Intuitivamente, a funo f (n) tem um crescimento muito menor que g(n)
quando n tende para infinito. Isto pode ser expresso da seguinte forma:
f (n)
lim
=0
n g(n)
Alguns autores usam este limite como a definio de o.
UFMG/ICEx/DCC
MD
Func
o
es
76
Notao
Por analogia, a notao est relacionada com a notao da mesma forma
que a notao o est relacionada com a notao O.
Formalmente a notao definida como:
f (n) = (g(n)), c > 0 e n0 | 0 cg(n) < f (n), n n0
2
2
n
n
Por exemplo, 2 = (n), mas 2 6= (n2).
se o limite existir.
UFMG/ICEx/DCC
MD
Func
o
es
77
UFMG/ICEx/DCC
MD
Func
o
es
78
UFMG/ICEx/DCC
MD
Func
o
es
79
UFMG/ICEx/DCC
MD
Func
o
es
80
UFMG/ICEx/DCC
MD
Func
o
es
81
UFMG/ICEx/DCC
MD
Func
o
es
82
UFMG/ICEx/DCC
MD
Func
o
es
83
UFMG/ICEx/DCC
MD
Func
o
es
84
Hierarquias de funes
A seguinte hierarquia de funes pode ser definida do ponto de vista assinttico:
n
c
log
n
n
n
c
1 log log n log n n n n
c n c
UFMG/ICEx/DCC
MD
Func
o
es
85
Hierarquias de funes
Usando MatLab, ou um outro pacote matemtico/software grfico, desenhe
os grficos dessas funes, quando n .
UFMG/ICEx/DCC
MD
Func
o
es
86
Hierarquias de funes
Onde as seguintes funes se encaixam nessa hierarquia?
(a) (n) = lnnn . Esta funo define o nmero de primos menor ou igual a n.
(b) e log n.
Dica: ef (n) eg(n) limn(f (n) g(n)) = .
UFMG/ICEx/DCC
MD
Func
o
es
87
Hierarquias de funes
Preliminares
A hierarquia apresentada est relacionada com funes que vo para o infinito.
No entanto, podemos ter o oposto dessas funes j que elas nunca so zero.
Isto ,
1
1
.
f (n) g(n)
g(n)
f (n)
Assim, todas as funes (exceto 1) tendem para zero:
1
1
1
1
1
1
1
1
1
n n n log n c
cc
n
c
n
n
n
log n
log log n
UFMG/ICEx/DCC
MD
Func
o
es
88
Hierarquias de funes
Soluo de (a)
(n) = lnnn
Temos que (note que a base do logaritmo no altera a hierarquia):
1
1
1
n
ln n
Multiplicando por n, temos:
n
n
n,
n
ln n
ou seja,
n1 (n) n
Note que o valor 1 ainda menor que 1.
UFMG/ICEx/DCC
MD
Func
o
es
89
Hierarquias de funes
Soluo de (b)
e log n
Dado a hierarquia:
1 ln ln n
ln n ln n
1
ln
ln
n
e e
e ln n e ln n
Simplificando temos:
e ln n e ln n n
UFMG/ICEx/DCC
MD
Func
o
es
90
UFMG/ICEx/DCC
MD
Func
o
es
91
UFMG/ICEx/DCC
MD
Func
o
es
92
Objetos recursivos
Um objeto recursivo quando definido parcialmente em termos de si
mesmo.
Exemplo 1: Nmeros naturais:
(a) 1 um nmero natural.
(b) o sucessor de um nmero natural um nmero natural.
Exemplo 2: Funo fatorial:
(a) 0! = 1.
(b) se n > 0 ento n! = n (n 1)!
UFMG/ICEx/DCC
MD
Func
o
es
93
Objetos recursivos
Exemplo 3: rvores.
(a) A rvore vazia uma rvore.
(b) se T1 e T2 so rvores ento T 0 um rvore.
T 0
T
T
T
TT
T1 T2
UFMG/ICEx/DCC
MD
Func
o
es
94
UFMG/ICEx/DCC
MD
Func
o
es
95
UFMG/ICEx/DCC
MD
Func
o
es
96
Poder da recurso
Definir um conjunto infinito de objetos atravs de um comando finito.
Um problema recursivo P pode ser expresso como P P[Si, P ], onde P
a composio de comandos Si e do prprio P .
Importante: constantes e variveis locais a P so duplicadas a cada chamada
recursiva.
UFMG/ICEx/DCC
MD
Func
o
es
97
Problema de terminao
Definir um condio de terminao.
Idia:
Associar um parmetro, por exemplo n, com P e chamar P recursivamente
com n 1 como parmetro.
A condio n > 0 garante a terminao.
Exemplo:
P (n) if n > 0 then P[Si; P (n 1)].
Importante: na prtica necessrio:
mostrar que o nvel de recurso finito, e
tem que ser mantido pequeno! Por que?
UFMG/ICEx/DCC
MD
Func
o
es
98
FATORIAL(4)
F : varivel auxiliar
if n > 0
then F n FATORIAL(n 1)
else F 1
return F
UFMG/ICEx/DCC
MD
Func
o
es
1
2
3
4
1
4FATORIAL(3)
3FATORIAL(2)
2FATORIAL(1)
1FATORIAL(0)
99
UFMG/ICEx/DCC
MD
Func
o
es
100
F , i: variveis auxiliares
i0
F 1
while i < n
do i i + 1
F F i
return F
Logo,
P if B then (S; P )
deve ser transformado em
P (x = x0; while B do S).
UFMG/ICEx/DCC
MD
Func
o
es
101
Outro exemplo
F IB(A)
1
2
3
4
5
6
s
5,,l
F : varivel auxiliar
if n = 0
then F 0
else if n = 1
then F 1
else F FIB(n 1) + (n 2)
return F
,
,
,
,
s
4
J,
UFMG/ICEx/DCC
MD
B
B
B
B
B
s
Bs
B
B
B
B
B
Bs
s
Func
o
es
l
l
l
l
J
J
J
J
Js
B
B
B
B
B
s
Bs
l
l
ls
B
B
B
B
B
s
Bs
B
B
B
B
B
s
Bs
102
Soluo bvia
F IB(n)
1
2
3
4
5
6
7
8
9
UFMG/ICEx/DCC
MD
Func
o
es
103
UFMG/ICEx/DCC
MD
Func
o
es
104
UFMG/ICEx/DCC
MD
Func
o
es
105
F : varivel auxiliar
if n > 0
then F n FATORIAL(n 1)
else F 1
return F
T (n) =
d
n = 1
c + T (n 1) n > 1
Esta equao diz que quando n = 1 o custo para executar FATORIAL igual a
d. Para valores de n maiores que 1, o custo para executar FATORIAL c mais o
custo para executar T (n 1).
UFMG/ICEx/DCC
MD
Func
o
es
106
T (n) = c + T (n 1)
= c + (c + T (n 2))
= c + c + (c + T (n 3))
... = ...
= c + c + + (c + T (1))
= c| + c +{z + c} +d
n1
UFMG/ICEx/DCC
MD
Func
o
es
107
k
X
ak+1 1
i
a =
(a 6= 1)
n(n + 1)
i=
2
i=1
i=0
k
X
n
X
2k = 2k+1 1
i=0
i=1
a1
n(n + 1)(2n + 1)
2
i =
6
k
X
1
1
=2 k
i
2
2
i=0
UFMG/ICEx/DCC
MD
Func
o
es
108
T (2k ) =
=
=
...
=
=
=
T (2k1 ) + 1
(T (2k2 ) + 1) + 1
(T (2k3 ) + 1) + 1 + 1
...
(T (2) + 1) + 1 + + 1
(T (1) + 1) + 1 + + 1
0 + |1 + {z
+ 1}
k
= k
T (n) = log n
T (n) = O(log n)
UFMG/ICEx/DCC
MD
Func
o
es
109
2T (2k1 ) + 2k
2(2T (2k2 ) + 2k1 ) + 2k
2(2(2T (2k3 ) + 2k2 ) + 2k1 ) + 2k
...
2(2( (2(2T (1) + 22 ) + 23 ) + ) + 2k1 ) + 2k
(k 1)2k + 2k
k2k
T (n) = n log n
T (n) = O(n log n)
UFMG/ICEx/DCC
MD
Func
o
es
110
Teorema Mestre
Recorrncias da forma
T (n) = aT ( nb ) + f (n),
onde a 1 e b > 1 so constantes e f (n) uma funo assintoticamente positiva podem ser resolvidas usando o Teorema Mestre. Note que neste caso no
estamos achando a forma fechada da recorrncia mas sim seu comportamento
assinttico.
UFMG/ICEx/DCC
MD
Func
o
es
111
Teorema Mestre
Sejam as constantes a 1 e b > 1 e f (n) uma funo definida nos inteiros
no-negativos pela recorrncia:
T (n) = aT ( nb ) + f (n),
onde a frao n/b pode significar bn/bc ou dn/be. A equao de recorrncia
T (n) pode ser limitada assintoticamente da seguinte forma:
1. Se f (n) = O(nlogb a) para alguma constante > 0,
ento T (n) = (nlogb a) .
2. Se f (n) = (nlogb a), ento T (n) = (nlogb a log n) .
3. Se f (n) = (nlogb a+) para alguma constante > 0 e se af (n/b)
cf (n) para alguma constante c < 1 e para n suficientemente grande,
ento T (n) = (f (n)) .
UFMG/ICEx/DCC
MD
Func
o
es
112
UFMG/ICEx/DCC
MD
Func
o
es
113
UFMG/ICEx/DCC
MD
Func
o
es
114
UFMG/ICEx/DCC
MD
Func
o
es
115
UFMG/ICEx/DCC
MD
Func
o
es
116
nlogb a = n
= n0 = 1
UFMG/ICEx/DCC
MD
Func
o
es
117
UFMG/ICEx/DCC
MD
Func
o
es
118
para c = 3
4 . Consequentemente, usando o caso 3, a soluo para a recorrncia
UFMG/ICEx/DCC
MD
Func
o
es
119
UFMG/ICEx/DCC
MD
Func
o
es
120
UFMG/ICEx/DCC
MD
Func
o
es
121
UFMG/ICEx/DCC
MD
Func
o
es
122
UFMG/ICEx/DCC
MD
Func
o
es
123
Qual o maior valor inteiro de a tal que A0 assintoticamente mais rpido que
A?
UFMG/ICEx/DCC
MD
Func
o
es
124
UFMG/ICEx/DCC
MD
Func
o
es
125
UFMG/ICEx/DCC
MD
Func
o
es
126
UFMG/ICEx/DCC
MD
Func
o
es
127
UFMG/ICEx/DCC
MD
Func
o
es
128
UFMG/ICEx/DCC
MD
Func
o
es
(1)
(2)
129
UFMG/ICEx/DCC
MD
Func
o
es
130
Configurao inicial:
O jogo comea com um conjunto de oito discos empilhados em tamanho
decrescente em uma das trs varetas.
UFMG/ICEx/DCC
MD
Func
o
es
131
T (1) = 1
[apenas um movimento]
T (2) = 3
UFMG/ICEx/DCC
MD
Func
o
es
132
UFMG/ICEx/DCC
MD
Func
o
es
133
UFMG/ICEx/DCC
MD
Func
o
es
para n > 0
134
T (n)
15
31
63
UFMG/ICEx/DCC
MD
Func
o
es
135
UFMG/ICEx/DCC
MD
Func
o
es
136
UFMG/ICEx/DCC
MD
Func
o
es
137
1
2
4
L0 = 1
UFMG/ICEx/DCC
L1 = 2
MD
Func
o
es
L2 = 4
138
UFMG/ICEx/DCC
MD
Func
o
es
139
12
11
10
5
8
6
7
1a rodada
6
12
2a rodada
21
11
42
5
4
63
37
10
42
5
4
UFMG/ICEx/DCC
21
9 11
10
12
3a rodada
63
8
MD
Func
o
es
12
11 1
21
9 11
37
10
42
5 10
4
63
8
140
UFMG/ICEx/DCC
MD
Func
o
es
141
UFMG/ICEx/DCC
MD
Func
o
es
142
UFMG/ICEx/DCC
MD
Func
o
es
143
c = constante
UFMG/ICEx/DCC
MD
Func
o
es
144
UFMG/ICEx/DCC
MD
Func
o
es
145