Projeto e Análise de Algoritmos - Universidade Federal de...

54
Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 07 – Notações θ, Ω, ω, ο [email protected]

Transcript of Projeto e Análise de Algoritmos - Universidade Federal de...

Page 1: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Universidade Federal de Alfenas

Projeto e Análise de Algoritmos

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

Page 2: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Ú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

Page 3: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Ú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,

Page 4: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 5: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

Page 6: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

▫ Θ

Page 7: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

▫ Θ

▫ Ω

Page 8: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

▫ Θ

▫ Ω

▫ ω

Page 9: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

▫ Θ

▫ Ω

▫ ω

▫ ο

Page 10: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação Ω

Page 11: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.

Page 12: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 13: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 14: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 15: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 16: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 17: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação Ω

}nnf(n) g(n)c|

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

0

0

0

0

• Limite assintótico inferior

Page 18: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação Ω

• Limite assintótico inferior

Page 19: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação Ω

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

Page 20: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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;

Page 21: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.

Page 22: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.

Page 23: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 24: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação θ

Page 25: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Notação θ

Page 26: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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 θ

Page 27: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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 θ

Page 28: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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

Page 29: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação θ

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

Page 30: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.

Page 31: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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

Page 32: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• Exemplo de constantes:

Notação θ

21

3

2

1c

nc

2

2

22

1 32

1ncnnnc Dividindo por n2 ...

Page 33: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 34: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação θ

))(()(

))(()(

)()(

xgxf

e

xgOxf

sse

)xΘ(gxf

• Observação:

Page 35: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ο (o minúsculo)

Page 36: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Notação ο

Page 37: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

▫ Ser assintoticamente restrito;

Notação ο

Page 38: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

▫ Ser assintoticamente restrito;

▫ Não ser assintoticamente restrito;

Notação ο

Page 39: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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

Page 40: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ο

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

Page 41: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ο

))(()(

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

ngnf

entaongnfengOnfse

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

Page 42: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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)

Page 43: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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 <

Page 44: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ο

0)(

)(lim

então Se

ng

nf

ο(g(n))f(n)

n

• Facilitando o entendimento...

Page 45: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ω (omega minúsculo)

Page 46: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

• 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

Page 47: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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 ω

Page 48: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ω

}nn nfg(n)c|

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

0

0

)(0

0,0

Não é <=, é somente <

Page 49: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Notação ω

)(

)(lim

então Se

ng

nf

(g(n))f(n)

n

• Facilitando o entendimento...

Page 50: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Exercícios

Page 51: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

Exercícios – V ou F

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

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

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

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

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

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

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

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

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

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

Page 52: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.

Page 53: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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

Page 54: Projeto e Análise de Algoritmos - Universidade Federal de ...bcc.unifal-mg.edu.br/~humberto/disciplinas/2011_1... · de algoritmos; Pelo motivo de não interessar para a análise

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.