def transModel(s): if s == 'a': return dist.deltaDist('a') elif s == 'z': return dist.deltaDist('z') else: return dist.DDist({s:0.5, nextChar(s):0.25, prevChar(s):0.25})
def transModel(s): distance = FORWARD_VELOCITY * 0.1 result1 = (float(s) / numStates) * (xMax - xMin) + distance result2 = (float(s+1) / numStates) * (xMax - xMin) + distance state1 = clip(int(float(result1) * numStates / (xMax - xMin)), 0, numStates-1) state2 = clip(int(float(result2) * numStates / (xMax - xMin)), 0, numStates-1) prob = float(distance) / (xMax - xMin) * numStates return dist.mixture(dist.deltaDist(state1), dist.deltaDist(state2), 1.0 - (prob % 1.0))
def transModel(s): distance = FORWARD_VELOCITY * 0.1 result1 = (float(s) / numStates) * (xMax - xMin) + distance result2 = (float(s + 1) / numStates) * (xMax - xMin) + distance state1 = clip(int(float(result1) * numStates / (xMax - xMin)), 0, numStates - 1) state2 = clip(int(float(result2) * numStates / (xMax - xMin)), 0, numStates - 1) prob = float(distance) / (xMax - xMin) * numStates return dist.mixture(dist.deltaDist(state1), dist.deltaDist(state2), 1.0 - (prob % 1.0))
def obsModel(s): if numObservations < 10: return dist.mixture(dist.deltaDist(ideal[s]), dist.uniformDist(range(numObservations)), float(numObservations) / 15.) return dist.mixture( dist.triangleDist(ideal[s], int(numObservations / 6.0) + 2), dist.uniformDist(range(numObservations)), 0.8)
def teleportModel2(state): current_d = dist.deltaDist(state) random_d = dist.uniformDist(range(numStates)) return dist.mixture(current_d, random_d, 0.7)
def obsModelA(state): zero_dist = dist.uniformDist([0]) return dist.mixture(dist.deltaDist(ideal[state]), zero_dist, 0.7)
def obsModelD(state): ideal_d = dist.deltaDist(ideal[state]) other_d = dist.deltaDist(9 - ideal[state]) return dist.mixture(ideal_d, other_d, 0.5)
def teleportModel(state): right_d = dist.deltaDist(min(state+1, numStates-1)) random_d = dist.uniformDist(range(numStates)) return dist.mixture(right_d, random_d, 0.7)
def perfectObsModel(state): return dist.deltaDist(ideal[state])
def obsModelB(state): random_dist = dist.squareDist(0, 10) return dist.mixture(dist.deltaDist(ideal[state]), random_dist, 0.7)
def resetModel(state): nominal = moveRightModel(state) return dist.mixture(dist.deltaDist(0), nominal, 0.3)
def resetModel2(state): nominal = dist.deltaDist(state) return dist.mixture(dist.deltaDist(0), nominal, 0.3)
def obsModel(s): if numObservations < 10: return dist.mixture(dist.deltaDist(ideal[s]), dist.uniformDist(range(numObservations)), float(numObservations) / 15.) return dist.mixture(dist.triangleDist(ideal[s], int(numObservations / 6.0) + 2), dist.uniformDist(range(numObservations)), 0.8)
def naiveTransModel(s): return dist.deltaDist(clip(s+1, 0, numStates-1))
def naiveObsModel(s): return dist.deltaDist(ideal[s])
return dist.uniformDist(range(numObservations)) def obsModel(s): pass # your code here def naiveTransModel(s): return dist.deltaDist(clip(s+1, 0, numStates-1)) transModel = models.makeTransModel(FORWARD_VELOCITY, xMax, xMin, numStates) def confidentLocation(belief): return (-1,False) #your code here uniformInitDist = dist.squareDist(0, numStates) spikedInitDist = dist.deltaDist(24) INIT_DIST_TO_USE = uniformInitDist OBS_MODEL_TO_USE = naiveObsModel TRANS_MODEL_TO_USE = naiveTransModel ###################################################################### ### ### Brain Methods -- do not change the following code ### ###################################################################### # Robot's Ideal Readings ideal = idealReadings.computeIdealReadings(WORLD_FILE, xMin, xMax, robotY, numStates, numObservations) def getParkingSpot(ideal):
def teleportModel2(state): nominal = dist.deltaDist(state) return dist.mixture(dist.uniformDist(range(numStates)), nominal, 0.3)
def teleportModel2(state): nominal = dist.deltaDist(state) return dist.mixture(dist.uniformDist(range(numStates)), nominal,0.3)
def obsModelC(state): return dist.deltaDist(9 - ideal[state])
def transModel(s): r = (FORWARD_VELOCITY / 10.0) * numStates / (xMax - xMin) return dist.mixture(dist.deltaDist(clip(s + int(r), 0, numStates - 1)), dist.deltaDist(clip(s + int(r) + 1, 0, numStates - 1)), int(r) + 1 - r)
def moveRightModel(state): return dist.deltaDist(min(state + 1, numStates - 1))
def teleportModel(state): right_d = dist.deltaDist(min(state + 1, numStates - 1)) random_d = dist.uniformDist(range(numStates)) return dist.mixture(right_d, random_d, 0.7)
def moveRightModel(state): return dist.deltaDist(min(state+1, numStates-1))
def resetModel(state): right_d = dist.deltaDist(min(state + 1, numStates - 1)) zero_d = dist.deltaDist(0) return dist.mixture(right_d, zero_d, 0.7)
def resetModel(state): right_d = dist.deltaDist(min(state+1, numStates-1)) zero_d = dist.deltaDist(0) return dist.mixture(right_d, zero_d, 0.7)
def resetModel2(state): current_d = dist.deltaDist(state) zero_d = dist.deltaDist(0) return dist.mixture(current_d, zero_d, 0.7)
def obsModelA(state): return dist.mixture(dist.deltaDist(ideal[state]), dist.deltaDist(0), 0.7)
def obsModelB(state): return dist.mixture(dist.deltaDist(ideal[state]),dist.uniformDist(range(10)),0.7)
def obsModelA(state): return dist.mixture(dist.deltaDist(ideal[state]),dist.deltaDist(0),0.7)
def obsModelB(state): return dist.mixture(dist.deltaDist(ideal[state]), dist.uniformDist(range(10)), 0.7)