this->addOption(storm::settings::OptionBuilder(moduleName,exportAsParametricModelOption,false,"Export the parametric file.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which to write the model.").build()).build());
@ -41,10 +42,12 @@ namespace storm {
this->addOption(storm::settings::OptionBuilder(moduleName,fscmode,false,"Sets the way the pMC is obtained").addArgument(storm::settings::ArgumentBuilder::createStringArgument("type","type name").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(fscModes)).setDefaultValueString("standard").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,transformBinaryOption,false,"Transforms the pomdp to a binary pomdp.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,transformSimpleOption,false,"Transforms the pomdp to a binary and simple pomdp.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,gridApproximationOption,false,"Analyze the POMDP using grid approximation.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("resolution","the resolution of the grid").setDefaultValueUnsignedInteger(10).addValidatorUnsignedInteger(storm::settings::ArgumentValidatorFactory::createUnsignedGreaterValidator(0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,gridApproximationOption,false,"Analyze the POMDP using grid approximation.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("resolution","the resolution of the grid").setDefaultValueUnsignedInteger(10).makeOptional().addValidatorUnsignedInteger(storm::settings::ArgumentValidatorFactory::createUnsignedGreaterValidator(0)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,limitBeliefExplorationOption,false,"Sets whether the belief space exploration is stopped if upper and lower bound are close").addArgument(
storm::settings::ArgumentBuilder::createDoubleArgument("threshold","the difference between upper and lower bound when to stop").setDefaultValueDouble(0.0).addValidatorDouble(storm::settings::ArgumentValidatorFactory::createDoubleRangeValidatorIncluding(0,1)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,memlessSearchOption,false,"Search for a qualitative memoryless scheuler").addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","method name").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(memlessSearchMethods)).setDefaultValueString("none").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,checkFullyObservableOption,false,"Performs standard model checking on the underlying MDP").build());
STORM_LOG_THROW(formulaInfo.isNonNestedReachabilityProbability()||formulaInfo.isNonNestedExpectedRewardFormula(),storm::exceptions::NotSupportedException,"Unsupported formula type for Grid approximation.");
STORM_LOG_THROW(!formulaInfo.getTargetStates().empty(),storm::exceptions::UnexpectedException,"The set of target states is empty.");
STORM_LOG_THROW(formulaInfo.getTargetStates().observationClosed,storm::exceptions::UnexpectedException,"Observations on target states also occur on non-target states. This is unexpected at this point.");