|
OpenGM
2.3.x
Discrete Graphical Model Library
|
Optimization by Linear Programming (LP) or Integer LP using IBM ILOG CPLEX
http://www.ilog.com/products/cplex/.
More...
#include <lpcplex.hxx>
Inheritance diagram for opengm::LPCplex< GM, ACC >:
Collaboration diagram for opengm::LPCplex< GM, ACC >:Classes | |
| class | Parameter |
Public Member Functions | |
| LPCplex (const GraphicalModelType &, const Parameter &=Parameter()) | |
| ~LPCplex () | |
| virtual std::string | name () const |
| const GraphicalModelType & | graphicalModel () const |
| virtual InferenceTermination | infer () |
| template<class VisitorType > | |
| InferenceTermination | infer (VisitorType &) |
| virtual InferenceTermination | arg (std::vector< LabelType > &, const size_t=1) const |
| output a solution More... | |
| virtual InferenceTermination | args (std::vector< std::vector< LabelType > > &) const |
| void | variable (const size_t, IndependentFactorType &out) const |
| void | factorVariable (const size_t, IndependentFactorType &out) const |
| GM::ValueType | bound () const |
| return a bound on the solution More... | |
| GM::ValueType | value () const |
| return the solution (value) More... | |
| void | setStartingPoint (typename std::vector< LabelType >::const_iterator) |
| set initial labeling More... | |
| size_t | lpNodeVi (const IndexType variableIndex, const LabelType label) const |
| size_t | lpFactorVi (const IndexType factorIndex, const size_t labelingIndex) const |
| template<class LABELING_ITERATOR > | |
| size_t | lpFactorVi (const IndexType factorIndex, LABELING_ITERATOR labelingBegin, LABELING_ITERATOR labelingEnd) const |
| template<class LPVariableIndexIterator , class CoefficientIterator > | |
| void | addConstraint (LPVariableIndexIterator, LPVariableIndexIterator, CoefficientIterator, const ValueType &, const ValueType &, const char *name=0) |
| add constraint More... | |
| template<class LABELING_ITERATOR > | |
| size_t | lpFactorVi (const typename LPCplex< GM, ACC >::IndexType factorIndex, LABELING_ITERATOR labelingBegin, LABELING_ITERATOR labelingEnd) const |
Public Member Functions inherited from opengm::Inference< GM, ACC > | |
| virtual | ~Inference () |
| virtual InferenceTermination | marginal (const size_t, IndependentFactorType &) const |
| output a solution for a marginal for a specific variable More... | |
| virtual InferenceTermination | factorMarginal (const size_t, IndependentFactorType &) const |
| output a solution for a marginal for all variables connected to a factor More... | |
| InferenceTermination | constrainedOptimum (std::vector< IndexType > &, std::vector< LabelType > &, std::vector< LabelType > &) const |
| InferenceTermination | modeFromMarginal (std::vector< LabelType > &) const |
| InferenceTermination | modeFromFactorMarginal (std::vector< LabelType > &) const |
Public Attributes | |
| OPENGM_GM_TYPE_TYPEDEFS | |
Optimization by Linear Programming (LP) or Integer LP using IBM ILOG CPLEX
http://www.ilog.com/products/cplex/.
The optimization problem is reformulated as an LP or ILP. For the LP, a first order local polytope approximation of the marginal polytope is used, i.e. the affine instead of the convex hull.
IBM ILOG CPLEX is a commercial product that is free for accadamical use.
Definition at line 38 of file lpcplex.hxx.
| typedef ACC opengm::LPCplex< GM, ACC >::AccumulationType |
Definition at line 40 of file lpcplex.hxx.
| typedef ACC opengm::LPCplex< GM, ACC >::AccumulatorType |
Definition at line 41 of file lpcplex.hxx.
| typedef visitors::EmptyVisitor<LPCplex<GM,ACC> > opengm::LPCplex< GM, ACC >::EmptyVisitorType |
Definition at line 45 of file lpcplex.hxx.
| typedef GM opengm::LPCplex< GM, ACC >::GraphicalModelType |
Definition at line 42 of file lpcplex.hxx.
| typedef visitors::TimingVisitor<LPCplex<GM,ACC> > opengm::LPCplex< GM, ACC >::TimingVisitorType |
Definition at line 46 of file lpcplex.hxx.
| typedef visitors::VerboseVisitor<LPCplex<GM,ACC> > opengm::LPCplex< GM, ACC >::VerboseVisitorType |
Definition at line 44 of file lpcplex.hxx.
| opengm::LPCplex< GM, ACC >::LPCplex | ( | const GraphicalModelType & | gm, |
| const Parameter & | para = Parameter() |
||
| ) |
| opengm::LPCplex< GM, ACC >::~LPCplex | ( | ) |
Definition at line 526 of file lpcplex.hxx.
|
inline |
add constraint
| viBegin | iterator to the beginning of a sequence of variable indices |
| viEnd | iterator to the end of a sequence of variable indices |
| coefficient | iterator to the beginning of a sequence of coefficients |
| lowerBound | lower bound |
| upperBound | upper bound |
variable indices refer to variables of the LP that is set up in the constructor of LPCplex (NOT to the variables of the graphical model).
Definition at line 712 of file lpcplex.hxx.
|
inlinevirtual |
output a solution
| [out] | arg | labeling |
| argIndex | solution index (1=best, 2=second best, etc.) |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 533 of file lpcplex.hxx.
|
inlinevirtual |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 159 of file lpcplex.hxx.
|
virtual |
return a bound on the solution
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 633 of file lpcplex.hxx.
| void opengm::LPCplex< GM, ACC >::factorVariable | ( | const size_t | factorId, |
| IndependentFactorType & | out | ||
| ) | const |
Definition at line 577 of file lpcplex.hxx.
|
inlinevirtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 620 of file lpcplex.hxx.
|
virtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 353 of file lpcplex.hxx.
| InferenceTermination opengm::LPCplex< GM, ACC >::infer | ( | VisitorType & | visitor | ) |
Definition at line 362 of file lpcplex.hxx.
| size_t opengm::LPCplex< GM, ACC >::lpFactorVi | ( | const IndexType | factorIndex, |
| const size_t | labelingIndex | ||
| ) | const |
| size_t opengm::LPCplex< GM, ACC >::lpFactorVi | ( | const IndexType | factorIndex, |
| LABELING_ITERATOR | labelingBegin, | ||
| LABELING_ITERATOR | labelingEnd | ||
| ) | const |
|
inline |
Definition at line 678 of file lpcplex.hxx.
|
inline |
Definition at line 651 of file lpcplex.hxx.
|
inlinevirtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 152 of file lpcplex.hxx.
|
inlinevirtual |
set initial labeling
| begin | iterator to the beginning of a sequence of labels |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 603 of file lpcplex.hxx.
|
virtual |
return the solution (value)
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 626 of file lpcplex.hxx.
| void opengm::LPCplex< GM, ACC >::variable | ( | const size_t | nodeId, |
| IndependentFactorType & | out | ||
| ) | const |
Definition at line 562 of file lpcplex.hxx.
| opengm::LPCplex< GM, ACC >::OPENGM_GM_TYPE_TYPEDEFS |
Definition at line 43 of file lpcplex.hxx.
1.8.9.1