Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AnnotatedRegion.h
Go to the documentation of this file.
1#pragma once
2
8
9namespace storm::modelchecker {
10template<typename ParametricType>
16
17 explicit AnnotatedRegion(Region const& region);
18
19 void propagateAnnotationsToSubregions(bool allowDeleteAnnotationsOfThis);
20
21 void splitAndPropagate(typename Region::Valuation const& splittingPoint, std::set<VariableType> const& consideredVariables,
22 std::set<VariableType> const& discreteVariables, bool allowDeleteAnnotationsOfThis);
23
24 void splitLeafNodeAtCenter(std::set<VariableType> const& splittingVariables, std::set<VariableType> const& discreteVariables,
25 bool allowDeleteAnnotationsOfThis);
26
27 void postOrderTraverseSubRegions(std::function<void(AnnotatedRegion<ParametricType>&)> const& visitor);
28
29 void preOrderTraverseSubRegions(std::function<void(AnnotatedRegion<ParametricType>&)> const& visitor);
30
31 uint64_t getMaxDepthOfSubRegions() const;
32
33 std::vector<AnnotatedRegion<ParametricType>> subRegions;
34
35 Region const region;
36
37 uint64_t refinementDepth{0};
38
41
43
45
46 storm::utility::Maximum<CoefficientType> knownLowerValueBound; // Maximal known lower bound on the value of the region
47 storm::utility::Minimum<CoefficientType> knownUpperValueBound; // Minimal known upper bound on the value of the region
48};
49} // namespace storm::modelchecker
storm::utility::parametric::CoefficientType< ParametricType >::type CoefficientType
storm::utility::parametric::Valuation< ParametricType > Valuation
storm::utility::parametric::VariableType< ParametricType >::type VariableType
RegionResult
The results for a single Parameter Region.
@ Unknown
the result is unknown
Extremum< storm::OptimizationDirection::Maximize, ValueType > Maximum
Definition Extremum.h:166
Extremum< storm::OptimizationDirection::Minimize, ValueType > Minimum
Definition Extremum.h:168
std::conditional_t< storm::NumberTraits< ValueType >::HasInfinity, ValueType, ExtendedNumber< ValueType > > ExtendedValueType
The type to use for values that may be infinite.
solver::OptimizationDirection OptimizationDirection
typename Region::VariableType VariableType
void propagateAnnotationsToSubregions(bool allowDeleteAnnotationsOfThis)
storm::modelchecker::MonotonicityAnnotation< ParametricType > monotonicityAnnotation
Whether the result is known through monotonicity.
storm::utility::ExtendedValueType< CoefficientType > ExtendedCoefficientType
bool resultKnownThroughMonotonicity
The result of the analysis of this region.
void postOrderTraverseSubRegions(std::function< void(AnnotatedRegion< ParametricType > &)> const &visitor)
void preOrderTraverseSubRegions(std::function< void(AnnotatedRegion< ParametricType > &)> const &visitor)
storm::modelchecker::RegionResult result
The depth of the refinement tree this region is in.
typename Region::CoefficientType CoefficientType
storm::utility::Maximum< CoefficientType > knownLowerValueBound
storm::utility::Minimum< CoefficientType > knownUpperValueBound
std::vector< AnnotatedRegion< ParametricType > > subRegions
uint64_t refinementDepth
The region this is an annotation for.
bool updateValueBound(ExtendedCoefficientType const &newValue, storm::OptimizationDirection dir)
what is known about this region in terms of monotonicity
storm::storage::ParameterRegion< ParametricType > Region
void splitLeafNodeAtCenter(std::set< VariableType > const &splittingVariables, std::set< VariableType > const &discreteVariables, bool allowDeleteAnnotationsOfThis)
Region const region
The subregions of this region.
void splitAndPropagate(typename Region::Valuation const &splittingPoint, std::set< VariableType > const &consideredVariables, std::set< VariableType > const &discreteVariables, bool allowDeleteAnnotationsOfThis)