40 #ifndef GUM_LEARNING_3_OFF_2_H 41 #define GUM_LEARNING_3_OFF_2_H 47 #include <agrum/config.h> 73 const std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double >& e1,
74 const std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double >& e2)
82 tuple< std::tuple< NodeId, NodeId, NodeId >*,
double,
double,
double >&
85 tuple< std::tuple< NodeId, NodeId, NodeId >*,
double,
double,
double >&
169 template <
typename GUM_SCALAR =
double,
170 typename GRAPH_CHANGES_SELECTOR,
171 typename PARAM_ESTIMATOR >
173 PARAM_ESTIMATOR& estimator,
177 const std::vector< Arc > latentVariables()
const;
180 void setMiicBehaviour();
182 void set3off2Behaviour();
186 HashTable< std::pair< NodeId, NodeId >,
char > constraints);
209 HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >& sep_set,
230 HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >& sep_set,
245 const HashTable< std::pair< NodeId, NodeId >,
246 std::vector< NodeId > >& sep_set);
258 const HashTable< std::pair< NodeId, NodeId >,
259 std::vector< NodeId > >& sep_set);
271 const HashTable< std::pair< NodeId, NodeId >,
272 std::vector< NodeId > >& sep_set);
284 void _findBestContributor(
287 const std::vector< NodeId >& ui,
301 std::vector< std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double > >
302 _getUnshieldedTriples(
const MixedGraph& graph,
304 const HashTable< std::pair< NodeId, NodeId >,
305 std::vector< NodeId > >& sep_set);
314 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
318 _getUnshieldedTriplesMIIC(
321 const HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >&
323 HashTable< std::pair< NodeId, NodeId >,
char >& marks);
329 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
335 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
338 double > > proba_triples);
359 bool __usemiic{
false};
372 const bool __existsDirectedPath(
const MixedGraph& graph,
Class representing a Bayesian Network.
ArcProperty< double > __arc_probas
Storing the propabilities for each arc set in the graph.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The class for generic Hash Tables.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
HashTable< std::pair< NodeId, NodeId >, char > __initial_marks
Initial marks for the orientation phase, used to convey constraints.
std::vector< Arc > __latent_couples
an empty vector of arcs
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The miic learning algorithm.
bool operator()(const std::pair< std::tuple< NodeId, NodeId, NodeId, std::vector< NodeId > > *, double > &e1, const std::pair< std::tuple< NodeId, NodeId, NodeId, std::vector< NodeId > > *, double > &e2) const
Heap data structureThis structure is a basic heap data structure, i.e., it is a container in which el...
std::size_t Size
In aGrUM, hashed values are unsigned long int.
const std::vector< NodeId > __empty_set
an empty conditioning set
Size __N
size of the database
Size NodeId
Type for node ids.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Base class for mixed graphs.