STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample generation using MILP is currently only supported for MDPs.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Dtmc)||sparseModel->isOfType(storm::models::ModelType::Mdp),storm::exceptions::NotSupportedException,"Counterexample generation using MaxSAT is currently only supported for discrete-time models.");
STORM_LOG_THROW(sparseModel->isOfType(storm::models::ModelType::Dtmc),storm::exceptions::NotSupportedException,"Counterexample generation using shortest paths is currently only supported for DTMCs.");
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleOptionName,false,"Generates a counterexample for the given PRCTL formulas if not satisfied by the model.").setShortName(counterexampleOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleOptionName,false,"Generates a counterexample for the given PRCTL formulas if not satisfied by the model.").setShortName(counterexampleOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleTypeOptionName,false,"Generates a counterexample of the given type if the given PRCTL formula is not satisfied by the model.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,counterexampleTypeOptionName,false,"Generates a counterexample of the given type if the given PRCTL formula is not satisfied by the model.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("type","The type of the counterexample to compute.").setDefaultValueString("mincmd").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(cextype)).build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("type","The type of the counterexample to compute.").setDefaultValueString("mincmd").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(cextype)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,shortestPathMaxKOptionName,false,"Maximal number K of shortest paths to generate.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("maxk","Upper bound on number of generated paths. Default value is 10.").setDefaultValueUnsignedInteger(10).build()).build());
std::vector<std::string>method={"maxsat","milp"};
std::vector<std::string>method={"maxsat","milp"};
this->addOption(storm::settings::OptionBuilder(moduleName,minimalCommandMethodOptionName,true,"Sets which method is used to derive the counterexample in terms of a minimal command/edge set.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,minimalCommandMethodOptionName,true,"Sets which method is used to derive the counterexample in terms of a minimal command/edge set.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","The name of the method to use.").setDefaultValueString("maxsat").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(method)).build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("method","The name of the method to use.").setDefaultValueString("maxsat").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(method)).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,false,"If given, the loaded model will be written to the specified file in the dot format.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotOptionName,false,"If given, the loaded model will be written to the specified file in the dot format.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotMaxWidthOptionName,false,"The maximal width for labels in the dot format. For longer lines a linebreak is inserted. Value 0 represents no linebreaks.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,exportDotMaxWidthOptionName,false,"The maximal width for labels in the dot format. For longer lines a linebreak is inserted. Value 0 represents no linebreaks.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("width","The maximal line width for the dot format.").setDefaultValueUnsignedInteger(0).build()).build());
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("width","The maximal line width for the dot format. Default is 0 meaning no linebreaks.").setDefaultValueUnsignedInteger(0).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportJaniDotOptionName,false,"If given, the loaded jani model will be written to the specified file in the dot format.").setIsAdvanced()
this->addOption(storm::settings::OptionBuilder(moduleName,exportJaniDotOptionName,false,"If given, the loaded jani model will be written to the specified file in the dot format.").setIsAdvanced()
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename","The name of the file to which the model is to be written.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportCdfOptionName,false,"Exports the cumulative density function for reward bounded properties into a .csv file.").setIsAdvanced().setShortName(exportCdfOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("directory","A path to an existing directory where the cdf files will be stored.").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,exportCdfOptionName,false,"Exports the cumulative density function for reward bounded properties into a .csv file.").setIsAdvanced().setShortName(exportCdfOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("directory","A path to an existing directory where the cdf files will be stored.").build()).build());
xxxxxxxxxx