32 #include <agrum/MN/MarkovNet.h> 34 #include <agrum/tools/variables/rangeVariable.h> 35 #include <agrum/tools/variables/labelizedVariable.h> 36 #include <agrum/tools/variables/discretizedVariable.h> 38 #include <agrum/tools/multidim/aggregators/amplitude.h> 39 #include <agrum/tools/multidim/aggregators/and.h> 40 #include <agrum/tools/multidim/aggregators/count.h> 41 #include <agrum/tools/multidim/aggregators/exists.h> 42 #include <agrum/tools/multidim/aggregators/forall.h> 43 #include <agrum/tools/multidim/aggregators/max.h> 44 #include <agrum/tools/multidim/aggregators/median.h> 45 #include <agrum/tools/multidim/aggregators/min.h> 46 #include <agrum/tools/multidim/aggregators/or.h> 48 #include <agrum/tools/multidim/ICIModels/multiDimNoisyAND.h> 49 #include <agrum/tools/multidim/ICIModels/multiDimNoisyORCompound.h> 50 #include <agrum/tools/multidim/ICIModels/multiDimNoisyORNet.h> 52 #include <agrum/tools/multidim/ICIModels/multiDimLogit.h> 54 #include <agrum/BN/generator/simpleCPTGenerator.h> 55 #include <agrum/tools/core/utils_string.h> 109 }
else if (
ds == 1) {
111 "Only one value for variable " <<
name <<
" (2 at least are needed).");
131 template <
typename GUM_SCALAR >
151 MarkovNet<
GUM_SCALAR > MarkovNet< GUM_SCALAR >::fromBN(
const BayesNet< GUM_SCALAR >& bn) {
152 MarkovNet< GUM_SCALAR > mn;
153 for (NodeId nod: bn.nodes()) {
154 mn.add(bn.variable(nod), nod);
156 mn.beginTopologyTransformation();
157 for (NodeId nod: bn.nodes()) {
158 mn.addFactor(bn.cpt(nod));
160 mn.endTopologyTransformation();
161 mn.setProperty(
"name", bn.propertyWithDefault(
"name",
"noname"));
249 if (
res ==
nullptr) {
271 "Variable " <<
name <<
"needs more than " <<
nbrmod <<
" modalities");
341 for (
const auto&
ns:
vs) {
344 for (
const auto&
ns:
vs) {
354 if (!
this->
empty()) {
356 for (
const auto no:
l) {
INLINE void emplace(Args &&... args)
NodeId build_node_for_MN(MarkovNet< GUM_SCALAR > &mn, std::string node, Size default_domain_size)