28const std::vector<std::string>
memoryPatterns = {
"trivial",
"fixedcounter",
"selectivecounter",
"ring",
"fixedring",
"settablebits",
"full"};
36 "If this is set, actions will not be ordered canonically. Could yield incorrect results.")
43 "Reduces the model size by performing qualitative analysis (E.g. merge states with prob. 1.")
49 "Sets the maximal number of allowed memory states (1 means memoryless schedulers).")
51 .setDefaultValueUnsignedInteger(1)
58 .setDefaultValueString(
"full")
63 "mode",
"Sets whether lower bounds, upper bounds, or interval bounds are computed.")
65 .setDefaultValueString(
"both")
73 "Transforms reward-bounded reachability properties to an unbounded problem on an unfolded POMDP.")
77 "levelwidths",
"Comma-separated reward level widths (integers from 0 to INT64_MAX).")
78 .setDefaultValueString(
"")
143 std::vector<uint64_t> result;
144 for (
auto&& range : input | std::ranges::views::split(
',')) {
145 std::string
const token(range.begin(), range.end());
147 auto const [end, error] = std::from_chars(token.data(), token.data() + token.size(), width);
148 STORM_LOG_THROW(error == std::errc{} && end == token.data() + token.size() && width <= std::numeric_limits<int64_t>::max(),
149 storm::exceptions::InvalidArgumentException,
150 "Invalid reward level width '" << token <<
"'. Expected an unsigned integer fitting in int64_t.");
151 result.push_back(width);
162 if (pattern ==
"trivial") {
164 }
else if (pattern ==
"fixedcounter") {
166 }
else if (pattern ==
"selectivecounter") {
168 }
else if (pattern ==
"ring") {
170 }
else if (pattern ==
"fixedring") {
172 }
else if (pattern ==
"settablebits") {
174 }
else if (pattern ==
"full") {
184 "Memory bound greater one is not possible with the trivial memory pattern.");
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.
static std::shared_ptr< ArgumentValidator< uint64_t > > createUnsignedGreaterValidator(uint64_t lowerBound)
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.
ModuleSettings(std::string const &moduleName)
Constructs a new settings object.
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.
void finalize() override
Prepares the modules for further usage, should be called at the end of the initialization,...
POMDPSettings()
Creates a new set of POMDP settings.
bool isBoundedToUnboundedReachabilityTransformationSet() const
bool check() const override
Checks whether the settings are consistent.
std::string getExportToParametricFilename() const
bool isExportToParametricSet() const
storm::storage::PomdpMemoryPattern getMemoryPattern() const
bool isQualitativeReductionSet() const
bool isRewardObservableSet() const
bool isSelfloopReductionSet() const
bool isBeliefExplorationSet() const
bool isCheckFullyObservableSet() const
uint64_t getMemoryBound() const
bool isQualitativeAnalysisSet() const
static const std::string moduleName
std::vector< uint64_t > getLevelWidthForBoundedReachability() const
bool isBeliefExplorationUnfoldSet() const
bool isAnalyzeUniqueObservationsSet() const
bool isBeliefExplorationDiscretizeSet() const
bool isNoCanonicSet() const
#define STORM_LOG_THROW_UNCONDITIONALLY(exception, message)
#define STORM_LOG_THROW(cond, exception, message)
const std::string memoryPatternOption
const std::string beliefExplorationOption
const std::string isQualitativeOption
const std::string analyzeUniqueObservationsOption
const std::string isBoundedToUnboundedReachabilityTransformationOption
const std::string memoryBoundOption
const std::string isRewardObservableOption
const std::string noCanonicOption
const std::string checkFullyObservableOption
const std::string exportAsParametricModelOption
const std::vector< std::string > beliefExplorationModes
const std::string selfloopReductionOption
const std::string qualitativeReductionOption
const std::vector< std::string > memoryPatterns