Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- import numpy as np
- grd_old = [ [0, 0, 0, 0],
- [0, 0, 0, 0],
- [0, 0, 0, 0],
- [0, 0, 0, 0] ]
- chkl = [ [1, 0],[2, 0] ]
- chkr = [ [1, 3],[2, 3] ]
- chku = [ [0, 1],[0, 2] ]
- chkd = [ [3, 1],[3, 2] ]
- term = [ [0, 0],[3, 3] ] # terminal states
- r = -1
- grd = [[0] * 4] * 4
- iter = 3
- for k in range(iter):
- for i in range(4):
- for j in range(4):
- if [i, j] in chkl :
- grd[i][j] = ( grd_old[i][j] + grd_old[i-1][j] + grd_old[i+1] [j] + grd_old[i][j+1] + (4*r)) / 4
- elif [i, j] in chkr :
- grd[i][j] = ( grd_old[i][j] + grd_old[i-1][j] + grd_old[i+1] [j] + grd_old[i][j-1] + (4*r)) / 4
- elif [i, j] in chku :
- grd[i][j] = ( grd_old[i][j] + grd_old[i+1][j] + grd_old[i][j-1] + grd_old[i][j+1] + (4*r)) / 4
- elif [i, j] in chkd :
- grd[i][j] = ( grd_old[i][j] + grd_old[i-1][j] + grd_old[i][j-1] + grd_old[i][j+1] + (4*r)) / 4
- elif [i, j] in term :
- grd[i][j] = 0
- elif [i, j] == [3, 0] :
- grd[i][j] = ( (2*grd_old[i][j]) + grd_old[i-1][j] + grd_old[i][j+1] + (4*r)) / 4
- elif [i, j] == [0, 3] :
- grd[i][j] = ( (2*grd_old[i][j]) + grd_old[i][j-1] + grd_old[i+1][j] + (4*r)) / 4
- else:
- grd[i][j] = ( grd_old[i-1][j] + grd_old[i+1][j] + grd_old[i][j-1] + grd_old[i][j+1] + (4*r)) / 4
- print(grd)
- print('----------------------------------------------------')
- grd_old = grd.copy()
- }
Add Comment
Please, Sign In to add comment