aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
IGraphChangesGenerator4DiGraph.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
47#ifndef GUM_LEARNING_IGRAPH_CHANGES_GENERATOR_4_DIGRAPH_H
48#define GUM_LEARNING_IGRAPH_CHANGES_GENERATOR_4_DIGRAPH_H
49
50#include <agrum/agrum.h>
51
54
55namespace gum {
56
57 namespace learning {
58
60 public:
63
66
67 // ##########################################################################
69 // ##########################################################################
71
73 virtual iterator begin() const = 0;
74
76 virtual const iterator& end() const = 0;
77
79
80 // ##########################################################################
82 // ##########################################################################
84
86 virtual void setGraph(const DiGraph& graph) = 0;
87
89 virtual void modifyGraph(const ArcAddition& change) = 0;
90
92 virtual void modifyGraph(const ArcDeletion& change) = 0;
93
95 virtual void modifyGraph(const ArcReversal& change) = 0;
96
98 virtual void modifyGraph(const GraphChange& change) = 0;
99
101 virtual void clearChanges() noexcept = 0;
102
104 virtual void notifyGetCompleted() = 0;
105
107 };
108
109 } /* namespace learning */
110
111} /* namespace gum */
112
113#endif /* GUM_LEARNING_IGRAPH_CHANGES_GENERATOR_4_DIGRAPH_H */
Base class for all oriented graphs.
Definition diGraph.h:130
SetIterator< Key > const_iterator
Types for STL compliance.
Definition set.h:143
The class for notifying learning algorithms of new arc additions.
The class for notifying learning algorithms of arc removals.
The class for notifying learning algorithms of arc reversals.
virtual iterator begin() const =0
returns an (unsafe) iterator on the beginning of the list of operators
virtual const iterator & end() const =0
returns an (unsafe) iterator on the end of the list of operators
virtual void modifyGraph(const ArcReversal &change)=0
notify the operator set of a change applied to the graph
iterator const_iterator
the const iterator for parsing the list of graph change operators
virtual void setGraph(const DiGraph &graph)=0
sets a new graph from which the operator will compute possible changes
virtual void modifyGraph(const ArcDeletion &change)=0
notify the operator set of a change applied to the graph
virtual void notifyGetCompleted()=0
notifies the generator that we have parsed all its legal changes
typename Set< GraphChange >::const_iterator iterator
the iterator for parsing the list of possible graph change operators
virtual void modifyGraph(const ArcAddition &change)=0
notify the operator set of a change applied to the graph
virtual void clearChanges() noexcept=0
empty the set of possible change operators that can be applied
virtual void modifyGraph(const GraphChange &change)=0
notify the operator set of a change applied to the graph
Base classes for oriented graphs.
the classes to account for structure changes in a graph
include the inlined functions if necessary
Definition CSVParser.h:54
gum is the global namespace for all aGrUM entities
Definition agrum.h:46