|
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 |
| struct | RebindGm |
| struct | RebindGmAndAcc |
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() |
||
| ) |
Definition at line 242 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:| opengm::LPCplex< GM, ACC >::~LPCplex | ( | ) |
Definition at line 575 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
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 761 of file lpcplex.hxx.
Here is the caller graph for this function:
|
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 582 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 206 of file lpcplex.hxx.
Here is the call graph for this function:
|
virtual |
return a bound on the solution
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 682 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:| void opengm::LPCplex< GM, ACC >::factorVariable | ( | const size_t | factorId, |
| IndependentFactorType & | out | ||
| ) | const |
Definition at line 626 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 669 of file lpcplex.hxx.
Here is the caller graph for this function:
|
virtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 400 of file lpcplex.hxx.
Here is the caller graph for this function:| InferenceTermination opengm::LPCplex< GM, ACC >::infer | ( | VisitorType & | visitor | ) |
Definition at line 409 of file lpcplex.hxx.
| size_t opengm::LPCplex< GM, ACC >::lpFactorVi | ( | const IndexType | factorIndex, |
| const size_t | labelingIndex | ||
| ) | const |
Here is the caller graph for this function:| size_t opengm::LPCplex< GM, ACC >::lpFactorVi | ( | const IndexType | factorIndex, |
| LABELING_ITERATOR | labelingBegin, | ||
| LABELING_ITERATOR | labelingEnd | ||
| ) | const |
|
inline |
Definition at line 727 of file lpcplex.hxx.
|
inline |
Definition at line 700 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
Implements opengm::Inference< GM, ACC >.
Definition at line 199 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinevirtual |
set initial labeling
| begin | iterator to the beginning of a sequence of labels |
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 652 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
return the solution (value)
Reimplemented from opengm::Inference< GM, ACC >.
Definition at line 675 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:| void opengm::LPCplex< GM, ACC >::variable | ( | const size_t | nodeId, |
| IndependentFactorType & | out | ||
| ) | const |
Definition at line 611 of file lpcplex.hxx.
Here is the call graph for this function:
Here is the caller graph for this function:| opengm::LPCplex< GM, ACC >::OPENGM_GM_TYPE_TYPEDEFS |
Definition at line 43 of file lpcplex.hxx.
1.8.12