OpenGM  2.3.x
Discrete Graphical Model Library
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK > Class Template Reference

Dual-Decomposition-Subgradient

Inference based on dual decomposition using sub-gradient descent
Reference:
Kappes, J. H. and Savchynskyy, B. and Schnoerr, C.: "A Bundle Approach To Efficient MAP-Inference by Lagrangian Relaxation". In CVPR 2012, 2012. More...

#include <dualdecomposition_subgradient.hxx>

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

Classes

class  Parameter
 

Public Types

typedef GM GmType
 
typedef GM GraphicalModelType
 
typedef INF::AccumulationType AccumulationType
 
typedef visitors::VerboseVisitor< DualDecompositionSubGradient< GM, INF, DUALBLOCK > > VerboseVisitorType
 
typedef visitors::TimingVisitor< DualDecompositionSubGradient< GM, INF, DUALBLOCK > > TimingVisitorType
 
typedef visitors::EmptyVisitor< DualDecompositionSubGradient< GM, INF, DUALBLOCK > > EmptyVisitorType
 
typedef INF InfType
 
typedef DUALBLOCK DualBlockType
 
typedef DualDecompositionBase< GmType, DualBlockTypeDDBaseType
 
typedef DualBlockType::DualVariableType DualVariableType
 
typedef DDBaseType::SubGmType SubGmType
 
typedef DualBlockType::SubFactorType SubFactorType
 
typedef DualBlockType::SubFactorListType SubFactorListType
 
typedef DDBaseType::SubVariableType SubVariableType
 
typedef DDBaseType::SubVariableListType SubVariableListType
 
- Public Types inherited from opengm::Inference< GM, INF::AccumulationType >
typedef GM GraphicalModelType
 
typedef INF::AccumulationType AccumulationType
 
typedef GraphicalModelType::LabelType LabelType
 
typedef GraphicalModelType::IndexType IndexType
 
typedef GraphicalModelType::ValueType ValueType
 
typedef GraphicalModelType::OperatorType OperatorType
 
typedef GraphicalModelType::FactorType FactorType
 
typedef GraphicalModelType::IndependentFactorType IndependentFactorType
 
typedef GraphicalModelType::FunctionIdentifier FunctionIdentifier
 
- Public Types inherited from opengm::DualDecompositionBase< GM, DUALBLOCK >
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

 DualDecompositionSubGradient (const GmType &)
 
 DualDecompositionSubGradient (const GmType &, const Parameter &)
 
virtual std::string name () const
 
virtual const GmTypegraphicalModel () const
 
virtual InferenceTermination infer ()
 
template<class VISITOR >
InferenceTermination infer (VISITOR &)
 
virtual ValueType bound () const
 return a bound on the solution More...
 
virtual ValueType value () const
 return the solution (value) More...
 
virtual InferenceTermination arg (std::vector< LabelType > &, const size_t=1) const
 output a solution More...
 
- Public Member Functions inherited from opengm::Inference< GM, INF::AccumulationType >
virtual ~Inference ()
 
virtual void setStartingPoint (typename std::vector< LabelType >::const_iterator)
 set initial labeling More...
 
virtual InferenceTermination args (std::vector< std::vector< LabelType > > &) const
 
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 Member Functions inherited from opengm::DualDecompositionBase< GM, DUALBLOCK >
 DualDecompositionBase (const GmType &)
 
void init (DualDecompositionBaseParameter &)
 
const SubGmTypesubModel (size_t subModelId) const
 

Public Attributes

 OPENGM_GM_TYPE_TYPEDEFS
 
- Public Attributes inherited from opengm::DualDecompositionBase< GM, DUALBLOCK >
 OPENGM_GM_TYPE_TYPEDEFS
 

Additional Inherited Members

- Protected Member Functions inherited from opengm::DualDecompositionBase< GM, DUALBLOCK >
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
 
- Protected Attributes inherited from opengm::DualDecompositionBase< GM, DUALBLOCK >
const GmTypegm_
 
std::vector< SubGmTypesubGm_
 
std::vector< DualBlockTypedualBlocks_
 
size_t numDualsOvercomplete_
 
size_t numDualsMinimal_
 
std::vector< TriboolmodelWithSameVariables_
 

Detailed Description

template<class GM, class INF, class DUALBLOCK>
class opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >

Dual-Decomposition-Subgradient

Inference based on dual decomposition using sub-gradient descent
Reference:
Kappes, J. H. and Savchynskyy, B. and Schnoerr, C.: "A Bundle Approach To Efficient MAP-Inference by Lagrangian Relaxation". In CVPR 2012, 2012.

Definition at line 23 of file dualdecomposition_subgradient.hxx.

Member Typedef Documentation

template<class GM , class INF , class DUALBLOCK >
typedef INF::AccumulationType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::AccumulationType

Definition at line 29 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DualDecompositionBase<GmType, DualBlockType> opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::DDBaseType

Definition at line 37 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DUALBLOCK opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::DualBlockType

Definition at line 36 of file dualdecomposition_subgradient.hxx.

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

Definition at line 39 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef visitors::EmptyVisitor<DualDecompositionSubGradient<GM, INF,DUALBLOCK> > opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::EmptyVisitorType

Definition at line 33 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef GM opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::GmType

Definition at line 27 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef GM opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::GraphicalModelType

Definition at line 28 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef INF opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::InfType

Definition at line 35 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DualBlockType::SubFactorListType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::SubFactorListType

Definition at line 42 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DualBlockType::SubFactorType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::SubFactorType

Definition at line 41 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DDBaseType::SubGmType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::SubGmType

Definition at line 40 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DDBaseType::SubVariableListType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::SubVariableListType

Definition at line 44 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef DDBaseType::SubVariableType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::SubVariableType

Definition at line 43 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef visitors::TimingVisitor<DualDecompositionSubGradient<GM, INF,DUALBLOCK> > opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::TimingVisitorType

Definition at line 32 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
typedef visitors::VerboseVisitor<DualDecompositionSubGradient<GM, INF,DUALBLOCK> > opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::VerboseVisitorType

Definition at line 31 of file dualdecomposition_subgradient.hxx.

Constructor & Destructor Documentation

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

Definition at line 100 of file dualdecomposition_subgradient.hxx.

+ Here is the call graph for this function:

template<class GM , class INF , class DUALBLOCK >
opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::DualDecompositionSubGradient ( const GmType gm,
const Parameter para 
)

Definition at line 110 of file dualdecomposition_subgradient.hxx.

+ Here is the call graph for this function:

Member Function Documentation

template<class GM , class INF , class DUALBLOCK >
InferenceTermination opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::arg ( std::vector< LabelType > &  ,
const size_t  = 1 
) const
virtual

output a solution

Parameters
[out]arglabeling
argIndexsolution index (1=best, 2=second best, etc.)

Reimplemented from opengm::Inference< GM, INF::AccumulationType >.

Definition at line 259 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
GM::ValueType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::bound ( ) const
virtual

return a bound on the solution

Reimplemented from opengm::Inference< GM, INF::AccumulationType >.

Definition at line 277 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
virtual const GmType& opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::graphicalModel ( ) const
inlinevirtual
template<class GM , class INF , class DUALBLOCK >
InferenceTermination opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::infer ( )
virtual
template<class GM , class INF , class DUALBLOCK >
template<class VISITOR >
InferenceTermination opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::infer ( VISITOR &  visitor)

Definition at line 158 of file dualdecomposition_subgradient.hxx.

template<class GM , class INF , class DUALBLOCK >
virtual std::string opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::name ( ) const
inlinevirtual
template<class GM , class INF , class DUALBLOCK >
GM::ValueType opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::value ( ) const
virtual

return the solution (value)

Reimplemented from opengm::Inference< GM, INF::AccumulationType >.

Definition at line 271 of file dualdecomposition_subgradient.hxx.

Member Data Documentation

template<class GM , class INF , class DUALBLOCK >
opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >::OPENGM_GM_TYPE_TYPEDEFS

Definition at line 30 of file dualdecomposition_subgradient.hxx.