30 #ifndef GUM_BAYESBALLS_H 31 #define GUM_BAYESBALLS_H 35 #include <agrum/agrum.h> 37 #include <agrum/tools/core/hashTable.h> 38 #include <agrum/tools/core/list.h> 39 #include <agrum/tools/core/sequence.h> 41 #include <agrum/BN/IBayesNet.h> 79 const NodeSet& hardEvidence,
80 const NodeSet& softEvidence,
85 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
88 const NodeSet& hardEvidence,
89 const NodeSet& softEvidence,
90 Set<
const TABLE< GUM_SCALAR >* >& potentials);
98 # include <agrum/BN/algorithms/BayesBall_inl.h> 101 #include <agrum/BN/algorithms/BayesBall_tpl.h> BayesBall()
Default constructor.
INLINE void emplace(Args &&... args)
static 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 ...
Implementation of Shachter's Bayes Balls algorithm.
static 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.