27 #ifndef GUM_SEARCHSTRATEGY_H 28 #define GUM_SEARCHSTRATEGY_H 51 template <
typename GUM_SCALAR >
55 template <
typename GUM_SCALAR >
69 template <
typename GUM_SCALAR >
70 class SearchStrategy {
78 SearchStrategy< GUM_SCALAR >();
81 SearchStrategy< GUM_SCALAR >(
const SearchStrategy< GUM_SCALAR >& from);
84 virtual ~SearchStrategy< GUM_SCALAR >();
87 SearchStrategy< GUM_SCALAR >&
88 operator=(
const SearchStrategy< GUM_SCALAR >& from);
96 void setTree(DFSTree< GUM_SCALAR >* tree);
101 const Pattern* child,
102 const EdgeGrowth< GUM_SCALAR >& growth) = 0;
104 virtual bool operator()(LabelData* i, LabelData* j) = 0;
105 virtual bool operator()(Pattern* i, Pattern* j) = 0;
122 template <
typename GUM_SCALAR >
172 template <
typename GUM_SCALAR >
210 double __inner_cost(
const Pattern* p);
211 double __outer_cost(
const Pattern* p);
212 void __compute_costs(
const Pattern* p);
241 void __buildPatternGraph(
245 std::pair< Size, Size >
259 template <
typename GUM_SCALAR >
302 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 303 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 304 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 305 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 311 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 312 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 313 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 314 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 320 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 321 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 322 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 323 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 329 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 330 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 331 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 332 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
void setTree(DFSTree< GUM_SCALAR > *tree)
aGrUM's Potential is a multi-dimensional array with tensor operators.
This class is used to define an edge growth of a pattern in this DFSTree.
Base classes for oriented graphs.
NodeSet inners
Returns the set of inner nodes.
Header file of gum::Sequence, a class for storing (ordered) sequences of objects. ...
Inner class to handle data about labels in this interface graph.
An PRMInstance is a Bayesian Network fragment defined by a Class and used in a PRMSystem.
The generic class for storing (ordered) sequences of objects.
UndiGraph graph
A yet to be triangulated undigraph.
Bijection< NodeId, const DiscreteVariable *> vars
Bijection between graph's nodes and their corresponding DiscreteVariable, for inference purpose...
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
DFSTree< GUM_SCALAR > * _tree
virtual bool accept_growth(const Pattern *parent, const Pattern *child, const EdgeGrowth< GUM_SCALAR > &growth)=0
A DFSTree is used by gspan to sort lexicographically patterns discovered in an interface graph...
A growth is accepted if and only if the new growth has a tree width less large or equal than its fath...
HashTable< const Pattern *, double > __map
NodeSet outputs
Returns the set of outputs nodes given all the matches of pattern.
virtual bool accept_root(const Pattern *r)=0
Bijection< NodeId, std::string > node2attr
A bijection to easily keep track between graph and attributes, its of the form instance_name DOT attr...
Headers of the DFSTree class.
NodeProperty< Size > mod
The pattern's variables modalities.
A PRMSlotChain represents a sequence of gum::prm::PRMClassElement<GUM_SCALAR> where the n-1 first gum...
Private structure to represent data about a pattern.
Inline implementation of the SearchStrategy class.
HashTable< const Pattern *, std::pair< double, double > > __map
This is class is an implementation of a strict strategy for the GSpan algorithm.
class for graph triangulations for which we enforce a given partial ordering on the nodes elimination...
This is class is an implementation of a simple serach strategy for the gspan algorithm: it accept a g...
double _computeCost(const Pattern &p)
Base class for undirected graphs.
Headers of InterfaceGraph.
PRMAttribute is a member of a Class in a PRM.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Headers of the Pattern class.
virtual bool operator()(LabelData *i, LabelData *j)=0
This contains all the information we want for a node in a DFSTree.
This is an abstract class used to tune search strategies in the gspan algorithm.
Set of pairs of elements with fast search for both elements.
SearchStrategy< GUM_SCALAR > & operator=(const SearchStrategy< GUM_SCALAR > &from)
Copy operator.