20template<
typename ValueType>
32 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Should be handled by specialized heuristic.");
48 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Should be handled by specialized heuristic.");
52 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Should be handled by specialized heuristic.");
56 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Should be handled by specialized heuristic.");
60 STORM_LOG_THROW(
false, storm::exceptions::NotImplementedException,
"Should be handled by specialized heuristic.");
65 virtual bool isSkip(
double approximationThreshold)
const {
78template<
typename ValueType>
87 if (predecessor.
getDepth() + 1 < this->depth) {
102 bool isSkip(
double approximationThreshold)
const override {
114template<
typename ValueType>
125 STORM_LOG_ASSERT(!storm::utility::isZero<ValueType>(exitRate),
"Exit rate is 0");
140template<
typename ValueType>
double getPriority() const override
DFTExplorationHeuristicBoundDifference(size_t id, DFTExplorationHeuristic< ValueType > const &predecessor, ValueType rate, ValueType exitRate)
ValueType getUpperBound() const override
ValueType getLowerBound() const override
void setBounds(ValueType lowerBound, ValueType upperBound) override
DFTExplorationHeuristicBoundDifference(size_t id)
double getPriority() const override
DFTExplorationHeuristicDepth(size_t id, DFTExplorationHeuristic< ValueType > const &predecessor)
DFTExplorationHeuristicDepth(size_t id)
bool operator<(DFTExplorationHeuristic< ValueType > const &other) const override
size_t getDepth() const override
bool updateHeuristicValues(DFTExplorationHeuristic< ValueType > const &predecessor, ValueType, ValueType) override
bool isSkip(double approximationThreshold) const override
General super class for approximation heuristics.
DFTExplorationHeuristic(size_t id)
virtual ValueType getProbability() const
virtual bool isSkip(double approximationThreshold) const
virtual bool operator<(DFTExplorationHeuristic< ValueType > const &other) const
virtual void setBounds(ValueType, ValueType)
virtual ~DFTExplorationHeuristic()=default
virtual size_t getDepth() const
virtual ValueType getLowerBound() const
virtual double getPriority() const =0
virtual ValueType getUpperBound() const
virtual bool updateHeuristicValues(DFTExplorationHeuristic const &predecessor, ValueType rate, ValueType exitRate)=0
DFTExplorationHeuristicProbability(size_t id, DFTExplorationHeuristic< ValueType > const &predecessor, ValueType rate, ValueType exitRate)
bool updateHeuristicValues(DFTExplorationHeuristic< ValueType > const &predecessor, ValueType rate, ValueType exitRate) override
ValueType getProbability() const override
DFTExplorationHeuristicProbability(size_t id)
double getPriority() const override
#define STORM_LOG_ASSERT(cond, message)
#define STORM_LOG_THROW(cond, exception, message)
ApproximationHeuristic
Enum representing the heuristic used for deciding which states to expand.