50#ifndef GUM_MARKOV_RANDOM_FIELD_MARGINAL_TARGETED_INFERENCE_H
51#define GUM_MARKOV_RANDOM_FIELD_MARGINAL_TARGETED_INFERENCE_H
77 template < GUM_Numeric GUM_SCALAR >
135 virtual const Tensor< GUM_SCALAR >&
posterior(std::string_view nodeName);
161 virtual void addTarget(std::string_view nodeName)
final;
171 virtual void eraseTarget(std::string_view nodeName)
final;
177 virtual bool isTarget(std::string_view nodeName)
const final;
196 virtual GUM_SCALAR
H(
NodeId X)
final;
202 virtual GUM_SCALAR
H(std::string_view nodeName)
final;
231 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
virtual const NodeSet & targets() const noexcept final
returns the list of marginal targets
void _setAllMarginalTargets_()
sets all the nodes of the Markov net as targets
virtual Size nbrTargets() const noexcept final
returns the number of marginal targets
~MarginalTargetedMRFInference() override
destructor
void onModelChanged_(const GraphicalModel *mn) override
fired after a new Markov net has been assigned to the engine
bool isTargetedMode_() const
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
bool _targeted_mode_
whether the actual targets are default
virtual void onAllMarginalTargetsErased_()=0
fired before a all marginal targets are removed
NodeSet _targets_
the set of marginal targets
virtual GUM_SCALAR H(NodeId X) final
Entropy Compute Shanon's entropy of a node given the observation.
virtual void eraseTarget(NodeId target) final
removes an existing (marginal) target
virtual void eraseAllTargets()
Clear all previously defined targets.
Tensor< GUM_SCALAR > evidenceImpact(NodeId target, const NodeSet &evs)
Create a gum::Tensor for P(target|evs) (for all instantiation of target and evs).
virtual void addAllTargets() final
adds all nodes as targets
MarginalTargetedMRFInference(const IMarkovRandomField< GUM_SCALAR > *mn)
default constructor
virtual void addTarget(NodeId target) final
Add a marginal target to the list of targets.
virtual bool isTarget(NodeId node) const final
return true if variable is a (marginal) target
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.
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