STORM_LOG_THROW(program.isDeterministicModel()||checkTask.isOptimizationDirectionSet(),storm::exceptions::InvalidPropertyException,"For nondeterministic systems, an optimization direction (min/max) must be given in the property.");
STORM_LOG_THROW(explorationInformation.getNumberOfInitialStates()==1,storm::exceptions::NotSupportedException,"Currently only models with one initial state are supported by the exploration engine.");
STORM_LOG_THROW(stateGeneration.getNumberOfInitialStates()==1,storm::exceptions::NotSupportedException,"Currently only models with one initial state are supported by the exploration engine.");
STORM_LOG_TRACE("Initializing bounds of action "<<(startRow+currentAction)<<" to "<<bounds.getLowerBoundForAction(startRow+currentAction)<<" and "<<bounds.getUpperBoundForAction(startRow+currentAction)<<".");
STORM_LOG_TRACE("Initializing bounds of action "<<(startAction+localAction)<<" to "<<bounds.getLowerBoundForAction(startAction+localAction)<<" and "<<bounds.getUpperBoundForAction(startAction+localAction)<<".");
STORM_LOG_TRACE("Initializing bounds of state "<<currentStateId<<" to "<<bounds.getLowerBoundForState(currentStateId,explorationInformation)<<" and "<<bounds.getUpperBoundForState(currentStateId,explorationInformation)<<".");
@ -292,7 +274,7 @@ namespace storm {
}
// Increase the size of the matrix, but leave the row empty.
std::cout<<"lower bound for state "<<relevantStates[index]<<" is "<<bounds.getLowerBoundForState(relevantStates[index],explorationInformation)<<std::endl;
this->addOption(storm::settings::OptionBuilder(moduleName,precomputationTypeOptionName,true,"Sets the kind of precomputation used. Available are: { local, global }.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the type to use.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(types)).setDefaultValueString("global").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfExplorationStepsUntilPrecomputationOptionName,false,"Sets the number of exploration steps to perform until a precomputation is triggered.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of exploration steps to perform.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfSampledPathsUntilPrecomputationOptionName,false,"If set, a precomputation is perfomed periodically after the given number of paths has been sampled.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of paths to sample until a precomputation is triggered.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfExplorationStepsUntilPrecomputationOptionName,true,"Sets the number of exploration steps to perform until a precomputation is triggered.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of exploration steps to perform.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,numberOfSampledPathsUntilPrecomputationOptionName,true,"If set, a precomputation is perfomed periodically after the given number of paths has been sampled.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("count","The number of paths to sample until a precomputation is triggered.").setDefaultValueUnsignedInteger(100000).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,nextStateHeuristicOptionName,true,"Sets the next-state heuristic to use. Available are: { probdiff, prob } where 'prob' samples according to the probabilities in the system and 'probdiff' weights the probabilities with the differences between the current bounds.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("name","The name of the heuristic to use.").addValidationFunctionString(storm::settings::ArgumentValidators::stringInListValidator(nextStateHeuristics)).setDefaultValueString("probdiff").build()).build());