finish tracking
This commit is contained in:
@ -648,7 +648,10 @@ class ParticleFilter(InferenceModule):
|
|||||||
"""
|
"""
|
||||||
self.particles = []
|
self.particles = []
|
||||||
"*** YOUR CODE HERE ***"
|
"*** 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 ***"
|
"*** END YOUR CODE HERE ***"
|
||||||
|
|
||||||
def getBeliefDistribution(self):
|
def getBeliefDistribution(self):
|
||||||
@ -660,7 +663,11 @@ class ParticleFilter(InferenceModule):
|
|||||||
This function should return a normalized distribution.
|
This function should return a normalized distribution.
|
||||||
"""
|
"""
|
||||||
"*** YOUR CODE HERE ***"
|
"*** YOUR CODE HERE ***"
|
||||||
raiseNotDefined()
|
belief = DiscreteDistribution()
|
||||||
|
for particle in self.particles:
|
||||||
|
belief[particle] += 1
|
||||||
|
belief.normalize()
|
||||||
|
return belief
|
||||||
"*** END YOUR CODE HERE ***"
|
"*** END YOUR CODE HERE ***"
|
||||||
|
|
||||||
########### ########### ###########
|
########### ########### ###########
|
||||||
@ -680,7 +687,14 @@ class ParticleFilter(InferenceModule):
|
|||||||
the DiscreteDistribution may be useful.
|
the DiscreteDistribution may be useful.
|
||||||
"""
|
"""
|
||||||
"*** YOUR CODE HERE ***"
|
"*** 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 ***"
|
"*** END YOUR CODE HERE ***"
|
||||||
|
|
||||||
########### ########### ###########
|
########### ########### ###########
|
||||||
@ -693,6 +707,9 @@ class ParticleFilter(InferenceModule):
|
|||||||
gameState.
|
gameState.
|
||||||
"""
|
"""
|
||||||
"*** YOUR CODE HERE ***"
|
"*** 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 ***"
|
"*** END YOUR CODE HERE ***"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user