30 #ifndef GUM_VARIABLE_SELECTOR_H 31 #define GUM_VARIABLE_SELECTOR_H 33 #include <agrum/tools/core/multiPriorityQueue.h> 34 #include <agrum/tools/core/set.h> 36 #include <agrum/tools/variables/discreteVariable.h> 80 double secondaryscore);
83 double secondaryscore);
91 bool isEmpty() {
return remainingVars__.empty(); }
93 void begin() { rvi__ = remainingVars__.beginSafe(); }
94 bool hasNext() {
return rvi__ != remainingVars__.endSafe(); }
99 void addVar__(
const DiscreteVariable* var);
Set< const DiscreteVariable *> remainingVars__
The set of remaining vars to select among.
INLINE void emplace(Args &&... args)
void removeVar__(const DiscreteVariable *var)
The set of remaining vars to select among.
void downdateScore(const DiscreteVariable *var, double score, double secondaryscore)
The set of remaining vars to select among.
void begin()
The set of remaining vars to select among.
~VariableSelector()
Default destructor.
HashTable< double, Set< const DiscreteVariable *> *> remainingVarsByScore__
HashTable associating to each score the set of variable having that score.
HashTable< const DiscreteVariable *, double > remainingVarsScore__
HashTable associating to each variable its score.
HashTable< const DiscreteVariable *, double > remainingVarsOtherScore__
HashTable associating to each variable its 2nd score.
bool hasNext()
The set of remaining vars to select among.
const DiscreteVariable * select()
Select the most relevant variable.
SetIteratorSafe< const DiscreteVariable *> rvi__
The set of remaining vars to select among.
bool isEmpty()
The set of remaining vars to select among.
void updateScore(const DiscreteVariable *var, double score, double secondaryscore)
The set of remaining vars to select among.
void next()
The set of remaining vars to select among.
const DiscreteVariable * current()
The set of remaining vars to select among.
VariableSelector(Set< const DiscreteVariable * > &startingSet)
Default constructor.
void addVar__(const DiscreteVariable *var)
The set of remaining vars to select among.