Direct Graphical Models  v.1.7.0
DirectGraphicalModels::CInferTRW Class Reference

Tree-reweighted inference class. More...

#include <InferTRW.h>

Inheritance diagram for DirectGraphicalModels::CInferTRW:
Collaboration diagram for DirectGraphicalModels::CInferTRW:

Public Member Functions

 CInferTRW (CGraphPairwise &graph)
 Constructor. More...
 
virtual ~CInferTRW (void)
 
virtual void infer (unsigned int nIt=1)
 Inference. More...
 
- Public Member Functions inherited from DirectGraphicalModels::CMessagePassing
 CMessagePassing (CGraphPairwise &graph)
 Constructor. More...
 
virtual ~CMessagePassing (void)
 
- Public Member Functions inherited from DirectGraphicalModels::CInfer
 CInfer (CGraph &graph)
 Constructor. More...
 
 CInfer (const CInfer &)=delete
 
virtual ~CInfer ()=default
 
const CInferoperator= (const CInfer &)=delete
 
vec_byte_t decode (unsigned int nIt=0, Mat &lossMatrix=EmptyMat)
 Approximate decoding. More...
 
vec_float_t getConfidence (void) const
 Returns the confidence of the perdiction. More...
 
vec_float_t getPotentials (byte state) const
 Returns the potnetials for the selected state (class) More...
 

Protected Member Functions

virtual void calculateMessages (unsigned int nIt)
 Calculates messages, associated with the edges of corresponding graphical model. More...
 
void calculateMessage (Edge &edge, float *temp, float *data)
 
- Protected Member Functions inherited from DirectGraphicalModels::CMessagePassing
CGraphPairwisegetGraphPairwise (void) const
 Returns the graph. More...
 
void calculateMessage (Edge *edge, float *temp, float *&dst, bool maxSum=false)
 Calculates one message for the specified edge edge. More...
 
void createMessages (void)
 Allocates memory for Edge::msg and Edge::msg_temp containers for all edges in the graph. More...
 
void deleteMessages (void)
 Deletes memory for Edge::msg and Edge::msg_temp containers for all edges in the graph. More...
 
void swapMessages (void)
 Swaps Edge::msg and Edge::msg_temp for all edges in the graph. More...
 
- Protected Member Functions inherited from DirectGraphicalModels::CInfer
CGraphgetGraph (void) const
 Returns the reference to the graph. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from DirectGraphicalModels::CMessagePassing
static float MatMul (const Mat &M, const float *v, float *&dst, bool maxSum=false)
 Specific matrix multiplication. More...
 

Detailed Description

Tree-reweighted inference class.

This class is based on the Tree-reweighted message passing algorithm (a modification of a max-poduct LBP algorithm), described in the paper Convergent Tree-reweighted Message Passing for Energy Minimization

Author
Sergey G. Kosov, serge.nosp@m.y.ko.nosp@m.sov@p.nosp@m.roje.nosp@m.ct-10.nosp@m..de

Definition at line 19 of file InferTRW.h.

Constructor & Destructor Documentation

◆ CInferTRW()

DirectGraphicalModels::CInferTRW::CInferTRW ( CGraphPairwise graph)
inline

Constructor.

Parameters
graphThe graph

Definition at line 26 of file InferTRW.h.

◆ ~CInferTRW()

virtual DirectGraphicalModels::CInferTRW::~CInferTRW ( void  )
inlinevirtual

Definition at line 27 of file InferTRW.h.

Member Function Documentation

◆ calculateMessage()

void DirectGraphicalModels::CInferTRW::calculateMessage ( Edge edge,
float *  temp,
float *  data 
)
protected

Definition at line 131 of file InferTRW.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateMessages()

void DirectGraphicalModels::CInferTRW::calculateMessages ( unsigned int  nIt)
protectedvirtual

Calculates messages, associated with the edges of corresponding graphical model.

This function may modify Edge::msg and Edge::msg_temp containers of graph edges

Parameters
nItNumber of iterations

Implements DirectGraphicalModels::CMessagePassing.

Definition at line 51 of file InferTRW.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ infer()

void DirectGraphicalModels::CInferTRW::infer ( unsigned int  nIt = 1)
virtual

Inference.

This function estimates the marginal potentials for each graph node, and stores them as node potentials

This function modifies Node::Pot containers of graph nodes

Parameters
nItNumber of iterations
Note
This function must not to be linear, i.e. \( infer(\alpha\times N)\not\equiv\alpha\times infer(N) \)
This function substitutes the graph nodes' potentials with estimated marginal potentials

Reimplemented from DirectGraphicalModels::CMessagePassing.

Definition at line 7 of file InferTRW.cpp.

Here is the call graph for this function:

The documentation for this class was generated from the following files: