You are on page 1of 4

Universidade Federal do Cear

Campus de Quixad

QXD0041 - Projeto e Anlise de Algoritmos


Exerccios resolvidos 1

1. Resolva a seguinte relao de recorrncia:

2T (n) + lgn n > 1




T (n) =

1 n=1
Faa a seguinte substituio de varivel m = lgn, ou seja, n = 2m , obtemos

T (2m ) = 2T (2m/2 ) + m (1)

Faa T (2m ) = S(m)

T (2m ) = 2T (2m/2 ) + m
S(m) = 2S(m/2) + m
Aplicando o teorema mestre, a = 2, b = 2, mlog2 2 = m1 = m, f (m) = m. Pelo caso 2, temos S(m) =
(m lg m). Desfazendo as substituies,

T (n) = T (2m ) = s(m) = (mlgm) = (lg n lg lg n) (2)

2. Prove que T (n) = 12 n2 3n (n2 ).

Precisamos encontrar constantes c1 , c2 , n0 tais que c1 n2 21 n2 3n c2 n2 , para todo n n0

Dividindo a inequao por n2

1 3
c1 c2 (3)
2 n
1
A desigualdade da esquerda ser vlida se n = 7 e c1 = 14 .

A desigualdade da direita ser vlida se n = 1 e c2 = 12 .


1 1
Logo, para c1 = 14 , c2 = 2 e n0 = 7, temos que T (n) = (n2 )

3. Use o mtodo da rvore de recurso para encontrar um limite superior para a soluo da seguinte
recorrncia (Assuma que n um potncia de 7):

5T (n/7) + log7 n n > 1

T (n) =

1 n=1

1
A altura da rvore de recurso log7 n. Assim, temos:

h j h h h
X n X X X X
T (n) = 5i log7 ( i
)= 5i (log7 n log7 7i ) = 5i (log7 n i) 5i (log7 n) = (log7 n) 5i
7
i=0 i=0 i=0 i=0 i=0
(4)

O ltimo somatrio :

h
X 5h+1 1 5(5log7 n ) 1 5(5log5 n ) 1 5n 1
5i = = = = O(n) (5)
51 4 4 4
i=0

Portanto, T(n) O(n lg n).

4. Use a induo para verificar o limite superior encontrado.

Vamos mostrar que T (n) = O(nlgn). Por hiptese, vamos assumir que T (n/7) cn/7lg n/7.

Realizando a substituio, temos:


T (n) = 5T (n/7) + log7 n
5c(n/7)lg n/7 + log7 n
5c(n/7)lg n/7 + lg n
= 5c(n/7)(lg n lg 7) + lgn
= 5c(n/7)lg n 5c(n/7)lg 7 + lg n
= cnlgn 2c(n/7)lgn 5c(n/7)lg7 + lgn
Para mostrar que cnlg n 2c(n/7)lg n 5c(n/7)lg 7 + lg n cnlg n, basta mostrar que

2c(n/7)lgn 5c(n/7)lg7 + lgn 0


2c(n/7)lgn 5c(n/7)lg7 lgn
2c(n/7)lgn + 5c(n/7)lg7 lgn
Para mostrar que 2c(n/7)lgn + 5c(n/7)lg7 lgn, basta mostrar que

2/7c 1
7
c 2
Caso base: Para n=7:

T (7) = 5 + 1 = 6 c7lg7 = 19.65c

Para todo c 1. Conclumos que T (n) 7/2nlg n, n 7

5. Considere a seguinte recorrncia:



5T (n/7) + log7 n n > 1

T (n) =

1 n=1

Mostre por induo que T (n) = O(nlog7 5 ) = O(n0.82 )

2
Criando uma hiptese de induo mais forte T (n) cnlog7 5 log7 n. Por hiptese, vamos assumir que
T (n/7) c(n/7)log7 5 log7 (n/7).

Realizando a substituio, temos:

T (n) = 5T (n/7) + log7 n


log 5
5( cn 5 7 log7 n + 1) + log7 n
cnlog7 5 5log7 n + 5 + log7 n
= cnlog7 5 4log7 n + 5
Para mostrar que cnlog7 5 4log7 n + 5 cnlog7 5 , basta mostrar que

4log7 n + 5 0
4log7 n 5
log7 n 5/4
n 7(5/4) 11.4
Caso base: n = 49

T (49) = 5T (7) + 2 = 32 c49log7 5 log7 49 = 25c 2 (6)

O caso base verdade para c 34/25

6. Use o teorema Mestre para resolver a seguinte equao de recorrncia T (n) = 4T (n/2) + n3 .

Para T (n) = 4T (n/2) + n3 . Temos a = 4,b = 2,f (n) = n3 . Devemos comparar f (n) com nlogb a , ou
seja,

f (n) : nlogb a
n3 : nlog2 4
n3 : n2

A funo f (n) domina nlogb a por um fator polinominal n. Assim, o caso 3 do Teorema Mestre pode ser
aplicado se a condio de regularidade for satisfeita, ou seja, af (n/b) cf (n) para alguma constante
c<1

af (n/b) cf (n)
4(n/2)3 cn3
4(n3 /8) cn3
(n3 /2) cn3
c 1/2

A inequao satisfeita para c = 1/2. Portanto, o caso 3 do Teorema Mestre se aplica e T (n) = (n3 )

3
7. O tempo de execuo de um algoritmo A descrito pela recorrncia

T (n) = 7T (n/2) + n2 (7)

Um outro algoritmo A0 tem um tempo de execuo descrito pela recorrncia

T 0 (n) = aT 0 (n/4) + n2 (8)

Qual o maior valor inteiro de a tal que A0 assintoticamente mais rpido que A?

Para que o algoritmo A0 seja assintoticamente mais rpido que A0 , T 0 (n) deve ter uma

taxa de crescimento menor que T (n). Vamos avaliar T (n) e T 0 (n) utilizando o teorema mestre.

Para T = (n) = 7T (n/2) + n2 . Temos a = 7, b = 2 e f (n) = n2 . Devemos comparar f (n) com nlogb a ,
ou seja,

f (n) : nlogb a
n2 : nlog2 7
n2 : n2,807

nlogb a
A funo nlogb a domina a funo f (n) por um fator polinominal aproximado de f (n) = n0,807 . Assim,
de fato podemos aplicar o caso 1 do Teorema Mestre e temos que T (n) = (n2,807 )

Para T = (n) = aT (n/4) + n2 . Temos a = a, b = 4 e f (n) = n2 . Devemos comparar f (n) com nlogb a ,
ou seja,

f (n) : nlog4 a
n2 : nlog4 a

Para A0 seja assintoticamente mais rpido que A, temos que log4 a log2 7, ou seja,

log4 a log2 7
log2 a
log2 4 log2 7
log2 a 2log2 7
log2 a log2 49

O maior valor inteiro para a = 48.

You might also like