Darwin  1.10(beta)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
drwnSontag08Inference Class Reference

Implements the incremental tightening of the LP MAP inference algorithm from Sontag et al., UAI 2008. More...

Inheritance diagram for drwnSontag08Inference:
drwnGEMPLPInference drwnMessagePassingMAPInference drwnMAPInference

Public Member Functions

 drwnSontag08Inference (const drwnFactorGraph &graph)
 
void clear ()
 Clear internally cached data (e.g., computation graph)
 
std::pair< double, double > inference (drwnFullAssignment &mapAssignment)
 Run inference (or resume for iterative algorithms). Algorithms may initialize from mapAssignment if not empty. Returns an upper and lower bound (if available) of the minimum energy. The upper bound is the same as the energy of the best solution found (i.e., same as graph.getEnergy(mapAssignment)). More...
 
- Public Member Functions inherited from drwnGEMPLPInference
 drwnGEMPLPInference (const drwnFactorGraph &graph)
 
- Public Member Functions inherited from drwnMessagePassingMAPInference
 drwnMessagePassingMAPInference (const drwnFactorGraph &graph)
 
- Public Member Functions inherited from drwnMAPInference
 drwnMAPInference (const drwnFactorGraph &graph)
 
 drwnMAPInference (const drwnMAPInference &inf)
 

Static Public Attributes

static unsigned WARMSTART_ITERATIONS = 20
 maximum number of iterations < after adding clusters
 
static unsigned MAX_CLIQUES_TO_ADD = 5
 number of cliques to add per cycle
 
- Static Public Attributes inherited from drwnMessagePassingMAPInference
static unsigned MAX_ITERATIONS = 1000
 maximum number of iterations
 
static double DAMPING_FACTOR = 0.0
 damping factor for updating messages
 

Protected Member Functions

void buildComputationGraph ()
 
virtual void findCliqueCandidates (std::map< drwnClique, std::vector< int > > &cliqueCandidateSet)
 Generates the set of clique candidates to test after each GEMPLP iteration. Derived classes can override this to implement different clique candidate strategies.
 
- Protected Member Functions inherited from drwnGEMPLPInference
void initializeMessages ()
 
void decodeBeliefs (drwnFullAssignment &mapAssignment)
 
int findSeparatorIndex (const drwnClique &cliqueA, const drwnClique &cliqueB)
 
void addMessageUpdate (int cliqueId, const drwnClique &cliqueVars, const drwnTableFactor *psi=NULL)
 

Protected Attributes

std::vector< drwnClique_additionalCliques
 
- Protected Attributes inherited from drwnGEMPLPInference
std::vector< drwnClique_separators
 
std::vector< drwnEdge_edges
 
std::vector< std::set< int > > _cliqueEdges
 
std::vector< std::set< int > > _separatorEdges
 
double _lastDualObjective
 
unsigned _maxIterations
 
- Protected Attributes inherited from drwnMessagePassingMAPInference
std::vector< drwnTableFactor * > _forwardMessages
 
std::vector< drwnTableFactor * > _backwardMessages
 
std::vector< drwnTableFactor * > _oldForwardMessages
 
std::vector< drwnTableFactor * > _oldBackwardMessages
 
std::vector< drwnTableFactor * > _intermediateFactors
 
std::vector
< drwnFactorOperation * > 
_computations
 
std::vector
< drwnTableFactorStorage * > 
_sharedStorage
 
- Protected Attributes inherited from drwnMAPInference
const drwnFactorGraph_graph
 reference to initial clique potentials
 

Detailed Description

Implements the incremental tightening of the LP MAP inference algorithm from Sontag et al., UAI 2008.

Member Function Documentation

pair< double, double > drwnSontag08Inference::inference ( drwnFullAssignment mapAssignment)
virtual

Run inference (or resume for iterative algorithms). Algorithms may initialize from mapAssignment if not empty. Returns an upper and lower bound (if available) of the minimum energy. The upper bound is the same as the energy of the best solution found (i.e., same as graph.getEnergy(mapAssignment)).

Todo:
add this to computation graph

Reimplemented from drwnGEMPLPInference.


The documentation for this class was generated from the following files: