O teorema do mestre é uma ferramenta bonita para resolver certos tipos de recorrências . No entanto, geralmente encobrimos uma parte integrante ao aplicá-la. Por exemplo, durante a análise do Mergesort, passamos felizes de
para
considerando apenas . Asseguramos a nós mesmos que esta etapa é válida - ou seja, - porque se comporta "bem". Em geral, assumimos para o denominador comum.
É fácil construir recorrências que não permitam essa simplificação usando f vicioso . Por exemplo, a recorrência acima para / com
produzirá usando o teorema mestre da maneira usual, mas há claramente uma subsequência que cresce como . Veja aqui outro exemplo mais artificial.
Como podemos tornar isso "bem" rigoroso? Estou certo de que a monotonicidade é suficiente, mas nem mesmo a simples recorrência do Mergesort é monótona; existe um componente periódico (que é dominado assintoticamente). Isso é suficiente para investigar , e quais são as condições necessárias e suficientes sobre que garantir as obras Teorema Mestre?
Respostas:
Ao longo desta resposta, assumimos que e não são negativos. Nossa prova funciona sempre que para algum monótono . Isso inclui o exemplo do Mergesort, no qual e qualquer função com taxa de crescimento polinomial (ou mesmo ).t f = Θ ( g ) g f = Θ ( n ) Θ ( n um log b n )f T f=Θ(g) g f=Θ(n) Θ ( numaregistrobn )
Vamos considerar primeiro o caso em que é monótono e não diminui (relaxaremos essa suposição mais tarde). Nós nos concentramos na recorrência da amostra Essa recorrência precisa de dois casos base, e . Assumimos que , que também relaxamos mais tarde.T ( n ) = T ( ⌊ n / 2 ⌋ ) + T ( ⌈ n / 2 ⌉ ) + f ( n ) . T ( 0 ) T ( 1 ) T ( 0 ) ≤ T ( 1 )f
Afirmo que é monótono e não diminui. Provamos por indução completa que . Isso é dado para , então deixe . Temos Isso implica que Portanto, se , terminamos. Este é sempre o caso se a solução para potências de dois tiver a forma .T ( n + 1 ) ≥ T ( n ) n = 0 n ≥ 1 T ( n + 1 )T( N ) T( n + 1 ) ≥ T( N ) n = 0 n ≥ 1 T(2⌊ log 2 n⌋)≤T(n)≤T(2⌈ log 2 n⌋). T(2m)=Θ
Agora vamos relaxar a suposição de que . Considere uma nova recorrência definida exatamente da mesma maneira, apenas . Podemos provar por indução que . Da mesma forma, podemos definir uma nova recorrência satisfazendo e depois . Invocando o teorema do Mestre, vemos que e para a mesma função , e também .T ′ T ′ ( 0 ) = T ′ ( 1 ) = min ( T ( 0 ) , T ( 1 ) )T(0)≤T(1) T′ T′(0)=T′(1)=min(T(0),T(1)) T ″ T ″ ( 0 ) = T ″ ( 1 ) = max (T′(n)≤T(n) T′′ T ( n ) ≤ T ″ ( n ) T ′ = Θ ( h ) T ″ = Θ ( h )T′′(0)=T′′(1)=max(T(0),T(1)) T(n)≤T′′(n) T′=Θ(h) T′′=Θ(h) T = Θ ( h )h T=Θ(h)
Agora vamos relaxar a suposição de que é monótono. Suponha que para alguma função monótona . Assim por algum e suficientemente grande. Assumimos por simplicidade que ; o caso geral pode ser tratado como no parágrafo anterior. Novamente, definimos duas recorrências substituindo por (respectivamente). Mais uma vez, o teorema do mestre dará o mesmo resultado (até múltiplos constantes), que também é idêntico (até múltiplos constantes) ao que obteríamos ao resolver a recorrência original apenas com potências de dois.f = Θ ( g ) g c g ( n ) ≤ f ( n ) ≤ C g ( n ) c , C > 0 n n = 0 T ′ , T ″ f c g , C gf f=Θ(g) g cg(n)≤f(n)≤Cg(n) c,C>0 n n=0 T′,T′′ f cg,Cg
fonte