|
dinamikusprogramozas_koltseg_tablazattal.py
|
1 # Dinamikus programozás - MINIMÁLIS KÖLTSÉGŰ ÚT
2
3 sor = 3
4 oszlop = 3
5
6 def mK(koltseg, m, n):
7 temp=[[0 for x in range(oszlop)] for x in range(sor)]
8
9 temp[0][0] = koltseg[0][0]
10
11 #temp mátrix első oszlopának inicializálása
12 for i in range(1, m+1):
13 temp[i][0] = temp[i-1][0] + koltseg[i][0]
14
15 #temp mátrix első sorának inicializálása
16 for j in range(1, n+1):
17 temp[0][j] = temp[0][j-1] + koltseg[0][j]
18
19 #Maradék részek feltöltése (itt a rekurzív lépés)
20 for i in range(1, m+1):
21 for j in range(1, n+1):
22 temp[i][j] = min(temp[i-1][j-1], temp[i-1][j], temp[i][j-1]) + koltseg[i][j]
23 print('TEMP mátrix felépítése (aktuális állapot):\n', temp)
24 input('Enter és folytat...')
25
26 return temp[m][n]
27
28
29 koltseg=[[1, 2, 3],
30 [4, 8, 2],
31 [1, 5, 3]]
32 print('A költség mátrix:\n', koltseg)
33 print('A minimális költségű út költsége:\n', mK(koltseg, 2, 2))
34
35