18const std::string FaultTreeSettings::noSymmetryReductionOptionName =
"nosymmetryreduction";
19const std::string FaultTreeSettings::noSymmetryReductionOptionShortName =
"nosymred";
20const std::string FaultTreeSettings::modularisationOptionName =
"modularisation";
21const std::string FaultTreeSettings::disableDCOptionName =
"disabledc";
22const std::string FaultTreeSettings::allowDCRelevantOptionName =
"allowdcrelevant";
23const std::string FaultTreeSettings::relevantEventsOptionName =
"relevantevents";
24const std::string FaultTreeSettings::addLabelsClaimingOptionName =
"labels-claiming";
25const std::string FaultTreeSettings::approximationErrorOptionName =
"approximation";
26const std::string FaultTreeSettings::approximationErrorOptionShortName =
"approx";
27const std::string FaultTreeSettings::approximationHeuristicOptionName =
"approximationheuristic";
28const std::string FaultTreeSettings::maxDepthOptionName =
"maxdepth";
29const std::string FaultTreeSettings::firstDependencyOptionName =
"firstdep";
30const std::string FaultTreeSettings::uniqueFailedBEOptionName =
"uniquefailedbe";
32const std::string FaultTreeSettings::solveWithSmtOptionName =
"smt";
34const std::string FaultTreeSettings::chunksizeOptionName =
"chunksize";
35const std::string FaultTreeSettings::mttfPrecisionName =
"mttf-precision";
36const std::string FaultTreeSettings::mttfStepsizeName =
"mttf-stepsize";
37const std::string FaultTreeSettings::mttfAlgorithmName =
"mttf-algorithm";
41 .setShortName(noSymmetryReductionOptionShortName)
52 "A comma separated list of names of relevant events. 'all' marks all events as "
53 "relevant, The default '' marks only the top level event as relevant.")
54 .setDefaultValueString(
"")
60 .setShortName(approximationErrorOptionShortName)
67 .setDefaultValueString(
"depth")
69 {
"depth",
"probability",
"bounddifference"}))
81 "chunksize",
"The size of the chunks used to calculate probabilities. Set to 0 for maximal size.")
82 .setDefaultValueUnsignedInteger(1)
86 "The precision used for detecting convergence of the iterative MTTF approximation method.")
89 .setDefaultValueDouble(1e-12)
94 "The stepsize used to iterativly approximate the integral in the MTTF approximation method.")
97 .setDefaultValueDouble(1e-10)
106 .setDefaultValueString(
"proceeding")
150 if (heuristicAsString ==
"depth") {
152 }
else if (heuristicAsString ==
"probability") {
154 }
else if (heuristicAsString ==
"bounddifference") {
157 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Illegal value '" << heuristicAsString <<
"' set as heuristic for approximation.");
178bool FaultTreeSettings::solveWithSMT()
const {
210 storm::exceptions::InvalidSettingsException,
"Maximal depth requires approximation heuristic depth.");
size_t getChunksize() const
Retrieves the size of the chunks to calculate proabilities with.
std::string getMttfAlgorithm() const
Retrieves the name of the Algorithm to use to approximate the MTTF.
bool areRelevantEventsSet() const
Retrieves whether the option to give relevant events is set.
double getApproximationError() const
Retrieves the relative error allowed for approximating the model checking result.
void finalize() override
Prepares the modules for further usage, should be called at the end of the initialization,...
static const std::string moduleName
bool isAddLabelsClaiming() const
Retrieves whether the labels for claimings should be added in the Markov chain.
bool isAllowDCForRelevantEvents() const
Retrieves whether the option to allow Dont Care propagation for relevant events is set.
bool useModularisation() const
Retrieves whether the option to use modularisation is set.
bool isTakeFirstDependency() const
Retrieves whether the non-determinism should be avoided by always taking the first possible dependenc...
double getMttfPrecision() const
Retrieves the Precision to detect the convergence of the mttf algorithm.
bool useSymmetryReduction() const
Retrieves whether the option to use symmetry reduction is set.
bool isApproximationErrorSet() const
Retrieves whether the option to compute an approximation is set.
FaultTreeSettings()
Creates a new set of DFT settings.
std::vector< std::string > getRelevantEvents() const
Retrieves the relevant events which should be present throughout the analysis.
bool isDisableDC() const
Retrieves whether the option to disable Dont Care propagation is set.
bool isUniqueFailedBE() const
Retrieves whether the DFT should be transformed to contain at most one constantly failed BE.
bool isChunksizeSet() const
Retrieves whether to calculate probabilities in chunks.
bool check() const override
Checks whether the settings are consistent.
storm::dft::builder::ApproximationHeuristic getApproximationHeuristic() const
Retrieves the heuristic used for approximation.
bool isMaxDepthSet() const
Retrieves whether the option to set a maximal exploration depth is set.
double getMttfStepsize() const
Retrieves the Stepsize for the mttf algorithm.
uint_fast64_t getMaxDepth() const
Retrieves the maximal exploration depth.
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.
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< double > > createDoubleGreaterEqualValidator(double 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.
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)
ApproximationHeuristic
Enum representing the heuristic used for deciding which states to expand.
std::vector< std::string > parseCommaSeperatedValues(std::string const &input)
Given a string seperated by commas, returns the values.