Upload
djean-axt
View
9
Download
0
Embed Size (px)
DESCRIPTION
IAA USP
Citation preview
5/28/2018 4 Slides (1) IAA USP
1/23
Complexidade AssintticaACH2002 - Introduo Cincia da Computao II
Delano M. Beder
Escola de Artes, Cincias e Humanidades (EACH)Universidade de So Paulo
08/2008
Material baseado em slides dos professores Marcos Chaim, Cid de Souza e Cndida da Silva
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 1 / 23
5/28/2018 4 Slides (1) IAA USP
2/23
Crescimento Assinttico de Funes
Custo da soluo aumenta com o tamanho ndo problemaO tamanhonfornece uma medida da dificuldade para resolver oproblema
Tempo necessrio para resolver o problema aumenta quando ncresce
Exemplo: nmero de comparaes para achar o maior elementode um vetor(array) ou para orden-lo aumenta com o tamanho daentradan.
Escolha do algoritmo no um problema crtico quando n
pequeno.O problema quandoncresce.
Por isso, usual analisar o comportamento das funes de custoquando n bastante grande.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 2 / 23
5/28/2018 4 Slides (1) IAA USP
3/23
Comportamento Assinttico
Vamos comparar funes assintoticamente, ou seja, para valoresgrandes, desprezando constantes multiplicativas e termos demenor ordem.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 3 / 23
5/28/2018 4 Slides (1) IAA USP
4/23
Comportamente Assinttico
1 milho (106) de operaes por segundo
Funo de custo 10 20 30 40 50 60
n 0,00001s 0,00002s 0,00003s 0,00004s 0,00005s 0,00006s
n2 0,0001s 0,0004s 0,0009s 0,0016s 0,0025s 0,0036s
n3 0,001s 0,008s 0,027s 0,064s 0,125s 0,216s
n5 0,1s 3,2s 24,3s 1,7min 5,2min 12,96min
2
n
0,001s 1,04s 17,9min 12,7dias 35,7 anos 366 sc.3n 0,059s 58min 6,5anos 3855sc. 108sc. 1013sc.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 4 / 23
5/28/2018 4 Slides (1) IAA USP
5/23
Comportamente Assinttico
Influncia do aumento de velocidade dos computadores no tamanhoxdo problema
Funo de custo Computador Atual (C) Computador 100C Computador 1000C
n x 100x 1000x
n2 x 10x 31.6x
n3 x 4, 6x 10x
2n x x+ 6, 6 x+ 10
(Tabela 1.4 Pgina 18) Nvio Ziviani. Projeto de Algoritmos com implementaes em C e Pascal.Editora Thomson, 2a. Edio, 2004.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 5 / 23
5/28/2018 4 Slides (1) IAA USP
6/23
Comportamento Assinttico
Sef(n) a funo de complexidade de um algoritmo A
Ocomportamento assintticodef(n) representa olimitedocomportamento do custo (complexidade) deAquandoncresce.
A anlise de um algoritmo (funo de complexidade)Geralmente considera apenas algumas operaes elementares oumesmo uma operao elementar (e.g., o nmero de comparaes).
A complexidade assinttica relata crescimento assinttico dasoperaes elementares.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 6 / 23
5/28/2018 4 Slides (1) IAA USP
7/23
Relacionamento assinttico
Definio
Uma funo g(n) domina assintoticamente outra funo f(n) seexistem duas constantes positivas c e m tais que, para n m, tem-se|f(n)| c|g(n)|.
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 7 / 23
5/28/2018 4 Slides (1) IAA USP
8/23
Relacionamento assinttico
Exemplo:
g(n) = n e f(n) = n2
|n| |n2| para todo n N.Para c= 1e m= 0 |g(n)| |f(n)|.Portanto, f(n) domina assintoticamente g(n).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 8 / 23
5/28/2018 4 Slides (1) IAA USP
9/23
NotaoO
Knuth criou a notaoO(O grande) para expressar queg(n)domina assintoticamentef(n), escreve-sef(n) = O(g(n)) e l-se:"f(n) da ordem no mximo g(n)".
Para que serve isto para o bacharel em Sistemas de Informao?Muitas vezes calcular a funo de complexidade g(n) de umalgoritmo A complicado.
mais fcil determinar quef(n) O(g(n)), isto , queassintoticamentef(n) cresce no mximo comog(n).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 9 / 23
5/28/2018 4 Slides (1) IAA USP
10/23
NotaoO
Definio
O(g (n)) = { f (n): existem constantes positivas c e n0
tais que
0 f(n) cg(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) O(g(n)), ento f(n) cresce nomximo to rapidamente quanto g(n).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 10 / 23
5/28/2018 4 Slides (1) IAA USP
11/23
NotaoO
Definio
O(g (n)) = { f (n): existem constantes positivas c e n0 tais que
0 f(n) cg(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) O(g(n)), ento f(n) cresce no
mximo to rapidamente quanto g(n).
Exemplo:
32 n
2 2n O(n2)
Valores de c e n0 que satisfazem a definio so
c= 32 e n0 = 2
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 11 / 23
5/28/2018 4 Slides (1) IAA USP
12/23
Notao
Definio
(g (n)) = { f (n): existem constantes positivas c e n0 tais que
0 cg(n) f(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) (g(n)), ento f(n) cresce nomnimo to lentamente quanto g(n).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 12 / 23
5/28/2018 4 Slides (1) IAA USP
13/23
Notao
Definio
(g (n)) = { f (n): existem constantes positivas c e n0 tais que0 cg(n) f(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) (g(n)), ento f(n) cresce no
mnimo to lentamente quanto g(n).
Exemplo:
32 n
2 2n (n2)
Valores de c e n0 que satisfazem a definio so
c= 12 e n0 = 2
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 13 / 23
5/28/2018 4 Slides (1) IAA USP
14/23
Notao
Definio
(g (n)) = { f (n): existem constantes positivas c1, c2 e n0 tais que
0 c1g(n) f(n) c2g(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) (g(n)), ento f(n) cresce torapidamente quanto g(n).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 14 / 23
N
5/28/2018 4 Slides (1) IAA USP
15/23
Notao
Definio
(g (n)) = { f (n): existem constantes positivas c1, c2 e n0 tais que0 c1g(n) f(n) c2g(n), para todo n n0 }.
Informalmente, dizemos que, se f(n) (g(n)), ento f(n) cresce to
rapidamente quanto g(n).
Exemplo:
32 n
2 2n (n2)
Valores de c1, c2 e n0 que satisfazem a definio so
c1 = 12 , c2 =
32 e n0 = 2
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 15 / 23
N t
5/28/2018 4 Slides (1) IAA USP
16/23
Notaoo
Definio
o(g (n)) = { f (n): para toda constante positiva c, existe uma constante
n0 >0 tal que0 f(n)
5/28/2018 4 Slides (1) IAA USP
17/23
Notao
Definio
(g (n)) = { f (n): para toda constante positiva c, existe uma constante
n0 >0 tal que0 cg(n)
5/28/2018 4 Slides (1) IAA USP
18/23
Definies equivalentes
f(n) o(g(n)) se limn
f(n)
g(n)= 0
f(n) O(g(n)) se limn
f(n)
g(n)
5/28/2018 4 Slides (1) IAA USP
19/23
Propriedades das Classes
Reflexividade:
f(n) O(f(n)).f(n) (f(n)).f(n) (f(n)).
Simetria:
f(n) (g(n)) se, e somente se,g(n) (f(n)).
Simetria Transposta:
f(n) O(g(n)) se, e somente se,g(n) (f(n)).f(n) o(g(n)) se, e somente se,g(n) (f(n)).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 19 / 23
Propriedades das Classes
5/28/2018 4 Slides (1) IAA USP
20/23
Propriedades das Classes
Transitividade:
Sef(n) O(g(n)) eg(n) O(h(n)), entof(n) O(h(n)).Sef(n) (g(n)) eg(n) (h(n)), entof(n) (h(n)).Sef(n) (g(n)) eg(n) (h(n)), entof(n) (h(n)).Sef(n) o(g(n)) eg(n) o(h(n)), entof(n) o(h(n)).Sef(n) (g(n)) eg(n) (h(n)), entof(n) (h(n)).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 20 / 23
Operaes com a notao O
5/28/2018 4 Slides (1) IAA USP
21/23
Operaes com a notaoO
f(n) = O(f(n))c f(n) = O(f(n)), c uma constante
O(f(n)) + O(f(n)) = O(f(n))O(O(f(n))) = O(f(n))
O(f(n)) + O(g(n)) = O(max(f(n),g(n)))O(f(n))O(g(n)) = O(f(n)g(n)))
f(n)O(g(n)) = O(f(n)g(n)))
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 21 / 23
Exerccios
5/28/2018 4 Slides (1) IAA USP
22/23
Exerccios
Quais as relaes de comparao assinttica (O, , ) das funes:
f1(n) = 2
f2(n) = 2n
f3(n) = nlog nf4(n) = lognf5(n) = 100n2 + 150000nf6(n) = n+ lognf7(n) = n
2
f8(n) = n
f1 f2 f3 f4 f5 f6 f7 f8f1
f2
f3
f4
f5
f6
f7
f8
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 22 / 23
Referncias
5/28/2018 4 Slides (1) IAA USP
23/23
Referncias
[1] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest &Clifford Stein. Algoritmos - Traduo da 2a. Edio Americana. EditoraCampus, 2002 (Captulo 3).
[2] Michael T. Goodrich & Roberto Tamassia. Estruturas de Dados eAlgoritmos em Java. Editora Bookman, 4a. Ed. 2007 (Captulo 4).
[3] Nvio Ziviani. Projeto de Algoritmos com implementaes em C ePascal. Editora Thomson, 2a. Edio, 2004 (Seo 1.3).
Delano M. Beder (EACH - USP) Complexidade Assinttica ACH2002 23 / 23