You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.8 KiB
44 lines
1.8 KiB
#include "DftExplorationHeuristic.h"
|
|
|
|
#include "storm/adapters/RationalFunctionAdapter.h"
|
|
#include "storm/exceptions/NotImplementedException.h"
|
|
|
|
namespace storm {
|
|
namespace builder {
|
|
|
|
template<>
|
|
double DFTExplorationHeuristicProbability<double>::getPriority() const {
|
|
return probability;
|
|
}
|
|
|
|
template<typename ValueType>
|
|
double DFTExplorationHeuristicProbability<ValueType>::getPriority() const {
|
|
STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "Heuristic 'probability' does not work for this data type.");
|
|
}
|
|
|
|
template<>
|
|
double DFTExplorationHeuristicBoundDifference<double>::getPriority() const {
|
|
double difference = lowerBound - upperBound; // Lower bound is larger than upper bound
|
|
difference = 2 * difference / (upperBound + lowerBound);
|
|
return probability * difference;
|
|
}
|
|
|
|
template<typename ValueType>
|
|
double DFTExplorationHeuristicBoundDifference<ValueType>::getPriority() const {
|
|
STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "Heuristic 'bound difference' does not work for this data type.");
|
|
}
|
|
|
|
// Instantiate templates.
|
|
template class DFTExplorationHeuristic<double>;
|
|
template class DFTExplorationHeuristicDepth<double>;
|
|
template class DFTExplorationHeuristicProbability<double>;
|
|
template class DFTExplorationHeuristicBoundDifference<double>;
|
|
|
|
#ifdef STORM_HAVE_CARL
|
|
template class DFTExplorationHeuristic<storm::RationalFunction>;
|
|
template class DFTExplorationHeuristicDepth<storm::RationalFunction>;
|
|
template class DFTExplorationHeuristicProbability<storm::RationalFunction>;
|
|
template class DFTExplorationHeuristicBoundDifference<storm::RationalFunction>;
|
|
#endif
|
|
}
|
|
}
|