11.01.2015 Views

Uvod u dinamicko programiranje

Uvod u dinamicko programiranje

Uvod u dinamicko programiranje

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Algoritam E: Pseudo kod problema maksimalnog zbira u matrici<br />

Input: Matrica a celih brojeva dimenzije n × m<br />

Output: path - niz elemenata matrice koji predstavlja traženi put<br />

1 d[1][1] = a[1][1];<br />

2 prior[1][1] = (0, 0);<br />

3 for j ← 2 to m do<br />

4 d[1][j] = d[1][j − 1] + a[1][j];<br />

5 prior[1][j] = (1, j − 1);<br />

6 end<br />

7 for i ← 2 to n do<br />

8 d[i][1] = d[i − 1][1] + a[i][1];<br />

9 prior[i][1] = (i − 1, 1);<br />

10 end<br />

11 for i ← 2 to n do<br />

12 for j ← 2 to m do<br />

13 if d[i − 1][j] > d[i][j − 1] then<br />

14<br />

d[i][j] = d[i − 1][j] + a[i][j];<br />

15<br />

prior[i][j] = (i − 1, j);<br />

16 else<br />

17<br />

d[i][j] = d[i][j − 1] + a[i][j];<br />

18<br />

prior[i][j] = (i, j − 1);<br />

19 end<br />

20 end<br />

21 end<br />

22 path = ∅;<br />

23 currentF ield = (n, m);<br />

24 while (currentF ield ≠ (0, 0)) do<br />

25 add currentF ield in path;<br />

26 currentF ield = prior[currentF ield.i][currentF ield.j];<br />

27 end<br />

28<br />

return path;<br />

Slika 3:<br />

Primer problema maksimanog zbira u matrici<br />

6

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

Saved successfully!

Ooh no, something went wrong!