#ifndef STORM_SETTINGS_MODULES_EXPLORATIONSETTINGS_H_ #define STORM_SETTINGS_MODULES_EXPLORATIONSETTINGS_H_ #include "src/settings/modules/ModuleSettings.h" namespace storm { namespace settings { namespace modules { /*! * This class represents the exploration settings. */ class ExplorationSettings : public ModuleSettings { public: // An enumeration of all available precomputation types. enum class PrecomputationType { Local, Global }; // The available heuristics to choose the next state. enum class NextStateHeuristic { DifferenceProbabilitySum, Probability, Uniform }; /*! * Creates a new set of exploration settings that is managed by the given manager. * * @param settingsManager The responsible manager. */ ExplorationSettings(storm::settings::SettingsManager& settingsManager); /*! * Retrieves whether local precomputation is to be used. * * @return True iff local precomputation is to be used. */ bool isLocalPrecomputationSet() const; /*! * Retrieves whether global precomputation is to be used. * * @return True iff global precomputation is to be used. */ bool isGlobalPrecomputationSet() const; /*! * Retrieves the selected precomputation type. * * @return The selected precomputation type. */ PrecomputationType getPrecomputationType() const; /*! * Retrieves the number of exploration steps to perform until a precomputation is triggered. * * @return The number of exploration steps to perform until a precomputation is triggered. */ uint_fast64_t getNumberOfExplorationStepsUntilPrecomputation() const; /* * Retrieves whether the option to perform a precomputation after a given number of sampled paths was set. * * @return True iff a precomputation after a given number of sampled paths is to be performed. */ bool isNumberOfSampledPathsUntilPrecomputationSet() const; /*! * Retrieves the number of paths to sample until a precomputation is triggered. * * @return The the number of paths to sample until a precomputation is triggered. */ uint_fast64_t getNumberOfSampledPathsUntilPrecomputation() const; /*! * Retrieves the selected next-state heuristic. * * @return The selected next-state heuristic. */ NextStateHeuristic getNextStateHeuristic() const; virtual bool check() const override; // The name of the module. static const std::string moduleName; private: // Define the string names of the options as constants. static const std::string precomputationTypeOptionName; static const std::string numberOfExplorationStepsUntilPrecomputationOptionName; static const std::string numberOfSampledPathsUntilPrecomputationOptionName; static const std::string nextStateHeuristicOptionName; }; } // namespace modules } // namespace settings } // namespace storm #endif /* STORM_SETTINGS_MODULES_EXPLORATIONSETTINGS_H_ */