Compare commits
No commits in common. "81c58289c15d53056fb7f6fd6509bef75b195904" and "8ce3754cb0f191351b6f32377bde358bf7548cd0" have entirely different histories.
81c58289c1
...
8ce3754cb0
29
inference.py
29
inference.py
@ -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 ***"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user