Darwin
1.10(beta)
|
Implements the incremental tightening of the LP MAP inference algorithm from Sontag et al., UAI 2008. More...
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... | |
![]() | |
drwnGEMPLPInference (const drwnFactorGraph &graph) | |
![]() | |
drwnMessagePassingMAPInference (const drwnFactorGraph &graph) | |
![]() | |
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 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. | |
![]() | |
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 |
![]() | |
std::vector< drwnClique > | _separators |
std::vector< drwnEdge > | _edges |
std::vector< std::set< int > > | _cliqueEdges |
std::vector< std::set< int > > | _separatorEdges |
double | _lastDualObjective |
unsigned | _maxIterations |
![]() | |
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 |
![]() | |
const drwnFactorGraph & | _graph |
reference to initial clique potentials | |
Implements the incremental tightening of the LP MAP inference algorithm from Sontag et al., UAI 2008.
|
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)
).
Reimplemented from drwnGEMPLPInference.