22template<
typename ParametricType>
25template<
typename ParametricType>
28template<
typename ParametricType>
31template<
typename ParametricType>
44 void specify(
Environment const& env, std::shared_ptr<storm::models::ModelBase> parametricModel,
46 std::set<VariableType>
const& discreteVariables = {}, std::shared_ptr<MonotonicityBackend<ParametricType>> monotonicityBackend = {},
47 bool allowModelSimplifications =
true,
62 uint64_t monThresh = 0);
98 bool absolutePrecision, std::optional<storm::logic::Bound>
const& boundInvariant);
107 enum class Context { Partitioning, ExtremalValue };
108 std::set<VariableType> getSplittingVariablesEstimateBased(AnnotatedRegion<ParametricType>
const& region, Context context)
const;
109 std::set<VariableType> getSplittingVariablesRoundRobin(AnnotatedRegion<ParametricType>
const& region, Context context)
const;
111 std::set<VariableType> getSplittingVariables(AnnotatedRegion<ParametricType>
const& region, Context context)
const;
113 std::unique_ptr<RegionModelChecker<ParametricType>> regionChecker;
114 std::shared_ptr<MonotonicityBackend<ParametricType>> monotonicityBackend;
115 RegionSplittingStrategy regionSplittingStrategy;
116 std::set<VariableType> discreteVariables;
bool canHandle(std::shared_ptr< storm::models::ModelBase > parametricModel, CheckTask< storm::logic::Formula, ParametricType > const &checkTask) const
typename storm::storage::ParameterRegion< ParametricType >::VariableType VariableType
typename storm::storage::ParameterRegion< ParametricType >::CoefficientType CoefficientType
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.
storm::utility::ExtendedValueType< CoefficientType > ExtendedCoefficientType
RegionRefinementChecker(std::unique_ptr< RegionModelChecker< ParametricType > > &®ionChecker)
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 AllVio...
~RegionRefinementChecker()=default
std::pair< ExtendedCoefficientType, 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.
typename storm::storage::ParameterRegion< ParametricType >::Valuation Valuation
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, storm::pars::analysis::GraphPreservationStatus graphPreservationStatus=storm::pars::analysis::GraphPreservationStatus::GraphPreserving)
std::pair< ExtendedCoefficientType, Valuation > computeExtremalValueHelper(Environment const &env, storm::storage::ParameterRegion< ParametricType > const ®ion, storm::solver::OptimizationDirection const &dir, std::function< bool(ExtendedCoefficientType const &, ExtendedCoefficientType const &)> acceptGlobalBound, std::function< bool(ExtendedCoefficientType const &)> rejectInstance)
Finds the extremal value within the given region and with the given precision.
storm::utility::parametric::CoefficientType< ParametricType >::type CoefficientType
storm::utility::parametric::Valuation< ParametricType > Valuation
storm::utility::parametric::VariableType< ParametricType >::type VariableType
RegionResultHypothesis
hypothesis for the result for a single Parameter Region
GraphPreservationStatus
Describes to what extent a set of regions is known to be well-defined and to preserve the graph struc...
@ GraphPreserving
The regions are known (or assumed) to preserve the graph structure of the model.
std::conditional_t< storm::NumberTraits< ValueType >::HasInfinity, ValueType, ExtendedNumber< ValueType > > ExtendedValueType
The type to use for values that may be infinite.