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
Generate (and assess) should take an optional Bool argument that determines whether 'not all address visited' errors get raised.
Currently, assess raises this error and generate does not, but the fact that generate does not raise this error is not clearly documented.
There are cases where we need the error to be raised, for defensive programming purposes, and cases where we don't (because we need the flexibility of being able to pass constraints that may include extra addresses in them).
@marcoct Is the intention that every GF should accept 'impossible' constraints for generate, and be able to respect only a subset of them? And also support a version where such constraints raise an error? (It's not obvious to me what the right notion of "unvisited" is, for arbitrary custom GFs, but I haven't looked carefully at the definition in the thesis yet. It'd be great, for the docs, to try to concisely describe the required behavior for a custom GF.)
@alex-lew Yes, the requirement that generative functions have densities on choice maps that are 'structured' allows for a precise definition of behavior of generate that allows it to ignore constraints on random choices that it doesn't, informally speaking, "visit".
The internal proposal distribution must only propose choice maps that, when merged with some subset of the constraint choice map, produce a trace with nonzero density according to the generative function.
Section 2.1 -- Defines structured distributions on choice maps, and a relevant definition of conditional distribution on choice maps that allows for ignoring some constraints (see the second example on page 51).
Section 4.1 -- Defines internal proposals, building on Section 2.1
Yes, the docs should definitely describe this content, or at least link to it in the immediate term.
Generate (and assess) should take an optional Bool argument that determines whether 'not all address visited' errors get raised.
Currently, assess raises this error and generate does not, but the fact that generate does not raise this error is not clearly documented.
There are cases where we need the error to be raised, for defensive programming purposes, and cases where we don't (because we need the flexibility of being able to pass constraints that may include extra addresses in them).
Documentation for semantics of 'generate' without this check can be found on page 143 of my thesis (https://www.mct.dev/assets/mct-thesis.pdf).
The text was updated successfully, but these errors were encountered: