• Nenhum resultado encontrado

O Teorema Mestre da Complexidade

N/A
N/A
Protected

Academic year: 2021

Share "O Teorema Mestre da Complexidade"

Copied!
47
0
0

Texto

(1)

O Teorema Mestre da Complexidade

Luís Fernando Schultz Xavier da Silveira

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

(2)

O Teorema Mestre da Complexidade

Conteúdo

1 Enunciado

2 Demonstração Preliminares Peso das Folhas

O Primeiro Caso do Teorema Mestre O Segundo Caso do Teorema Mestre Trabalho no Nó Raiz

(3)

Teorema

Seja T :NR+

∗ uma função satisfazendo

“T(n) =aTn b 

+f(n)”

para valores a, b∈N, a>1 e b>2, e uma função f :NR+ ∗. Então T∈            Θ nlogba , ε>0 : f ∈ O nlogba−ε

Θ nlogbalog n , f ∈ Θ nlogba

Θ(f), ∃w∈ (0; 1), x0 ∈N :∀n>x0, “afn b  6f(n)”

(4)

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ão n b 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.

(5)

Rigorosamente falando, o enunciado do teorema anterior está informal, pois ele não trata do “caso base” de T e a divisão n b 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.

(6)

O Teorema Mestre da Complexidade Enunciado

Tecnicalidades

Por T(n) =aTn b  +f(n),

entendemos que existe um número n0 ∈ N e que, para todo

n>n0, existem números kn[0], kn[1], . . . , kn[a−1] ∈N, tais que

∀i, 06i<a, 06kn[i] 6 ln b m −jn b k e T(n) = a−1

i=0 Tjn b k +kn[i]  +f(n).

(7)

Por

T(n) =aTn b 

+f(n),

entendemos que existe um número n0 ∈ N e que, para todo

n>n0, existem números kn[0], kn[1], . . . , kn[a−1] ∈N, tais que

∀i, 06i<a, 06kn[i] 6 ln b m −jn b k e T(n) = a−1

i=0 Tjn b k +kn[i]  +f(n). Como isso não altera a definição, assumiremos n0>1.

(8)

O Teorema Mestre da Complexidade Enunciado

Tecnicalidades

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

entendemos que existem x0 ∈N, w∈ (0; 1)tais que, para todo

n>max{n0, x0}, a−1

i=0 fjn b k +kn[i]  6wf(n).

(9)

Definição Seja n∈N\ {0}e b∈ N, b>2. Definimos πb(n) =max k∈N n bk : bk6no como a maior potência de b menor ou igual a n.

(10)

O Teorema Mestre da Complexidade Demonstração

Preliminares

Arredondamento para Potências

Lema

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

Demonstração.

Claramente bπb(n)é uma potência de b satisfazendo

b(n) 6bn, pois πb(n) 6n.

Porém, como bπb(n) >n, por definição, temos b2πb(n) >bn, e

como b2π

b(n)é a menor potência de b maior que bπb(n), o

(11)

Lema

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

Demonstração.

Claramente bπb(n)é uma potência de b satisfazendo

b(n) 6bn, pois πb(n) 6n.

Porém, como bπb(n) >n, por definição, temos b2πb(n) >bn, e

como b2π

b(n)é a menor potência de b maior que bπb(n), o

(12)

O Teorema Mestre da Complexidade Demonstração

Preliminares

Arredondamento para Potências

Lema Seja n>b>2. Então πb jn b k = πb(n) b . Demonstração. Note que πb jn b k = πb(n) b ⇐⇒ b jn b k =πb(n) ⇐⇒ πb  bjn b k = πb(n).

(13)

Lema Seja n>b>2. Então πb jn b k = πb(n) b . Demonstração. Note que πb jn b k = πb(n) b ⇐⇒ b jn b k =πb(n) ⇐⇒ πb  bjn b k = πb(n).

(14)

O Teorema Mestre da Complexidade Demonstração

Preliminares

Arredondamento para Potências

Demonstração.

Basta então mostrar que,∀k∈N, bk 6bjn b k ⇐⇒ bk 6n. De fato, bk6bjn b k =⇒bk−1 6jn b k 6 n b =⇒bk 6n.

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

bk 6n=⇒bk 6n− (n mod b) =bjn b k

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

(15)

Definição Seja n∈N\ {0}e b∈ N, b>2. Definimos π0b(n) =min k∈N n bk : bk >no como a menor potência de b maior ou igual a n.

(16)

O Teorema Mestre da Complexidade Demonstração

Preliminares

Arredondamento para Potências

Lema Seja n∈N\ {0}e b∈N, b>2. Então π0b(bn) =0b(n). Seja n>b>2. Então π0b ln b m = π 0 b(n) b . Demonstração.

(17)

Lema Seja n∈N\ {0}e b∈N, b>2. Então π0b(bn) =0b(n). Seja n>b>2. Então π0b ln b m = π 0 b(n) b . Demonstração.

(18)

O Teorema Mestre da Complexidade Demonstração

Peso das Folhas

Peso das Folhas

Lema (Peso das Folhas)

T∈Ω nlogba. Demonstração. Seja n00 =bn0 e seja c= min n06n<n00  T(n) πb(n)logba  .

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

(19)

Lema (Peso das Folhas) T∈Ω nlogba. Demonstração. Seja n00 =bn0 e seja c= min n06n<n00  T(n) πb(n)logba  .

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

(20)

O Teorema Mestre da Complexidade Demonstração

Peso das Folhas

Peso das Folhas

Demonstração.

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

T(n) =T(n) ·  πb(n)logba πb(n)logba  =  T(n) πb(n)logba  πb(n)logba >b(n)logba.

(21)

Demonstração.

Para o passo indutivo, considere n00 6n. Então T(n) = a−1

i=0 Tjn b k +kn[i]  +f(n) > a−1

i=0 Tjn b k +kn[i]  > a−1

i=0 b jn b k +kn[i] logba > a−1

i=0 b jn b klogba

(22)

O Teorema Mestre da Complexidade Demonstração

Peso das Folhas

Peso das Folhas

Demonstração. T(n) > a−1

i=0 b jn b klogba =acπb jn b klogba =ac  πb(n) b logba = acπb(n) logba blogba = acπb(n)logba a =b(n)logba.

(23)

Demonstração. Segue que T∈ Ωπb(n)logba  . Mas como πb(n) 6n<b(n), Θπb(n)logba  = Θnlogba  e segue que T∈ nlogba  .

(24)

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 primeiro caso do Teorema Mestre.

Lema (Primeiro Caso do Teorema Mestre)

Se existe ε>0 tal que

f ∈ Onlogba−ε  , então T∈Θnlogba  .

(25)

Demonstração.

Como f ∈ O(nlogba−ε), existem x

0, q ∈ N tais que, para todo

n>x0, f(n) 6b(n)logba−ε. Defina m0 =max{x0, n0}, m00=bm0 e c= max m06n<m00 ( T(n) +q bε11  πb(n)logba−ε π0b(n)logba ) . Vamos provar por indução que, para n>m0,

T(n) 6b0(n)logba−q  1 bε1  πb(n)logba−ε ∈ O(nlogba).

(26)

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 m06n<m00. Então

T(n) =T(n) +q bε11  πb(n)logba−ε−q bε11  πb(n)logba−ε =  T(n)+q( 1 −1)πb(n)logb a−ε π0b(n)logb a  π0b(n)logba−q 1 bε1  πb(n)logba−ε 60b(n)logba−q  1 bε1  πb(n)logba−ε.

(27)

Demonstração.

Para o passo indutivo, assuma n>m00. Logo

T(n)=ai=01T(bnbc+kn[i])+f(n) 6∑a−1 i=0  b0(bnbc+kn[i])logb a−q(1−1)πb(b n bc+kn[i])logb a −ε +b(n)logb a−ε 6∑a−1 i=0  0 b(dnbe)logb a−q(1−1)πb(bnbc)logb a −ε +b(n)logb a−ε 6acπ0b(dn be) logb aaq( 1 −1)πb(bnbc) logb a−ε +b(n)logb a−ε 6ac  π0b(n) b logb a −aq( 1 −1)  πb(n) b logb a−ε +b(n)logb a−ε 6acπ 0 b(n)logb a blogba −aq( 1 −1)πb (n)logb a−ε blogba−ε +b(n) logb a−ε 6acπ 0 b(n)logb a blogba −aq( 1 −1)πb (n)logb a−ε blogbab−ε +b(n) logb a−ε

(28)

O Teorema Mestre da Complexidade Demonstração

O Primeiro Caso do Teorema Mestre

O Primeiro Caso do Teorema Mestre

Demonstração. T(n)6acπ 0 b(n)logb a blogba −aq( 1 −1)πb (n)logb a−ε blogbab−ε +b(n) logb a−ε 6acπ 0 b(n)logb a a −aq(1−1)bε πb (n)logb a−ε a +b(n)logb a−ε 6b0(n)logb a−q( 1 −1)bεπb(n)logb a−ε+b(n)logb a−ε 6b0(n)logb a−q(( 1 −1)bε−1)πb(n)logb a −ε 6b0(n)logb a−q( −1− −1 −1)πb(n)logb a −ε 6b0(n)logb a−q( 1 −1)πb(n)logb a−ε.

(29)

Demonstração.

Com isso, segue que

T∈ O(nlogba).

Pelo lema do peso das folhas,

T∈ (nlogba).

Portanto

(30)

O Teorema Mestre da Complexidade Demonstração

O Segundo Caso do Teorema Mestre

O Segundo Caso do Teorema Mestre

Lema Se f ∈Θ(nlogba), então T∈Θ(nlogbalog n). Demonstração.

Iremos mostrar que

T∈ O(nlogbalog n)

e que

(31)

Lema Se f ∈Θ(nlogba), então T∈Θ(nlogbalog n). Demonstração.

Iremos mostrar que

T∈ O(nlogbalog n)

e que

(32)

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(nlogbalog n), observe que, como

f ∈ O(nlogba), existem constantes x0, q ∈ N tais que, para todo

n>x0, f(n) 6qnlogba.

Assim sendo, defina m0 =max{n0, x0}, m00=bm0 e

c= max m06n<m00 ( T(n) π0b(n)logbalog bπ0b(n) , q ) . Vamos provar, por indução, que, para todo n>m0,

T(n) 60b(n)logbalog

bπ

0

(33)

Demonstração.

Para a base da indução, assuma que m06n<m00. Então

T(n) =T(n) · π 0 b(n)logbalogbπ0b(n) πb0(n)logbalog bπ0b(n) ! = T(n) πb0(n)logbalog bπb0(n) ! πb0(n)logbalog bπ 0 b(n) 60b(n)logbalog bπ0b(n).

(34)

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>m00. Então T(n) =ai=01T n b  +kn[i]  +f(n) 6∑a−1 i=0b0 n b  +kn[i] logba logbπ0b nb+kn[i]  +f(n) 6∑ai=−01b0 n b logba logbπb0 nb+f(n) 6acπ0b(n) b logba logbπ0b(n) b  +qnlogba = acπb0(n)logb a

blogb a (logbπ0b(n) −1) +qnlogba

= acπb0(n)logb a

a (logbπ0b(n) −1) +qnlogba

=b0(n)logba(log

(35)

Demonstração. T(n) =0b(n)logba(log bπb0(n) −1) +qnlogba =0b(n)logbalog bπ 0 b(n) −b0(n)logba+qnlogba 6b0(n)logbalog bπ 0 b(n) −0b(n)logba+b0(n)logba =0b(n)logbalog bπ 0 b(n) + (q−c)πb0(n)logba 6b0(n)logbalog bπ 0 b(n).

(36)

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 ∈ Ω(nlogbalog n), observe que, como

f ∈ Ω(nlogba), existem constantes x0, q ∈ N tais que, para todo

n>x0, f(n) >b(n)logba.

Assim sendo, defina m0 =max{n0, x0}, m00=bm0 e

c= min m06n<m00 ( T(n) πb(n)logbalog bπb(n) , q ) . Vamos provar por indução que, para todo n>m0,

(37)

Demonstração.

Para a base da indução, suponha m0 6n<m00. Então

T(n) =T(n) · πb(n) logbalog bπb(n) πb(n)logbalogbπb(n) ! = T(n) πb(n)logbalogbπb(n) ! πb(n)logbalogbπb(n) >b(n)logbalogbπb(n).

(38)

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>m00. Então T(n) = a−1

i=0 Tjn b k +kn[i]  +f(n) > a−1

i=0 bjn b k +kn[i] logba logbπb jn b k +kn[i]  +f(n) > a−1

i=0 bjn b klogba logbπb jn b k +b(n)logba =acπb jn b klogba logbπb jn b k +b(n)logba

(39)

T(n) =acπb jn b klogba logbπb jn b k +b(n)logba =acπb(n) b logba logbπb(n) b  +b(n)logba = acπb(n) logba blogba logbπb (n) −1 +b(n)logba =b(n)logba logbπb(n) −1  +b(n)logba =πb(n)logba c logbπb(n) + (q−c)  >b(n)logbalogbπb(n).

(40)

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(nlogbalog n) e que T ∈(nlogbalog n), e portanto T∈Θ(nlogbalog n).

(41)

O Teorema Mestre da Complexidade Demonstração

Trabalho no Nó Raiz

Trabalho no Nó Raiz

Lema (Trabalho no Nó Raiz)

(42)

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 Tjn b k +kn[i]  +f(n) >f(n).

(43)

Lema (O Terceiro Caso do Teorema Mestre)

Se existem w∈ (0; 1), x0∈ N tais que, para todo n>max{x0, n0}, a−1

i=0 fjn b k +kn[i]  6wf(n), então T ∈Θ(f).

(44)

O Teorema Mestre da Complexidade Demonstração

O Terceiro Caso do Teorema Mestre

O Terceiro Caso do Teorema Mestre

Demonstração. Seja m0=max{n0, x0}, m00 =bm0 e c= max m06n<m00  T(n) f(n), 1 1−w  . Vamos provar por indução que

T(n) 6cf(n) para todo n>m0.

(45)

Demonstração.

Para o caso base, considere m06n<m00. Então

T(n) =T(n) · f(n) f(n)  = T(n) f(n)  f(n) 6cf(n).

(46)

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>m00. Segue que T(n) = a−1

i=0 Tjn b k +kn[i]  +f(n) 6 a−1

i=0 cfjn b k +kn[i]  +f(n) 6cwf(n) +f(n) = (cw+1)f(n) 6cf(n).

(47)

Demonstração.

Então temos que

T∈ O(f).

Pelo lema do trabalho no nó raiz, temos que T∈ Ω(f).

Logo

Referências

Documentos relacionados

Reutilização, por você, de materiais no seu ambiente de trabalho Identificação de materiais ociosos e distribuição para reaproveitamento Gestão adequada de em outros setores

Conforme ilustrado pela Tabela 10, os documentos referentes aos acórdãos do Segundo Grau (ASG), decisões monocráticas do Segundo Grau (DSG), acórdãos da Turma Recursal (ATR) e

 A crise ambiental, marcada pelas relações nocivas entre sociedade e os sistemas naturais, nos mais diversos aspectos, entre eles a questão dos Resíduos Sólidos, diante

Como metodologia, para a realização deste trabalho, foi desenvolvida uma pesquisa de caráter descritivo-exploratório, de natureza qualitativa, a fim de analisar e refletir como as

O conjunto de gráficos de barra para cada um dos seis comportamentos de liderança relacionados com esta prática fornece uma representação gráfica das suas respostas e da média

Even though Brainard ( op. cit.) considers the case in which firms produce differentiated products and Horstman and Markusen ( op. cit.) consider the case of

A despeito do presente estudo voltar-se para a cooperação técnica em saúde, a qual prioriza, conforme a estratégia da cooperação Sul-Sul estruturante em saúde, a estruturação

A presente pesquisa tem como objetivo analisar a relação entre os custos diretos, nível socioeconômico, estrutura escolar e desempenho educacional das escolas municipais dos