diff --git a/packages/CLPBN/clpbn/bp/BpSolver.cpp b/packages/CLPBN/clpbn/bp/BpSolver.cpp index 8f773d836..a6eee459b 100644 --- a/packages/CLPBN/clpbn/bp/BpSolver.cpp +++ b/packages/CLPBN/clpbn/bp/BpSolver.cpp @@ -48,6 +48,28 @@ BpSolver::solveQuery (VarIds queryVids) +void +BpSolver::printSolverFlags (void) const +{ + stringstream ss; + ss << "belief propagation [" ; + ss << "schedule=" ; + typedef BpOptions::Schedule Sch; + switch (BpOptions::schedule) { + case Sch::SEQ_FIXED: ss << "seq_fixed"; break; + case Sch::SEQ_RANDOM: ss << "seq_random"; break; + case Sch::PARALLEL: ss << "parallel"; break; + case Sch::MAX_RESIDUAL: ss << "max_residual"; break; + } + ss << ",maxiter=" << Util::toString (BpOptions::maxIter); + ss << ",accuracy=" << Util::toString (BpOptions::accuracy); + ss << ",log_domain=" << Util::toString (Globals::logDomain); + ss << "]" ; + cout << ss.str() << endl; +} + + + Params BpSolver::getPosterioriOf (VarId vid) { diff --git a/packages/CLPBN/clpbn/bp/BpSolver.h b/packages/CLPBN/clpbn/bp/BpSolver.h index c9260b013..388346ddd 100644 --- a/packages/CLPBN/clpbn/bp/BpSolver.h +++ b/packages/CLPBN/clpbn/bp/BpSolver.h @@ -97,6 +97,8 @@ class BpSolver : public Solver Params solveQuery (VarIds); + virtual void printSolverFlags (void) const; + virtual Params getPosterioriOf (VarId); virtual Params getJointDistributionOf (const VarIds&); diff --git a/packages/CLPBN/clpbn/bp/CbpSolver.cpp b/packages/CLPBN/clpbn/bp/CbpSolver.cpp index c6da7bde3..388163396 100644 --- a/packages/CLPBN/clpbn/bp/CbpSolver.cpp +++ b/packages/CLPBN/clpbn/bp/CbpSolver.cpp @@ -40,6 +40,32 @@ CbpSolver::~CbpSolver (void) +void +CbpSolver::printSolverFlags (void) const +{ + stringstream ss; + ss << "counting bp [" ; + ss << "schedule=" ; + typedef BpOptions::Schedule Sch; + switch (BpOptions::schedule) { + case Sch::SEQ_FIXED: ss << "seq_fixed"; break; + case Sch::SEQ_RANDOM: ss << "seq_random"; break; + case Sch::PARALLEL: ss << "parallel"; break; + case Sch::MAX_RESIDUAL: ss << "max_residual"; break; + } + ss << ",max_iter=" << BpOptions::maxIter; + ss << ",accuracy=" << BpOptions::accuracy; + ss << ",log_domain=" << Util::toString (Globals::logDomain); + ss << ",order_vars=" << Util::toString (FactorGraph::orderVariables); + ss << ",chkif=" << + Util::toString (CFactorGraph::checkForIdenticalFactors); + ss << "]" ; + cout << ss.str() << endl; +} + + + + Params CbpSolver::getPosterioriOf (VarId vid) { diff --git a/packages/CLPBN/clpbn/bp/CbpSolver.h b/packages/CLPBN/clpbn/bp/CbpSolver.h index 638e68fb9..e4a342793 100644 --- a/packages/CLPBN/clpbn/bp/CbpSolver.h +++ b/packages/CLPBN/clpbn/bp/CbpSolver.h @@ -38,6 +38,8 @@ class CbpSolver : public BpSolver CbpSolver (const FactorGraph& fg); ~CbpSolver (void); + + void printSolverFlags (void) const; Params getPosterioriOf (VarId); diff --git a/packages/CLPBN/clpbn/bp/Solver.h b/packages/CLPBN/clpbn/bp/Solver.h index 00d584128..cc22795d1 100644 --- a/packages/CLPBN/clpbn/bp/Solver.h +++ b/packages/CLPBN/clpbn/bp/Solver.h @@ -18,6 +18,8 @@ class Solver virtual Params solveQuery (VarIds queryVids) = 0; + virtual void printSolverFlags (void) const = 0; + void printAnswer (const VarIds& vids); void printAllPosterioris (void); diff --git a/packages/CLPBN/clpbn/bp/VarElimSolver.cpp b/packages/CLPBN/clpbn/bp/VarElimSolver.cpp index 75af57868..9769e7492 100644 --- a/packages/CLPBN/clpbn/bp/VarElimSolver.cpp +++ b/packages/CLPBN/clpbn/bp/VarElimSolver.cpp @@ -32,6 +32,26 @@ VarElimSolver::solveQuery (VarIds queryVids) +void +VarElimSolver::printSolverFlags (void) const +{ + stringstream ss; + ss << "variable elimination [" ; + ss << "elim_heuristic=" ; + ElimHeuristic eh = ElimGraph::getEliminationHeuristic(); + switch (eh) { + case MIN_NEIGHBORS: ss << "min_neighbors"; break; + case MIN_WEIGHT: ss << "min_weight"; break; + case MIN_FILL: ss << "min_fill"; break; + case WEIGHTED_MIN_FILL: ss << "weighted_min_fill"; break; + } + ss << ",log_domain=" << Util::toString (Globals::logDomain); + ss << "]" ; + cout << ss.str() << endl; +} + + + void VarElimSolver::createFactorList (void) { diff --git a/packages/CLPBN/clpbn/bp/VarElimSolver.h b/packages/CLPBN/clpbn/bp/VarElimSolver.h index effe6838b..ccdaefdb6 100644 --- a/packages/CLPBN/clpbn/bp/VarElimSolver.h +++ b/packages/CLPBN/clpbn/bp/VarElimSolver.h @@ -20,6 +20,8 @@ class VarElimSolver : public Solver Params solveQuery (VarIds); + void printSolverFlags (void) const; + private: void createFactorList (void);