Download - Projeto e Análise de Algoritmos - bcc.unifal-mg.edu.br · A notação O possui sua importância, pois o programador conclui que seu algoritmo é no máximo tão complexo a uma função.

Transcript

Universidade Federal de Alfenas

Projeto e Análise de Algoritmos

Aula 07 – Notações θ, Ω, ω, ο[email protected]

Última aula

Notação O

• Uma função f(n) domina assintoticamente outra função g(n) se existem duas constantes positivas ▫ c e n0

Última aula

Notação O

• Uma função f(n) domina assintoticamente outra função g(n) se existem duas constantes positivas ▫ c e n0

• tais que, para qualquer ▫ n >= n0,

Última aula

Notação O

• Uma função f(n) domina assintoticamente outra função g(n) se existem duas constantes positivas ▫ c e n0

• tais que, para qualquer ▫ n >= n0,

• temos ▫ g(n) <= c . f(n)

Outras notações

• Assim como a notação O fornece uma maneira assintótica de dizer que uma função é “menor ou igual a”outra, existem outras notação que fornecem outras conclusões sobre a complexidade de algoritmos;

Outras notações

• Assim como a notação O fornece uma maneira assintótica de dizer que uma função é “menor ou igual a”outra, existem outras notação que fornecem outras conclusões sobre a complexidade de algoritmos;

▫ Θ

Outras notações

• Assim como a notação O fornece uma maneira assintótica de dizer que uma função é “menor ou igual a”outra, existem outras notação que fornecem outras conclusões sobre a complexidade de algoritmos;

▫ Θ

▫ Ω

Outras notações

• Assim como a notação O fornece uma maneira assintótica de dizer que uma função é “menor ou igual a”outra, existem outras notação que fornecem outras conclusões sobre a complexidade de algoritmos;

▫ Θ

▫ Ω

▫ ω

Outras notações

• Assim como a notação O fornece uma maneira assintótica de dizer que uma função é “menor ou igual a”outra, existem outras notação que fornecem outras conclusões sobre a complexidade de algoritmos;

▫ Θ

▫ Ω

▫ ω

▫ ο

Notação Ω

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

• Exemplos: )( 34 nn

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

• Exemplos: )( 34 nn

)1(n

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

• Exemplos: )( 34 nn

)1(n

))(log()log(3 nn

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

• Exemplos: )( 34 nn

)1(n

))(log()log(3 nn

)1(1

Notação Ω

• A notação Ω é bem parecida com a notação O;

▫ „O‟ define um limite assintótico superior, e;

▫ Ω define um limite assintótico inferior.

• Exemplos: )( 34 nn

)1(n

))(log()log(3 nn

)1(1

)2(! nn

Notação Ω

}nnf(n) g(n)c|

ne c{f(n):(g(n))

0

0

0

0

• Limite assintótico inferior

Notação Ω

• Limite assintótico inferior

Notação Ω

• Na prática a notação Ω não é vista sozinha em análises de algoritmos;

Notação Ω

• Na prática a notação Ω não é vista sozinha em análises de algoritmos;

▫ Pelo motivo de não interessar para a análise de algoritmos;

Notação Ω

• Na prática a notação Ω não é vista sozinha em análises de algoritmos;

▫ Pelo motivo de não interessar para a análise de algoritmos;

▫ A notação O possui sua importância, pois o programador conclui que seu algoritmo é no máximo tão complexo a uma função.

Notação Ω

• Na prática a notação Ω não é vista sozinha em análises de algoritmos;

▫ Pelo motivo de não interessar para a análise de algoritmos;

▫ A notação O possui sua importância, pois o programador conclui que seu algoritmo é no máximo tão complexo a uma função.

▫ Mas no mínimo tão complexo, como a notação Ω descreve, não é importante para conclusões práticas sobre algoritmos.

Notação Ω

• Na prática a notação Ω não é vista sozinha em análises de algoritmos;

▫ Pelo motivo de não interessar para a análise de algoritmos;

▫ A notação O possui sua importância, pois o programador conclui que seu algoritmo é no máximo tão complexo a uma função.

▫ Mas no mínimo tão complexo, como a notação Ω descreve, não é importante para conclusões práticas sobre algoritmos.

• Ω vem na maioria das vezes acompanhada a notação Θ;▫ Como um complemento na análise, nunca sozinha...

Notação θ

• Conhecida também como “limite firme” ou “limite assintoticamente restrito”.

Notação θ

• Conhecida também como “limite firme” ou “limite assintoticamente restrito”.

• A notação O, apesar de fornecer informações sobre a complexidade do algoritmo, nem sempre nos revela algo importante;

Notação θ

• Conhecida também como “limite firme” ou “limite assintoticamente restrito”.

• A notação O, apesar de fornecer informações sobre a complexidade do algoritmo, nem sempre nos revela algo importante;

• Não faz sentido, para algum algoritmo, dizer que suas complexidade é por exemplo O(n!).

▫ Ou faz?

Notação θ

• Conhecida também como “limite firme” ou “limite assintoticamente restrito”.

• A notação O, apesar de fornecer informações sobre a complexidade do algoritmo, nem sempre nos revela algo importante;

• Não faz sentido, para algum algoritmo, dizer que suas complexidade é por exemplo O(n!). Ou faz?

• Exemplos da falta de precisão de O:

Notação θ

)!(

)2(

)(

)(

)(

)(

1000

5

4

3

nOn

On

nOn

nOn

nOn

nOn

n

Notação θ

• Uma função f(n) pertence ao conjunto θ(g(n)) se existem constantes positivas n0, c1 e c2

Notação θ

}nng(n) cf(n)g(n)c|

ne,c c{f(n):Θ(g(n))

021

021

0

0

• Uma função f(n) pertence ao conjunto θ(g(n)) se existem constantes positivas n0, c1 e c2 tais que ela possa ser “imprensada” entre c1.g(n) e c2.g(n), para um valor de n suficientemente grande.

• Exemplo:

• Para isso, devemos definir constantes c1, c2 e n0 tais que:

• Encontre constantes que satisfaça as duas desigualdades...

Notação θ

)Θ(nnn 2

2

32

2

2

22

1 32

1ncnnnc

}nng(n) cf(n)g(n)c|

ne,c c{f(n):Θ(g(n))

021

021

0

0

• Exemplo de constantes:

Notação θ

21

3

2

1c

nc

2

2

22

1 32

1ncnnnc Dividindo por n2 ...

• Exemplo de constantes:

• Portanto, se existem tais constantes

Notação θ

7

2

1

14

1

0

2

1

n

c

c

)Θ(nnn 2

2

32

21

3

2

1c

nc

2

2

22

1 32

1ncnnnc Dividindo por n2 ...

Notação θ

))(()(

))(()(

)()(

xgxf

e

xgOxf

sse

)xΘ(gxf

• Observação:

Notação ο (o minúsculo)

• O limite assintótico superior fornecido pela notação O (ó-zão) pode:

Notação ο

• O limite assintótico superior fornecido pela notação O (ó-zão) pode:

▫ Ser assintoticamente restrito;

Notação ο

• O limite assintótico superior fornecido pela notação O (ó-zão) pode:

▫ Ser assintoticamente restrito;

▫ Não ser assintoticamente restrito;

Notação ο

• O limite assintótico superior fornecido pela notação O (ó-zão) pode:

▫ Ser assintoticamente restrito;

▫ Não ser assintoticamente restrito;

• Exemplos:

▫ Assintoticamente restrito:

▫ Não assintoticamente restrito:

Notação ο

)(2 22 nOn

)()log(

)(2 2

ncOn

nOn

Notação ο

• Todas as funções de O (ó-zão) que não definem um limite assintoticamente restrito pertencem a „‟o” (ó-zinho)

Notação ο

))(()(

))(()())(()(

ngnf

entaongnfengOnfse

• Todas as funções de O (ó-zão) que não definem um limite assintoticamente restrito pertencem a „‟o” (ó-zinho)

Notação ο

)()log(

)(2 2

nn

nn

))(()(

))(()())(()(

ngnf

entaongnfengOnfse

• Todas as funções de O (ó-zão) que não definem um limite assintoticamente restrito pertencem a „‟o” (ó-zinho)

• Comparativo com a notação O;

Notação ο

}nng(n) cnf|

nc{f(n):(g(n))

0

0

)(0

0,0

0c constantes as todaspara

válidoé )()(0 limite o )),(()(

0c constante alguma para

válidomantém se )()(0 limite o )),(()(

ncgnfngnf

ncgnfngOnf

Não é <=, é somente <

Notação ο

0)(

)(lim

então Se

ng

nf

ο(g(n))f(n)

n

• Facilitando o entendimento...

Notação ω (omega minúsculo)

• O limite assintótico inferior fornecido pela notação Ω (omega-zão) pode:

▫ Ser assintoticamente restrito;

▫ Não ser assintoticamente restrito;

• Exemplos:

▫ Assintoticamente restrito:

▫ Não assintoticamente restrito:

Notação ω

)(2 22 nn

)(2 3 nn

Notação ω

))(log(2

)1(2 2

nn

n

))(()(

))(()())(()(

ngnf

entaongnfengOnfse

• Todas as funções de Ω (omegazão) que não definem um limite assintoticamente restrito pertencem a ω

Notação ω

}nn nfg(n)c|

nc{f(n):(g(n))

0

0

)(0

0,0

Não é <=, é somente <

Notação ω

)(

)(lim

então Se

ng

nf

(g(n))f(n)

n

• Facilitando o entendimento...

Exercícios

Exercícios – V ou F

))(()())(()( nfngssengnf

))(()())(()( ngnfentaongnfse (a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

))(()())(()( ngnfentaongnfse

))(()())(()( ngnfentaongnfse

))(()())(()( ngnfentaongOnfse

))(()())(()( ngnfentaongnfse

))(()())(()( ngnfentaongnfse

))(()())(()( ngnfentaongnfse

))(()())(()( ngnfentaongnfse

Exercício para próxima aula• Descreva e implemente 3 algoritmos para a seguinte espiral:

• Eles devem ter respectivamente as seguintes complexidades:▫ Θ(n);▫ Θ(sqrt(n));▫ Θ(1).

• Eu informo n, e você informa as coordenadas x, y do n-ésino ponto.

Leitura para próxima aula

• Livro: Algoritmos (Cormen)

▫ 4 Recorrências;

4.1 O método de substituição;

4.2 O método de árvore de recursão

4.3 O método mestre

Bibliografia

• CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; (2002). Algoritmos – Teoria e Prática. Tradução da 2ª edição americana. Rio de Janeiro. Editora Campus.

• TAMASSIA, ROBERTO; GOODRICH, MICHAEL T. (2004). Projeto de Algoritmos - Fundamentos, Análise e Exemplos da Internet.


Top Related