|
Storm 1.11.1.1
A Modern Probabilistic Model Checker
|
#include <RegionModelChecker.h>
Public Types | |
| typedef storm::storage::ParameterRegion< ParametricType >::CoefficientType | CoefficientType |
| typedef storm::storage::ParameterRegion< ParametricType >::VariableType | VariableType |
| typedef storm::storage::ParameterRegion< ParametricType >::Valuation | Valuation |
Public Member Functions | |
| RegionModelChecker ()=default | |
| virtual | ~RegionModelChecker ()=default |
| virtual bool | canHandle (std::shared_ptr< storm::models::ModelBase > parametricModel, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const =0 |
| virtual void | specify (Environment const &env, std::shared_ptr< storm::models::ModelBase > parametricModel, CheckTask< storm::logic::Formula, ParametricType > const &checkTask, std::optional< RegionSplitEstimateKind > generateRegionSplitEstimates=std::nullopt, std::shared_ptr< MonotonicityBackend< ParametricType > > monotonicityBackend={}, bool allowModelSimplifications=true, bool graphPreserving=true)=0 |
| virtual RegionResult | analyzeRegion (Environment const &env, AnnotatedRegion< ParametricType > ®ion, RegionResultHypothesis const &hypothesis=RegionResultHypothesis::Unknown, bool sampleVerticesOfRegion=false)=0 |
| Analyzes the given region. | |
| RegionResult | analyzeRegion (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, RegionResultHypothesis const &hypothesis=RegionResultHypothesis::Unknown, bool sampleVerticesOfRegion=false) |
| Analyzes the given region. | |
| std::unique_ptr< storm::modelchecker::RegionCheckResult< ParametricType > > | analyzeRegions (Environment const &env, std::vector< storm::storage::ParameterRegion< ParametricType > > const ®ions, std::vector< RegionResultHypothesis > const &hypotheses, bool sampleVerticesOfRegion=false) |
| Analyzes the given regions. | |
| virtual CoefficientType | getBoundAtInitState (Environment const &env, AnnotatedRegion< ParametricType > ®ion, storm::solver::OptimizationDirection const &dirForParameters)=0 |
| Over-approximates the value within the given region. | |
| CoefficientType | getBoundAtInitState (Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, storm::solver::OptimizationDirection const &dirForParameters) |
| Over-approximates the value within the given region. | |
| virtual std::pair< CoefficientType, Valuation > | getAndEvaluateGoodPoint (Environment const &env, AnnotatedRegion< ParametricType > ®ion, storm::solver::OptimizationDirection const &dirForParameters)=0 |
| Heuristically finds a point within the region and computes the value at the initial state for that point. | |
| virtual RegionSplitEstimateKind | getDefaultRegionSplitEstimateKind (CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const |
| virtual bool | isRegionSplitEstimateKindSupported (RegionSplitEstimateKind kind, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const |
| std::optional< RegionSplitEstimateKind > | getSpecifiedRegionSplitEstimateKind () const |
| virtual std::vector< CoefficientType > | obtainRegionSplitEstimates (std::set< VariableType > const &relevantParameters) const |
| Returns an estimate of the benefit of splitting the last checked region with respect to each of the given parameters. | |
| virtual bool | isMonotonicitySupported (MonotonicityBackend< ParametricType > const &backend, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const =0 |
| Returns whether this region model checker can work together with the given monotonicity backend. | |
Protected Member Functions | |
| virtual void | specifySplitEstimates (std::optional< RegionSplitEstimateKind > splitEstimates, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) |
| virtual void | specifyMonotonicity (std::shared_ptr< MonotonicityBackend< ParametricType > > backend, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) |
Protected Attributes | |
| std::optional< storm::storage::ParameterRegion< ParametricType > > | lastCheckedRegion |
| std::optional< RegionSplitEstimateKind > | specifiedRegionSplitEstimateKind |
| std::shared_ptr< MonotonicityBackend< ParametricType > > | monotonicityBackend |
Definition at line 29 of file RegionModelChecker.h.
| typedef storm::storage::ParameterRegion<ParametricType>::CoefficientType storm::modelchecker::RegionModelChecker< ParametricType >::CoefficientType |
Definition at line 31 of file RegionModelChecker.h.
| typedef storm::storage::ParameterRegion<ParametricType>::Valuation storm::modelchecker::RegionModelChecker< ParametricType >::Valuation |
Definition at line 33 of file RegionModelChecker.h.
| typedef storm::storage::ParameterRegion<ParametricType>::VariableType storm::modelchecker::RegionModelChecker< ParametricType >::VariableType |
Definition at line 32 of file RegionModelChecker.h.
|
default |
|
virtualdefault |
|
pure virtual |
Analyzes the given region.
Assumes that a property with a threshold was specified.
specify must be called before. | region | the region to analyze plus what is already known about this region. The annotations might be updated. |
| hypothesis | if not 'unknown', the region checker only tries to show the hypothesis |
| sampleVerticesOfRegion | enables sampling of the vertices of the region in cases where AllSat/AllViolated could not be shown. |
Implemented in storm::modelchecker::SparseParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
| RegionResult storm::modelchecker::RegionModelChecker< ParametricType >::analyzeRegion | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| RegionResultHypothesis const & | hypothesis = RegionResultHypothesis::Unknown, |
||
| bool | sampleVerticesOfRegion = false |
||
| ) |
Analyzes the given region.
Assumes that a property with a threshold was specified.
specify must be called before. | region | the region to analyze plus what is already known about this region. The annotations might be updated. |
| hypothesis | if not 'unknown', the region checker only tries to show the hypothesis |
| sampleVerticesOfRegion | enables sampling of the vertices of the region in cases where AllSat/AllViolated could not be shown. |
Definition at line 13 of file RegionModelChecker.cpp.
| std::unique_ptr< storm::modelchecker::RegionCheckResult< ParametricType > > storm::modelchecker::RegionModelChecker< ParametricType >::analyzeRegions | ( | Environment const & | env, |
| std::vector< storm::storage::ParameterRegion< ParametricType > > const & | regions, | ||
| std::vector< RegionResultHypothesis > const & | hypotheses, | ||
| bool | sampleVerticesOfRegion = false |
||
| ) |
Analyzes the given regions.
specify must be called before. | hypothesis | if not 'unknown', we only try to show the hypothesis for each region If supported by this model checker, it is possible to sample the vertices of the regions whenever AllSat/AllViolated could not be shown. |
Definition at line 29 of file RegionModelChecker.cpp.
|
pure virtual |
Implemented in storm::modelchecker::SparseDtmcParameterLiftingModelChecker< SparseModelType, ConstantType, Robust >, storm::modelchecker::SparseMdpParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
|
pure virtual |
Heuristically finds a point within the region and computes the value at the initial state for that point.
The heuristic potentially takes annotations from the region such as monotonicity into account. Also data from previous analysis results might be used.
specify must be called before and the model has a single initial state. | region | the region to analyze plus what is already known about this region. The annotations might be updated. |
| dirForParameters | whether the heuristic tries to find a point with a high or low value |
Implemented in storm::modelchecker::SparseParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
|
pure virtual |
Over-approximates the value within the given region.
If dirForParameters maximizes, the returned value is an upper bound on the maximum value within the region. If dirForParameters minimizes, the returned value is a lower bound on the minimum value within the region.
specify must be called before and the model has a single initial state. | region | the region to analyze plus what is already known about this region. The annotations might be updated. |
| dirForParameters | whether to maximize or minimize the value in the region |
Implemented in storm::modelchecker::SparseParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
| RegionModelChecker< ParametricType >::CoefficientType storm::modelchecker::RegionModelChecker< ParametricType >::getBoundAtInitState | ( | Environment const & | env, |
| storm::storage::ParameterRegion< ParametricType > const & | region, | ||
| storm::solver::OptimizationDirection const & | dirForParameters | ||
| ) |
Over-approximates the value within the given region.
If dirForParameters maximizes, the returned value is an upper bound on the maximum value within the region. If dirForParameters minimizes, the returned value is a lower bound on the minimum value within the region.
specify must be called before and the model has a single initial state. | region | the region to analyze plus what is already known about this region. The annotations might be updated. |
| dirForParameters | whether to maximize or minimize the value in the region |
Definition at line 21 of file RegionModelChecker.cpp.
|
virtual |
Definition at line 45 of file RegionModelChecker.cpp.
| std::optional< RegionSplitEstimateKind > storm::modelchecker::RegionModelChecker< ParametricType >::getSpecifiedRegionSplitEstimateKind | ( | ) | const |
specify (if any) Definition at line 56 of file RegionModelChecker.cpp.
|
pure virtual |
Returns whether this region model checker can work together with the given monotonicity backend.
Implemented in storm::modelchecker::SparseDtmcParameterLiftingModelChecker< SparseModelType, ConstantType, Robust >, storm::modelchecker::SparseMdpParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
|
virtual |
Definition at line 50 of file RegionModelChecker.cpp.
|
virtual |
Returns an estimate of the benefit of splitting the last checked region with respect to each of the given parameters.
If a parameter is assigned a high value, we should prefer splitting with respect to this parameter.
specify must have set generateRegionSplitEstimates to a non-empty value and either analyzeRegion or getBoundAtInitState must have been called before. Reimplemented in storm::modelchecker::SparseDtmcParameterLiftingModelChecker< SparseModelType, ConstantType, Robust >.
Definition at line 61 of file RegionModelChecker.cpp.
|
pure virtual |
Implemented in storm::modelchecker::SparseDtmcParameterLiftingModelChecker< SparseModelType, ConstantType, Robust >, storm::modelchecker::SparseMdpParameterLiftingModelChecker< SparseModelType, ConstantType >, and storm::modelchecker::ValidatingSparseParameterLiftingModelChecker< SparseModelType, ImpreciseType, PreciseType >.
|
protectedvirtual |
Definition at line 83 of file RegionModelChecker.cpp.
|
protectedvirtual |
Definition at line 75 of file RegionModelChecker.cpp.
|
protected |
Definition at line 145 of file RegionModelChecker.h.
|
protected |
Definition at line 147 of file RegionModelChecker.h.
|
protected |
Definition at line 146 of file RegionModelChecker.h.