Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MonotonicitySettings.cpp
Go to the documentation of this file.
2
7
10
11namespace storm {
12namespace settings {
13namespace modules {
14const std::string MonotonicitySettings::moduleName = "mon";
15const std::string MonotonicitySettings::usePLABounds = "useBounds";
16const std::string MonotonicitySettings::sccElimination = "eliminateSCCs";
17const std::string MonotonicitySettings::samplesMonotonicityAnalysis = "samples";
18
19const std::string MonotonicitySettings::dotOutput = "dotOutput";
20const std::string MonotonicitySettings::exportMonotonicityName = "exportMonotonicity";
21const std::string MonotonicitySettings::monSolution = "solutionFunction";
22const std::string MonotonicitySettings::monSolutionShortName = "msf";
23const std::string MonotonicitySettings::monotonicityThreshold = "depth";
24
25const std::string MonotonicitySettings::monotoneParameters = "parameters";
26
28 this->addOption(storm::settings::OptionBuilder(moduleName, usePLABounds, true, "Sets whether pla bounds should be used for monotonicity analysis")
29 .setIsAdvanced()
30 .build());
31 this->addOption(storm::settings::OptionBuilder(moduleName, sccElimination, true, "Sets whether SCCs should be eliminated in the monotonicity analysis")
32 .setIsAdvanced()
33 .build());
34 this->addOption(
35 storm::settings::OptionBuilder(moduleName, samplesMonotonicityAnalysis, true, "Sets whether monotonicity should be checked on samples")
36 .setIsAdvanced()
38 samplesMonotonicityAnalysis, "The number of samples taken in monotonicity-analysis can be given, default is 0, no samples")
40 .build())
41 .build());
42 this->addOption(
43 storm::settings::OptionBuilder(moduleName, monSolution, true, "Sets whether monotonicity should be checked on solution function or reachability order")
44 .setIsAdvanced()
45 .setShortName(monSolutionShortName)
46 .build());
47 this->addOption(storm::settings::OptionBuilder(moduleName, dotOutput, true, "Sets whether a dot output of the ROs is needed")
48 .setIsAdvanced()
49 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("dotFilename", "The output file.")
50 .setDefaultValueString("dotOutput")
51 .makeOptional()
52 .build())
53 .build());
54 this->addOption(storm::settings::OptionBuilder(moduleName, exportMonotonicityName, true, "Exports the result of monotonicity checking to the given file.")
55 .setIsAdvanced()
56 .addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "The output file.").build())
57 .build());
58 this->addOption(storm::settings::OptionBuilder(moduleName, monotonicityThreshold, true,
59 "Sets for region refinement after which depth whether monotonicity checking should be used.")
60 .setIsAdvanced()
62 monotonicityThreshold, "The depth threshold from which on monotonicity is used for Parameter Lifting")
64 .build())
65 .build());
66
67 this->addOption(
68 storm::settings::OptionBuilder(moduleName, monotoneParameters, true, "Sets monotone parameters from file.")
69 .setIsAdvanced()
70 .addArgument(
71 storm::settings::ArgumentBuilder::createStringArgument("monotoneParametersFilename", "The file where the monotone parameters are set").build())
72 .build());
73}
74
76 return this->getOption(usePLABounds).getHasOptionBeenSet();
77}
78
80 return this->getOption(sccElimination).getHasOptionBeenSet();
81}
82
84 return this->getOption(dotOutput).getHasOptionBeenSet();
85}
86
88 return this->getOption(monotoneParameters).getHasOptionBeenSet();
89}
90
92 return this->getOption(dotOutput).getArgumentByName("dotFilename").getValueAsString();
93}
94
96 return this->getOption(monotoneParameters).getArgumentByName("monotoneParametersFilename").getValueAsString();
97}
98
100 return this->getOption(samplesMonotonicityAnalysis).getArgumentByName("samples").getValueAsUnsignedInteger();
101}
102
104 return this->getOption(exportMonotonicityName).getHasOptionBeenSet();
105}
106
108 return this->getOption(exportMonotonicityName).getArgumentByName("filename").getValueAsString();
109}
110
114
116 return this->getOption(monSolution).getHasOptionBeenSet();
117}
118} // namespace modules
119} // namespace settings
120} // namespace storm
virtual std::string getValueAsString() const =0
Retrieves the value of this argument as a string.
virtual uint_fast64_t getValueAsUnsignedInteger() const =0
Retrieves the value of this argument as an unsigned integer.
static ArgumentBuilder createUnsignedIntegerArgument(std::string const &name, std::string const &description)
Creates an unsigned 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.
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.
Definition Option.cpp:79
bool getHasOptionBeenSet() const
Retrieves whether the option has been set.
Definition Option.cpp:125
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.
MonotonicitySettings()
Creates a new set of monotonicity checking settings.
std::string getDotOutputFilename() const
Retrieves the name of the file for a possible dot output.
uint64_t getMonotonicityThreshold() const
Retrieves the depth threshold from which on monotonicity should be used in parameter lifting.
bool isDotOutputSet() const
Retrieves whether a dot output of the reachability orders should be given.
bool isSccEliminationSet() const
Retrieves whether SCCs in the monotonicity analysis should be eliminated.
uint_fast64_t getNumberOfSamples() const
Retrieves the number of samples used for sampling in the monotonicity analysis.
SettingsType const & getModule()
Get module.
LabParser.cpp.
Definition cli.cpp:18