O Teorema Mestre da Complexidade Luís Fernando Schultz Xavier da Silveira Departamento de Informática e Estatística - INE - CTC - UFSC 23 de aril de 2010
Conteúdo 1 Enunciado 2 Preliminares Peso das Folhas O Primeiro Caso do Teorema Mestre O Segundo Caso do Teorema Mestre Traalho no Nó Raiz O Terceiro Caso do Teorema Mestre
Enunciado Enunciado Teorema Seja T : N R + uma função satisfazendo ( n ) T(n) = at + f (n) para valores a, N, a 1 e 2, e uma função f : N R +. Então Θ ( n log a), ε > 0 : f O ( n log a ε) Θ ( n T log a log n ), f Θ ( n log a) w (0; 1), ( x 0 N : n x 0, Θ(f ), n ) af f (n)
Enunciado Tecnicalidades Rigorosamente falando, o enunciado do teorema anterior está informal, pois ele não trata do caso ase de T e a divisão n pode não ser um número inteiro.
Enunciado Tecnicalidades Rigorosamente falando, o enunciado do teorema anterior está informal, pois ele não trata do caso ase de T e a divisão n pode não ser um número inteiro. Por outro lado, o enunciado completo não caeria em um slide :-). Vamos então preencher essas lacunas aos poucos.
Enunciado Tecnicalidades Por ( n ) T(n) = at + f (n), entendemos que existe um número n 0 N e que, para todo n n 0, existem números k n [0], k n [1],..., k n [a 1] N, tais que n n i, 0 i < a, 0 k n [i] e T(n) = a 1 ( n ) T + k n [i] + f (n). i=0
Enunciado Tecnicalidades Por ( n ) T(n) = at + f (n), entendemos que existe um número n 0 N e que, para todo n n 0, existem números k n [0], k n [1],..., k n [a 1] N, tais que n n i, 0 i < a, 0 k n [i] e T(n) = a 1 ( n ) T + k n [i] + f (n). i=0 Como isso não altera a definição, assumiremos n 0 1.
Enunciado Tecnicalidades Por ( n ) x 0 N, w (0; 1) : n x 0, af wf (n), entendemos que existem x 0 N, w (0; 1) tais que, para todo n max{n 0, x 0 }, a 1 ( n ) f + k n [i] wf (n). i=0
Preliminares Arredondamento para Potências Definição Seja n N \ {0} e N, 2. Definimos { } π (n) = max k : k n k N como a maior potência de menor ou igual a n.
Preliminares Arredondamento para Potências Lema Seja n N \ {0} e N, 2. Então π (n) = π (n).
Preliminares Arredondamento para Potências Lema Seja n N \ {0} e N, 2. Então π (n) = π (n).. Claramente π (n) é uma potência de satisfazendo π (n) n, pois π (n) n. Porém, como π (n) > n, por definição, temos 2 π (n) > n, e como 2 π (n) é a menor potência de maior que π (n), o resultado segue.
Preliminares Arredondamento para Potências Lema Seja n 2. Então π ( n ) = π (n).
Preliminares Arredondamento para Potências Lema Seja n 2. Então π ( n ) = π (n).. Note que π ( n ) = π (n) ( n ) π = π (n) n ) π ( = π (n).
Preliminares Arredondamento para Potências. n Basta então mostrar que, k N, k k n. De fato, n n k = k 1 n = k n. Similarmente, como k ou é 1 ou é um múltiplo de e n, temos n k n = k n (n mod ) =. Com isso a demonstração está concluída.
Preliminares Arredondamento para Potências Definição Seja n N \ {0} e N, 2. Definimos { } π (n) = min k : k n k N como a menor potência de maior ou igual a n.
Preliminares Arredondamento para Potências Lema Seja n N \ {0} e N, 2. Então π (n) = π (n). Seja n 2. Então π ( n ) = π (n).
Preliminares Arredondamento para Potências Lema Seja n N \ {0} e N, 2. Então π (n) = π (n). Seja n 2. Então π ( n ) = π (n).. Totalmente análoga à dos resultados para π.
Peso das Folhas Peso das Folhas Lema (Peso das Folhas) T Ω ( n log a).
Peso das Folhas Peso das Folhas Lema (Peso das Folhas) T Ω ( n log a).. Seja n 0 = n 0 e seja c = { } T(n) min n 0 n<n 0 π (n) log a. Vamos então provar por indução que, para todo n n 0, T(n) cπ (n) log a.
Peso das Folhas Peso das Folhas. Para a ase da indução, considere n 0 n < n 0. Então ( π (n) T(n) = T(n) log a ) π (n) log a ( ) T(n) = π (n) log a π (n) log a cπ (n) log a.
Peso das Folhas Peso das Folhas. Para o passo indutivo, considere n 0 n. Então T(n) = a 1 ( n ) T + k n [i] + f (n) i=0 a 1 T i=0 ( n ) + k n [i] a 1 ( n cπ i=0 a 1 ( n cπ i=0 ) log a + k n [i] ) log a
Peso das Folhas Peso das Folhas. T(n) a 1 ( n ) log a cπ i=0 ( n = acπ ( π (n) = ac = acπ (n) log a log a = cπ (n) log a. ) log a ) log a = acπ (n) log a a
Peso das Folhas Peso das Folhas. Segue que ( T Ω π (n) log a). Mas como π (n) n < π (n), ( Θ π (n) log a) = Θ (n log a) e segue que ( T Ω n log a).
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 O n log a ε), então ( T Θ n log a).
O Primeiro Caso do Teorema Mestre O Primeiro Caso do Teorema Mestre. Como f O(n log a ε ), existem x 0, q N tais que, para todo n x 0, f (n) qπ (n) log a ε. Defina m 0 = max{x 0, n 0 }, m 0 = m 0 e c = max m 0 n<m 0 { T(n) + q ( 1 ε 1 π (n)log a ) } π (n) log a ε. Vamos provar por indução que, para n m 0, ( ) T(n) cπ (n)log 1 a q ε π (n) log a ε O(n log a ). 1
O Primeiro Caso do Teorema Mestre O Primeiro Caso do Teorema Mestre. Para a ase da indução, assuma m 0 n < m 0. Então T(n) = T(n) + q ( 1 ( = ε 1 ) T(n)+q( 1 ε 1)π (n) log a ε π (n)log a cπ (n)log a q ) π (n) log a ε q ( ) 1 ε 1 π (n) log a ε ( 1 ε 1 π (n)log a q ( 1 ε 1 ) π (n) log a ε. ) π (n) log a ε
O Primeiro Caso do Teorema Mestre O Primeiro Caso do Teorema Mestre. Para o passo indutivo, assuma n m 0. Logo T(n)= a 1 T( i=0 n +k n [i])+f (n) ( a 1 i=0 a 1 i=0 cπ ( n +k n [i]) log a q( 1 ε 1)π ( n +k n [i]) log a ε) +qπ (n) log a ε ( cπ ( n ) log a q( 1 ε 1)π ( n ) log a ε) +qπ (n) log a ε acπ ( n ) log a aq( 1 ε 1)π ( n ) log a ε +qπ (n) log a ε ( ) π log a ac (n) aq( 1 ε 1) ( ) π (n) log a ε +qπ (n) log a ε acπ (n)log a aq( log a 1 ε 1) π (n)log a ε log a ε +qπ (n) log a ε acπ (n)log a aq( log a 1 ε 1) π (n)log a ε log a +qπ ε (n) log a ε
O Primeiro Caso do Teorema Mestre O Primeiro Caso do Teorema Mestre. T(n) acπ (n)log a aq( log a 1 ε 1) π (n)log a ε log a +qπ ε (n) log a ε acπ (n)log a a aq( 1 ε 1) ε π (n) log a ε a +qπ (n) log a ε cπ (n)log a q( 1 ε 1) ε π (n) log a ε +qπ (n) log a ε cπ (n)log a q(( 1 ε 1) ε 1)π (n) log a ε cπ (n)log a q( ε ε 1 ε 1 ε 1)π (n) log a ε cπ (n)log a q( 1 ε 1)π (n) log a ε.
O Primeiro Caso do Teorema Mestre O Primeiro Caso do Teorema Mestre. Com isso, segue que T O(n log a ). Pelo lema do peso das folhas, T Ω(n log a ). Portanto T Θ(n log a ).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre Lema Se então f Θ(n log a ), T Θ(n log a log n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre Lema Se então f Θ(n log a ), T Θ(n log a log n).. Iremos mostrar que T O(n log a log n) e que T Ω(n log a log n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. A fim de mostrar que T O(n log a log n), oserve que, como f O(n log a ), existem constantes x 0, q N tais que, para todo n x 0, f (n) qn log a. Assim sendo, defina m 0 = max{n 0, x 0 }, m 0 = m 0 e c = max m 0 n<m 0 { } T(n) π (n)log a log π (n), q. Vamos provar, por indução, que, para todo n m 0, T(n) cπ (n)log a log π (n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. Para a ase da indução, assuma que m 0 n < m 0. Então ( π T(n) = T(n) (n) log a log π (n) ) π (n)log a log π ( ) (n) T(n) = π (n)log a log π (n) π (n)log a log π (n) cπ (n)log a log π (n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. Para o passo indutivo, suponha n m 0. Então T(n) = a 1 i=0 T ( n + kn [i] ) + f (n) a 1 i=0 cπ ( n + kn [i] ) log a log π ( n + kn [i] ) + f (n) a 1 ( i=0 cπ n ) log a log π ( n ) + f (n) ( π ) ac (n) log a ( π ) log (n) + qn log a = acπ (n)log a (log log a π (n) 1) + qnlog a = acπ (n)log a a (log π (n) 1) + qnlog a = cπ (n)log a (log π (n) 1) + qnlog a
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. T(n) = cπ (n)log a (log π (n) 1) + qnlog a = cπ (n)log a log π (n) cπ (n)log a + qn log a cπ (n)log a log π (n) cπ (n)log a + qπ (n)log a = cπ (n)log a log π (n) + (q c)π (n)log a cπ (n)log a log π (n). Portanto T O(n log a log n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. A fim de mostrar que T Ω(n log a log n), oserve que, como f Ω(n log a ), existem constantes x 0, q N tais que, para todo n x 0, f (n) qπ (n) log a. Assim sendo, defina m 0 = max{n 0, x 0 }, m 0 = m 0 e c = min m 0 n<m 0 { } T(n) π (n) log a log π (n), q. Vamos provar por indução que, para todo n m 0, T(n) cπ (n) log a log π (n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. Para a ase da indução, suponha m 0 n < m 0. Então ( ) π (n) log a log T(n) = T(n) π (n) π (n) log a log π (n) ( ) T(n) = π (n) log a π (n) log a log log π (n) π (n) cπ (n) log a log π (n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. Para a prova do passo indutivo, assuma n m 0. Então T(n) = a 1 ( n ) T + k n [i] + f (n) i=0 a 1 ( n cπ i=0 a 1 ( n cπ i=0 = acπ ( n ) log a ( n ) + k n [i] log π + k n [i] + f (n) ) log a log π ( n ) + qπ (n) log a ) log a log π ( n ) + qπ (n) log a
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. ( n ) log a ( n ) T(n) = acπ log π + qπ (n) log a ( ) = π (n) log a ( ) π (n) ac log + qπ (n) log a = acπ (n) log a ( log π (n) 1 ) + qπ (n) log a log a = cπ (n) log a ( log π (n) 1 ) + qπ (n) log a = π (n) log a ( c log π (n) + (q c) ) cπ (n) log a log π (n). Portanto T Ω(n log a log n).
O Segundo Caso do Teorema Mestre O Segundo Caso do Teorema Mestre. Temos que e que e portanto T O(n log a log n) T Ω(n log a log n), T Θ(n log a log n).
Traalho no Nó Raiz Traalho no Nó Raiz Lema (Traalho no Nó Raiz) T Ω(f ).
Traalho no Nó Raiz Traalho no Nó Raiz Lema (Traalho no Nó Raiz) T Ω(f ).. Para n n 0, T(n) = a 1 ( n ) T + k n [i] + f (n) f (n). i=0
O Terceiro Caso do Teorema Mestre O Terceiro Caso do Teorema Mestre Lema (O Terceiro Caso do Teorema Mestre) Se existem w (0; 1), x 0 N tais que, para todo n max{x 0, n 0 }, a 1 ( n ) f + k n [i] wf (n), i=0 então T Θ(f ).
O Terceiro Caso do Teorema Mestre O Terceiro Caso do Teorema Mestre. Seja m 0 = max{n 0, x 0 }, m 0 = m 0 e c = Vamos provar por indução que para todo n m 0. { } T(n) max m 0 n<m 0 f (n), 1. 1 w T(n) cf (n)
O Terceiro Caso do Teorema Mestre O Terceiro Caso do Teorema Mestre. Para o caso ase, considere m 0 n < m 0. Então ( ) f (n) T(n) = T(n) f (n) ( ) T(n) = f (n) f (n) cf (n).
O Terceiro Caso do Teorema Mestre O Terceiro Caso do Teorema Mestre. Para o passo indutivo, considere n m 0. Segue que T(n) = a 1 ( n ) T + k n [i] + f (n) i=0 a 1 cf i=0 cwf (n) + f (n) = (cw + 1)f (n) cf (n). ( n ) + k n [i] + f (n)
O Terceiro Caso do Teorema Mestre O Terceiro Caso do Teorema Mestre. Então temos que T O(f ). Pelo lema do traalho no nó raiz, temos que T Ω(f ). Logo T Θ(f ).