p=[0.2,0.2,0.2,0.2] world=['green','red','red','green','green'] pHit = 0.6 pMiss = 0.2 def sense(p, Z) q=[] for i in range(len(p)): hit = (Z == world[i]) q.append(p[i] * (hit * pHit + (1-hit) * pMiss)) return q print sense(p, Z)
p=[0.2,0.2,0.2,0.2] world=['green','red','red','green','green'] pHit = 0.6 pMiss = 0.2 def sense(p, Z) q=[] for i in range(len(p)): hit = (Z == world[i]) q.append(p[i] * (hit * pHit + (1-hit) * pMiss)) sum i in range(len(p)): q[i] = q[i] / s return q print sense(p, Z)
p=[0.2,0.2,0.2,0.2] world=['green','red','red','green','green'] measurements = ['red', 'green'] pHit = 0.6 pMiss = 0.2 def sense(p, Z) q=[] for i in range(len(p)): hit = (Z == world[i]) q.append(p[i] * (hit * pHit + (1-hit) * pMiss)) sum i in range(len(p)): q[i] = q[i] / s return q for k in range(len(measurements)): p = sense(p, measurements[k]) print sense(p, Z)
def move(p, U): q = [] for i in range(len(p)): s = pExact * p[(i-U) % len(p)] s = s + pOvershoot * p[(i-U-1)%len(p)] s = s + pUndershoot * p[(i-U+1)%len(p)] q.append(s) return q