Search for k-best in factor graph #2006
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR builds upon #2005, now enabling constructing a DiscreteSearch instance from a factor graph. This avoids having to do costly inference to transform into a Bayes net or Bayes tree. There are two versions:
There is still a bit of compute that happens in the constructor: factors get multiplied together for each "search slot". So, this does the "product" of "sum-product", but not the sum, not the division to get a conditional.
The choice between e-tree or j-tree is documented:
Testing:
All unit tests pass, and all variants give the same answer for Asia, for both MPE and 4-best solutions: