Академический Документы
Профессиональный Документы
Культура Документы
(continuacao)
Fernando Lobo
Algoritmos e Estrutura de Dados II
1 / 15
Teorema Mestre
Caso 1: f (n) = O
_
n
log
b
a
_
para um > 0
(f(n) e polinomiamente inferior a n
log
b
a
)
Solu cao:
T(n) = (n
log
b
a
)
Intuitivamente: custo e dominado pelas folhas da arvore de
recorrencia.
Caso 2: f (n) =
_
n
log
b
a
_
Solu cao:
T(n) = (n
log
b
a
lg n)
Intuitivamente: custo e identico em cada nvel da arvore de
recorrencia.
3 / 15
Teorema Mestre: Caso 1
Caso 1: f (n) = O
_
n
log
b
a
_
para um > 0
(f (n) e polinomiamente inferior a n
log
b
a
)
Solucao:
T(n) = (n
log
b
a
)
Intuitivamente: custo e dominado pelas folhas da arvore de
recorrencia.
4 / 15
Teorema Mestre: Caso 2
Caso 2: f (n) =
_
n
log
b
a
_
Solucao:
T(n) = (n
log
b
a
lg n)
Intuitivamente: custo e identico em cada nvel da arvore de
recorrencia.
5 / 15
Teorema Mestre: Caso 3
Caso 3:
f (n) =
_
n
log
b
a+
_
para um > 0
(f (n) e polinomiamente superior a n
log
b
a
)
af (
n
b
) cf (n) para um c < 1 e para todo n > n
0
(Chama-se a isto Condicao de Regularidade)
Solucao:
T(n) = (f (n))
Intuitivamente: custo e dominado pela raz da arvore de
recorrencia.
A condi cao de regularidade e sempre verdadeira quando f (n) = n
k
.
6 / 15
Teorema Mestre
Exemplo 1
T(n) = 4T(
n
2
) + n
a b f (n)
Comparar n
log
b
a
com f (n)
n
log
2
4
= n
2
n
Caso 1: f (n) = n = O(n
2
) para = 1 , logo
T(n) = (n
2
)
7 / 15
Teorema Mestre
Exemplo 2
T(n) = 4T(
n
2
) + n
2
n
log
b
a
= n
log
2
4
= n
2
n
2
Caso 2: f (n) = n
2
= (n
2
), logo
T(n) = (n
2
lg n)
f(n)
8 / 15
Teorema Mestre
Exemplo 3
T(n) = 4T(
n
2
) + n
3
n
log
b
a
= n
log
2
4
= n
2
n
3
Caso 3:
f (n) = n
3
= (n
2+
) para = 1
4n
3
8
cn
3
1
2
n
3
cn
3
,basta escolher c
1
2
T(n) = f (n)
T
_
n
b
_
T
_
n
b
_
. . T
_
n
b
_
a vezes
11 / 15
Teorema Mestre (intuicao)
Iterando:
T(n) = f (n)
f
_
n
b
_
T
_
n
b
2
_
. . .
. . . . . . f
_
n
b
_
. . . T
_
n
b
2
_
a vezes
a vezes a vezes
12 / 15
Teorema Mestre (intuicao)
Iterando mais vezes:
T(n) = f (n)
f
_
n
b
_
f
_
n
b
2
_
. . .
. . . . . . f
_
n
b
_
. . . f
_
n
b
2
_
. . . . . . . . . . . . . . . . . . . . . . . .
T(1) T(1) T(1) . . . . . . . . . . T(1) T(1) T(1)
h = log
b
n
f(n)
a
af (
n
b
)
a a
a
2
f (
n
b
2
)
a
h
(1)
Total
13 / 15
i =0
a
i
f
_
n
b
i
_
+ (n
log
b
a
)
14 / 15
Se f (n) e polinomial, i.e., f (n) = n
k
para algum k xo, resulta:
T(n) =
log
b
n1
i =0
a
i
_
n
b
i
_
k
+ (n
log
b
a
)
= n
k
log
b
n1
i =0
_
a
b
k
_
i
. .
p.g.com log
b
n parcelas e r =
a
b
k
+ (n
log
b
a
)
Daqui obtemos:
Se r > 1
log
b
a > k T(n) = (n
log
b
a
) (Caso 1)
Se r = 1
log
b
a = k T(n) = (n
k
log
b
n) (Caso 2)
Se r < 1
log
b
a < k T(n) = (n
k
) (Caso 3)
15 / 15