Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- colors = [['red', 'green', 'green', 'red' , 'red'],
- ['red', 'red', 'green', 'red', 'red'],
- ['red', 'red', 'green', 'green', 'red'],
- ['red', 'red', 'red', 'red', 'red']]
- measurements = ['green', 'green', 'green' ,'green', 'green']
- motions = [[0,0],[0,1],[1,0],[1,0],[0,1]]
- sensor_right = 0.7
- p_move = 0.8
- def show(p):
- for i in range(len(p)):
- print p[i]
- #DO NOT USE IMPORT
- #ENTER CODE BELOW HERE
- #ANY CODE ABOVE WILL CAUSE
- #HOMEWORK TO BE GRADED
- #INCORRECT
- #INCORRECT
- p = []
- sensor_wrong=1.-sensor_right
- def sense(p, Z):
- q=[]
- for i in range(len(p)):
- r=[]
- for j in range(len(p[i])):
- hit = (Z == colors[i][j])
- r.append(p[i][j] * (hit * sensor_right + (1-hit) * sensor_wrong))
- q.append(r)
- s = 0
- for i in q:
- s+=sum(i)
- for i in range(len(q)):
- for j in range(len(q[i])):
- q[i][j]=q[i][j]/s
- return q
- def move(p, U,V):
- q = []
- for i in range(len(p)):
- r=[]
- for j in range(len(p[i])):
- s = p_move * p[(i-U) % len(p)][(j-V) % len(p[i])]
- p_stationary=1.-p_move
- s = s + (p_stationary) * p[i % len(p)][j % len(p[i])]
- r.append(s)
- q.append(r)
- return q
- def Norm():
- p=[]
- norm = len(colors)*len(colors[0])
- norm=1./norm
- for i in range(len(colors)):
- r=[]
- for j in range(len(colors[i])):
- r.append(norm)
- p.append(r)
- return p
- p=Norm()
- for i in range(len(motions)):
- p=move(p,motions[i][0],motions[i][1])
- p=sense(p,measurements[i])
- #Your probability array must be printed
- #with the following code.
- show(p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement