OpenGM  2.3.x
Discrete Graphical Model Library
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
opengm::DualDecompositionBase< GM, DUALBLOCK > Class Template Referenceabstract

A framework for inference algorithms based on Lagrangian decomposition. More...

#include <dualdecomposition_base.hxx>

+ Inheritance diagram for opengm::DualDecompositionBase< GM, DUALBLOCK >:
+ Collaboration diagram for opengm::DualDecompositionBase< GM, DUALBLOCK >:

Public Types

typedef GM GmType
 
typedef GM GraphicalModelType
 
typedef DUALBLOCK DualBlockType
 
typedef DualBlockType::DualVariableType DualVariableType
 
typedef ModelViewFunction< GmType, DualVariableTypeViewFunctionType
 
typedef GraphicalModel< ValueType, OperatorType, typename meta::TypeListGenerator< ViewFunctionType >::type, opengm::DiscreteSpace< IndexType, LabelType > > SubGmType
 
typedef GraphicalModelDecomposition DecompositionType
 
typedef DecompositionType::SubVariable SubVariableType
 
typedef DecompositionType::SubVariableListType SubVariableListType
 
typedef DecompositionType::SubFactor SubFactorType
 
typedef DecompositionType::SubFactorListType SubFactorListType
 

Public Member Functions

 DualDecompositionBase (const GmType &)
 
void init (DualDecompositionBaseParameter &)
 
const SubGmTypesubModel (size_t subModelId) const
 

Public Attributes

 OPENGM_GM_TYPE_TYPEDEFS
 

Protected Member Functions

template<class ITERATOR >
void addDualBlock (const SubFactorListType &, ITERATOR, ITERATOR)
 
std::vector< DualVariableType * > getDualPointers (size_t)
 
template<class ACC >
void getBounds (const std::vector< std::vector< LabelType > > &, const std::vector< SubVariableListType > &, ValueType &, ValueType &, std::vector< LabelType > &)
 
double subGradientNorm (double L=1) const
 
virtual DualDecompositionBaseParameterparameter ()=0
 
virtual void allocate ()=0
 

Protected Attributes

const GmTypegm_
 
std::vector< SubGmTypesubGm_
 
std::vector< DualBlockTypedualBlocks_
 
size_t numDualsOvercomplete_
 
size_t numDualsMinimal_
 
std::vector< TriboolmodelWithSameVariables_
 

Detailed Description

template<class GM, class DUALBLOCK>
class opengm::DualDecompositionBase< GM, DUALBLOCK >

A framework for inference algorithms based on Lagrangian decomposition.

Definition at line 168 of file dualdecomposition_base.hxx.

Member Typedef Documentation

template<class GM , class DUALBLOCK >
typedef GraphicalModelDecomposition opengm::DualDecompositionBase< GM, DUALBLOCK >::DecompositionType

Definition at line 180 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DUALBLOCK opengm::DualDecompositionBase< GM, DUALBLOCK >::DualBlockType

Definition at line 173 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DualBlockType::DualVariableType opengm::DualDecompositionBase< GM, DUALBLOCK >::DualVariableType

Definition at line 174 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef GM opengm::DualDecompositionBase< GM, DUALBLOCK >::GmType

Definition at line 171 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef GM opengm::DualDecompositionBase< GM, DUALBLOCK >::GraphicalModelType

Definition at line 172 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DecompositionType::SubFactorListType opengm::DualDecompositionBase< GM, DUALBLOCK >::SubFactorListType

Definition at line 184 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DecompositionType::SubFactor opengm::DualDecompositionBase< GM, DUALBLOCK >::SubFactorType

Definition at line 183 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef GraphicalModel<ValueType, OperatorType, typename meta::TypeListGenerator<ViewFunctionType>::type, opengm::DiscreteSpace<IndexType,LabelType> > opengm::DualDecompositionBase< GM, DUALBLOCK >::SubGmType

Definition at line 177 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DecompositionType::SubVariableListType opengm::DualDecompositionBase< GM, DUALBLOCK >::SubVariableListType

Definition at line 182 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef DecompositionType::SubVariable opengm::DualDecompositionBase< GM, DUALBLOCK >::SubVariableType

Definition at line 181 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
typedef ModelViewFunction<GmType, DualVariableType> opengm::DualDecompositionBase< GM, DUALBLOCK >::ViewFunctionType

Definition at line 176 of file dualdecomposition_base.hxx.

Constructor & Destructor Documentation

template<class GM , class DUALBLOCK >
opengm::DualDecompositionBase< GM, DUALBLOCK >::DualDecompositionBase ( const GmType gm)

Definition at line 229 of file dualdecomposition_base.hxx.

Member Function Documentation

template<class GM , class DUALBLOCK >
template<class ITERATOR >
void opengm::DualDecompositionBase< GM, DUALBLOCK >::addDualBlock ( const SubFactorListType c,
ITERATOR  shapeBegin,
ITERATOR  shapeEnd 
)
inlineprotected

Definition at line 391 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
virtual void opengm::DualDecompositionBase< GM, DUALBLOCK >::allocate ( )
protectedpure virtual
template<class GM , class DUALBLOCK >
template<class ACC >
void opengm::DualDecompositionBase< GM, DUALBLOCK >::getBounds ( const std::vector< std::vector< LabelType > > &  subStates,
const std::vector< SubVariableListType > &  subVariableLists,
ValueType &  lowerBound,
ValueType &  upperBound,
std::vector< LabelType > &  upperState 
)
protected

Definition at line 408 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
std::vector< typename DUALBLOCK::DualVariableType * > opengm::DualDecompositionBase< GM, DUALBLOCK >::getDualPointers ( size_t  dualBlockId)
inlineprotected

Definition at line 400 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
void opengm::DualDecompositionBase< GM, DUALBLOCK >::init ( DualDecompositionBaseParameter para)

Definition at line 233 of file dualdecomposition_base.hxx.

+ Here is the caller graph for this function:

template<class GM , class DUALBLOCK >
virtual DualDecompositionBaseParameter& opengm::DualDecompositionBase< GM, DUALBLOCK >::parameter ( )
protectedpure virtual
template<class GM , class DUALBLOCK >
double opengm::DualDecompositionBase< GM, DUALBLOCK >::subGradientNorm ( double  L = 1) const
protected

Definition at line 501 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
const SubGmType& opengm::DualDecompositionBase< GM, DUALBLOCK >::subModel ( size_t  subModelId) const
inline

Definition at line 189 of file dualdecomposition_base.hxx.

Member Data Documentation

template<class GM , class DUALBLOCK >
std::vector<DualBlockType> opengm::DualDecompositionBase< GM, DUALBLOCK >::dualBlocks_
protected

Definition at line 201 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
const GmType& opengm::DualDecompositionBase< GM, DUALBLOCK >::gm_
protected

Definition at line 199 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
std::vector<Tribool> opengm::DualDecompositionBase< GM, DUALBLOCK >::modelWithSameVariables_
protected

Definition at line 204 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
size_t opengm::DualDecompositionBase< GM, DUALBLOCK >::numDualsMinimal_
protected

Definition at line 203 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
size_t opengm::DualDecompositionBase< GM, DUALBLOCK >::numDualsOvercomplete_
protected

Definition at line 202 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
opengm::DualDecompositionBase< GM, DUALBLOCK >::OPENGM_GM_TYPE_TYPEDEFS

Definition at line 175 of file dualdecomposition_base.hxx.

template<class GM , class DUALBLOCK >
std::vector<SubGmType> opengm::DualDecompositionBase< GM, DUALBLOCK >::subGm_
protected

Definition at line 200 of file dualdecomposition_base.hxx.