You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It might be nice to have some constructors for the beliefs to answer questions like "how do I make a particle belief from a SparseCat". But, it's not 100% clear which way to do this.
Approach 1:
ParticleCollection(d, n::Integer; rng=Base.GLOBAL_RNG) =ParticleCollection([rand(rng, d) for i in1:n])
(and similar for WeightedParticleBelief)
Approach 2:
functionWeightedParticleBelief(d)
pairs =collect(weighted_iterator(d))
returnWeightedParticleBelief([first(p) for p in pairs], [last(p) for p in pairs])
end
and a similar ParticleCollection(d, n::Integer=100) that allocates unweighted particles in proportion to their weight.
Approach 2 is nice because it's deterministic and low variance, but it won't work for some distributions (e.g. continuous ones).
The text was updated successfully, but these errors were encountered:
I have a slight preference for Approach 1 to consider continuous distributions. It may also be valuable to have a constructor in the other direction, e.g. ParticleCollection -> SparseCat using the pdf fcn for all states. In the previously deprecated ParticleBelief, there was a probs_dict that was essentially a SparseCat.
Approach 1 seems more straightforward to me and more generic (apply to any distributions).
I don't see how you control the number of particles in Approach 2?
As you said, the fact that 2 is deterministic and low variance might be appealing, maybe it should be specific to converting SparseCat distribtions only?
Yeah, SparseCat from ParticleCollection should be straightforward - we still have that probs_dict as _probs.
I don't see how you control the number of particles in Approach 2?
In the WeightedParticleBelief there is just one particle for each unique state
As you said, the fact that 2 is deterministic and low variance might be appealing, maybe it should be specific to converting SparseCat distribtions only?
I don't think it's a good idea to have the constructor do qualitatively different things based on the input type. That will just lead to confusion.
Probably the best way is to just use Approach 1 for the constructor, and then have another function called exact_particle_belief that does Approach 2.
It might be nice to have some constructors for the beliefs to answer questions like "how do I make a particle belief from a SparseCat". But, it's not 100% clear which way to do this.
Approach 1:
(and similar for
WeightedParticleBelief
)Approach 2:
and a similar
ParticleCollection(d, n::Integer=100)
that allocates unweighted particles in proportion to their weight.Approach 2 is nice because it's deterministic and low variance, but it won't work for some distributions (e.g. continuous ones).
The text was updated successfully, but these errors were encountered: