13 #ifndef __defined_libdai_exactinf_h
14 #define __defined_libdai_exactinf_h
68 virtual std::string
name()
const {
return "EXACT"; }
73 virtual std::vector<Factor>
beliefs()
const;
81 virtual Real maxDiff()
const { DAI_THROW(NOT_IMPLEMENTED);
return 0.0; }
82 virtual size_t Iterations()
const { DAI_THROW(NOT_IMPLEMENTED);
return 0; }
virtual ExactInf * construct(const FactorGraph &fg, const PropertySet &opts) const
Returns a pointer to a newly constructed inference algorithm.
Definition: exactinf.h:67
Represents a factor graph.
Definition: factorgraph.h:65
virtual Factor belief(const Var &v) const
Returns the (approximate) marginal probability distribution of a variable.
Definition: exactinf.h:69
virtual Real logZ() const
Returns the logarithm of the (approximated) partition sum (normalizing constant of the factor graph)...
Definition: exactinf.h:74
virtual std::vector< Factor > beliefs() const
Returns all beliefs (approximate marginal probability distributions) calculated by the algorithm...
Definition: exactinf.cpp:114
virtual ExactInf * clone() const
Returns a pointer to a new, cloned copy of *this (i.e., virtual copy constructor) ...
Definition: exactinf.h:66
FactorGraph & fg()
Returns reference to underlying FactorGraph.
Definition: daialg.h:221
std::vector< size_t > findMaximum() const
Definition: exactinf.cpp:95
double Real
Real number (alias for double, which could be changed to long double if necessary) ...
Definition: util.h:98
size_t verbose
Verbosity (amount of output sent to stderr)
Definition: exactinf.h:37
virtual void setProperties(const PropertySet &opts)
Set parameters of this inference algorithm.
Definition: exactinf.cpp:19
virtual PropertySet getProperties() const
Returns parameters of this inference algorithm converted into a PropertySet.
Definition: exactinf.cpp:27
virtual Real maxDiff() const
Returns maximum difference between single variable beliefs in the last iteration. ...
Definition: exactinf.h:81
void construct()
Helper function for constructors.
Definition: exactinf.cpp:42
Defines the DAI_ENUM macro, which can be used to define an enum with additional functionality.
Represents a set of variables.
Definition: varset.h:94
virtual Factor beliefV(size_t i) const
Returns the (approximate) marginal probability distribution of the variable with index i...
Definition: exactinf.h:71
Real _logZ
Logarithm of partition sum.
Definition: exactinf.h:46
std::vector< Factor > _beliefsF
All factor variable marginals.
Definition: exactinf.h:44
virtual size_t Iterations() const
Returns number of iterations done (one iteration passes over the complete factorgraph).
Definition: exactinf.h:82
virtual void init()
Initializes all data structures of the approximate inference algorithm.
Definition: exactinf.cpp:57
ExactInf(const FactorGraph &fg, const PropertySet &opts)
Construct from FactorGraph fg and PropertySet opts.
Definition: exactinf.h:58
virtual Real run()
Runs the approximate inference algorithm.
Definition: exactinf.cpp:65
Defines the Property and PropertySet classes, which are mainly used for managing parameters of infere...
virtual std::string printProperties() const
Returns parameters of this inference algorithm formatted as a string in the format "[key1=val1...
Definition: exactinf.cpp:34
Parameters for ExactInf.
Definition: exactinf.h:35
Represents a set of properties, mapping keys (of type PropertyKey) to values (of type PropertyValue) ...
Definition: properties.h:73
Exact inference algorithm using brute force enumeration (mainly useful for testing purposes) ...
Definition: exactinf.h:32
virtual void init(const VarSet &)
Initializes all data structures corresponding to some set of variables.
Definition: exactinf.h:79
ExactInf()
Default constructor.
Definition: exactinf.h:52
Factor calcMarginal(const VarSet &vs) const
Calculates marginal probability distribution for variables vs.
Definition: exactinf.cpp:87
std::vector< Factor > _beliefsV
All single variable marginals.
Definition: exactinf.h:42
Represents a discrete random variable.
Definition: var.h:37
Namespace for libDAI.
Definition: alldai.cpp:16
Defines the FactorGraph class, which represents factor graphs (e.g., Bayesian networks or Markov rand...
Defines the general interface for inference methods in libDAI (classes InfAlg, DaiAlg<>, DaiAlgFG and DaiAlgRG).
Combines the abstract base class InfAlg with a graphical model (e.g., a FactorGraph or RegionGraph)...
Definition: daialg.h:207
virtual Factor beliefF(size_t I) const
Returns the (approximate) marginal probability distribution of the variables on which factor I depend...
Definition: exactinf.h:72
virtual std::string name() const
Returns the name of the algorithm.
Definition: exactinf.h:68