Compare commits

..

No commits in common. "81c58289c15d53056fb7f6fd6509bef75b195904" and "8ce3754cb0f191351b6f32377bde358bf7548cd0" have entirely different histories.

View File

@ -644,8 +644,7 @@ class ParticleFilter(InferenceModule):
""" """
self.particles = [] self.particles = []
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
for index in range(self.numParticles): raiseNotDefined()
self.particles.append(self.legalPositions[index % len(self.legalPositions)])
"*** END YOUR CODE HERE ***" "*** END YOUR CODE HERE ***"
def getBeliefDistribution(self): def getBeliefDistribution(self):
@ -657,13 +656,7 @@ class ParticleFilter(InferenceModule):
This function should return a normalized distribution. This function should return a normalized distribution.
""" """
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
self.beliefs = DiscreteDistribution() raiseNotDefined()
for particle_position in self.particles:
self.beliefs[particle_position] += 1
self.beliefs.normalize()
return self.beliefs
"*** END YOUR CODE HERE ***" "*** END YOUR CODE HERE ***"
########### ########### ########### ########### ########### ###########
@ -683,19 +676,7 @@ class ParticleFilter(InferenceModule):
the DiscreteDistribution may be useful. the DiscreteDistribution may be useful.
""" """
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
pacman_position = gameState.getPacmanPosition() raiseNotDefined()
jail_position = self.getJailPosition()
particle_weights = DiscreteDistribution()
for particle in self.particles:
particle_weights[particle] += self.getObservationProb(observation, pacman_position, particle, jail_position)
total = sum([v for k, v in particle_weights.items()])
if total == 0:
self.initializeUniformly(gameState)
else:
self.particles = [particle_weights.sample() for time in range(self.numParticles)]
"*** END YOUR CODE HERE ***" "*** END YOUR CODE HERE ***"
########### ########### ########### ########### ########### ###########
@ -708,8 +689,6 @@ class ParticleFilter(InferenceModule):
gameState. gameState.
""" """
"*** YOUR CODE HERE ***" "*** YOUR CODE HERE ***"
for index, old_particle_position in enumerate(self.particles): raiseNotDefined()
distribution = self.getPositionDistribution(gameState, old_particle_position)
self.particles[index] = distribution.sample()
"*** END YOUR CODE HERE ***" "*** END YOUR CODE HERE ***"