23
Complexidade Assintótica ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 08/2008 Material baseado em slides dos professores Marcos Chaim, Cid de Souza e Cândida da Silva Delano M. Beder (EA CH - USP)  Complexidade Assintótica  ACH2002 1 / 23

4 Slides (1) IAA USP

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

    [email protected]

    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