![]() |
aGrUM
0.16.0
|
<agrum/PRM/structuredInference.h> More...
#include <structuredInference.h>
Public Attributes | |
Timer | timer |
Timer | plopTimer |
double | triang_time |
double | mining_time |
double | pattern_time |
double | inner_time |
double | obs_time |
double | full_time |
Public Member Functions | |
std::string | info () const |
Constructor & destructor. | |
StructuredInference (const PRM< GUM_SCALAR > &prm, const PRMSystem< GUM_SCALAR > &system, gspan::SearchStrategy< GUM_SCALAR > *strategy=0) | |
Default constructor. More... | |
StructuredInference (const StructuredInference &source) | |
Copy constructor. More... | |
virtual | ~StructuredInference () |
Destructor. More... | |
StructuredInference & | operator= (const StructuredInference &source) |
Copy operator. More... | |
Getters and setters. | |
void | setPatternMining (bool b) |
Tells this algorithm to use pattern mining or not. More... | |
virtual std::string | name () const |
Tells this algorithm to use pattern mining or not. More... | |
GSpan< GUM_SCALAR > & | gspan () |
Returns the instance of gspan used to search patterns. More... | |
const GSpan< GUM_SCALAR > & | gspan () const |
Returns the instance of gspan used to search patterns. More... | |
void | searchPatterns () |
Search for patterns without doing any computations. More... | |
Query methods. | |
void | marginal (const Chain &chain, Potential< GUM_SCALAR > &m) |
Compute the marginal of the formal attribute pointed by chain and stores it in m. More... | |
void | joint (const std::vector< Chain > &chains, Potential< GUM_SCALAR > &j) |
Compute the joint probability of the formals attributes pointed by chains and stores it in m. More... | |
Evidence handling. | |
EMap & | evidence (const PRMInstance< GUM_SCALAR > &i) |
Returns EMap of evidences over i. More... | |
EMap & | evidence (const PRMInstance< GUM_SCALAR > *i) |
Returns EMap of evidences over i. More... | |
const EMap & | evidence (const PRMInstance< GUM_SCALAR > &i) const |
Returns EMap of evidences over i. More... | |
const EMap & | evidence (const PRMInstance< GUM_SCALAR > *i) const |
Returns EMap of evidences over i. More... | |
bool | hasEvidence (const PRMInstance< GUM_SCALAR > &i) const |
Returns true if i has evidence. More... | |
bool | hasEvidence (const PRMInstance< GUM_SCALAR > *i) const |
Returns EMap of evidences over i. More... | |
bool | hasEvidence (const Chain &chain) const |
Returns true if i has evidence on PRMAttribute<GUM_SCALAR> a. More... | |
bool | hasEvidence () const |
Returns true if i has evidence on PRMAttribute<GUM_SCALAR> a. More... | |
void | addEvidence (const Chain &chain, const Potential< GUM_SCALAR > &p) |
Add an evidence to the given instance's elt. More... | |
void | removeEvidence (const Chain &chain) |
Remove evidence on the given instance's elt. More... | |
void | clearEvidence () |
Remove all evidences. More... | |
Public Types | |
typedef std::pair< const PRMInstance< GUM_SCALAR > *, const PRMAttribute< GUM_SCALAR > *> | Chain |
Code alias. More... | |
typedef NodeProperty< const Potential< GUM_SCALAR > *> | EMap |
Code alias. More... | |
typedef NodeProperty< const Potential< GUM_SCALAR > *>::iterator_safe | EMapIterator |
Code alias. More... | |
typedef NodeProperty< const Potential< GUM_SCALAR > *>::const_iterator_safe | EMapConstIterator |
Code alias. More... | |
Protected Member Functions | |
Protected members. | |
virtual void | _evidenceAdded (const typename PRMInference< GUM_SCALAR >::Chain &chain) |
See PRMInference::_evidenceAdded(). More... | |
virtual void | _evidenceRemoved (const typename PRMInference< GUM_SCALAR >::Chain &chain) |
See PRMInference::_evidenceRemoved(). More... | |
virtual void | _marginal (const typename PRMInference< GUM_SCALAR >::Chain &chain, Potential< GUM_SCALAR > &m) |
See PRMInference::_marginal(). More... | |
virtual void | _joint (const std::vector< typename PRMInference< GUM_SCALAR >::Chain > &queries, Potential< GUM_SCALAR > &j) |
See PRMInference::_joint(). More... | |
Classes | |
struct | CData |
Private structure to represent data about a Class<GUM_SCALAR>. More... | |
struct | PData |
Private structure to represent data about a pattern. More... | |
struct | RGData |
Private structure to represent data about a reduced graph. More... | |
Protected members. | |
virtual void | _evidenceAdded (const Chain &chain)=0 |
This method is called whenever an evidence is added, but AFTER any processing made by PRMInference. More... | |
virtual void | _evidenceRemoved (const Chain &chain)=0 |
This method is called whenever an evidence is removed, but BEFORE any processing made by PRMInference. More... | |
virtual void | _marginal (const Chain &chain, Potential< GUM_SCALAR > &m)=0 |
Generic method to compute the marginal of given element. More... | |
virtual void | _joint (const std::vector< Chain > &queries, Potential< GUM_SCALAR > &j)=0 |
Generic method to compute the marginal of given element. More... | |
PRM< GUM_SCALAR > const * | _prm |
The PRM<GUM_SCALAR> on which inference is done. More... | |
PRMSystem< GUM_SCALAR > const * | _sys |
The Model on which inference is done. More... | |
<agrum/PRM/structuredInference.h>
This PRM<GUM_SCALAR> inference algorithm exploits the GSpan<GUM_SCALAR> algorithm to discover new patters and exploit them in a structured way.
Definition at line 64 of file structuredInference.h.
|
inherited |
Code alias.
Definition at line 57 of file PRMInference.h.
|
inherited |
Code alias.
Definition at line 60 of file PRMInference.h.
|
inherited |
Code alias.
Definition at line 69 of file PRMInference.h.
|
inherited |
Code alias.
Definition at line 65 of file PRMInference.h.
gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference | ( | const PRM< GUM_SCALAR > & | prm, |
const PRMSystem< GUM_SCALAR > & | system, | ||
gspan::SearchStrategy< GUM_SCALAR > * | strategy = 0 |
||
) |
Default constructor.
Definition at line 36 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::StructuredInference< GUM_SCALAR >::full_time, gum::prm::StructuredInference< GUM_SCALAR >::inner_time, gum::prm::StructuredInference< GUM_SCALAR >::mining_time, gum::prm::StructuredInference< GUM_SCALAR >::obs_time, gum::prm::StructuredInference< GUM_SCALAR >::pattern_time, and gum::prm::StructuredInference< GUM_SCALAR >::triang_time.
gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference | ( | const StructuredInference< GUM_SCALAR > & | source | ) |
Copy constructor.
Definition at line 53 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::PRMInference< GUM_SCALAR >::_prm, and gum::prm::PRMInference< GUM_SCALAR >::_sys.
|
virtual |
Destructor.
Definition at line 63 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__cdata_map, gum::prm::StructuredInference< GUM_SCALAR >::__elim_map, gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::StructuredInference< GUM_SCALAR >::__outputs, gum::prm::StructuredInference< GUM_SCALAR >::__pdata, gum::prm::StructuredInference< GUM_SCALAR >::__trash, and gum::prm::StructuredInference< GUM_SCALAR >::operator=().
|
private |
Add the nodes in the reduced graph.
Add edges in the reduced graph.
Definition at line 735 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__elim_map, gum::UndiGraph::addEdge(), gum::NodeGraphPart::addNode(), gum::SequenceImplementation< Key, Alloc, std::is_scalar< Key >::value >::atPos(), gum::Set< Key, Alloc >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::mods, gum::prm::StructuredInference< GUM_SCALAR >::RGData::outputs(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::pool, gum::prm::StructuredInference< GUM_SCALAR >::RGData::reducedGraph, gum::SequenceImplementation< Key, Alloc, std::is_scalar< Key >::value >::size(), and gum::prm::StructuredInference< GUM_SCALAR >::RGData::var2node.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph().
|
private |
Definition at line 410 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::PData::matches.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph().
|
private |
Build the DAG corresponding to Pattern data.pattern, initialize pool with all the Potentials of all variables in data.pattern. The first match of data.pattern (aka data.match) is used.
Definition at line 349 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__allInstanceNoRefAttr(), gum::prm::StructuredInference< GUM_SCALAR >::__found_query, gum::prm::StructuredInference< GUM_SCALAR >::__insertNodeInElimLists(), gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::prm::StructuredInference< GUM_SCALAR >::__query_data, gum::prm::StructuredInference< GUM_SCALAR >::__str(), gum::UndiGraph::addEdge(), gum::NodeGraphPart::addNode(), gum::prm::StructuredInference< GUM_SCALAR >::PData::barren, gum::Set< Key, Alloc >::erase(), gum::Set< Key, Alloc >::exists(), gum::prm::StructuredInference< GUM_SCALAR >::PData::graph, gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::Set< Key, Alloc >::insert(), gum::BijectionImplementation< T1, T2, Alloc, Gen >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::PData::map, gum::prm::StructuredInference< GUM_SCALAR >::PData::matches, gum::prm::StructuredInference< GUM_SCALAR >::PData::mod, gum::prm::StructuredInference< GUM_SCALAR >::PData::node2attr, gum::prm::StructuredInference< GUM_SCALAR >::PData::obs(), gum::prm::StructuredInference< GUM_SCALAR >::PData::outputs(), gum::prm::StructuredInference< GUM_SCALAR >::PData::queries(), gum::MultiDimDecorator< GUM_SCALAR >::variablesSequence(), and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
private |
This calls __reducePattern() over each pattern and then build the reduced graph which is used for inference. The reduce graph is a triangulated instance graph.
Definition at line 209 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__addEdgesInReducedGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::StructuredInference< GUM_SCALAR >::__mining, gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), gum::prm::StructuredInference< GUM_SCALAR >::__trash, gum::prm::eliminateNode(), gum::StaticTriangulation::eliminationOrder(), gum::Set< Key, Alloc >::erase(), gum::Set< Key, Alloc >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::mining_time, gum::prm::StructuredInference< GUM_SCALAR >::RGData::mods, gum::prm::StructuredInference< GUM_SCALAR >::RGData::outputs(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::partial_order, gum::prm::StructuredInference< GUM_SCALAR >::pattern_time, gum::prm::StructuredInference< GUM_SCALAR >::plopTimer, gum::prm::StructuredInference< GUM_SCALAR >::RGData::pool, gum::prm::StructuredInference< GUM_SCALAR >::RGData::queries(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::reducedGraph, gum::Timer::reset(), gum::Set< Key, Alloc >::size(), gum::Timer::step(), and gum::prm::StructuredInference< GUM_SCALAR >::RGData::var2node.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), and gum::prm::StructuredInference< GUM_SCALAR >::searchPatterns().
|
private |
Add in data.queries() any queried variable in one of data.pattern matches.
Proceeds with the elimination of observed variables in math and then call __translatePotSet().
Definition at line 497 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__translatePotSet(), gum::prm::StructuredInference< GUM_SCALAR >::__trash, gum::prm::eliminateNode(), gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::prm::StructuredInference< GUM_SCALAR >::PData::map, gum::prm::StructuredInference< GUM_SCALAR >::PData::obs(), gum::Set< Key, Alloc >::size(), and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
private |
Definition at line 475 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__trash, gum::prm::eliminateNode(), gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::prm::StructuredInference< GUM_SCALAR >::PData::map, gum::prm::StructuredInference< GUM_SCALAR >::PData::obs(), gum::Set< Key, Alloc >::size(), and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
private |
Definition at line 312 of file structuredInference_tpl.h.
References gum::Set< Key, Alloc >::exists(), gum::prm::PRMInstance< GUM_SCALAR >::get(), gum::prm::PRMInstance< GUM_SCALAR >::getRefAttr(), gum::prm::PRMInference< GUM_SCALAR >::hasEvidence(), gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::Set< Key, Alloc >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::PData::matches, gum::prm::StructuredInference< GUM_SCALAR >::PData::obs(), gum::prm::StructuredInference< GUM_SCALAR >::PData::outputs(), gum::Set< Key, Alloc >::size(), and gum::prm::PRMInstance< GUM_SCALAR >::type().
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph().
|
private |
Add the reduced potentials of instances not in any used patterns.
Definition at line 613 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__cdata_map, gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::prm::StructuredInference< GUM_SCALAR >::__reducedInstances, gum::prm::StructuredInference< GUM_SCALAR >::__trash, gum::prm::PRMInference< GUM_SCALAR >::_sys, gum::prm::StructuredInference< GUM_SCALAR >::CData::aggregators(), gum::prm::PRMInstance< GUM_SCALAR >::begin(), gum::prm::PRMInstance< GUM_SCALAR >::bijection(), gum::prm::StructuredInference< GUM_SCALAR >::CData::c, gum::prm::copyPotential(), gum::prm::StructuredInference< GUM_SCALAR >::CData::elim_order(), gum::prm::eliminateNode(), gum::StaticTriangulation::eliminationOrder(), gum::prm::PRMInstance< GUM_SCALAR >::end(), gum::List< Val, Alloc >::erase(), gum::prm::PRMInference< GUM_SCALAR >::evidence(), gum::prm::PRMInstance< GUM_SCALAR >::get(), gum::prm::PRMInference< GUM_SCALAR >::hasEvidence(), gum::prm::StructuredInference< GUM_SCALAR >::CData::inners(), gum::Set< Key, Alloc >::insert(), gum::List< Val, Alloc >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::CData::instances, gum::prm::StructuredInference< GUM_SCALAR >::CData::mods, gum::prm::StructuredInference< GUM_SCALAR >::CData::moral_graph, gum::prm::StructuredInference< GUM_SCALAR >::CData::outputs(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::pool, gum::prm::StructuredInference< GUM_SCALAR >::CData::pool, gum::List< Val, Alloc >::push_back(), gum::prm::PRMInstance< GUM_SCALAR >::size(), gum::Set< Key, Alloc >::size(), gum::List< Val, Alloc >::size(), and gum::prm::PRMInstance< GUM_SCALAR >::type().
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph().
|
private |
Proceed with the elimination of all inner variables (observed or not) of all usable matches of Pattern p. Inner variables which are part of the query are not eliminated.
Definition at line 244 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__elim_map, gum::prm::StructuredInference< GUM_SCALAR >::__eliminateObservedNodes(), gum::prm::StructuredInference< GUM_SCALAR >::__eliminateObservedNodesInSource(), gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::prm::StructuredInference< GUM_SCALAR >::__query_data, gum::prm::StructuredInference< GUM_SCALAR >::__reducedInstances, gum::prm::StructuredInference< GUM_SCALAR >::__removeBarrenNodes(), gum::prm::StructuredInference< GUM_SCALAR >::__translatePotSet(), gum::prm::StructuredInference< GUM_SCALAR >::__trash, gum::prm::eliminateNode(), gum::StaticTriangulation::eliminationOrder(), gum::Set< Key, Alloc >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::obs_time, gum::prm::StructuredInference< GUM_SCALAR >::plopTimer, and gum::Timer::step().
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph().
|
private |
Definition at line 422 of file structuredInference_tpl.h.
References gum::SequenceImplementation< Key, Alloc, Gen >::back(), gum::prm::StructuredInference< GUM_SCALAR >::PData::barren, gum::MultiDimDecorator< GUM_SCALAR >::erase(), gum::SequenceImplementation< Key, Alloc, Gen >::erase(), gum::Set< Key, Alloc >::exists(), gum::prm::StructuredInference< GUM_SCALAR >::PData::graph, gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::Set< Key, Alloc >::insert(), gum::SequenceImplementation< Key, Alloc, Gen >::insert(), gum::EdgeGraphPart::neighbours(), gum::SequenceImplementation< Key, Alloc, Gen >::size(), and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
private |
Definition at line 1026 of file structuredInference_tpl.h.
References gum::Set< Key, Alloc >::erase(), gum::BijectionImplementation< T1, T2, Alloc, Gen >::eraseFirst(), gum::UndiGraph::eraseNode(), gum::NodeGraphPart::exists(), gum::Set< Key, Alloc >::exists(), gum::BijectionImplementation< T1, T2, Alloc, Gen >::existsFirst(), gum::prm::StructuredInference< GUM_SCALAR >::PData::graph, gum::prm::StructuredInference< GUM_SCALAR >::PData::inners(), gum::prm::StructuredInference< GUM_SCALAR >::PData::map, gum::prm::StructuredInference< GUM_SCALAR >::PData::mod, gum::prm::StructuredInference< GUM_SCALAR >::PData::node2attr, gum::prm::StructuredInference< GUM_SCALAR >::CData::pool, gum::prm::StructuredInference< GUM_SCALAR >::PData::pots, and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
|
private |
Definition at line 979 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__dot, gum::prm::PRMObject::name(), and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph().
|
private |
Definition at line 986 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__dot, gum::prm::PRMObject::name(), and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
|
private |
Definition at line 993 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__dot, gum::prm::PRMSlotChain< GUM_SCALAR >::lastElt(), and gum::prm::PRMObject::name().
|
private |
Translate a given Potential Set into one w.r.t. variables in match.
Definition at line 519 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__reducedInstances, gum::prm::copyPotential(), gum::BijectionImplementation< T1, T2, Alloc, std::is_scalar< T1 >::value &&std::is_scalar< T2 >::value >::existsFirst(), gum::BijectionImplementation< T1, T2, Alloc, std::is_scalar< T1 >::value &&std::is_scalar< T2 >::value >::first(), GUM_ERROR, gum::BijectionImplementation< T1, T2, Alloc, std::is_scalar< T1 >::value &&std::is_scalar< T2 >::value >::insert(), gum::prm::StructuredInference< GUM_SCALAR >::PData::map, gum::prm::StructuredInference< GUM_SCALAR >::PData::matches, and gum::prm::StructuredInference< GUM_SCALAR >::PData::vars.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__eliminateObservedNodes(), and gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
protectedvirtual |
|
protectedpure virtualinherited |
This method is called whenever an evidence is added, but AFTER any processing made by PRMInference.
Implemented in gum::prm::SVE< GUM_SCALAR >, and gum::prm::SVED< GUM_SCALAR >.
|
protectedvirtual |
See PRMInference::_evidenceRemoved().
Definition at line 99 of file structuredInference_tpl.h.
|
protectedpure virtualinherited |
This method is called whenever an evidence is removed, but BEFORE any processing made by PRMInference.
Implemented in gum::prm::SVE< GUM_SCALAR >, and gum::prm::SVED< GUM_SCALAR >.
|
protectedvirtual |
|
protectedpure virtualinherited |
Generic method to compute the marginal of given element.
queries | Set of pairs of PRMInstance<GUM_SCALAR> and PRMAttribute<GUM_SCALAR>. |
j | CPF filled with the joint probability of queries. It is initialized properly. |
Implemented in gum::prm::SVE< GUM_SCALAR >, and gum::prm::SVED< GUM_SCALAR >.
|
protectedvirtual |
See PRMInference::_marginal().
Definition at line 103 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__found_query, gum::prm::StructuredInference< GUM_SCALAR >::__pdata, gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::Set< Key, Alloc >::begin(), gum::MultiDimCombinationDefault< GUM_SCALAR, TABLE >::combine(), gum::MultiDimDecorator< GUM_SCALAR >::contains(), gum::Instantiation::end(), gum::prm::PRMInference< GUM_SCALAR >::evidence(), gum::prm::StructuredInference< GUM_SCALAR >::full_time, gum::MultiDimDecorator< GUM_SCALAR >::get(), gum::prm::PRMInference< GUM_SCALAR >::hasEvidence(), gum::Instantiation::inc(), gum::Set< Key, Alloc >::insert(), gum::prm::multPotential(), gum::Potential< GUM_SCALAR >::normalize(), gum::prm::StructuredInference< GUM_SCALAR >::RGData::pool, gum::Timer::reset(), gum::MultiDimDecorator< GUM_SCALAR >::set(), gum::Instantiation::setFirst(), gum::Set< Key, Alloc >::size(), gum::Timer::step(), gum::prm::StructuredInference< GUM_SCALAR >::timer, and gum::MultiDimDecorator< GUM_SCALAR >::variablesSequence().
|
protectedpure virtualinherited |
Generic method to compute the marginal of given element.
chain | |
m | CPF filled with the marginal of elt. It is initialized properly. |
Implemented in gum::prm::SVE< GUM_SCALAR >, and gum::prm::SVED< GUM_SCALAR >.
|
inherited |
Add an evidence to the given instance's elt.
chain | The variable being observed. |
p | The Potential added (by copy) as evidence. |
NotFound | Raised if elt does not belong to i. |
OperationNotAllowed | Raised if p is inconsistent with elt. |
Definition at line 109 of file PRMInference_tpl.h.
Referenced by gum::prm::o3prmr::O3prmrInterpreter::observe().
|
inherited |
Remove all evidences.
Definition at line 36 of file PRMInference_tpl.h.
|
inherited |
Returns EMap of evidences over i.
NotFound | if i has no evidence. |
Definition at line 156 of file PRMInference_tpl.h.
Referenced by gum::prm::SVED< GUM_SCALAR >::__insertEvidence(), gum::prm::SVE< GUM_SCALAR >::__insertEvidence(), gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), and gum::prm::StructuredInference< GUM_SCALAR >::_marginal().
|
inherited |
Returns EMap of evidences over i.
NotFound | if i has no evidence. |
Definition at line 177 of file PRMInference_tpl.h.
|
inherited |
Returns EMap of evidences over i.
NotFound | if i has no evidence. |
Definition at line 166 of file PRMInference_tpl.h.
|
inherited |
Returns EMap of evidences over i.
NotFound | if i has no evidence. |
Definition at line 187 of file PRMInference_tpl.h.
INLINE GSpan< GUM_SCALAR > & gum::prm::StructuredInference< GUM_SCALAR >::gspan | ( | ) |
Returns the instance of gspan used to search patterns.
Definition at line 1015 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan.
INLINE const GSpan< GUM_SCALAR > & gum::prm::StructuredInference< GUM_SCALAR >::gspan | ( | ) | const |
Returns the instance of gspan used to search patterns.
Definition at line 1021 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan.
|
inherited |
Returns true if i has evidence.
Definition at line 197 of file PRMInference_tpl.h.
Referenced by gum::prm::o3prmr::O3prmrInterpreter::observe(), and gum::prm::o3prmr::O3prmrInterpreter::unobserve().
|
inherited |
Returns EMap of evidences over i.
Definition at line 203 of file PRMInference_tpl.h.
|
inherited |
Returns true if i has evidence on PRMAttribute<GUM_SCALAR> a.
Definition at line 209 of file PRMInference_tpl.h.
|
inherited |
Returns true if i has evidence on PRMAttribute<GUM_SCALAR> a.
Definition at line 216 of file PRMInference_tpl.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__insertNodeInElimLists(), gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), and gum::prm::StructuredInference< GUM_SCALAR >::_marginal().
std::string gum::prm::StructuredInference< GUM_SCALAR >::info | ( | ) | const |
Definition at line 183 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::StructuredInference< GUM_SCALAR >::full_time, gum::prm::StructuredInference< GUM_SCALAR >::inner_time, gum::prm::StructuredInference< GUM_SCALAR >::mining_time, gum::prm::StructuredInference< GUM_SCALAR >::obs_time, gum::prm::StructuredInference< GUM_SCALAR >::pattern_time, and gum::prm::StructuredInference< GUM_SCALAR >::triang_time.
|
inherited |
Compute the joint probability of the formals attributes pointed by chains and stores it in m.
chains | A Set of strings of the form instance.attribute. |
j | An empty CPF which will be filed by the joint probability over chains. |
NotFound | Raised if some chain in chains does not point to a formal attribute. |
OperationNotAllowed | Raise if m is not empty. |
Definition at line 263 of file PRMInference_tpl.h.
|
inherited |
Compute the marginal of the formal attribute pointed by chain and stores it in m.
chain | A string of the form instance.attribute. |
m | An empty CPF which will be filed by the marginal of chain. |
NotFound | Raised if chain is invalid. |
WrongType | Raised if chain does not point to an PRMAttribute<GUM_SCALAR>. |
OperationNotAllowed | Raise if m is not empty. |
Definition at line 234 of file PRMInference_tpl.h.
Referenced by gum::prm::o3prmr::O3prmrInterpreter::query().
|
virtual |
Tells this algorithm to use pattern mining or not.
Implements gum::prm::PRMInference< GUM_SCALAR >.
Definition at line 1010 of file structuredInference_tpl.h.
StructuredInference< GUM_SCALAR > & gum::prm::StructuredInference< GUM_SCALAR >::operator= | ( | const StructuredInference< GUM_SCALAR > & | source | ) |
Copy operator.
Definition at line 84 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__gspan, gum::prm::PRMInference< GUM_SCALAR >::_prm, and gum::prm::PRMInference< GUM_SCALAR >::_sys.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
inherited |
Remove evidence on the given instance's elt.
chain | The variable being observed. |
NotFound | Raised if the given names are not found. |
WrongType | Raised if the elt is not an PRMAttribute<GUM_SCALAR>. |
Definition at line 221 of file PRMInference_tpl.h.
Referenced by gum::prm::o3prmr::O3prmrInterpreter::unobserve().
void gum::prm::StructuredInference< GUM_SCALAR >::searchPatterns | ( | ) |
Search for patterns without doing any computations.
Definition at line 965 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__found_query, gum::prm::StructuredInference< GUM_SCALAR >::__query, gum::prm::PRMInference< GUM_SCALAR >::_sys, and gum::prm::PRMInstance< GUM_SCALAR >::begin().
INLINE void gum::prm::StructuredInference< GUM_SCALAR >::setPatternMining | ( | bool | b | ) |
Tells this algorithm to use pattern mining or not.
Definition at line 974 of file structuredInference_tpl.h.
References gum::prm::StructuredInference< GUM_SCALAR >::__mining.
|
private |
Mapping between a Class<GUM_SCALAR> and data about instances reduced using only Class<GUM_SCALAR> level information.
Definition at line 263 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
private |
Unreduce the match containing the query.
Used to create strings
Definition at line 368 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__str().
|
private |
Mapping between a Pattern's match and its potential pool after inner variables were eliminated.
Definition at line 257 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__addEdgesInReducedGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
private |
Flag with an explicit name.
Definition at line 284 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph(), gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), and gum::prm::StructuredInference< GUM_SCALAR >::searchPatterns().
|
private |
Pointer over th GSpan<GUM_SCALAR> instance used by this class.
Definition at line 250 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), gum::prm::StructuredInference< GUM_SCALAR >::gspan(), gum::prm::StructuredInference< GUM_SCALAR >::info(), gum::prm::StructuredInference< GUM_SCALAR >::operator=(), gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
private |
Flag which tells to use pattern mining or not.
Definition at line 281 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), and gum::prm::StructuredInference< GUM_SCALAR >::setPatternMining().
|
private |
Definition at line 268 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::CData::outputs(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
private |
The pattern data of the pattern which one of its matches contains the query.
Definition at line 278 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
private |
The query.
Definition at line 274 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), and gum::prm::StructuredInference< GUM_SCALAR >::searchPatterns().
|
private |
Definition at line 285 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildPatternGraph(), and gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
|
private |
This keeps track of reduced instances.
Definition at line 271 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), and gum::prm::StructuredInference< GUM_SCALAR >::__translatePotSet().
|
private |
Keeping track of create potentials to delete them after inference.
Definition at line 266 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::__eliminateObservedNodes(), gum::prm::StructuredInference< GUM_SCALAR >::__eliminateObservedNodesInSource(), gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), and gum::prm::StructuredInference< GUM_SCALAR >::~StructuredInference().
|
protectedinherited |
The PRM<GUM_SCALAR> on which inference is done.
Definition at line 213 of file PRMInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::operator=(), gum::prm::PRMInference< double >::operator=(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
|
protectedinherited |
The Model on which inference is done.
Definition at line 216 of file PRMInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reduceAloneInstances(), gum::prm::StructuredInference< GUM_SCALAR >::operator=(), gum::prm::PRMInference< double >::operator=(), gum::prm::StructuredInference< GUM_SCALAR >::searchPatterns(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
double gum::prm::StructuredInference< GUM_SCALAR >::full_time |
Definition at line 385 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::_marginal(), gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
double gum::prm::StructuredInference< GUM_SCALAR >::inner_time |
Definition at line 383 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
double gum::prm::StructuredInference< GUM_SCALAR >::mining_time |
Definition at line 381 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
double gum::prm::StructuredInference< GUM_SCALAR >::obs_time |
Definition at line 384 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern(), gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
double gum::prm::StructuredInference< GUM_SCALAR >::pattern_time |
Definition at line 382 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().
Timer gum::prm::StructuredInference< GUM_SCALAR >::plopTimer |
Definition at line 379 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::__buildReduceGraph(), and gum::prm::StructuredInference< GUM_SCALAR >::__reducePattern().
Timer gum::prm::StructuredInference< GUM_SCALAR >::timer |
Definition at line 378 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::_marginal().
double gum::prm::StructuredInference< GUM_SCALAR >::triang_time |
Definition at line 380 of file structuredInference.h.
Referenced by gum::prm::StructuredInference< GUM_SCALAR >::info(), and gum::prm::StructuredInference< GUM_SCALAR >::StructuredInference().