Académique Documents
Professionnel Documents
Culture Documents
Centro
de
Inform-ca
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
2011
Vinicius
Cardoso
Garcia
Referncias
Notas
de
aula
do
prof.
Tiago
A.
E.
Ferreira
(UFRPE)
Cormen,
Thomas
H.;
Leiserson,
Charles
E.;
Rivest,
Ronaldo
L.;
Stein,
Cliord;
Introduc-on
to
Algorithms
Third
Edi-on,
MIT
Press,
2009.
Captulos
3
e
4
Notao
Conhecida
tambm
como
limite
rme
ou
limite
assinto-camente
restrito.
A
notao
O,
apesar
de
fornecer
informaes
sobre
a
complexidade
do
algoritmo,
nem
sempre
nos
revela
algo
importante;
No
faz
sen-do,
para
algum
algoritmo,
dizer
que
suas
complexidade
por
exemplo
O(n!).
Ou
faz?
Notao
As
equaes
de
custo
so
dependentes
das
constantes
c1,
c2,
...,
ck
Fica
impra-cvel
tentarmos
estabelecer
os
valores
exatos
destas
constantes
Desta
forma,
importante
ter
uma
es-ma-va
de
como
o
custo
cresce
com
o
tamanho
n
da
entrada
Considera-se
o
termo
de
maior
importncia
da
expresso
de
custo:
an2
+
bn
+
c
(n2)
:
da
ordem
de
n2
an
+
b
(n)
:
da
ordem
de
n
Algoritmos
e
Estrutura
de
Dados
Notaes
e
Recorrncia
2011
Vinicius
Cardoso
Garcia
Notao
Quando
se
considera
o
nmero
de
passos
efetuados
por
um
algoritmo,
Pode-se
desprezar
constantes
adi-vas
e
mul-plica-vas
Ex.:
3n
ser
aproximado
por
n
So
considerados
apenas
valores
assint-cos,
termos
de
menor
grau
podem
ser
desprezados
n2
+
n
+
5
ser
aproximado
por
n2
Notao
Formalizando:
Sejam
f(n)
e
g(n)
funes
posi-vas
e
uma
varivel
inteira
n.
Diz-se
que
f
O(g(n)),
escrevendo-se
f=O(g (n)),
quando
exis-r
uma
constante
c>0
e
um
valor
inteiro
n0,
tal
que
n>n0
0
f(n)
cg(n)
Notao
Uma
funo
f(n)
pertence
ao
conjunto
(g(n))
se
existem
constantes
posi-vas
n0,
c1
e
c2
tais
que
ela
possa
ser
imprensada
entre
c1.g(n)
e
c2.g(n),
para
um
valor
de
n
sucientemente
grande.
Notao
O
A
notao
O
-l
para
exprimir
limites
superiores
Sejam
f(n)
e
g(n)
funes
reais
e
posi-vas
da
varivel
inteira
n.
Diz
que
f
(n)
O(g(n)),
escrevendo-
se
f(n)
=
O(g (n)),
quando
0
c1
g(n)
f(n)
c2
g(n)
A notao O exprime o fato que duas funes possuem a mesma ordem de grandeza assint-ca.
Ex.:
f=n2-1;
g=n2;
h=n3,
assim,
f=O(g)
mas
f
no
O(h)
Notao
O
Sumarizando
Uma
funo
f(n)
domina
assinto-camente
outra
funo
g(n)
se
existem
duas
constantes
posi;vas
c
e
n0
A notao O fornece uma maneira assint-ca de dizer que uma funo menor ou igual aoutra
10
Pelo mo-vo de no interessar para a anlise de algoritmos; A notao O possui sua importncia, pois o programador conclui que seu algoritmo no mximo to complexo a uma funo. Mas no mnimo to complexo, como a notao descreve, no importante para concluses pr-cas sobre algoritmos.
11
Gracamente
12
Notao
o
(minsculo)
O
limite
assint-co
superior
fornecido
pela
notao
O
(-zo)
pode:
Ser
assinto-camente
restrito;
No
ser
assinto-camente
restrito;
Todas
as
funes
de
O
(-zo)
que
no
denem
um
limite
assinto-camente
restrito
pertencem
a
o
(-zinho)
Algoritmos
e
Estrutura
de
Dados
Notaes
e
Recorrncia
2011
Vinicius
Cardoso
Garcia
13
Notao
o
(minsculo)
O
limite
superior
dado
pela
notao
O
pode
ser
Assinto-camente
restrito
2n2
=
O(n2)
No
Assinto-camente
restrito
2n
=
O(n2)
14
otao o (minsculo)
Formalizando:
Notao o (minsculo)
Formalizando: Sejam
f(n)
e
g(n)
funes
posi-vas
e
uma
varivel
" Sejam f(n) e g(n) funes positivas e uma varivel inteira
n que f que
f
escrevendo-se inteira n. Diz-se .
Diz-se
O(g(n)),O(g(n)),
escrevendo-se
f=o f=o(g(n)), quando existirxis-r
uma
constante
c>0
e
um
(g(n)),
quando
e uma constante c>0 e um valor inteiro nnteiro
n ,
tal
que
valor
i 0, tal que 0
n>n0
0 f(n) < c g(n) n>n0
0
!f(n)
<
cg(n)
"
f ( n) lim g (n) = 0 n
Algoritmos
e
Estrutura
de
Dados
Notaes
e
Recorrncia
2011
Vinicius
Cardoso
Garcia
15
16
Formalizando
Sejam
f(n)
e
g(n)
funes
reais
posi-vas
da
varivel
n.
Diz- se
que
f(n)
(g(n)),
escrevendo-se
f(n)=
(g(n)),
quando
exis-r
uma
constante
c
>
0
e
um
valor
inteiro
n0,
tal
que
n>n0
f(n)
>
c
g(n)
0
17
Notao
"
Notao
Por
exemplo:
f ( n) lim g (n) = n
18
Propriedades Propriedades
19
Tricotomia
Dizemos
que
f(n)
assinto;camente
menor
que
g(n)
se
f (n)
=
o(g(n)),
e
que
f(n)
assinto;camente
maior
que
g(n)
se
f(n)
=
(g(n))
Para
dois
nmeros
reais
quaisquer
a
e
b,
exatamente
uma
das
relaes
deve
ocorrer
a
<
b;
ou
a
>
b;
ou
a
=
b.
Embora
dois
nmeros
quaisquer
possam
ser
comparados,
nem
toda
a
funo
assinto-camente
comparvel
Pode
exis-r
situao
onde:
f(n)
O(g(n));
e
f(n)
(g(n))
20
Exemplo
Dadas
as
funes:
f(n)=n
g(n)
=
n1+sen(n)
Pergunta-se:
f(n)
e
g(n)
so
assinto;camente
comparveis?
21
Exemplo
Dadas
as
funes:
f(n)=n
g(n)
=
n1+sen(n)
Pergunta-se:
f(n)
e
g(n)
so
assinto;camente
comparveis?
No!
Pois
o
valor
do
expoente
em
n1+sen(n)
oscila
entre
0
e
2,
assumindo
todos
os
valores
intermedirios
22
Funes
Comuns
Funes
montonas
Funo
monotonicamente
crescente
(ou
monotonamente
crescente)
Se
m
n
f(m)
f(n)
23
Funes
Comuns
Piso
Teto
Seja
x
um
nmero
real,
seu
piso
o
maior
inteiro
menor
ou
igual
a
x
Notao:
X
Seja
x
um
nmero
real,
seu
teto
o
menor
inteiro
maior
que
ou
igual
a
x
Notao
x
x-1
<
x
x
x
<
x+1
n/2
+
n/2
=
n
24
Aritm-ca Modular
Polinmios Polinmios um inteiro nteiro no nega-vo d, um polinmio em n d " Dado Dado um ino negativo d, um polinmio em n de grau d e grau d u da funo uma funo p(n)ma forma, p(n) da forma,
a mod n = a - aa/n n = a - !a/n" n mod n Se Se(a mod n) = (b n), entoea b (mod n) (a n)(a (a mod n) = (b mod mod n), nto a b (mod equivalente equivalente a b, modulo n) a b, modulo n)
p (n ) = # ai n i
i =0
"
que uma funo uno
f(n)
polinomialmente
limitada
se
dito
dito
que
uma
ff(n) polinomialmente limitada se f(n)=O(nk alguma constante k. f(n)=O(nk) para )
para
alguma
constante
k.
Algoritmos
e
Estrutura
de
Dados
Notaes
e
Recorrncia
2011
Vinicius
Cardoso
Garcia
25
! Funo Exponencial Funo Exponencial Funo Exponencial 1, a funo an monotonicamente crescente em " Para todo n e a n
Para todo n e a 1, a funo a monotonicamente crescente em Para todo n e a 1, a funo an monotonicamente crescente em n. n. n. b " Para a>1, nb Para a > 1, Para a>1, n lim = 0 b ! a nb = O a n n lim n = a! n = O n n 0 n
( ) ( )
! Portanto, qualquer funo exponencial com base escritamente Portanto, qualquer funo exponencial com base escritamente Portanto, qualquer funo exponencial com base escritamente maior maior que cresce mais rapidamente que qualquer maiorque 1 1resce mais rapidamente que qualquer funo polinomial que c cresce1mais rapidamente que qualquer funo funo polinomial polinomial
"
" Para qualquer constante a>0. Qualquer funo polinomial Para Para
qualquer
constante
a>0.
Qualquer
funo
polinomial
posi-va
positiva qualquer constante a>0. Qualquer funo polinomial positiva cresce mais rapidamente cresce mais rapidamente que ue
qque qualquerpolilogartmica. qualquer funo funo polilogartmica. cresce
mais
rapidamente
q ualquer
funo
polilogartmica.
Algoritmos
e
Estrutura
de
Dados
Notaes
e
Recorrncia
2011
Vinicius
Cardoso
Garcia
( ) ( )
26
Funes Comuns Funes Comuns Funes Comuns1 ! Funo Fatorial Funo Fatorial #
n!= " ( n n= !n#1 n 1)! se se > 0 0 ! Funo Fatorial n!= " n, logo n!=O(nn) " Note que n!n !n ( n n,
logo
n!=O(nn)
1)! se n > 0 Note
que
n!n
Iterao Funcional
"
se n = 0
Iterao Funcional i ) (
se i = 0 #n ! Iterao Funcional f (n ) = " f#nf (i 1) (n ) se i >i0 0 se = ! (i ) f (n ) = " (i)(n)=2in f ( f (i 1) (n )) se i > 0 " Se f(n)=2n, ento f !
27
F0 = 0 " F0=0 F1 = 1 " F1=1 Fi = Fi-1 + Fi-2, p" Fi=Fi-1+Fi-2, para i 2 ara i 2 Seqncia: !,1,1,2,3,5,8,13,21,34,55,89,... 0 Seqncia: 0,1,1,2,3,5,8,13,21,34,55,89,... ! Uma forma Uma forma alterna-va e alternativa nmeros de denir os e definir os nmeros^de a partir da razo urea e seu conjugado
28
A;vidade
complementar
Leitura
dos
Captulo
3
do
Livro
do
Cormen
29