#include <dai/trwbp.h>
TRWBP accessors/mutators for scale parameters | |
Real | Weight (size_t I) const |
Returns weight corresponding to the I 'th factor. | |
const std::vector< Real > & | Weights () const |
Returns constant reference to vector of all weights. | |
void | setWeight (size_t I, Real c) |
Sets the weight of the I 'th factor to c. | |
void | setWeights (const std::vector< Real > &c) |
Sets the weights of all factors simultaenously. | |
virtual Prob | calcIncomingMessageProduct (size_t I, bool without_i, size_t i) const |
Calculate the product of factor I and the incoming messages. | |
virtual void | calcBeliefV (size_t i, Prob &p) const |
Calculates unnormalized belief of variable i. | |
virtual void | calcBeliefF (size_t I, Prob &p) const |
Calculates unnormalized belief of factor I. | |
virtual void | construct () |
Helper function for constructors. | |
Public Member Functions | |
Constructors/destructors | |
TRWBP () | |
Default constructor. | |
TRWBP (const FactorGraph &fg, const PropertySet &opts) | |
Construct from FactorGraph fg and PropertySet opts. | |
General InfAlg interface | |
virtual TRWBP * | clone () const |
Returns a pointer to a new, cloned copy of *this (i.e., virtual copy constructor). | |
virtual std::string | identify () const |
Identifies itself for logging purposes. | |
virtual Real | logZ () const |
Returns the logarithm of the (approximated) partition sum (normalizing constant of the factor graph). | |
Static Public Attributes | |
static const char * | Name = "TRWBP" |
Name of this inference algorithm. | |
Protected Attributes | |
std::vector< Real > | _weight |
"Edge weights" (indexed by factor ID) |
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
dai::TRWBP::TRWBP | ( | ) | [inline] |
Default constructor.
dai::TRWBP::TRWBP | ( | const FactorGraph & | fg, | |
const PropertySet & | opts | |||
) | [inline] |
Construct from FactorGraph fg and PropertySet opts.
opts | Parameters |
virtual TRWBP* dai::TRWBP::clone | ( | ) | const [inline, virtual] |
Returns a pointer to a new, cloned copy of *this
(i.e., virtual copy constructor).
Reimplemented from dai::BP.
string dai::TRWBP::identify | ( | ) | const [virtual] |
Real dai::TRWBP::logZ | ( | ) | const [virtual] |
Real dai::TRWBP::Weight | ( | size_t | I | ) | const [inline] |
Returns weight corresponding to the I 'th factor.
const std::vector<Real>& dai::TRWBP::Weights | ( | ) | const [inline] |
Returns constant reference to vector of all weights.
void dai::TRWBP::setWeight | ( | size_t | I, | |
Real | c | |||
) | [inline] |
Sets the weight of the I 'th factor to c.
void dai::TRWBP::setWeights | ( | const std::vector< Real > & | c | ) | [inline] |
Sets the weights of all factors simultaenously.
Prob dai::TRWBP::calcIncomingMessageProduct | ( | size_t | I, | |
bool | without_i, | |||
size_t | i | |||
) | const [protected, virtual] |
Calculate the product of factor I and the incoming messages.
If without_i == true
, the message coming from variable i is omitted from the product
Reimplemented from dai::BP.
void dai::TRWBP::calcBeliefV | ( | size_t | i, | |
Prob & | p | |||
) | const [protected, virtual] |
virtual void dai::TRWBP::calcBeliefF | ( | size_t | I, | |
Prob & | p | |||
) | const [inline, protected, virtual] |
void dai::TRWBP::construct | ( | ) | [protected, virtual] |
std::vector<Real> dai::TRWBP::_weight [protected] |
const char * dai::TRWBP::Name = "TRWBP" [static] |