aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
maxInducedWidthMCBayesNetGenerator.h
Go to the documentation of this file.
1/****************************************************************************
2 * This file is part of the aGrUM/pyAgrum library. *
3 * *
4 * Copyright (c) 2005-2025 by *
5 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
6 * - Christophe GONZALES(_at_AMU) *
7 * *
8 * The aGrUM/pyAgrum library is free software; you can redistribute it *
9 * and/or modify it under the terms of either : *
10 * *
11 * - the GNU Lesser General Public License as published by *
12 * the Free Software Foundation, either version 3 of the License, *
13 * or (at your option) any later version, *
14 * - the MIT license (MIT), *
15 * - or both in dual license, as here. *
16 * *
17 * (see https://agrum.gitlab.io/articles/dual-licenses-lgplv3mit.html) *
18 * *
19 * This aGrUM/pyAgrum library is distributed in the hope that it will be *
20 * useful, but WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
21 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES MERCHANTABILITY or FITNESS *
22 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
25 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR *
26 * OTHER DEALINGS IN THE SOFTWARE. *
27 * *
28 * See LICENCES for more details. *
29 * *
30 * SPDX-FileCopyrightText: Copyright 2005-2025 *
31 * - Pierre-Henri WUILLEMIN(_at_LIP6) *
32 * - Christophe GONZALES(_at_AMU) *
33 * SPDX-License-Identifier: LGPL-3.0-or-later OR MIT *
34 * *
35 * Contact : info_at_agrum_dot_org *
36 * homepage : http://agrum.gitlab.io *
37 * gitlab : https://gitlab.com/agrumery/agrum *
38 * *
39 ****************************************************************************/
40
41
48
49#ifndef GUM_MAX_INDUCED_WIDTH_MC_BAYES_NET_GENERATOR
50#define GUM_MAX_INDUCED_WIDTH_MC_BAYES_NET_GENERATOR
51
52#include <fstream>
53#include <iostream>
54#include <set>
55#include <sstream>
56#include <vector>
57
58#include <agrum/agrum.h>
59
61
62namespace gum {
81 template < typename GUM_SCALAR,
82 template < typename > class ICPTGenerator = SimpleCPTGenerator,
83 template < typename > class ICPTDisturber = SimpleCPTDisturber >
85 public MCBayesNetGenerator< GUM_SCALAR, ICPTGenerator, ICPTDisturber > {
86 public:
87 // ############################################################################
89 // ############################################################################
91
114 Size maxModality = 2,
115 Size maxInducedWidth = 3,
117 Idx p = 30,
118 Idx q = 40);
119
139 explicit MaxInducedWidthMCBayesNetGenerator(BayesNet< GUM_SCALAR > bayesNet,
140 Size maxInducedWidth = 3,
142 Idx p = 30,
143 Idx q = 40);
144
149
151
152 // ############################################################################
154 // ############################################################################
157
164
166
172
173 protected:
175
176 private:
181
182 bool _checkConditions_() final;
183 };
184
185
186#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
188#endif
189
190} /*namespace gum*/
191
193#endif // MCBAYESNETGENERATOR
Class for generating Bayesian networks.using MC algorithm cf.
#define NB_INIT_ITERATIONS
MCBayesNetGenerator(Size nbrNodes, Size maxArcs, Idx maxModality=2, Size iteration=NB_INIT_ITERATIONS, Idx p=30, Idx q=40)
Size maxlog10InducedWidth() const
Return a constant reference to the number of maximum parents imposed on the Markov Chain BayesNetGene...
void setMaxlog10InducedWidth(Size maxlog10InducedWidth)
Modifies the value of the number of maximum parents imposed on the BayesNetGenerator.
bool _checkConditions_() final
function to holding the the specification wanted for the Bayesian markov.
MaxInducedWidthMCBayesNetGenerator(Size nbrNodes, Size maxArcs, Size maxModality=2, Size maxInducedWidth=3, Idx iteration=NB_INIT_ITERATIONS, Idx p=30, Idx q=40)
Constructor.
<agrum/BN/generator/simpleCPTDisturber.h>
<agrum/BN/generator/simpleCPTGenerator.h>
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Definition types.h:74
Size Idx
Type for indexes.
Definition types.h:79
Source implementation of MaxInducedWidthMCBayesNetGenerator.
gum is the global namespace for all aGrUM entities
Definition agrum.h:46