|
|
| TRWBP () |
| Default constructor. More...
|
|
| TRWBP (const FactorGraph &fg, const PropertySet &opts) |
| Construct from FactorGraph fg and PropertySet opts. More...
|
|
|
virtual TRWBP * | clone () const |
| Returns a pointer to a new, cloned copy of *this (i.e., virtual copy constructor) More...
|
|
virtual TRWBP * | construct (const FactorGraph &fg, const PropertySet &opts) const |
| Returns a pointer to a newly constructed inference algorithm. More...
|
|
virtual std::string | name () const |
| Returns the name of the algorithm. More...
|
|
virtual Real | logZ () const |
| Returns the logarithm of the (approximated) partition sum (normalizing constant of the factor graph). More...
|
|
virtual void | setProperties (const PropertySet &opts) |
|
virtual PropertySet | getProperties () const |
| Returns parameters of this inference algorithm converted into a PropertySet. More...
|
|
virtual std::string | printProperties () const |
| Returns parameters of this inference algorithm formatted as a string in the format "[key1=val1,key2=val2,...,keyn=valn]". More...
|
|
| BP () |
| Default constructor. More...
|
|
| BP (const FactorGraph &fg, const PropertySet &opts) |
| Construct from FactorGraph fg and PropertySet opts. More...
|
|
| BP (const BP &x) |
| Copy constructor. More...
|
|
BP & | operator= (const BP &x) |
| Assignment operator. More...
|
|
virtual Factor | belief (const Var &v) const |
| Returns the (approximate) marginal probability distribution of a variable. More...
|
|
virtual Factor | belief (const VarSet &vs) const |
| Returns the (approximate) marginal probability distribution of a set of variables. More...
|
|
virtual Factor | beliefV (size_t i) const |
| Returns the (approximate) marginal probability distribution of the variable with index i. More...
|
|
virtual Factor | beliefF (size_t I) const |
| Returns the (approximate) marginal probability distribution of the variables on which factor I depends. More...
|
|
virtual std::vector< Factor > | beliefs () const |
| Returns all beliefs (approximate marginal probability distributions) calculated by the algorithm. More...
|
|
std::vector< size_t > | findMaximum () const |
|
virtual void | init () |
| Initializes all data structures of the approximate inference algorithm. More...
|
|
virtual void | init (const VarSet &ns) |
| Initializes all data structures corresponding to some set of variables. More...
|
|
virtual Real | run () |
| Runs the approximate inference algorithm. More...
|
|
virtual Real | maxDiff () const |
| Returns maximum difference between single variable beliefs in the last iteration. More...
|
|
virtual size_t | Iterations () const |
| Returns number of iterations done (one iteration passes over the complete factorgraph). More...
|
|
virtual void | setMaxIter (size_t maxiter) |
| Sets maximum number of iterations (one iteration passes over the complete factorgraph). More...
|
|
const std::vector< std::pair< size_t, size_t > > & | getSentMessages () const |
| Returns history of which messages have been updated. More...
|
|
void | clearSentMessages () |
| Clears history of which messages have been updated. More...
|
|
| DAIAlg () |
| Default constructor. More...
|
|
| DAIAlg (const GRM &grm) |
| Construct from GRM. More...
|
|
FactorGraph & | fg () |
| Returns reference to underlying FactorGraph. More...
|
|
const FactorGraph & | fg () const |
| Returns constant reference to underlying FactorGraph. More...
|
|
void | clamp (size_t i, size_t x, bool backup=false) |
| Clamp variable with index i to value x (i.e. multiply with a Kronecker delta ) More...
|
|
void | makeCavity (size_t i, bool backup=false) |
| Sets all factors interacting with variable with index i to one. More...
|
|
void | makeRegionCavity (std::vector< size_t > facInds, bool backup) |
| Sets all factors indicated by facInds to one. More...
|
|
void | backupFactor (size_t I) |
| Make a backup copy of factor I. More...
|
|
void | backupFactors (const VarSet &vs) |
| Make backup copies of all factors involving the variables in vs. More...
|
|
void | restoreFactor (size_t I) |
| Restore factor I from its backup copy. More...
|
|
void | restoreFactors (const VarSet &vs) |
| Restore the factors involving the variables in vs from their backup copies. More...
|
|
void | restoreFactors () |
| Restore all factors from their backup copies. More...
|
|
virtual | ~InfAlg () |
| Virtual destructor (needed because this class contains virtual functions) More...
|
|
virtual std::string | identify () const |
| Identifies itself for logging purposes. More...
|
|
|
typedef std::vector< size_t > | ind_t |
| Type used for index cache. More...
|
|
typedef std::multimap< Real, std::pair< size_t, size_t > > | LutType |
| Type of lookup table (only used for maximum-residual BP) More...
|
|
const Prob & | message (size_t i, size_t _I) const |
| Returns constant reference to message from the _I 'th neighbor of variable i to variable i. More...
|
|
Prob & | message (size_t i, size_t _I) |
| Returns reference to message from the _I 'th neighbor of variable i to variable i. More...
|
|
const Prob & | newMessage (size_t i, size_t _I) const |
| Returns constant reference to updated message from the _I 'th neighbor of variable i to variable i. More...
|
|
Prob & | newMessage (size_t i, size_t _I) |
| Returns reference to updated message from the _I 'th neighbor of variable i to variable i. More...
|
|
const ind_t & | index (size_t i, size_t _I) const |
| Returns constant reference to cached index for the edge between variable i and its _I 'th neighbor. More...
|
|
ind_t & | index (size_t i, size_t _I) |
| Returns reference to cached index for the edge between variable i and its _I 'th neighbor. More...
|
|
const Real & | residual (size_t i, size_t _I) const |
| Returns constant reference to residual for the edge between variable i and its _I 'th neighbor. More...
|
|
Real & | residual (size_t i, size_t _I) |
| Returns reference to residual for the edge between variable i and its _I 'th neighbor. More...
|
|
virtual void | calcNewMessage (size_t i, size_t _I) |
| Calculate the updated message from the _I 'th neighbor of variable i to variable i. More...
|
|
void | updateMessage (size_t i, size_t _I) |
| Replace the "old" message from the _I 'th neighbor of variable i to variable i by the "new" (updated) message. More...
|
|
void | updateResidual (size_t i, size_t _I, Real r) |
| Set the residual (difference between new and old message) for the edge between variable i and its _I 'th neighbor to r. More...
|
|
void | findMaxResidual (size_t &i, size_t &_I) |
| Finds the edge which has the maximum residual (difference between new and old message) More...
|
|
Approximate inference algorithm "Tree-Reweighted Belief Propagation" [WJW03].
The Tree-Reweighted Belief Propagation algorithm is like Belief Propagation, but associates each factor with a scale parameter. which controls the divergence measure being minimized.
The messages are passed from factors to variables . The update equation is given by:
After convergence, the variable beliefs are calculated by:
and the factor beliefs are calculated by:
The logarithm of the partition sum is approximated by:
where the variable weights are defined as
- Note
- TRWBP is actually equivalent to FBP
- Todo:
- Merge code of FBP and TRWBP