Update particle filter

If particle filter becomes empty, instead of looping over all states, which is
infeasible for larger problems, repeatedly request a random state from the
model until we have enough particles.