Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AnnotatedRegion.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace storm::modelchecker {
9template<typename ParametricType>
14
15 explicit AnnotatedRegion(Region const& region);
16
17 void propagateAnnotationsToSubregions(bool allowDeleteAnnotationsOfThis);
18
19 void splitAndPropagate(typename Region::Valuation const& splittingPoint, std::set<VariableType> const& consideredVariables,
20 std::set<VariableType> const& discreteVariables, bool allowDeleteAnnotationsOfThis);
21
22 void splitLeafNodeAtCenter(std::set<VariableType> const& splittingVariables, std::set<VariableType> const& discreteVariables,
23 bool allowDeleteAnnotationsOfThis);
24
25 void postOrderTraverseSubRegions(std::function<void(AnnotatedRegion<ParametricType>&)> const& visitor);
26
27 void preOrderTraverseSubRegions(std::function<void(AnnotatedRegion<ParametricType>&)> const& visitor);
28
29 uint64_t getMaxDepthOfSubRegions() const;
30
31 std::vector<AnnotatedRegion<ParametricType>> subRegions;
32
33 Region const region;
34
35 uint64_t refinementDepth{0};
36
39
41
43
44 storm::utility::Maximum<CoefficientType> knownLowerValueBound; // Maximal known lower bound on the value of the region
45 storm::utility::Minimum<CoefficientType> knownUpperValueBound; // Minimal known upper bound on the value of the region
46};
47} // namespace storm::modelchecker
storm::utility::parametric::CoefficientType< ParametricType >::type CoefficientType
storm::utility::parametric::Valuation< ParametricType > Valuation
storm::utility::parametric::VariableType< ParametricType >::type VariableType
Stores and manages an extremal (maximal or minimal) value.
Definition Extremum.h:15
RegionResult
The results for a single Parameter Region.
@ Unknown
the result is unknown
typename Region::VariableType VariableType
void propagateAnnotationsToSubregions(bool allowDeleteAnnotationsOfThis)
storm::modelchecker::MonotonicityAnnotation< ParametricType > monotonicityAnnotation
Whether the result is known through monotonicity.
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.
void splitLeafNodeAtCenter(std::set< VariableType > const &splittingVariables, std::set< VariableType > const &discreteVariables, bool allowDeleteAnnotationsOfThis)
bool updateValueBound(CoefficientType const &newValue, storm::OptimizationDirection dir)
what is known about this region in terms of monotonicity
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)