Dada a seguinte equação recursiva
queremos aplicar o teorema do mestre e observe que
Agora, verificamos os dois primeiros casos para , ou seja, se
- ou
- .
Os dois casos não estão satisfeitos. Então, temos que verificar o terceiro caso, ou seja, se
- .
Eu acho que a terceira condição também não está satisfeita. Mas por que? E qual seria uma boa explicação para o motivo de o teorema do mestre não poder ser aplicado neste caso?
Respostas:
Os três casos do Teorema Mestre a que você se refere são provados na Introdução aos Algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein (2ª Edição, 2001).
Observa-se corretamente que a recorrência em questão se enquadra entre o caso 2 e o caso 3. Ou seja,f(n)=nlogn cresce mais rápido que mas mais lento que n 1 + ε para qualquer ε > 0 .n n1+ε ε>0
No entanto, o teorema pode ser generalizado para cobrir essa recorrência. Considerar
Caso 2A: Considere para alguns k ≥ 0 .f(n)=Θ(nlogbalogkbn) k≥0
Este caso se reduz ao caso 2 quando . É intuitivamente claro que ao longo de cada ramificação da árvore de recorrência, f ( x ) é adicionado Θ ( log b n ) vezes. Um esboço de uma prova mais formal pode ser encontrado abaixo. O resultado final é quek=0 f(x) Θ(logbn)
.
Na introdução aos algoritmos, essa declaração é deixada como um exercício.
Aplicando esta afirmação à recorrência em questão, finalmente obtemos
Mais detalhes sobre o Teorema Mestre podem ser encontrados na excelente página da Wikipedia (imho) .
Como @sdcvvc aponta nos comentários para provar que o Caso 3 não se aplica aqui, pode-se invocar a regra de L'Hospital que diz que para quaisquer funções def(x)eg(x)diferenciável nas imediações doc. Aplicando este paraf(n)=nlogneg(n)=N1+εpode-se mostrar queo logn∉q(n1+ε).
Esboço da Prova do Teorema Mestre para o Caso 2A.
Esta é uma reprodução de partes da prova da Introdução aos algoritmos com as modificações necessárias .
Primeiro, provamos o seguinte lema.
Lema A:
Considere uma função onde h ( n ) = n log b a log k b n . Então g ( n ) = n log b a log k + 1 b n .
Prova: Substituindo na expressão por g ( n ), pode-se obter g ( n ) = n log b a log k b nh(n) g(n)
QED
fonte
O teorema de Akra-Bazzi é uma generalização estrita do teorema do mestre. Como bônus, sua prova é uma nevasca de integrais que farão sua cabeça girar ;-)
fonte