Uvod u dinamicko programiranje
Uvod u dinamicko programiranje
Uvod u dinamicko programiranje
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