30 #ifndef GUM_SEARCHSTRATEGY_H 31 #define GUM_SEARCHSTRATEGY_H 54 template <
typename GUM_SCALAR >
58 template <
typename GUM_SCALAR >
72 template <
typename GUM_SCALAR >
73 class SearchStrategy {
81 SearchStrategy< GUM_SCALAR >();
84 SearchStrategy< GUM_SCALAR >(
const SearchStrategy< GUM_SCALAR >& from);
87 virtual ~SearchStrategy< GUM_SCALAR >();
90 SearchStrategy< GUM_SCALAR >&
91 operator=(
const SearchStrategy< GUM_SCALAR >& from);
99 void setTree(DFSTree< GUM_SCALAR >* tree);
104 const Pattern* child,
105 const EdgeGrowth< GUM_SCALAR >& growth) = 0;
107 virtual bool operator()(LabelData* i, LabelData* j) = 0;
108 virtual bool operator()(Pattern* i, Pattern* j) = 0;
125 template <
typename GUM_SCALAR >
175 template <
typename GUM_SCALAR >
213 double __inner_cost(
const Pattern* p);
214 double __outer_cost(
const Pattern* p);
215 void __compute_costs(
const Pattern* p);
244 void __buildPatternGraph(
248 std::pair< Size, Size >
262 template <
typename GUM_SCALAR >
305 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 306 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 307 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 308 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 314 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 315 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 316 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 317 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 323 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 324 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 325 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 326 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 332 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 333 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 334 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 335 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeSet inners
Returns the set of inner nodes.
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.
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...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
HashTable< const Pattern *, std::pair< double, double > > __map
This is class is an implementation of a strict strategy for the GSpan algorithm.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
PRMAttribute is a member of a Class in a PRM.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
SearchStrategy< GUM_SCALAR > & operator=(const SearchStrategy< GUM_SCALAR > &from)
Copy operator.