29 #ifndef GUM_D_SEPARATION_H 30 #define GUM_D_SEPARATION_H 33 #include <agrum/BN/IBayesNet.h> 34 #include <agrum/agrum.h> 92 const NodeSet& hardEvidence,
93 const NodeSet& softEvidence,
98 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
100 const NodeSet& query,
101 const NodeSet& hardEvidence,
102 const NodeSet& softEvidence,
103 Set<
const TABLE< GUM_SCALAR >* >& potentials);
112 #ifndef GUM_NO_INLINE 113 # include <agrum/BN/algorithms/dSeparation_inl.h> 116 #include <agrum/BN/algorithms/dSeparation_tpl.h> dSeparation & operator=(dSeparation &&from)
move operator
INLINE void emplace(Args &&... args)
the d-separation algorithm as described in Koller & Friedman (2009)
void relevantPotentials(const IBayesNet< GUM_SCALAR > &bn, const NodeSet &query, const NodeSet &hardEvidence, const NodeSet &softEvidence, Set< const TABLE< GUM_SCALAR > * > &potentials)
update a set of potentials, keeping only those d-connected with query variables given evidence ...
dSeparation(dSeparation &&from)
move constructor
dSeparation & operator=(const dSeparation &from)
copy operator
void requisiteNodes(const DAG &dag, const NodeSet &query, const NodeSet &hardEvidence, const NodeSet &softEvidence, NodeSet &requisite)
Fill the 'requisite' nodeset with the requisite nodes in dag given a query and evidence.
dSeparation()
default constructor
dSeparation(const dSeparation &from)
copy constructor