13.04.2013 Views

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5. Programação dinâmica<br />

Análise <strong>de</strong> Complexida<strong>de</strong> do Algoritmo<br />

n−1 n−u j−1<br />

Cp = (1 + 4) =<br />

u=1 i=1<br />

k−i<br />

<br />

(1 + 4u)<br />

n−1 n−u<br />

u=1 i=1<br />

n−1 <br />

= (n − u) ˙ n−1 <br />

(1 + 4u) = n + 4nu − u − 4u 2 = O(n 3 )<br />

u=1<br />

u=1<br />

Análise <strong>de</strong> Complexida<strong>de</strong> do Algoritmo<br />

Cp[Inicialização] = O(n)<br />

Cp[Iteração] = O(n 3 )<br />

Cp[Finalização] = O(1)<br />

Cp[Algoritmo] = O(n) + O(n 3 ) + O(1) = O(n 3 )<br />

Algoritmo Multi-Mat-2<br />

Retorna o número mínimo <strong>de</strong> multiplicações e a parentização respectiva para multiplicar a ca<strong>de</strong>ia<br />

<strong>de</strong> matrizes passada como parâmetro.<br />

Algoritmo 5.9 (Multi-Mat-1)<br />

Entrada Ca<strong>de</strong>ia <strong>de</strong> matrizes (A1, A2, . . . , An) e suas respectivas dimensões armazenadas no<br />

vetor b.<br />

112<br />

Saída Número mínimo <strong>de</strong> multiplicações.<br />

1 for i:=1 to n do mi,j := 0 { i n i c i a l i z a diagonal principal }<br />

2 for d:=1 to n − 1 do { para todas diagonais superiores}<br />

3 for i:=1 to n − u do { para cada posição na diagonal}<br />

4 j:=i + u {u=j i }<br />

5 mi,j := ∞<br />

6 for k:=i to j do<br />

7 c:= mi,k + mk+1,j + bi−1 · bk · bj<br />

8 i f c < mi,j then<br />

9 mi,j :=c<br />

10 Pi,j = k<br />

11 end for<br />

12 end for<br />

13 end for<br />

14 return m1,n, p

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

Saved successfully!

Ooh no, something went wrong!