Por que existe a condição de regularidade no teorema mestre?


15

Eu tenho lido Introdução aos algoritmos por Cormen et al. e eu estou lendo a declaração do teorema do mestre começando na página 73 . No caso 3, há também uma condição de regularidade que precisa ser satisfeita para usar o teorema:

... 3. Se

f(n)=Ω(nlogba+ε)

para alguma constante ε>0 e se

af(n/b)cf(n)      [esta é a condição de regularidade]

para alguma constante e para todas n suficientemente grandes , então ..c<1n

Alguém pode me dizer por que a condição de regularidade é necessária? Como o teorema falha se a condição não é satisfeita?


você pode escrever qual é o caso e qual é a condição regulatória?

3
Não tenho uma resposta definitiva para você, mas parece que, se a condição de regularidade não se mantiver, os subproblemas demoram mais e mais tempo quanto menores, para que você obtenha complexidade infinita.

Não tenho certeza de que a condição de regularidade seja necessária para a conclusão do teorema, mas acho que é necessária para a prova usada. Com a condição de regularidade, você tem uma prova bastante direta, sem, pelo menos, seria cabeluda.

Respostas:


10

Não é uma prova rigorosa, mas uma explicação "do alto da minha cabeça".

Imagine a recorrência como uma árvore. O terceiro caso cobre o cenário em que o nó raiz domina o tempo de execução assintoticamente, ou seja, a maior parte do trabalho está sendo realizada no nó mísero, na parte superior da árvore de recorrência. Então o tempo de execução é Θ ( f ( n ) ) .aT(n/b)+f(n)Θ(f(n))

Para garantir que a raiz realmente funcione mais, você precisa do

.af(n/b)cf(n)

Isso diz que (a quantidade de trabalho realizado na raiz) precisa ser pelo menos tão grande quanto a soma do trabalho realizado nos níveis mais baixos. (A recorrência é chamado um vezes em n / b da entrada).f(n)an/b

Por exemplo, para a recorrência o trabalho no nível abaixo da raiz é um quarto do tamanho e é feito apenas duas vezes ( n / 4 + n / 4 ) versus n, de modo que a raiz domina .T(n)=2T(n/4)+n(n/4+n/4)n

Mas e se a função não atender à condição de regularidade? Por exemplo, vez de n ? Então, o trabalho realizado nos níveis inferiores pode ser maior que o trabalho realizado na raiz, para que você não tenha certeza de que a raiz domina.cos(n)n


3
Usei uma formatação melhor para o seu texto de matemática. Você pode clicar no link "editado" e ver o que eu fiz.
213 Juho

7

Deixe e b = 2 , de modo que T ( 2 N ) = N Σ k = 0 f ( 2 k ) . Para aplicar o caso 3, precisamos de f ( n ) = Ω ( n ϵ ) (para alguns ϵ > 0 ) e a condição de regularidade, f ( n / 2 ) ( 1 - δ ) fa=1b=2

T(2n)=k=0nf(2k).
f(n)=Ω(nϵ)ϵ>0 (para algunsf(n/2)(1δ)f(n)δ>0f(n)=n(2cosn)
f(2n)=22log2n>22log2n1=2n/2.
n=2m+11
T(2n)=k=0mt=2k2k+1122k=k=0m22k+k=Θ(22m+m),f(2n)=22m.
So it's not true that T(2n)=Θ(f(2n)).

There is a more general theorem, Akra-Bazzi, in which the regularity condition is replaced by an explicit quantity that comes into the result.


Sorry for resuming this old answer. Could you clarify why your function f violates the regularity condition?
Maiaux

Sometimes f(n/2)=f(n).
Yuval Filmus
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.