37 #ifndef GUM_LEARNING_3_OFF_2_H 38 #define GUM_LEARNING_3_OFF_2_H 44 #include <agrum/config.h> 70 const std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double >& e1,
71 const std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double >& e2)
79 tuple< std::tuple< NodeId, NodeId, NodeId >*,
double,
double,
double >&
82 tuple< std::tuple< NodeId, NodeId, NodeId >*,
double,
double,
double >&
166 template <
typename GUM_SCALAR =
double,
167 typename GRAPH_CHANGES_SELECTOR,
168 typename PARAM_ESTIMATOR >
170 PARAM_ESTIMATOR& estimator,
174 const std::vector< Arc > latentVariables()
const;
177 void setMiicBehaviour();
179 void set3off2Behaviour();
183 HashTable< std::pair< NodeId, NodeId >,
char > constraints);
206 HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >& sep_set,
227 HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >& sep_set,
242 const HashTable< std::pair< NodeId, NodeId >,
243 std::vector< NodeId > >& sep_set);
255 const HashTable< std::pair< NodeId, NodeId >,
256 std::vector< NodeId > >& sep_set);
268 const HashTable< std::pair< NodeId, NodeId >,
269 std::vector< NodeId > >& sep_set);
281 void _findBestContributor(
284 const std::vector< NodeId >& ui,
298 std::vector< std::pair< std::tuple< NodeId, NodeId, NodeId >*,
double > >
299 _getUnshieldedTriples(
const MixedGraph& graph,
301 const HashTable< std::pair< NodeId, NodeId >,
302 std::vector< NodeId > >& sep_set);
311 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
315 _getUnshieldedTriplesMIIC(
318 const HashTable< std::pair< NodeId, NodeId >, std::vector< NodeId > >&
320 HashTable< std::pair< NodeId, NodeId >,
char >& marks);
326 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
332 std::vector< std::tuple< std::tuple< NodeId, NodeId, NodeId >*,
335 double > > proba_triples);
356 bool __usemiic{
false};
369 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.
This file contains general scheme for iteratively convergent algorithms.
Class representing Bayesian networks.
This file contains getters and setters defintion for ApproximationSchem settings. ...
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
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
Base classes for mixed directed/undirected graphs.
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.
Base classes for directed acyclic graphs.
Base class for mixed graphs.