47
O Teorema Mestre da Complexidade O Teorema Mestre da Complexidade Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 23 de abril de 2010

O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

O Teorema Mestre da Complexidade

Luís Fernando Schultz Xavier da Silveira

Departamento de Informática e Estatística - INE - CTC - UFSC

23 de abril de 2010

Page 2: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Conteúdo

1 Enunciado

2 DemonstraçãoPreliminaresPeso das FolhasO Primeiro Caso do Teorema MestreO Segundo Caso do Teorema MestreTrabalho no Nó RaizO Terceiro Caso do Teorema Mestre

Page 3: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Enunciado

TeoremaSeja T : N→ R+

∗ uma função satisfazendo

“T(n) = aT(n

b

)+ f (n)”

para valores a, b ∈N, a > 1 e b > 2, e uma função f : N→ R+∗ .

Então

T ∈

Θ(nlogb a) , ∃ε > 0 : f ∈ O

(nlogb a−ε

)Θ(nlogb a log n

), f ∈ Θ

(nlogb a)

Θ(f ),∃w ∈ (0; 1), x0 ∈N : ∀n > x0,

“af(n

b

)6 f (n)”

Page 4: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Tecnicalidades

Rigorosamente falando, o enunciado do teorema anterior está

informal, pois ele não trata do “caso base” de T e a divisãonb

pode não ser um número inteiro.

Por outro lado, o enunciado completo não caberia em um slide:-). Vamos então preencher essas lacunas aos poucos.

Page 5: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Tecnicalidades

Rigorosamente falando, o enunciado do teorema anterior está

informal, pois ele não trata do “caso base” de T e a divisãonb

pode não ser um número inteiro.Por outro lado, o enunciado completo não caberia em um slide:-). Vamos então preencher essas lacunas aos poucos.

Page 6: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Tecnicalidades

PorT(n) = aT

(nb

)+ f (n),

entendemos que existe um número n0 ∈ N e que, para todon > n0, existem números kn[0], kn[1], . . . , kn[a− 1] ∈N, tais que

∀i, 0 6 i < a, 0 6 kn[i] 6⌈n

b

⌉−⌊n

b

⌋e

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n).

Como isso não altera a definição, assumiremos n0 > 1.

Page 7: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Tecnicalidades

PorT(n) = aT

(nb

)+ f (n),

entendemos que existe um número n0 ∈ N e que, para todon > n0, existem números kn[0], kn[1], . . . , kn[a− 1] ∈N, tais que

∀i, 0 6 i < a, 0 6 kn[i] 6⌈n

b

⌉−⌊n

b

⌋e

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n).

Como isso não altera a definição, assumiremos n0 > 1.

Page 8: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Enunciado

Tecnicalidades

Por∃x0 ∈N, w ∈ (0; 1) : ∀n > x0, af

(nb

)6 wf (n),

entendemos que existem x0 ∈ N, w ∈ (0; 1) tais que, para todon > maxn0, x0,

a−1

∑i=0

f(⌊n

b

⌋+ kn[i]

)6 wf (n).

Page 9: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

DefiniçãoSeja n ∈N \ 0 e b ∈N, b > 2. Definimos

πb(n) = maxk∈N

bk : bk 6 n

como a maior potência de b menor ou igual a n.

Page 10: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n ∈N \ 0 e b ∈N, b > 2. Então πb(bn) = bπb(n).

Demonstração.Claramente bπb(n) é uma potência de b satisfazendobπb(n) 6 bn, pois πb(n) 6 n.Porém, como bπb(n) > n, por definição, temos b2πb(n) > bn, ecomo b2πb(n) é a menor potência de b maior que bπb(n), oresultado segue.

Page 11: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n ∈N \ 0 e b ∈N, b > 2. Então πb(bn) = bπb(n).

Demonstração.Claramente bπb(n) é uma potência de b satisfazendobπb(n) 6 bn, pois πb(n) 6 n.Porém, como bπb(n) > n, por definição, temos b2πb(n) > bn, ecomo b2πb(n) é a menor potência de b maior que bπb(n), oresultado segue.

Page 12: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n > b > 2. Então

πb

(⌊nb

⌋)=

πb(n)b

.

Demonstração.Note que

πb

(⌊nb

⌋)=

πb(n)b

⇐⇒ bπb

(⌊nb

⌋)= πb(n)

⇐⇒ πb

(b⌊n

b

⌋)= πb(n).

Page 13: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n > b > 2. Então

πb

(⌊nb

⌋)=

πb(n)b

.

Demonstração.Note que

πb

(⌊nb

⌋)=

πb(n)b

⇐⇒ bπb

(⌊nb

⌋)= πb(n)

⇐⇒ πb

(b⌊n

b

⌋)= πb(n).

Page 14: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

Demonstração.

Basta então mostrar que, ∀k ∈N, bk 6 b⌊n

b

⌋⇐⇒ bk 6 n.

De fato,

bk 6 b⌊n

b

⌋=⇒ bk−1 6

⌊nb

⌋6

nb

=⇒ bk 6 n.

Similarmente, como bk ou é 1 ou é um múltiplo de b e n > b,temos

bk 6 n =⇒ bk 6 n− (n mod b) = b⌊n

b

⌋.

Com isso a demonstração está concluída.

Page 15: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

DefiniçãoSeja n ∈N \ 0 e b ∈N, b > 2. Definimos

π′b(n) = mink∈N

bk : bk > n

como a menor potência de b maior ou igual a n.

Page 16: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n ∈N \ 0 e b ∈N, b > 2. Então π′b(bn) = bπ′b(n).

Seja n > b > 2. Então

π′b

(⌈nb

⌉)=

π′b(n)b

.

Demonstração.Totalmente análoga à dos resultados para π.

Page 17: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Preliminares

Arredondamento para Potências

LemaSeja n ∈N \ 0 e b ∈N, b > 2. Então π′b(bn) = bπ′b(n).

Seja n > b > 2. Então

π′b

(⌈nb

⌉)=

π′b(n)b

.

Demonstração.Totalmente análoga à dos resultados para π.

Page 18: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Lema (Peso das Folhas)

T ∈ Ω(nlogb a).

Demonstração.Seja n′0 = bn0 e seja

c = minn06n<n′0

T(n)

πb(n)logb a

.

Vamos então provar por indução que, para todo n > n0,

T(n) > cπb(n)logb a.

Page 19: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Lema (Peso das Folhas)

T ∈ Ω(nlogb a).

Demonstração.Seja n′0 = bn0 e seja

c = minn06n<n′0

T(n)

πb(n)logb a

.

Vamos então provar por indução que, para todo n > n0,

T(n) > cπb(n)logb a.

Page 20: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Demonstração.Para a base da indução, considere n0 6 n < n′0. Então

T(n) = T(n) ·(

πb(n)logb a

πb(n)logb a

)=(

T(n)πb(n)logb a

)πb(n)logb a

> cπb(n)logb a.

Page 21: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Demonstração.Para o passo indutivo, considere n′0 6 n. Então

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n)

>a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)>

a−1

∑i=0

cπb

(⌊nb

⌋+ kn[i]

)logb a

>a−1

∑i=0

cπb

(⌊nb

⌋)logb a

Page 22: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Demonstração.

T(n) >a−1

∑i=0

cπb

(⌊nb

⌋)logb a

= acπb

(⌊nb

⌋)logb a

= ac(

πb(n)b

)logb a

=acπb(n)logb a

blogb a =acπb(n)logb a

a= cπb(n)logb a.

Page 23: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Peso das Folhas

Peso das Folhas

Demonstração.Segue que

T ∈ Ω(

πb(n)logb a)

.

Mas como πb(n) 6 n < bπb(n),

Θ(

πb(n)logb a)

= Θ(

nlogb a)

e segue queT ∈ Ω

(nlogb a

).

Page 24: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Com o que já temos até agora é possível demonstrar o primeirocaso do Teorema Mestre.

Lema (Primeiro Caso do Teorema Mestre)Se existe ε > 0 tal que

f ∈ O(

nlogb a−ε)

,

entãoT ∈ Θ

(nlogb a

).

Page 25: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração.

Como f ∈ O(nlogb a−ε), existem x0, q ∈ N tais que, para todon > x0,

f (n) 6 qπb(n)logb a−ε.

Defina m0 = maxx0, n0, m′0 = bm0 e

c = maxm06n<m′0

T(n) + q

( 1bε−1

)πb(n)logb a−ε

π′b(n)logb a

.

Vamos provar por indução que, para n > m0,

T(n) 6 cπ′b(n)logb a − q(

1bε − 1

)πb(n)logb a−ε ∈ O(nlogb a).

Page 26: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração.Para a base da indução, assuma m0 6 n < m′0. Então

T(n) = T(n) + q( 1

bε−1

)πb(n)logb a−ε − q

( 1bε−1

)πb(n)logb a−ε

=(

T(n)+q( 1bε−1 )πb(n)logb a−ε

π′b(n)logb a

)π′b(n)logb a − q

( 1bε−1

)πb(n)logb a−ε

6 cπ′b(n)logb a − q(

1bε − 1

)πb(n)logb a−ε.

Page 27: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração.Para o passo indutivo, assuma n > m′0. Logo

T(n)=∑a−1i=0 T(b n

b c+kn[i])+f (n)

6∑a−1i=0

(cπ′b(b n

b c+kn[i])logb a−q( 1bε−1 )πb(b n

b c+kn[i])logb a−ε)+qπb(n)logb a−ε

6∑a−1i=0

(cπ′b(d n

b e)logb a−q( 1

bε−1 )πb(b nb c)

logb a−ε)+qπb(n)logb a−ε

6acπ′b(d nb e)

logb a−aq( 1bε−1 )πb(b n

b c)logb a−ε

+qπb(n)logb a−ε

6ac(

π′b(n)b

)logb a−aq( 1

bε−1 )(

πb(n)b

)logb a−ε+qπb(n)logb a−ε

6acπ′b(n)logb a

blogb a −aq( 1bε−1 )

πb(n)logb a−ε

blogb a−ε +qπb(n)logb a−ε

6acπ′b(n)logb a

blogb a −aq( 1bε−1 )

πb(n)logb a−ε

blogb ab−ε+qπb(n)logb a−ε

Page 28: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração.

T(n)6acπ′b(n)logb a

blogb a −aq( 1bε−1 )

πb(n)logb a−ε

blogb ab−ε+qπb(n)logb a−ε

6acπ′b(n)logb a

a −aq( 1bε−1 )

bεπb(n)logb a−ε

a +qπb(n)logb a−ε

6cπ′b(n)logb a−q( 1bε−1 )bεπb(n)logb a−ε+qπb(n)logb a−ε

6cπ′b(n)logb a−q(( 1bε−1 )bε−1)πb(n)logb a−ε

6cπ′b(n)logb a−q( bε

bε−1−bε−1bε−1 )πb(n)logb a−ε

6cπ′b(n)logb a−q( 1bε−1 )πb(n)logb a−ε.

Page 29: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração.Com isso, segue que

T ∈ O(nlogb a).

Pelo lema do peso das folhas,

T ∈ Ω(nlogb a).

PortantoT ∈ Θ(nlogb a).

Page 30: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

LemaSe

f ∈ Θ(nlogb a),

entãoT ∈ Θ(nlogb a log n).

Demonstração.Iremos mostrar que

T ∈ O(nlogb a log n)

e queT ∈ Ω(nlogb a log n).

Page 31: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

LemaSe

f ∈ Θ(nlogb a),

entãoT ∈ Θ(nlogb a log n).

Demonstração.Iremos mostrar que

T ∈ O(nlogb a log n)

e queT ∈ Ω(nlogb a log n).

Page 32: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.

A fim de mostrar que T ∈ O(nlogb a log n), observe que, comof ∈ O(nlogb a), existem constantes x0, q ∈ N tais que, para todon > x0, f (n) 6 qnlogb a.Assim sendo, defina m0 = maxn0, x0, m′0 = bm0 e

c = maxm06n<m′0

T(n)

π′b(n)logb a logb π′b(n), q

.

Vamos provar, por indução, que, para todo n > m0,

T(n) 6 cπ′b(n)logb a logb π′b(n).

Page 33: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.Para a base da indução, assuma que m0 6 n < m′0. Então

T(n) = T(n) ·(

π′b(n)logb a logb π′b(n)π′b(n)logb a logb π′b(n)

)

=

(T(n)

π′b(n)logb a logb π′b(n)

)π′b(n)logb a logb π′b(n)

6 cπ′b(n)logb a logb π′b(n).

Page 34: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.Para o passo indutivo, suponha n > m′0. Então

T(n) = ∑a−1i=0 T

(⌊nb

⌋+ kn[i]

)+ f (n)

6 ∑a−1i=0 cπ′b

(⌊nb

⌋+ kn[i]

)logb a logb π′b(⌊n

b

⌋+ kn[i]

)+ f (n)

6 ∑a−1i=0 cπ′b

(⌈nb

⌉)logb a logb π′b(⌈n

b

⌉)+ f (n)

6 ac(

π′b(n)b

)logb alogb

(π′b(n)

b

)+ qnlogb a

= acπ′b(n)logb a

blogb a (logb π′b(n)− 1) + qnlogb a

= acπ′b(n)logb a

a (logb π′b(n)− 1) + qnlogb a

= cπ′b(n)logb a(logb π′b(n)− 1) + qnlogb a

Page 35: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.

T(n) = cπ′b(n)logb a(logb π′b(n)− 1) + qnlogb a

= cπ′b(n)logb a logb π′b(n)− cπ′b(n)logb a + qnlogb a

6 cπ′b(n)logb a logb π′b(n)− cπ′b(n)logb a + qπ′b(n)logb a

= cπ′b(n)logb a logb π′b(n) + (q− c)π′b(n)logb a

6 cπ′b(n)logb a logb π′b(n).

Portanto T ∈ O(nlogb a log n).

Page 36: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.

A fim de mostrar que T ∈ Ω(nlogb a log n), observe que, comof ∈ Ω(nlogb a), existem constantes x0, q ∈ N tais que, para todon > x0, f (n) > qπb(n)logb a.Assim sendo, defina m0 = maxn0, x0, m′0 = bm0 e

c = minm06n<m′0

T(n)

πb(n)logb a logb πb(n), q

.

Vamos provar por indução que, para todo n > m0,

T(n) > cπb(n)logb a logb πb(n).

Page 37: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.Para a base da indução, suponha m0 6 n < m′0. Então

T(n) = T(n) ·(

πb(n)logb a logb πb(n)πb(n)logb a logb πb(n)

)

=

(T(n)

πb(n)logb a logb πb(n)

)πb(n)logb a logb πb(n)

> cπb(n)logb a logb πb(n).

Page 38: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.Para a prova do passo indutivo, assuma n > m′0. Então

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n)

>a−1

∑i=0

cπb

(⌊nb

⌋+ kn[i]

)logb alogb πb

(⌊nb

⌋+ kn[i]

)+ f (n)

>a−1

∑i=0

cπb

(⌊nb

⌋)logb alogb πb

(⌊nb

⌋)+ qπb(n)logb a

= acπb

(⌊nb

⌋)logb alogb πb

(⌊nb

⌋)+ qπb(n)logb a

Page 39: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.

T(n) = acπb

(⌊nb

⌋)logb alogb πb

(⌊nb

⌋)+ qπb(n)logb a

= ac(

πb(n)b

)logb alogb

(πb(n)

b

)+ qπb(n)logb a

=acπb(n)logb a

blogb a

(logb πb(n)− 1

)+ qπb(n)logb a

= cπb(n)logb a (logb πb(n)− 1)+ qπb(n)logb a

= πb(n)logb a (c logb πb(n) + (q− c))

> cπb(n)logb a logb πb(n).

Portanto T ∈ Ω(nlogb a log n).

Page 40: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Demonstração.Temos que

T ∈ O(nlogb a log n)

e queT ∈ Ω(nlogb a log n),

e portantoT ∈ Θ(nlogb a log n).

Page 41: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Trabalho no Nó Raiz

Trabalho no Nó Raiz

Lema (Trabalho no Nó Raiz)T ∈ Ω(f ).

Demonstração.Para n > n0,

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n) > f (n).

Page 42: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

Trabalho no Nó Raiz

Trabalho no Nó Raiz

Lema (Trabalho no Nó Raiz)T ∈ Ω(f ).

Demonstração.Para n > n0,

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n) > f (n).

Page 43: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Lema (O Terceiro Caso do Teorema Mestre)Se existem w ∈ (0; 1), x0 ∈N tais que, para todo n > maxx0, n0,

a−1

∑i=0

f(⌊n

b

⌋+ kn[i]

)6 wf (n),

entãoT ∈ Θ(f ).

Page 44: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Demonstração.Seja m0 = maxn0, x0, m′0 = bm0 e

c = maxm06n<m′0

T(n)f (n)

,1

1−w

.

Vamos provar por indução que

T(n) 6 cf (n)

para todo n > m0.

Page 45: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Demonstração.Para o caso base, considere m0 6 n < m′0. Então

T(n) = T(n) ·(

f (n)f (n)

)=(

T(n)f (n)

)f (n)

6 cf (n).

Page 46: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Demonstração.Para o passo indutivo, considere n > m′0. Segue que

T(n) =a−1

∑i=0

T(⌊n

b

⌋+ kn[i]

)+ f (n)

6a−1

∑i=0

cf(⌊n

b

⌋+ kn[i]

)+ f (n)

6 cwf (n) + f (n)= (cw + 1)f (n)6 cf (n).

Page 47: O Teorema Mestre da Complexidade - ime.usp.brschultz/maratona-ufsc/slides/2010-04-23... · O Teorema Mestre da Complexidade Enunciado Enunciado Teorema Seja T : N!R+ uma função

O Teorema Mestre da Complexidade

Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Demonstração.Então temos que

T ∈ O(f ).

Pelo lema do trabalho no nó raiz, temos que

T ∈ Ω(f ).

LogoT ∈ Θ(f ).