public ParticleSet perceptionUpdate(String perception, Randomizer r) { // compute Particle Weight foreach (Particle p in particles) { double particleWeight = hmm.sensorModel().get(p.getState(), perception); p.setWeight(particleWeight); } // weighted sample to create new ParticleSet ParticleSet result = new ParticleSet(hmm); while (result.size() != size()) { foreach (Particle p in particles) { double probability = r.nextDouble(); if (probability <= p.getWeight()) { if (result.size() < size()) { result.add(new Particle(p.getState(), p.getWeight())); } } } } return(result); }
public ParticleSet perceptionUpdate(String perception, Randomizer r) { // compute Particle Weight foreach (Particle p in particles) { double particleWeight = hmm.sensorModel().get(p.getState(), perception); p.setWeight(particleWeight); } // weighted sample to create new ParticleSet ParticleSet result = new ParticleSet(hmm); while (result.size() != size()) { foreach (Particle p in particles) { double probability = r.nextDouble(); if (probability <= p.getWeight()) { if (result.size() < size()) { result.add(new Particle(p.getState(), p.getWeight())); } } } } return result; }