15const std::string AbstractionSettings::methodOptionName =
"method";
17const std::string AbstractionSettings::useDecompositionOptionName =
"decomposition";
18const std::string AbstractionSettings::splitModeOptionName =
"split";
19const std::string AbstractionSettings::addAllGuardsOptionName =
"all-guards";
20const std::string AbstractionSettings::addInitialExpressionsOptionName =
"all-inits";
21const std::string AbstractionSettings::useInterpolationOptionName =
"interpolation";
22const std::string AbstractionSettings::precisionOptionName =
"precision";
23const std::string AbstractionSettings::relativeOptionName =
"relative";
24const std::string AbstractionSettings::pivotHeuristicOptionName =
"pivot-heuristic";
25const std::string AbstractionSettings::reuseResultsOptionName =
"reuse";
26const std::string AbstractionSettings::restrictToRelevantStatesOptionName =
"relevant";
27const std::string AbstractionSettings::solveModeOptionName =
"solve";
28const std::string AbstractionSettings::maximalAbstractionOptionName =
"maxabs";
29const std::string AbstractionSettings::rankRefinementPredicatesOptionName =
"rankpred";
30const std::string AbstractionSettings::constraintsOptionName =
"constraints";
31const std::string AbstractionSettings::useEagerRefinementOptionName =
"eagerref";
32const std::string AbstractionSettings::debugOptionName =
"debug";
33const std::string AbstractionSettings::injectRefinementPredicatesOptionName =
"injectref";
34const std::string AbstractionSettings::fixPlayer1StrategyOptionName =
"fixpl1strat";
35const std::string AbstractionSettings::fixPlayer2StrategyOptionName =
"fixpl2strat";
36const std::string AbstractionSettings::validBlockModeOptionName =
"validmode";
39 std::vector<std::string> methods = {
"games",
"bisimulation",
"bisim"};
44 .setDefaultValueString(
"bisim")
49 "The maximal number of abstraction to perform before solving is aborted.")
52 .setDefaultValueUnsignedInteger(20000)
56 std::vector<std::string> onOff = {
"on",
"off"};
62 .setDefaultValueString(
"on")
66 std::vector<std::string> splitModes = {
"all",
"none",
"non-guard"};
71 .setDefaultValueString(
"all")
75 std::vector<std::string> solveModes = {
"dd",
"sparse"};
80 .setDefaultValueString(
"sparse")
88 .setDefaultValueString(
"on")
93 "Sets whether all initial expressions are added as initial predicates.")
97 .setDefaultValueString(
"on")
102 "Sets whether interpolation is to be used to eliminate spurious pivot blocks.")
106 .setDefaultValueString(
"on")
113 .setDefaultValueDouble(1e-03)
122 .setDefaultValueString(
"off")
126 std::vector<std::string> pivotHeuristic = {
"nearest-max-dev",
"most-prob-path",
"max-weighted-dev"};
131 .setDefaultValueString(
"nearest-max-dev")
135 std::vector<std::string> reuseModes = {
"all",
"none",
"qualitative",
"quantitative"};
140 .setDefaultValueString(
"all")
145 "Sets whether to restrict to relevant states during the abstraction.")
149 .setDefaultValueString(
"on")
154 "Sets whether to rank the refinement predicates if there are multiple.")
158 .setDefaultValueString(
"off")
166 .setDefaultValueString(
"off")
178 "Specifies predicates used by the refinement instead of the derived predicates.")
181 .setDefaultValueString(
"")
189 .setDefaultValueString(
"on")
197 .setDefaultValueString(
"on")
205 .setDefaultValueString(
"off")
209 std::vector<std::string> validModes = {
"morepreds",
"blockenum"};
214 .setDefaultValueString(
"morepreds")
221 if (methodAsString ==
"games") {
223 }
else if (methodAsString ==
"bisimulation" || methodAsString ==
"bisim") {
226 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown abstraction-refinement method '" << methodAsString <<
"'.");
235 if (splitModeAsString ==
"all") {
237 }
else if (splitModeAsString ==
"none") {
239 }
else if (splitModeAsString ==
"non-guard") {
247 if (solveModeAsString ==
"dd") {
287 if (heuristicName ==
"nearest-max-dev") {
289 }
else if (heuristicName ==
"most-prob-path") {
291 }
else if (heuristicName ==
"max-weighted-dev") {
294 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown pivot selection heuristic '" << heuristicName <<
"'.");
299 if (reuseModeAsString ==
"all") {
301 }
else if (reuseModeAsString ==
"none") {
303 }
else if (reuseModeAsString ==
"qualitative") {
305 }
else if (reuseModeAsString ==
"quantitative") {
353 if (modeAsString ==
"morepreds") {
355 }
else if (modeAsString ==
"blockenum") {
virtual std::string getValueAsString() const =0
Retrieves the value of this argument as a string.
virtual bool setFromStringValue(std::string const &stringValue)=0
Tries to set the value of the argument from the given string.
virtual uint_fast64_t getValueAsUnsignedInteger() const =0
Retrieves the value of this argument as an unsigned integer.
virtual double getValueAsDouble() const =0
Retrieves the value of this argument as a double.
static ArgumentBuilder createUnsignedIntegerArgument(std::string const &name, std::string const &description)
Creates an unsigned integer argument with the given parameters.
static ArgumentBuilder createDoubleArgument(std::string const &name, std::string const &description)
Creates a double 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< double > > createDoubleRangeValidatorExcluding(double lowerBound, double upperBound)
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.
PivotSelectionHeuristic getPivotSelectionHeuristic() const
Retrieves the selected heuristic to select pivot blocks.
bool isUseEagerRefinementSet() const
Retrieves whether to refine eagerly.
bool isFixPlayer1StrategySet() const
Retrieves whether player 1 strategies are to be fixed.
bool isAddAllInitialExpressionsSet() const
Retrieves whether the option to add all initial expressions was set.
double getPrecision() const
Retrieves the precision that is used for detecting convergence.
SolveMode getSolveMode() const
Retrieves the mode with which to solve the games.
uint_fast64_t getMaximalAbstractionCount() const
Retrieves the maximal number of abstractions to perform until giving up on converging.
void setAddAllInitialExpressions(bool value)
Sets the option to add all initial expressions to the specified value.
std::string getInjectedRefinementPredicates() const
Retrieves a string containing refinement predicates to inject (if there are any).
SplitMode getSplitMode() const
Retrieves the selected split mode.
Method getAbstractionRefinementMethod() const
Retrieves the selected abstraction refinement method.
bool isUseInterpolationSet() const
Retrieves whether the option to use interpolation was set.
bool isUseDecompositionSet() const
Retrieves whether the option to use the decomposition was set.
bool isAddAllGuardsSet() const
Retrieves whether the option to add all guards was set.
static const std::string moduleName
ValidBlockMode getValidBlockMode() const
Retrieves the selected mode to guarantee valid blocks.
void setAddAllGuards(bool value)
Sets the option to add all guards to the specified value.
bool getRelativeTerminationCriterion() const
Retrieves whether to use a relative termination criterion for detecting convergence.
bool isConstraintsSet() const
Retrieves whether the constraints option was set.
ReuseMode getReuseMode() const
Retrieves the selected reuse mode.
bool isRankRefinementPredicatesSet() const
bool isInjectRefinementPredicatesSet() const
Retrieves whether the option to inject the refinement predicates is set.
bool isDebugSet() const
Retrieves whether the debug option was set.
AbstractionSettings()
Creates a new set of abstraction settings.
bool isFixPlayer2StrategySet() const
Retrieves whether player 2 strategies are to be fixed.
@ NearestMaximalDeviation
bool isRestrictToRelevantStatesSet() const
Retrieves whether only relevant states are to be considered.
std::string getConstraintString() const
Retrieves the string that specifies additional constraints.
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.
#define STORM_LOG_THROW(cond, exception, message)