Storm
1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DftExplorationHeuristic.cpp
Go to the documentation of this file.
1
#include "
storm-dft/builder/DftExplorationHeuristic.h
"
2
3
#include "
storm/adapters/RationalFunctionAdapter.h
"
4
#include "
storm/exceptions/NotImplementedException.h
"
5
6
namespace
storm::dft
{
7
namespace
builder
{
8
9
template
<>
10
double
DFTExplorationHeuristicProbability<double>::getPriority
()
const
{
11
return
probability
;
12
}
13
14
template
<
typename
ValueType>
15
double
DFTExplorationHeuristicProbability<ValueType>::getPriority
()
const
{
16
STORM_LOG_THROW
(
false
, storm::exceptions::NotImplementedException,
"Heuristic 'probability' does not work for this data type."
);
17
}
18
19
template
<>
20
double
DFTExplorationHeuristicBoundDifference<double>::getPriority
()
const
{
21
STORM_LOG_ASSERT
(
lowerBound
&&
upperBound
,
"Bounds have not been set for this heuristic."
);
22
double
difference = *
lowerBound
- *
upperBound
;
// Lower bound is larger than upper bound
23
difference = 2 * difference / (*
upperBound
+ *
lowerBound
);
24
return
probability
* difference;
25
}
26
27
template
<
typename
ValueType>
28
double
DFTExplorationHeuristicBoundDifference<ValueType>::getPriority
()
const
{
29
STORM_LOG_THROW
(
false
, storm::exceptions::NotImplementedException,
"Heuristic 'bound difference' does not work for this data type."
);
30
}
31
32
// Instantiate templates.
33
template
class
DFTExplorationHeuristicDepth<double>
;
34
template
class
DFTExplorationHeuristicProbability<double>
;
35
template
class
DFTExplorationHeuristicBoundDifference<double>
;
36
37
template
class
DFTExplorationHeuristicDepth<storm::RationalFunction>
;
38
template
class
DFTExplorationHeuristicProbability<storm::RationalFunction>
;
39
template
class
DFTExplorationHeuristicBoundDifference<storm::RationalFunction>
;
40
41
}
// namespace builder
42
}
// namespace storm::dft
DftExplorationHeuristic.h
NotImplementedException.h
RationalFunctionAdapter.h
storm::dft::builder::DFTExplorationHeuristicBoundDifference
Definition
DftExplorationHeuristic.h:143
storm::dft::builder::DFTExplorationHeuristicBoundDifference::lowerBound
std::optional< ValueType > lowerBound
The bounds are set by the model builder before the heuristic enters the exploration queue.
Definition
DftExplorationHeuristic.h:170
storm::dft::builder::DFTExplorationHeuristicBoundDifference::getPriority
double getPriority() const override
Definition
DftExplorationHeuristic.cpp:28
storm::dft::builder::DFTExplorationHeuristicBoundDifference::upperBound
std::optional< ValueType > upperBound
Definition
DftExplorationHeuristic.h:171
storm::dft::builder::DFTExplorationHeuristicDepth
Definition
DftExplorationHeuristic.h:81
storm::dft::builder::DFTExplorationHeuristicProbability
Definition
DftExplorationHeuristic.h:117
storm::dft::builder::DFTExplorationHeuristicProbability::getPriority
double getPriority() const override
Definition
DftExplorationHeuristic.cpp:15
storm::dft::builder::DFTExplorationHeuristicProbability::probability
ValueType probability
Definition
DftExplorationHeuristic.h:139
STORM_LOG_ASSERT
#define STORM_LOG_ASSERT(cond, message)
Definition
macros.h:9
STORM_LOG_THROW
#define STORM_LOG_THROW(cond, exception, message)
Definition
macros.h:28
storm::dft::builder
Definition
DFTBuilder.cpp:13
storm::dft
Definition
SFTBDDPropertyFormulaAdapter.h:18
src
storm-dft
builder
DftExplorationHeuristic.cpp
Generated by
1.15.0