2. modelo detalhado: relações de recorrência ...orlando/analise-parte-a-2.pdf1. introduÇÃo e...
TRANSCRIPT
4
2. MODELO DETALHADO: Relações de Recorrência
Exemplo: Algoritmo Recursivo para Cálculo do Fatorial –
Substituição Repetida
0,)1()(
0,)(
2
1
>+−=
==
ntnTnT
ntnT
2)1()( tnTnT +−=
222 2)2())2(()( tnTttnTnT +−=++−=
222 2))3((2)2()( ttnTtnTnT ++−=+−=
23)3()( tnTnT +−=
2)()( ktknTnT +−=
2. MODELO DETALHADO: Relações de Recorrência
Exemplo: Algoritmo Recursivo para Cálculo do Fatorial –
Substituição Repetida
2)()( ktknTnT +−=
Sendo n conhecido, podemos repetir o processo de substituição
até obtermos T(0) do lado direito: n-k=0à k=n
2)0()( ntTnT +=
21)( nttnT +=
5
3. MODELO SIMPLIFICADO: Ex. – Somat. Série Geométrica
2
)1(
0
+=∑
=
nni
n
i
Para o cálculo anterior, foi utilizada a seguinte igualdade:
2
)1)(2()1(
0
++=+∑
=
nni
n
i
Portanto:
3. MODELO SIMPLIFICADO: Ex. – Somat. Série Geométrica
2
)1(
0
+=∑
=
nni
n
i
Demonstração da igualdade por Indução Matemática:
Passo (1): Mostrar que a igualdade vale para n=0
2
)10(00
0
0
+==∑
=i
i
6
3. MODELO SIMPLIFICADO: Ex. – Somat. Série Geométrica
2
)1(
0
+=∑
=
nni
n
i
Demonstração da igualdade por Indução Matemática:
Passo (2a): Supor que a igualdade vale para n=k (Hipótese)
2
)1(
0
+=∑
=
kki
k
i
3. MODELO SIMPLIFICADO: Ex. – Somat. Série Geométrica
Passo (2b): Provar que a igualdade vale para n=k+1
)1(2
)1()1(
0
1
0
+++
=++= ∑∑=
+
=
kkk
kii
k
i
k
i
Passo (2a): Supor que a igualdade vale para n=k (Hipótese)
2
)1(
0
+=∑
=
kki
k
i
2
)1)1)((1(
2
)2)(1(
2
)1(2)1( +++=
++=
+++=
kkkkkkk
2
ROTEIRO
1. INTRODUÇÃO E MOTIVAÇÃO
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
4. NOTAÇÃO Q
5. ANÁLISE ASSINTÓTICA DE ALGORITMOS
1. INTRODUÇÃO E MOTIVAÇÃO
Sejam A e B dois algoritmos para resolver um certo problema.
TA(n) e TB(n) os respectivos tempos de processamento.
A variável n é uma medida do tamanho do problema.
Como identificar o melhor algoritmo?
Comparando as funções: TA(n) e TB(n)
O que significa TA(n) ser melhor do que TB(n) ou vice-versa?
3
1. INTRODUÇÃO E MOTIVAÇÃO
Suponha que conheçamos o tamanho do problema: n0.
Se TA(n0) < TB(n0) então certamente A é melhor do que B.
Em geral não conhecemos o tamanho do problema.
Se pudermos mostrar que TA(n) £ TB(n) para todo n ³ 0,então certamente A é melhor do que B.
Nem sempre uma função é menor ou igual a outra paraqualquer valor de n.
Portanto, devemos considerar o comportamento assintóticodas funções: valores de n arbitrariamente GRANDES.
ROTEIRO
1. INTRODUÇÃO E MOTIVAÇÃO
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
4. NOTAÇÃO Q
5. ANÁLISE ASSINTÓTICA DE ALGORITMOS
4
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Def. O (Big O):
Seja f(n) função não negativa para todo n, n ³ 0.
Dizemos de “f(n) é O(g(n))”, se:
Existem um inteiro n0 e uma constante c > 0 tais que:
Para todo n ³ n0, f(n) £cg(n)
Notação:
f(n)=O(g(n))
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo: Mostrar que f(n)=8n + 128 é O(n2)
Devemos indicar um inteiro n0 e uma constante c > 0 tais que:
f(n) £cn2
⇒≤+⇒≤22 1288)( nncnnf
Por exemplo, tomemos c=1:
0)8)(16(012882≥+−⇒≥−− nnnn
Como n + 8 ³ 0, sempre (pois n ³ 0), temos que:
n - 16 ³ 0 Þ n ³ 16
Isto é, neste caso n0 deve ser, no mínimo, 16
5
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo: Mostrar que f(n)=8n + 128 é O(n2)
Assim, para n0 = 16 e c = 1, temos que:
Para todo n ³ n0, f(n) £cn2 , ou seja, f(n) = O(n2)
n2 é maiorque f(n) àdireita de
n=16
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Indique se são Verdadeiras ou Falsas as Afirmações:
Se f(n) = O(g(n)) e h(n) = O(g(n))
Então f(n) = h(n)
FALSA !!!
Contra-Exemplo:
Sejam f(n) = n e h(n) = n2, f(n) ¹g(n)
f(n) = O(n2) e h(n) = O(n2)
6
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Indique se são Verdadeiras ou Falsas as Afirmações:
Se f(n) = O(g(n))
Então g(n) = O-1(f(n))
FALSA !!!
A expressão g(n)=O-1(f(n)) não tem sentido:
O é apenas uma notação matemática e não possui inversa !!!
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Indique se são Verdadeiras ou Falsas as Afirmações:
Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) + f2(n) = O(max{g1(n), g2(n)})
VERDADEIRA !!! Trata-se de um Teorema !!!
Demonstração:
Como f1(n) = O(g1(n)) e f2(n) = O(g2(n)), existem n1, n2, c1 e c2,tais que:
f1(n) £ c1g1(n), para n ³ n1
f2(n) £ c2g2(n), para n ³ n2
7
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.1: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) + f2(n) = O(max{g1(n), g2(n)})
Demonstração:
Como f1(n) = O(g1(n)) e f2(n) = O(g2(n)), existem n1, n2, c1 e c2,tais que:
f1(n) £ c1g1(n), para n ³ n1
f2(n) £ c2g2(n), para n ³ n2
Considere n0=max (n1, n2) e c0=2max(c1, c2)
Considere ainda a soma: f1(n) + f2(n) , para n ³ n0
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.1: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) + f2(n) = O(max{g1(n), g2(n)})
Demonstração (cont.): n0=max (n1, n2) e c0=2max(c1, c2) e f1(n) + f2(n) , para n ³ n0
)()()()( 221121 ngcngcnfnf +≤+
))()((2
)(2
)(2
210
20
10 ngng
cng
cng
c+≤+≤
)))(),(max())(),((max(2
21210 ngngngngc
+≤
))(),(max()))(),(max(2(2
210210 ngngcngngc
≤≤
8
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.1: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) + f2(n) = O(max{g1(n), g2(n)})
Exemplo de Aplicação Prática:
Sendo:
f (n) = 2n2, f(n) = O(n2) e
h(n) = n3, h(n) = O(n3)
Então pelo teorema 3.1:
f(n) + h(n) = O(max(n2, n3))=O(n3)
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo de Aplicação Prática:
Sendo: f (n) = n2, f(n) = O(n2) e h(n) = n3, h(n) = O(n3)
Então aplicando o teorema 3.2:
h(n) + f(n) = n3 + n2 = O(h(n)) = O(n3)
Teorema 3.2: Se f(n) = f1(n) + f2(n) onde f1(n) e f2(n) são nãonegativas tais que:
Então f(n) = O(f1(n))
0,)(1
)(2lim ≥=
∞→LL
nf
nf
n
01
limlim)(
)(lim
3
2
==∞→∞→∞→ nn
n
nh
nf
nnn
9
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.3: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) x f2(n) = O(g1(n) x g2(n))
Demonstração:
Como f1(n) = O(g1(n)) e f2(n) = O(g2(n)), existem n1, n2, c1 e c2,tais que:
f1(n) £ c1g1(n), para n ³ n1
f2(n) £ c2g2(n), para n ³ n2
Considere n0=max (n1, n2) e c0=c1c2
Considere ainda a soma: f1(n) x f2(n) , para n ³ n0
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.3: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) x f2(n) = O(g1(n) x g2(n))
Demonstração (cont.):
n0=max (n1, n2) e c0=c1c2 e
f1(n) x f2(n) , para n ³ n0
)()()()( 221121 ngcngcnfnf ×≤×
))()(()()( 2102121 ngngcngngcc ×≤≤
Portanto, f1(n) x f2(n) = O(g1(n) x g2(n))
10
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.3: Se f1(n) = O(g1(n)) e f2(n) = O(g2(n))
Então f1(n) x f2(n) = O(g1(n) x g2(n))
Exemplo de Aplicação Prática:
Sendo:
f (n) = 2n2 + n + 1, f(n) = O(n2) e
h(n) = n3 + n2 + n + 1, h(n) = O(n3)
Então pelo teorema 3.3:
f(n) ´ h(n) = O(n2´ n3)=O(n5),
OBS: Dedução sem o cálculo do produto f(n) ´ h(n)
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.4: Se f1(n) = O(g1(n)) e g2(n) uma função nãonegativa, Então f1(n) x g2(n) = O(g1(n) x g2(n))
Demonstração:
Como f1(n) = O(g1(n)), existem n0, e c0, tais que:
f1(n) £ c0g1(n), para n ³ n0
)())(()()( 21021 ngngcngnf ×≤×
))()(( 210 ngngc ×≤
Assim f1(n) x g2(n) = O(g1(n) x g2(n))
11
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.4: Se f1(n) = O(g1(n)) e g2(n) uma função nãonegativa, Então f1(n) x g2(n) = O(g1(n) x g2(n))
Exemplo de Aplicação Prática:
Sendo:
f (n) = 2n2 + n + 1, f(n) = O(n2) e
h(n) = n3
Então pelo teorema 3.4:
f(n) ´ h(n) = O(n2´ n3)=O(n5),
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.5: Se f(n) = O(g(n)) e g(n) = O(h(n))
Então f(n) = O(h(n))
Demonstração:
Como f(n) = O(g(n)) e g(n) = O(h(n)), existem n1, n2, c1 e c2,tais que:
f(n) £ c1g(n), para n ³ n1
g(n) £ c2h(n), para n ³ n2
Considere n0=max (n1, n2) e c0=c1c2
12
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.5: Se f(n) = O(g(n)) e g(n) = O(h(n))
Então f(n) = O(h(n))
Demonstração (cont.): n0=max (n1, n2) e c0=c1c2. Para n ³ n0
11 ),()( nnngcnf ≥≤
0211 ),()( nnnhccngc ≥≤
)()( 021 nhcnhcc =
Assim: f(n) = O(h(n))
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Teorema 3.5: Se f(n) = O(g(n)) e g(n) = O(h(n))
Então f(n) = O(h(n))
Exemplo de Aplicação Prática:
Sendo:
f (n) = 5n3, f(n) = O(n3) e
h(n) = 3n2, queremos saber O(f(n) + h(n))
Pelo teorema 3.2: f(n) + h(n) = O(f(n))
Como f(n)=O(n3), pelo teorema 3.5, f(n) + h(n) = O(n3)
13
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo de Aplicação Prática:
Sendo: f (n) = 2n2 + 5n3
Então, aplicando o teorema 3.5:
f(n) = O(n3)
Teorema 3.6: Seja um polinômio em n da forma:
Então f(n) = O(nm)∑
=
>=m
i
m
i
i ananf0
0,)(
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Obs: Apesar de que log n diverge na medida em que n cresce,log n < n, para todo inteiro n ³ 0.
Obs: Aplicando os teoremas 3.5 e 3.3, e o fato de que n = O(n)temos:
log(n) = O(n)
nlog(n) = O(n2),
Teorema 3.7: Para todo inteiro k ³ 1:)(log nOnk
=
14
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Def. (Justeza):
Seja f(n) = O(g(n)). Se para toda função h(n) tal que f(n) = O(h(n)), também for verdade que g(n) = O(h(n)),
Então g(n) é um limite assintótico justo (ou estreito) para f(n)
A notação O(.) caracteriza o comportamento assintótico deuma função estabelecendo um limite superior quanto aocrescimento desta função em relação ao tamanho doproblema.
A notação O(.) não informa o quão próximo do limite está ocomportamento real da função.
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo: f(n)=8n + 128
Vimos que f(n) = O(n2). Pelo Teo 3.6 (polinômios): f(n) = O(n)
O(n) é um limite mais justo para f(n) do que O(n2)
Demonstração pela definição de justeza (e redução ao absurdo):
g(n)=n é um limite estreito de f(n) se para toda função h(n) talque f(n)=O(h(n)), também seja verdade que g(n)=O(h(n))
Suponhamos por absurdo que g(n) não seja um limite estreitopara f(n)=8n+128=O(h(n)).
Portanto, g(n) ¹O(h(n)).
15
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Exemplo: f(n)=8n + 128
Demonstração pela definição de justeza (e redução ao absurdo):
Suponhamos por absurdo que g(n) não seja um limite estreitopara f(n)=8n+128=O(h(n)).
Portanto, g(n) ¹O(h(n)).
Como, 8n+128 = O(h(n)), existem n0 e c tais que: 8n+128 £ c h(n),para n ³ n0
É fato que para todo n, n ³ 0, n £ 8n+128.Assim, g(n) £ 8n+128 £ c h(n), para n ³ n0à g(n) £ c h(n)
Pela def.: g(n)=O(h(n)), o que é um absurdo.Logo g(n)=n é um limite estreito para f(n)
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
Convenções para as Expressões de O(.)
• Escrever expressão de O(.), sem os termos menos significativos
Exemplo: O(n2 + nlog(n) + n)à O(n2)
• Desconsiderar coeficientes constantes
Exemplos:O(3n2)àO(n2),O(1024)à O(1)
• Expressões Comuns:
2
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
Def. Ômega (W):
Seja f(n) função não negativa para todo n, n ³ 0.
Dizemos de “f(n) é Ômega g(n)”, se:
Existem um inteiro n0 e uma constante c > 0 tais que:
Para todo n ³ n0, f(n) ³ cg(n)
Notação:
f(n)=W(g(n))
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
Exemplo: Mostrar que f(n)=5n2 - 64n + 256 é W(n2)
Devemos indicar um inteiro n0 e uma constante c > 0 tais que:
f(n) ³ cn2
⇒≥+−⇒≥222 256645)( nnncnnf
Por exemplo, tomemos c=1:
0)8(40256644 22≥−⇒≥+− nnn
Como (n – 8)2 > 0 sempre, temos que:
n pode ser 0 Þ n0 = 0
3
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
Exemplo: Mostrar que f(n)=5n2 - 64n + 256 é W(n2)
Assim, para n0 = 0 e c = 1, temos que:
Para todo n ³ n0, f(n) ³cn2 , ou seja, f(n) = W(n2)
n2 é menorque f(n) àdireita de
n=0
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
Exemplo de Aplicação Prática:
Sendo: f (n) = 2n2 + 5n3
Então, aplicando o teorema 3.8:
f(n) = W(n3)
Teorema 3.8: Seja um polinômio em n da forma:
Então f(n) = W(nm)∑
=
>=m
i
m
i
i ananf0
0,)(
4
ROTEIRO
1. INTRODUÇÃO E MOTIVAÇÃO
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
4. NOTAÇÃO Q
5. ANÁLISE ASSINTÓTICA DE ALGORITMOS
4. NOTAÇÃO Q
Def. Teta (Q):
Seja f(n) função não negativa para todo n, n ³ 0.
Dizemos de “f(n) é Teta g(n)”, se:
f(n) = O(g(n)) e f(n) = W(g(n)), ao mesmo tempo
Notação:
f(n)=Q(g(n))
5
4. NOTAÇÃO Q
Exemplo: Mostrar que todo polinômio em n de grau m é Q(nm)
Seja um polinômio de grau m: ∑=
>=m
i
m
i
i ananf0
0,)(
Pelo teorema 3.6 : f(n)=O(nm)
Pelo teorema 3.8 : f(n)=W(nm)
Portanto, pela definição anterior : f(n)=Q(nm)
4. NOTAÇÃO Q
Def. o (“o” pequeno):
Seja f(n) função não negativa para todo n, n ³ 0.
Dizemos de “f(n) é o(g(n))”, se:
f(n) = O(g(n)), mas f(n) não for W(g(n))
Notação:
f(n)=o(g(n))
6
4. NOTAÇÃO Q
Exemplo: Mostrar que f(n) = n + 1 é o(n2)
Claramente: f(n)=O(n2) (basta tomar n0=2 e c=1)
Portanto, f(n) ¹W(n2).
Por outro lado, para n grande, independente da escolha de c>0:
n + 1 nunca será superior a cn2.
Concluindo: f(n)=O(n2) mas f(n) ¹W(n2). Logo f(n)=o(n2)
ROTEIRO
1. INTRODUÇÃO E MOTIVAÇÃO
2. UM LIMITE ASSINTÓTICO SUPERIOR – NOTAÇÃO O
3. UM LIMITE ASSINTÓTICO INFERIOR – NOTAÇÃO W
4. NOTAÇÃO Q
5. ANÁLISE ASSINTÓTICA DE ALGORITMOS