93 lines
3.9 KiB
93 lines
3.9 KiB
#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_ */
|