A framework for inference algorithms based on Lagrangian decomposition. More...
#include <dualdecomposition_base.hxx>
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 SubGmType & | subModel (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 GmType & | gm_ |
std::vector< SubGmType > | subGm_ |
std::vector< DualBlockType > | dualBlocks_ |
size_t | numDualsOvercomplete_ |
size_t | numDualsMinimal_ |
std::vector< Tribool > | modelWithSameVariables_ |
A framework for inference algorithms based on Lagrangian decomposition.
Definition at line 158 of file dualdecomposition_base.hxx.
typedef GraphicalModelDecomposition opengm::DualDecompositionBase< GM, DUALBLOCK >::DecompositionType |
Definition at line 170 of file dualdecomposition_base.hxx.
typedef DUALBLOCK opengm::DualDecompositionBase< GM, DUALBLOCK >::DualBlockType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 163 of file dualdecomposition_base.hxx.
typedef DualBlockType::DualVariableType opengm::DualDecompositionBase< GM, DUALBLOCK >::DualVariableType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 164 of file dualdecomposition_base.hxx.
typedef GM opengm::DualDecompositionBase< GM, DUALBLOCK >::GmType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 161 of file dualdecomposition_base.hxx.
typedef GM opengm::DualDecompositionBase< GM, DUALBLOCK >::GraphicalModelType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 162 of file dualdecomposition_base.hxx.
typedef DecompositionType::SubFactorListType opengm::DualDecompositionBase< GM, DUALBLOCK >::SubFactorListType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 174 of file dualdecomposition_base.hxx.
typedef DecompositionType::SubFactor opengm::DualDecompositionBase< GM, DUALBLOCK >::SubFactorType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 173 of file dualdecomposition_base.hxx.
typedef GraphicalModel<ValueType, OperatorType, typename meta::TypeListGenerator<ViewFunctionType>::type, opengm::DiscreteSpace<IndexType,LabelType> > opengm::DualDecompositionBase< GM, DUALBLOCK >::SubGmType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 167 of file dualdecomposition_base.hxx.
typedef DecompositionType::SubVariableListType opengm::DualDecompositionBase< GM, DUALBLOCK >::SubVariableListType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 172 of file dualdecomposition_base.hxx.
typedef DecompositionType::SubVariable opengm::DualDecompositionBase< GM, DUALBLOCK >::SubVariableType |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 171 of file dualdecomposition_base.hxx.
typedef ModelViewFunction<GmType, DualVariableType> opengm::DualDecompositionBase< GM, DUALBLOCK >::ViewFunctionType |
Definition at line 166 of file dualdecomposition_base.hxx.
opengm::DualDecompositionBase< GM, DUALBLOCK >::DualDecompositionBase | ( | const GmType & | gm | ) | [inline] |
Definition at line 219 of file dualdecomposition_base.hxx.
void opengm::DualDecompositionBase< GM, DUALBLOCK >::addDualBlock | ( | const SubFactorListType & | c, | |
ITERATOR | shapeBegin, | |||
ITERATOR | shapeEnd | |||
) | [inline, protected] |
Definition at line 353 of file dualdecomposition_base.hxx.
virtual void opengm::DualDecompositionBase< GM, DUALBLOCK >::allocate | ( | ) | [protected, pure virtual] |
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.
std::vector< typename DUALBLOCK::DualVariableType * > opengm::DualDecompositionBase< GM, DUALBLOCK >::getDualPointers | ( | size_t | dualBlockId | ) | [inline, protected] |
Definition at line 362 of file dualdecomposition_base.hxx.
void opengm::DualDecompositionBase< GM, DUALBLOCK >::init | ( | DualDecompositionBaseParameter & | para | ) | [inline] |
Definition at line 223 of file dualdecomposition_base.hxx.
virtual DualDecompositionBaseParameter& opengm::DualDecompositionBase< GM, DUALBLOCK >::parameter | ( | ) | [protected, pure virtual] |
double opengm::DualDecompositionBase< GM, DUALBLOCK >::subGradientNorm | ( | double | L = 1 |
) | const [inline, protected] |
Definition at line 454 of file dualdecomposition_base.hxx.
const SubGmType& opengm::DualDecompositionBase< GM, DUALBLOCK >::subModel | ( | size_t | subModelId | ) | const [inline] |
Definition at line 179 of file dualdecomposition_base.hxx.
std::vector<DualBlockType> opengm::DualDecompositionBase< GM, DUALBLOCK >::dualBlocks_ [protected] |
Definition at line 191 of file dualdecomposition_base.hxx.
const GmType& opengm::DualDecompositionBase< GM, DUALBLOCK >::gm_ [protected] |
Definition at line 189 of file dualdecomposition_base.hxx.
std::vector<Tribool> opengm::DualDecompositionBase< GM, DUALBLOCK >::modelWithSameVariables_ [protected] |
Definition at line 194 of file dualdecomposition_base.hxx.
size_t opengm::DualDecompositionBase< GM, DUALBLOCK >::numDualsMinimal_ [protected] |
Definition at line 193 of file dualdecomposition_base.hxx.
size_t opengm::DualDecompositionBase< GM, DUALBLOCK >::numDualsOvercomplete_ [protected] |
Definition at line 192 of file dualdecomposition_base.hxx.
opengm::DualDecompositionBase< GM, DUALBLOCK >::OPENGM_GM_TYPE_TYPEDEFS |
Reimplemented in opengm::DualDecompositionSubGradient< GM, INF, DUALBLOCK >.
Definition at line 165 of file dualdecomposition_base.hxx.
std::vector<SubGmType> opengm::DualDecompositionBase< GM, DUALBLOCK >::subGm_ [protected] |
Definition at line 190 of file dualdecomposition_base.hxx.