|
Storm 1.11.1.1
A Modern Probabilistic Model Checker
|
#include <RegionRefinementChecker.h>
Public Types | |
| using | CoefficientType = typename storm::storage::ParameterRegion< ParametricType >::CoefficientType |
| using | VariableType = typename storm::storage::ParameterRegion< ParametricType >::VariableType |
| using | Valuation = typename storm::storage::ParameterRegion< ParametricType >::Valuation |
Public Member Functions | |
| RegionRefinementChecker (std::unique_ptr< RegionModelChecker< ParametricType > > &®ionChecker) | |
| ~RegionRefinementChecker ()=default | |
| bool | canHandle (std::shared_ptr< storm::models::ModelBase > parametricModel, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const |
| void | specify (Environment const &env, std::shared_ptr< storm::models::ModelBase > parametricModel, CheckTask< storm::logic::Formula, ParametricType > const &checkTask, RegionSplittingStrategy splittingStrategy=RegionSplittingStrategy(), std::set< VariableType > const &discreteVariables={}, std::shared_ptr< MonotonicityBackend< ParametricType > > monotonicityBackend={}, bool allowModelSimplifications=true, bool graphPreserving=true) |
| std::unique_ptr< storm::modelchecker::RegionRefinementCheckResult< ParametricType > > | performRegionPartitioning (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, std::optional< ParametricType > coverageThreshold, std::optional< uint64_t > depthThreshold=std::nullopt, RegionResultHypothesis const &hypothesis=RegionResultHypothesis::Unknown, uint64_t monThresh=0) |
| Iteratively refines the region until the region analysis yields a conclusive result (AllSat or AllViolated). | |
| std::pair< CoefficientType, Valuation > | computeExtremalValueHelper (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, storm::solver::OptimizationDirection const &dir, std::function< bool(CoefficientType, CoefficientType)> acceptGlobalBound, std::function< bool(CoefficientType)> rejectInstance) |
| Finds the extremal value within the given region and with the given precision. | |
| std::pair< CoefficientType, Valuation > | computeExtremalValue (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, storm::solver::OptimizationDirection const &dir, ParametricType const &precision, bool absolutePrecision, std::optional< storm::logic::Bound > const &boundInvariant) |
| Finds the extremal value within the given region and with the given precision. | |
| bool | verifyRegion (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, storm::logic::Bound const &bound) |
| Checks whether the bound is satisfied on the complete region. | |
Definition at line 30 of file RegionRefinementChecker.h.
| using storm::modelchecker::RegionRefinementChecker< ParametricType >::CoefficientType = typename storm::storage::ParameterRegion<ParametricType>::CoefficientType |
Definition at line 32 of file RegionRefinementChecker.h.
| using storm::modelchecker::RegionRefinementChecker< ParametricType >::Valuation = typename storm::storage::ParameterRegion<ParametricType>::Valuation |
Definition at line 34 of file RegionRefinementChecker.h.
| using storm::modelchecker::RegionRefinementChecker< ParametricType >::VariableType = typename storm::storage::ParameterRegion<ParametricType>::VariableType |
Definition at line 33 of file RegionRefinementChecker.h.
| storm::modelchecker::RegionRefinementChecker< ParametricType >::RegionRefinementChecker | ( | std::unique_ptr< RegionModelChecker< ParametricType > > && | regionChecker | ) |
Definition at line 24 of file RegionRefinementChecker.cpp.
|
default |
| bool storm::modelchecker::RegionRefinementChecker< ParametricType >::canHandle | ( | std::shared_ptr< storm::models::ModelBase > | parametricModel, |
| CheckTask< storm::logic::Formula, ParametricType > const & | checkTask | ||
| ) | const |
Definition at line 30 of file RegionRefinementChecker.cpp.
| std::pair< typename storm::storage::ParameterRegion< ParametricType >::CoefficientType, typename storm::storage::ParameterRegion< ParametricType >::Valuation > storm::modelchecker::RegionRefinementChecker< ParametricType >::computeExtremalValue | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| storm::solver::OptimizationDirection const & | dir, | ||
| ParametricType const & | precision, | ||
| bool | absolutePrecision, | ||
| std::optional< storm::logic::Bound > const & | boundInvariant | ||
| ) |
Finds the extremal value within the given region and with the given precision.
The returned value v corresponds to the value at the returned valuation. The actual maximum (minimum) lies in the interval [v, v'] ([v', v]) where v' is based on the precision. (With absolute precision, v' = v +/- precision).
| env | |
| region | The region in which to optimize |
| dir | The direction in which to optimize |
| precision | The required precision (unless boundInvariant is set). |
| absolutePrecision | true iff precision should be measured absolutely |
Definition at line 306 of file RegionRefinementChecker.cpp.
| std::pair< typename storm::storage::ParameterRegion< ParametricType >::CoefficientType, typename storm::storage::ParameterRegion< ParametricType >::Valuation > storm::modelchecker::RegionRefinementChecker< ParametricType >::computeExtremalValueHelper | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| storm::solver::OptimizationDirection const & | dir, | ||
| std::function< bool(CoefficientType, CoefficientType)> | acceptGlobalBound, | ||
| std::function< bool(CoefficientType)> | rejectInstance | ||
| ) |
Finds the extremal value within the given region and with the given precision.
The returned value v corresponds to the value at the returned valuation. The actual maximum (minimum) lies in the interval [v, v'] ([v', v]) where v' is based on the precision. (With absolute precision, v' = v +/- precision).
| env | |
| region | The region in which to optimize |
| dir | The direction in which to optimize |
| acceptGlobalBound | input is a (1) proposed global bound on the value and (2) a new value, output whether we will accept the new value if the global bound holds |
| rejectInstance | input some value from the parameter space, output whether we will reject because this exists |
Definition at line 212 of file RegionRefinementChecker.cpp.
| std::unique_ptr< storm::modelchecker::RegionRefinementCheckResult< ParametricType > > storm::modelchecker::RegionRefinementChecker< ParametricType >::performRegionPartitioning | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| std::optional< ParametricType > | coverageThreshold, | ||
| std::optional< uint64_t > | depthThreshold = std::nullopt, |
||
| RegionResultHypothesis const & | hypothesis = RegionResultHypothesis::Unknown, |
||
| uint64_t | monThresh = 0 |
||
| ) |
Iteratively refines the region until the region analysis yields a conclusive result (AllSat or AllViolated).
| region | the considered region |
| coverageThreshold | if given, the refinement stops as soon as the fraction of the area of the subregions with inconclusive result is less then this threshold |
| depthThreshold | if given, the refinement stops at the given depth. depth=0 means no refinement. |
| hypothesis | if not 'unknown', it is only checked whether the hypothesis holds within the given region. |
| monThresh | if given, determines at which depth to start using monotonicity |
Definition at line 122 of file RegionRefinementChecker.cpp.
| void storm::modelchecker::RegionRefinementChecker< ParametricType >::specify | ( | Environment const & | env, |
| std::shared_ptr< storm::models::ModelBase > | parametricModel, | ||
| CheckTask< storm::logic::Formula, ParametricType > const & | checkTask, | ||
| RegionSplittingStrategy | splittingStrategy = RegionSplittingStrategy(), |
||
| std::set< VariableType > const & | discreteVariables = {}, |
||
| std::shared_ptr< MonotonicityBackend< ParametricType > > | monotonicityBackend = {}, |
||
| bool | allowModelSimplifications = true, |
||
| bool | graphPreserving = true |
||
| ) |
Definition at line 36 of file RegionRefinementChecker.cpp.
| bool storm::modelchecker::RegionRefinementChecker< ParametricType >::verifyRegion | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| storm::logic::Bound const & | bound | ||
| ) |
Checks whether the bound is satisfied on the complete region.
Definition at line 325 of file RegionRefinementChecker.cpp.