Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

B. Soluções dos exercícios 6. n 2 3 n ≥ n 3 2 n + 1 ⇐ n 2 3 n ≥ n 3 2 n+1 ⇐⇒ 2 log 2 n + n log 2 3 ≥ 3 log 2 n + (n + 1) log 2 2 ⇐⇒ n log 2 3 ≥ log 2 n + (n + 1) ⇐ n(log 2 3 − 1)/2 ≥ log 2 n Solução do exercício [64, p. 2.9]. Com f ∈ Θ(n r ) e g ∈ Θ(n s ) temos c1n r ≤ f ≤ c2n r ; d1n s ≤ g ≤ d2n s (para constantes c1, c2, d1, d2.) Logo d1f q ≤ g ◦ f ≤ d2f q ⇒ d1(c1n p ) q ≤ g ≤ d2(c2n p ) q ⇒ f1c q 1 np+q ≤ g ≤ d2c q 2 np+q ⇒ g ∈ Θ(n p+q ) a partir de um n0 Solução do exercício 1.18. Como log n = (1/ɛ) log n ɛ ≤ (1/ɛ)n ɛ , usando c = 1/ɛ e n0 = 1 satisfaz a condição necessária da definição de O. Solução do exercício 2.1. Cp[Alg1] = n 2 i−1 i=1 j=1 c = c 2 · n i=1 2 i = c · 2 n − c = O(2 n ) Os detalhes da resolução do algoritmo abaixo foram suprimidos. Resolva com detalhes e confira se a complexidade final corresponde à encontrada na análise abaixo. 312 Cp[Alg2] = 1≤i≤n = O( 1≤i≤n = O( 1≤i≤n 1≤j≤2 i j ímpar (2 i ) 3 ) j 2 ≤ 8 i ) = 8n+1 − 8 7 1≤i≤n 1≤j≤2i j 2 ≤ 8 n+1 = O(8 n )

Cp[Alg3] = Cp[Alg5] = = n i=1 j=i n n 2 i = n 2 i · (n − i + 1) i=1 (n2 i − i2 i + 2 i ) = n n.2 i − n i.2 i + n 2 i i=1 i=1 i=1 i=1 = n · (2 n+1 − 2) − (2 + (n − 1) · 2 n+1 ) + (2 n+1 − 2) = n2 n+1 − 2n − 2 − n2 n+1 + 2 n+1 + 2 n+1 − 2 = 2 n+2 − 2n − 4 = O(2 n ) Cp[Alg4] = = = 2 i=1 j=i = 2 n i=1 j=1 i 2 j = n 2 i − n (2 i+1 − 2) i=1 n 2 = 2 · (2 n+1 − 2) − 2n i=1 i=1 = 4 · 2 n − 4 − 2n = O(2 n ) n n 2 j ⎛ n n = ⎝ 2 j i−1 − 2 j ⎞ ⎠ i=1 j=1 j=1 n n+1 i−1+1 2 − 2 − (2 − 2) = i=1 n 2 n − n i=1 i=1 = 2 · n2 n − 2 · 2 n + 2 = O(n2 n ) n n i 2 · 2 − 2 − 2 + 2 i=1 2 i = 2 · n2 n − (2 n+1 − 2) Solução do exercício 2.2. O problema é o mesmo da prova do exercício 1.9: Na prova a constante c muda implicitamente. Para provar Tn = O(n) temos que provar Tn ≤ cn para 313

B. Soluções dos exercícios<br />

6. n 2 3 n ≥ n 3 2 n + 1 ⇐ n 2 3 n ≥ n 3 2 n+1 ⇐⇒ 2 log 2 n + n log 2 3 ≥ 3 log 2 n +<br />

(n + 1) log 2 2 ⇐⇒ n log 2 3 ≥ log 2 n + (n + 1) ⇐ n(log 2 3 − 1)/2 ≥ log 2 n<br />

Solução do exercício [64, p. 2.9].<br />

Com f ∈ Θ(n r ) e g ∈ Θ(n s ) temos<br />

c1n r ≤ f ≤ c2n r ; d1n s ≤ g ≤ d2n s<br />

(para constantes c1, c2, d1, d2.) Logo<br />

d1f q ≤ g ◦ f ≤ d2f q<br />

⇒ d1(c1n p ) q ≤ g ≤ d2(c2n p ) q<br />

⇒ f1c q<br />

1 np+q ≤ g ≤ d2c q<br />

2 np+q<br />

⇒ g ∈ Θ(n p+q )<br />

a partir <strong>de</strong> um n0<br />

Solução do exercício 1.18.<br />

Como log n = (1/ɛ) log n ɛ ≤ (1/ɛ)n ɛ , usando c = 1/ɛ e n0 = 1 satisfaz a<br />

condição necessária da <strong>de</strong>finição <strong>de</strong> O.<br />

Solução do exercício 2.1.<br />

Cp[Alg1] =<br />

n 2 i−1<br />

<br />

i=1 j=1<br />

c = c<br />

2 ·<br />

n<br />

i=1<br />

2 i = c · 2 n − c = O(2 n )<br />

Os <strong>de</strong>talhes da resolução do algoritmo abaixo foram suprimidos. Resolva com<br />

<strong>de</strong>talhes e confira se a <strong>complexida<strong>de</strong></strong> final correspon<strong>de</strong> à encontrada na análise<br />

abaixo.<br />

312<br />

Cp[Alg2] = <br />

1≤i≤n<br />

= O( <br />

1≤i≤n<br />

= O( <br />

1≤i≤n<br />

<br />

1≤j≤2 i<br />

j ímpar<br />

(2 i ) 3 )<br />

j 2 ≤ <br />

8 i ) = 8n+1 − 8<br />

7<br />

<br />

1≤i≤n 1≤j≤2i j 2<br />

≤ 8 n+1 = O(8 n )

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!