-
Notifications
You must be signed in to change notification settings - Fork 765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
optimize <> MPE #1048
Comments
Wow, really great find. Thanks for keeping us in the loop on this! |
I came back to this after fully understanding the difference between sum-product and max-product, and I think the test in the description is not correct. You're running elimination on an already eliminated graph To construct |
I get the same value for the MPE for both Max-Product and Sum-Product, as well as the same graph "value" aka |
Hmmmm. Not following you there, but let’s chat about it in our next meeting. Pls schedule it? |
Description
The
optimize
methods inDiscreteFactorGraph
andDiscreteBayesNet
do not actually compute the MPE, but optimize first the marginal of the parents, and then the conditional marginals of the children. While often agreeing with the MPE (I had to work a bit to find a counterexample in addition to the Darwiche example) this computation is not the same, and in fact is not a common thing to do (as opposed to max-marginal, which optimizes all individual marginals).This will probably of interest to @keevindoherty , @varunagrawal , @ProfFan
Steps to reproduce
I created a counter-example in a branch where I am fixing the issue.
Expected behavior
DiscreteFactorGraph::optimize
should compute the MPE.Additional information
I already fixed what optimize does. To maintain the API and the common use case, I will leave the eliminate methods as they are, producing a BayesNet, but will deprecated BayesNet optimize. There will be new maxProduct methods in DFG.
The text was updated successfully, but these errors were encountered: