aGrUM 2.3.2
a C++ library for (probabilistic) graphical models
Miic.h File Reference

The Miic algorithm. More...

Include dependency graph for Miic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  gum::learning::GreaterPairOn2nd
class  gum::learning::GreaterAbsPairOn2nd
class  gum::learning::GreaterTupleOnLast
class  gum::learning::Miic
 The Miic learning algorithm. More...

Namespaces

namespace  gum
 gum is the global namespace for all aGrUM entities
namespace  gum::learning
 include the inlined functions if necessary

Macros

#define GUM_SL_EMIT(x, y, action, explain)

Typedefs

using gum::learning::CondThreePoints = std::tuple< NodeId, NodeId, NodeId, std::vector< NodeId > >
using gum::learning::CondRanking = std::pair< CondThreePoints*, double >
using gum::learning::ThreePoints = std::tuple< NodeId, NodeId, NodeId >
using gum::learning::Ranking = std::pair< ThreePoints*, double >
using gum::learning::ProbabilisticRanking = std::tuple< ThreePoints*, double, double, double >

Detailed Description

The Miic algorithm.

The Miic class implements the miic algorithm based on https://doi.org/10.1371/journal.pcbi.1005662. It starts by eliminating edges that correspond to independent variables to build the skeleton of the graph, and then directs the remaining edges to get an essential graph. Latent variables can be detected using bi-directed arcs.

Miic allows the option of adding constraints on the skeleton construction such as: a maximum number of parents, mandatory arcs, forbidden arcs or an order between the variables.

Author
Quentin FALCAND and Pierre-Henri WUILLEMIN(_at_LIP6) and Maria Virginia RUIZ CUEVAS

Definition in file Miic.h.

Macro Definition Documentation

◆ GUM_SL_EMIT

#define GUM_SL_EMIT ( x,
y,
action,
explain )
Value:
{ \
std::ostringstream action_stream; \
action_stream << action; \
std::ostringstream explain_stream; \
explain_stream << explain; \
GUM_EMIT4(onStructuralModification, x, y, action_stream.str(), explain_stream.str()); \
}

Definition at line 74 of file Miic.h.

74#define GUM_SL_EMIT(x, y, action, explain) \
75 { \
76 std::ostringstream action_stream; \
77 action_stream << action; \
78 std::ostringstream explain_stream; \
79 explain_stream << explain; \
80 GUM_EMIT4(onStructuralModification, x, y, action_stream.str(), explain_stream.str()); \
81 }

Referenced by gum::learning::Miic::_orientingVstructureMiic_(), gum::learning::Miic::_propagatingOrientationMiic_(), gum::learning::Miic::initiation_(), gum::learning::Miic::iteration_(), and gum::learning::Miic::orientationMiic_().