UGM_chain now uses DiscreteMarginals instead of DiscreteSequentialSolver

release/4.3a0
Abhijit Kundu 2012-06-07 23:20:40 +00:00
parent b9927a1b7e
commit bd8a3b8e9a
1 changed files with 6 additions and 1 deletions

View File

@ -21,6 +21,7 @@
#include <gtsam/discrete/DiscreteFactorGraph.h>
#include <gtsam/discrete/DiscreteSequentialSolver.h>
#include <gtsam/discrete/DiscreteMarginals.h>
#include <iomanip>
@ -74,11 +75,15 @@ int main(int argc, char** argv) {
optimalDecoding->print("\nMost Probable Explanation (optimalDecoding)\n");
// "Inference" Computing marginals for each node
// Here we'll make use of DiscreteMarginals class, which makes use of
// bayes-tree based shortcut evaluation of marginals
DiscreteMarginals marginals(graph);
cout << "\nComputing Node Marginals .." << endl;
for (vector<DiscreteKey>::iterator itr = nodes.begin(); itr != nodes.end();
++itr) {
//Compute the marginal
Vector margProbs = solver.marginalProbabilities(*itr);
Vector margProbs = marginals.marginalProbabilities(*itr);
//Print the marginals
cout << "Node#" << setw(4) << itr->first << " : ";