26 std::vector<std::string> strategies = {
"estimate",
"roundrobin",
"default"};
30 .setDefaultValueString(
"default")
34 std::vector<std::string> estimates = {
"delta",
"distance",
"deltaweighted",
"derivative"};
36 "Sets which estimate strategy is used for splitting regions (if splitting-stratgegy is estimate).")
39 .setDefaultValueString(
"delta")
43 std::vector<std::string> engines = {
"pl",
"exactpl",
"validatingpl",
"robustpl"};
47 .setDefaultValueString(
"pl")
64 if (engineString ==
"pl") {
66 }
else if (engineString ==
"exactpl") {
68 }
else if (engineString ==
"validatingpl") {
70 }
else if (engineString ==
"robustpl") {
73 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown region check engine '" << engineString <<
"'.");
83 if (strategyString ==
"default") {
85 }
else if (strategyString ==
"estimate") {
87 }
else if (strategyString ==
"roundrobin") {
90 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown splitting strategy '" << strategyString <<
"'.");
94 "Setting an estimate method requires setting the estimate splitting strategy");
99 if (!this->
getOption(estimateMethodName).getHasOptionBeenSet()) {
105 if (strategyString ==
"delta") {
107 }
else if (strategyString ==
"deltaweighted") {
109 }
else if (strategyString ==
"distance") {
111 }
else if (strategyString ==
"derivative") {
114 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown splitting strategy '" << strategyString <<
"'.");
virtual std::string getValueAsString() const =0
Retrieves the value of this argument as a string.
virtual int_fast64_t getValueAsInteger() const =0
Retrieves the value of this argument as an integer.
static ArgumentBuilder createIntegerArgument(std::string const &name, std::string const &description)
Creates an integer argument with the given parameters.
static ArgumentBuilder createStringArgument(std::string const &name, std::string const &description)
Creates a string argument with the given parameters.
static std::shared_ptr< ArgumentValidator< std::string > > createMultipleChoiceValidator(std::vector< std::string > const &choices)
This class provides the interface to create an option...
ArgumentBase const & getArgumentByName(std::string const &argumentName) const
Returns a reference to the argument with the specified long name.
bool getHasOptionBeenSet() const
Retrieves whether the option has been set.
This is the base class of the settings for a particular module.
void addOption(std::shared_ptr< Option > const &option)
Adds and registers the given option.
Option & getOption(std::string const &longName)
Retrieves the option with the given long name.
bool isSplittingThresholdSet() const
int getSplittingThreshold() const
static const std::string moduleName
std::optional< storm::modelchecker::RegionSplitEstimateKind > getRegionSplittingEstimateMethod() const
Retrieves which type of region splitting strategy should be used.
storm::modelchecker::RegionCheckEngine getRegionCheckEngine() const
Retrieves which type of region check should be performed.
RegionVerificationSettings()
storm::modelchecker::RegionSplittingStrategy::Heuristic getRegionSplittingHeuristic() const
Retrieves which type of region splitting strategy should be used.
#define STORM_LOG_ERROR_COND(cond, message)
#define STORM_LOG_THROW(cond, exception, message)
@ StateValueDeltaWeighted
RegionCheckEngine
The considered engine for region checking.
@ ParameterLifting
Parameter lifting approach.
@ ValidatingParameterLifting
Parameter lifting approach with a) inexact (and fast) computation first and b) exact validation of ob...
@ RobustParameterLifting
Parameter lifting approach based on robust markov models instead of generating nondeterminism.
@ ExactParameterLifting
Parameter lifting approach with exact arithmethics.
const std::string checkEngineOptionName
const std::string splittingHeuristicName
const std::string splittingThresholdName
const std::string estimateMethodName