50#ifndef GUM_MARKOV_RANDOM_FIELD_MARGINAL_TARGETED_INFERENCE_H
51#define GUM_MARKOV_RANDOM_FIELD_MARGINAL_TARGETED_INFERENCE_H
75 template <
typename GUM_SCALAR >
133 virtual const Tensor< GUM_SCALAR >&
posterior(
const std::string& nodeName);
159 virtual void addTarget(
const std::string& nodeName)
final;
169 virtual void eraseTarget(
const std::string& nodeName)
final;
175 virtual bool isTarget(
const std::string& nodeName)
const final;
194 virtual GUM_SCALAR
H(
NodeId X)
final;
200 virtual GUM_SCALAR
H(
const std::string& nodeName)
final;
229 const std::vector< std::string >& evs);
This file contains abstract class definitions for Markov random fields inference classes.
Virtual base class for probabilistic graphical models.
Class representing the minimal interface for Markov random field.
MRFInference(const IMarkovRandomField< GUM_SCALAR > *mn)
default constructor
void _setAllMarginalTargets_()
sets all the nodes of the Markov net as targets
virtual void onAllMarginalTargetsAdded_()=0
fired after all the nodes of the MRF are added as marginal targets
virtual void onMarginalTargetErased_(const NodeId id)=0
fired before a marginal target is removed
virtual bool isTarget(NodeId node) const final
return true if variable is a (marginal) target
bool _targeted_mode_
whether the actual targets are default
virtual void onAllMarginalTargetsErased_()=0
fired before a all marginal targets are removed
bool isTargetedMode_() const
virtual ~MarginalTargetedMRFInference()
destructor
virtual const NodeSet & targets() const noexcept final
returns the list of marginal targets
NodeSet _targets_
the set of marginal targets
virtual void eraseTarget(NodeId target) final
removes an existing (marginal) target
Tensor< GUM_SCALAR > evidenceImpact(NodeId target, const NodeSet &evs)
Create a gum::Tensor for P(target|evs) (for all instanciation of target and evs).
virtual void addAllTargets() final
adds all nodes as targets
virtual void onModelChanged_(const GraphicalModel *mn)
fired after a new Markov net has been assigned to the engine
MarginalTargetedMRFInference(const IMarkovRandomField< GUM_SCALAR > *mn)
default constructor
virtual void addTarget(NodeId target) final
Add a marginal target to the list of targets.
virtual void onMarginalTargetAdded_(const NodeId id)=0
fired after a new marginal target is inserted
virtual const Tensor< GUM_SCALAR > & posterior_(NodeId id)=0
asks derived classes for the posterior of a given variable
virtual const Tensor< GUM_SCALAR > & posterior(NodeId node)
Computes and returns the posterior of a node.
virtual GUM_SCALAR H(NodeId X) final
Entropy Compute Shanon's entropy of a node given the observation.
virtual void eraseAllTargets()
Clear all previously defined targets.
virtual Size nbrTargets() const noexcept final
returns the number of marginal targets
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Size NodeId
Type for node ids.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
Implementation of the generic class for the computation of (possibly incrementally) marginal posterio...
gum is the global namespace for all aGrUM entities