30template<
typename ValueType,
typename ConstantType>
62 uint_fast64_t numberOfSamples = 0,
double const& precision = 0.000001,
bool dotOutput =
false);
81 std::vector<ExpectedMonotonicityResult>
checkMonotonicityInBuild(std::ostream& outfile,
bool usePLA =
false, std::string dotOutfileName =
"dotOutput");
97 void extendOrderWithAssumptions(std::shared_ptr<Order> order, uint_fast64_t val1, uint_fast64_t val2, std::vector<Assumption> assumptions,
100 std::shared_ptr<models::ModelBase> model;
102 std::vector<std::shared_ptr<logic::Formula const>> formulas;
108 bool onlyCheckOnOrder;
112 std::map<VariableType, std::vector<uint_fast64_t>> occuringStatesAtVariable;
114 std::map<std::shared_ptr<Order>, std::pair<std::shared_ptr<MonotonicityResult<VariableType>>, std::vector<Assumption>>> monResults;
116 std::unique_ptr<OrderExtender<ValueType, ConstantType>> extender;
118 ConstantType precision;
124 std::unordered_map<ValueType, std::unordered_map<VariableType, ValueType>> derivatives;
static std::pair< bool, bool > checkDerivative(ValueType const &derivative, storage::ParameterRegion< ValueType > const ®)
Checks if a derivative >=0 or/and <=0.
MonotonicityHelper(Environment const &env, std::shared_ptr< models::sparse::Model< ValueType > > model, std::vector< std::shared_ptr< logic::Formula const > > formulas, std::vector< storage::ParameterRegion< ValueType > > regions, uint_fast64_t numberOfSamples=0, double const &precision=0.000001, bool dotOutput=false)
Constructor of MonotonicityHelper.
std::vector< ExpectedMonotonicityResult > checkMonotonicityInBuild(std::ostream &outfile, bool usePLA=false, std::string dotOutfileName="dotOutput")
Builds Reachability Orders for the given model and simultaneously uses them to check for Monotonicity...
MonotonicityResult< VariableType >::Monotonicity Monotonicity
std::shared_ptr< LocalMonotonicityResult< VariableType > > createLocalMonotonicityResult(std::shared_ptr< Order > order, storage::ParameterRegion< ValueType > region)
Builds Reachability Orders for the given model and simultaneously uses them to check for Monotonicity...
storage::ParameterRegion< ValueType > Region
utility::parametric::VariableType< ValueType >::type VariableType
utility::parametric::CoefficientType< ValueType >::type CoefficientType
static std::pair< bool, bool > checkDerivative(ValueType derivative, storage::ParameterRegion< ValueType > reg)
Checks if a derivative >=0 or/and <=0.
storm::analysis::MonotonicityKind Monotonicity
This class represents a discrete-time Markov chain.
This class represents a (discrete-time) Markov decision process.
Base class for all sparse models.
A class that holds a possibly non-square matrix in the compressed row storage format.
The result of the order-based monotonicity analysis for one reachability order: the order itself,...
std::vector< Assumption > assumptions
std::shared_ptr< Order > order
std::shared_ptr< MonotonicityResult< VariableType > > monotonicityResult