Académique Documents
Professionnel Documents
Culture Documents
Notao Assinttica
Sejam CA(n) e CB(n) os custos de
eficincia dos algoritmos A e B.
Para valores pequenos de n os custos
no diferem muito. Ento, como saber
quem mais eficiente, A ou B?
Notao Assinttica
Estuda-se o comportamento de C(n)
quando n assume valores grandes (que
tal n = 10100?), isto , seu
comportamento assinttico.
Para simplificar, comparar e classificar
CA(n) e CB(n) assintoticamente:
Notao O (O grande - micron),
Notao (mega grande), e
Notao (Theta grande)
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
definio
O(g(n)) = {t(n): existem as constantes
positivas c e n0 tais que 0 t(n) c.g(n),
para todo n n0}.
definio
Diz-se que g(n) domina assintoticamente
t(n), e que g(n) um limite assinttico
superior para t(n).
interpretao
Se t(n) o custo da eficincia de tempo
de um algoritmo e t(n) O(g(n)), ento
O(g(n)) a sua complexidade de
tempo.
interpretao
Se O(g(n)) a complexidade de tempo de
um algoritmo, ento o algoritmo no
consome mais tempo do que c.g(n).
interpretao
Utiliza-se t(n) = O(g(n)) em lugar de t(n)
O(g(n)).
Se T(n) = O(n2), ento existem constantes
positivas c e n0 tais que para n n0 temse T(n) c.n2.
Se T(n) = 3n3 + 2n2 + n = O(n3), pois para c = 6
e n0 = 0, tem-se 3n3 + 2n2 + n 6n3.
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
interpretao
interpretao
10
interpretao
11
interpretao
12
interpretao
13
exemplos
T(n) = 3n3 + 2n2 + n = O(n4), mas mais forte
afirmar que T(n) = O(n3).
T(n) = (n + 1)2 = O(n2), pois para c = 4 e n0 = 1,
tem-se (n + 1)2 4n2.
T(n) = 100n + 5 = O(n2), pois para c = 1 e n0 =
0, tem-se 100n + 5 n2.
T(n) = n(n-1) = O(n2).
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
14
Operaes com O
f = O( f )
c.O( f ) = O( f ), onde c uma constante
O( f ) + O( f ) = O( f )
O(O( f )) = O( f )
O( f ) + O( g ) = O(max( f, g ))
O( f ).O( g ) = O( f.g )
f.O( g ) = O( f.g )
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
15
Operaes com O
Exemplos
16
definio
(g(n)) = {t(n): existem as constantes
positivas c e n0 tais que 0 c.g(n) t(n),
para todo n n0}.
17
interpretao
Diz-se que g(n) domina assintoticamente
t(n), e que g(n) um limite assinttico
inferior para t(n).
18
interpretao
Se t(n) o tempo de execuo de um
algoritmo e t(n) (g(n)), ento t(n) no
roda mais rpido do que c.g(n).
19
interpretao
Utiliza-se t(n) = (g(n)) em lugar de t(n)
(g(n)).
Se T(n) = (n2), ento existem constantes
positivas c e n0 tais que para n n0 temse T(n) cn2.
20
exemplos
T(n) = 3n3 + 2n2 (n3) pois, para c = 1 e n
0, tem-se 3n3 + 2n2 n3.
T(n) = n4 - 10 (n4), pois para c = e n 3,
tem-se n4 - 10 n4.
T(n) = n4 - 10 (n3), pois para c = 1 e n 3,
tem-se n4 - 10 n3.
21
definio
(g(n)) = {t(n): existem constantes
positivas c1, c2 e n0 tais que 0 c1.g(n)
t(n) c2.g(n), para todo n n0}.
22
definio
Diz-se que g(n) igual t(n) dentro de um
fator constante, e que g(n) um limite
assinttico estrito (ou firme) para
t(n).
23
interpretao
Se t(n) o custo da eficincia de tempo
de um algoritmo e t(n) (g(n)), ento
(g(n)) a sua complexidade de
tempo.
24
interpretao
Se (g(n)) a complexidade de tempo de
um algoritmo, ento o algoritmo tem
tempo equivalente a g(n).
25
interpretao
Utiliza-se t(n) = (g(n)) em lugar de t(n)
(g(n)).
Se T(n) = (n2), ento existem constantes
positivas c1, c2 e n0 tais que para n n0
tem-se c1.n2 T(n) c2.n2.
26
interpretao
Problema. A contagem de custo de um
algoritmo no pior caso T(n) = n2 + 2n.
Qual o seu limite assinttico estrito?
Resposta:
T(n) = (n2), pois n2 n2 + 2n 2n2, para n 2.
27
Classes de eficincia
assintticas
Sejam O(f(n)) e O(g(n)) as complexidades de
tempo dos algoritmos F e G.
Se f(n) = O(g(n)) e g(n) = O(f(n)) , ento f(n) e
g(n) dominam-se assintoticamente, e F e
G no podem ser comparados pois
diferem por uma constante.
f(n) = 3g(n). Logo, O(f(n)) = O(g(n)). Logo,
pertencem mesma classe de
eficincia.
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
28
Classes de eficincia
assintticas
Algoritmos podem ser comparados,
comparando-se suas funes de
complexidade, abstraindo-se das
constantes de proporcionalidade.
Porm, as constantes de
proporcionalidade podem alterar esta
considerao se forem muito grandes.
29
Classes de eficincia...
constante
logartmica
linear
superlinear
quadrtica
cbica
exponencial
exponencial
complexidade de
tempo...
Rpido
T(n) = (1)
T(n) = (log n)
T(n) = (n)
T(n) = (nlog n)
T(n) = (n2)
T(n) = (n3)
T(n) = (2n)
T(n) = (n!)
Lento
30
Algoritmos polinomiais e
exponenciais
T(n)
T(n)
T(n)
T(n)
T(n)
T(n)
T(n)
T(n)
=
=
=
=
=
=
=
=
(1)
(log n)
(n)
(nlog n)
(n2)
(n3)
(2n)
(n!)
Algoritmo polinomial
O(p(n)), p(n) um
polinmio
Algoritmo exponencial
complexidade O(cn);
c>1
31
Algoritmos polinomiais e
exponenciais
A distino entre os dois tipos vale
assintoticamente
Algoritmos polinomiais resultam de um
entendimento profundo da estrutura do
problema
Algoritmos exponenciais so geralmente
simples variaes de pesquisa exaustiva
(fora bruta)
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
32
Problemas tratveis e
intratveis
Problema intratvel
no existe um algoritmo polinomial para
resolv-lo
Problema bem resolvido
existe um algoritmo polinomial para
resolv-lo
33
Exemplo de problema
intratvel
Um caixeiro viajante
quer visitar n cidades
de tal forma que sua
viagem inicie e termine
em uma mesma
cidade, e cada cidade
seja visitada uma nica
vez (sempre h uma
estrada entre duas
cidades). O problema
encontrar a menor
rota para a viagem.
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
34
Exemplo de problema
intratvel
<c1, c3, c4, c2, c1> uma soluo com
percurso total =24
Algoritmo exponencial
1.gere todas as rotas;
2.escolha e menor delas.
35
Exemplo de problema
intratvel
H (n - 1)! rotas possveis.
Distncia total percorrida em cada rota
envolve n adies, logo o nmero total de
adies n!
No exemplo, anterior teramos 24 adies.
Suponha agora 50 cidades: o nmero de
adies seria 50! 1064.
Em um computador executando 109 adies/
s, o tempo total para resolver o problema
com 50 cidades seria maior do que 1045
sculos s para executar as adies.
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho
36
Bibliografia
Levitin.
Ziviani.
Cormen.
37