Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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.