finish tracking

This commit is contained in:
2024-07-04 02:19:02 +00:00
parent f1c5e52ef7
commit 24f1de6740

View File

@ -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 ***"