finish tracking
This commit is contained in:
@ -648,7 +648,10 @@ class ParticleFilter(InferenceModule):
|
||||
"""
|
||||
self.particles = []
|
||||
"*** YOUR CODE HERE ***"
|
||||
raiseNotDefined()
|
||||
num_positions = len(self.legalPositions)
|
||||
num_particles = self.numParticles
|
||||
for i in range(num_particles):
|
||||
self.particles.append(self.legalPositions[i % num_positions])
|
||||
"*** END YOUR CODE HERE ***"
|
||||
|
||||
def getBeliefDistribution(self):
|
||||
@ -660,7 +663,11 @@ class ParticleFilter(InferenceModule):
|
||||
This function should return a normalized distribution.
|
||||
"""
|
||||
"*** YOUR CODE HERE ***"
|
||||
raiseNotDefined()
|
||||
belief = DiscreteDistribution()
|
||||
for particle in self.particles:
|
||||
belief[particle] += 1
|
||||
belief.normalize()
|
||||
return belief
|
||||
"*** END YOUR CODE HERE ***"
|
||||
|
||||
########### ########### ###########
|
||||
@ -680,7 +687,14 @@ class ParticleFilter(InferenceModule):
|
||||
the DiscreteDistribution may be useful.
|
||||
"""
|
||||
"*** YOUR CODE HERE ***"
|
||||
raiseNotDefined()
|
||||
belief = DiscreteDistribution()
|
||||
for particle in self.particles:
|
||||
belief[particle] += self.getObservationProb(observation, gameState.getPacmanPosition(), particle, self.getJailPosition())
|
||||
belief.normalize()
|
||||
if belief.total() == 0:
|
||||
self.initializeUniformly(gameState)
|
||||
else:
|
||||
self.particles = [belief.sample() for _ in range(self.numParticles)]
|
||||
"*** END YOUR CODE HERE ***"
|
||||
|
||||
########### ########### ###########
|
||||
@ -693,6 +707,9 @@ class ParticleFilter(InferenceModule):
|
||||
gameState.
|
||||
"""
|
||||
"*** YOUR CODE HERE ***"
|
||||
raiseNotDefined()
|
||||
new_particles = []
|
||||
for particle in self.particles:
|
||||
new_particles.append(self.getPositionDistribution(gameState, particle).sample())
|
||||
self.particles = new_particles
|
||||
"*** END YOUR CODE HERE ***"
|
||||
|
||||
|
Reference in New Issue
Block a user