opengm::DualDecompositionBase< GM, DUALBLOCK > Class Template Reference

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

#include <dualdecomposition_base.hxx>

Inheritance diagram for opengm::DualDecompositionBase< GM, DUALBLOCK >:
Inheritance graph
[legend]
Collaboration diagram for opengm::DualDecompositionBase< GM, DUALBLOCK >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef GM GmType
typedef GM GraphicalModelType
typedef DUALBLOCK DualBlockType
typedef
DualBlockType::DualVariableType 
DualVariableType
typedef ModelViewFunction
< GmType, DualVariableType
ViewFunctionType
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
DualDecompositionBaseParameter
parameter ()=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 158 of file dualdecomposition_base.hxx.


Member Typedef Documentation

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

Definition at line 170 of file dualdecomposition_base.hxx.

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

Definition at line 166 of file dualdecomposition_base.hxx.


Constructor & Destructor Documentation

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

Definition at line 219 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 
) [inline, protected]

Definition at line 353 of file dualdecomposition_base.hxx.

Here is the caller graph for this function:

template<class GM , class DUALBLOCK >
virtual void opengm::DualDecompositionBase< GM, DUALBLOCK >::allocate (  )  [protected, pure virtual]

Here is the caller graph for this function:

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 
) [inline, protected]

Definition at line 370 of file dualdecomposition_base.hxx.

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

Definition at line 362 of file dualdecomposition_base.hxx.

Here is the caller graph for this function:

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

Definition at line 223 of file dualdecomposition_base.hxx.

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 454 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 179 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 191 of file dualdecomposition_base.hxx.

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

Definition at line 189 of file dualdecomposition_base.hxx.

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

Definition at line 194 of file dualdecomposition_base.hxx.

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

Definition at line 193 of file dualdecomposition_base.hxx.

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

Definition at line 192 of file dualdecomposition_base.hxx.

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

Definition at line 190 of file dualdecomposition_base.hxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Mon Jun 17 16:31:11 2013 for OpenGM by  doxygen 1.6.3