probcomp / Venturecxx

Primary implementation of the Venture probabilistic programming system
http://probcomp.csail.mit.edu/venture/
GNU General Public License v3.0
28 stars 6 forks source link

Add `is_deterministic` to standard metadata of Mite SPs; filter deterministics out of standard single site selection #645

Closed axch closed 8 years ago

axch commented 8 years ago

The addition is logical, in that "guaranteed to produce the same result for add PRNG states" is meta-information about a sampler that can easily be available, is obviously useful, and is not efficiently derivable from the existing suite of standard metadata (namely, log density and various kernels).

The particular use case prompting this now is trying to write select_random_single_site_subproblem, which would really like to filter out deterministic SP applications from its set of candidates, so as to avoid wasting time on them. Also, empirically, selecting deterministic applications occasionally selects sticky SPs like make_elementary_sp, which seem to trigger various bugs in the extant scaffold construction procedures.

It might also be useful for kernels, especially constraint kernels, to expose an is_deterministic bit, but I do not yet have a concrete thing I would do with it.

Why file a ticket rather than just doing it? To give @vkmvkmvkmvkm the opportunity to weigh in on the aesthetic and design considerations.

Specific action plan:

axch commented 8 years ago

Fixed by c99f27bcf2aee66aa6317ecfa915fba6a8a447ce . The design decision was to add is_deterministic as a method to VentureSP.