0% acharam este documento útil (0 voto)
109 visualizações37 páginas

PAA - Aula5 - Notacao Assintotica

1) O documento discute notação assintótica e classes de eficiência para análise de algoritmos. 2) Apresenta as notações O(g(n)), Ω(g(n)) e Θ(g(n)) para classificar algoritmos assintoticamente. 3) Discutem classes de eficiência como constante, linear, quadrática, cúbica e exponencial. Algoritmos polinomiais são mais eficientes do que exponenciais.

Enviado por

Jucimar Oliveira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
109 visualizações37 páginas

PAA - Aula5 - Notacao Assintotica

1) O documento discute notação assintótica e classes de eficiência para análise de algoritmos. 2) Apresenta as notações O(g(n)), Ω(g(n)) e Θ(g(n)) para classificar algoritmos assintoticamente. 3) Discutem classes de eficiência como constante, linear, quadrática, cúbica e exponencial. Algoritmos polinomiais são mais eficientes do que exponenciais.

Enviado por

Jucimar Oliveira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 37

UNIVERSIDADE DO ESTADO DO AMAZONAS

ESCOLA SUPERIOR DE TECNOLOGIA


NCLEO DE COMPUTAO - NUCOMP

Projeto e Anlise de Algoritmos


Notao assinttica e classes bsicas de
eficincia

Prof. Flvio Jos Mendes Coelho


fcoelho@uea.edu.br

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?

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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}.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

definio
Diz-se que g(n) domina assintoticamente
t(n), e que g(n) um limite assinttico
superior para t(n).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

interpretao
Se O(g(n)) a complexidade de tempo de
um algoritmo, ento o algoritmo no
consome mais tempo do que c.g(n).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

interpretao

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

10

interpretao

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

11

interpretao

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

12

interpretao

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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

Suponha trs trechos de um algoritmo


cujos tempos de execuo so O(n),
O(n2) e O(nlog n).
O tempo de execuo dos trs trechos
O(max(n2, n, nlog n)), que O(n2).

[log n + k + O(1/n)].[n + O(n)] =


nlog n + kn + O(n.log n).
UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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}.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

17

interpretao
Diz-se que g(n) domina assintoticamente
t(n), e que g(n) um limite assinttico
inferior para t(n).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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}.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

24

interpretao
Se (g(n)) a complexidade de tempo de
um algoritmo, ento o algoritmo tem
tempo equivalente a g(n).

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

29

Classes de eficincia...
constante
logartmica
linear
superlinear
quadrtica
cbica
exponencial
exponencial

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

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.

UEA/ EST Projeto e Anlise de Algoritmos Prof. Flvio Jos M. Coelho

37

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy