71 lines
2.9 KiB
71 lines
2.9 KiB
#ifndef STORM_SETTINGS_MODULES_SPARSEDTMCELIMINATIONMODELCHECKERSETTINGS_H_
|
|
#define STORM_SETTINGS_MODULES_SPARSEDTMCELIMINATIONMODELCHECKERSETTINGS_H_
|
|
|
|
#include "src/settings/modules/ModuleSettings.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
/*!
|
|
* This class represents the settings for the elimination-based DTMC model checker.
|
|
*/
|
|
class SparseDtmcEliminationModelCheckerSettings : public ModuleSettings {
|
|
public:
|
|
/*!
|
|
* An enum that contains all available state elimination orders.
|
|
*/
|
|
enum class EliminationOrder { Forward, ForwardReversed, Backward, BackwardReversed, Random, StaticPenalty, DynamicPenalty, RegularExpression };
|
|
|
|
/*!
|
|
* An enum that contains all available techniques to solve parametric systems.
|
|
*/
|
|
enum class EliminationMethod { State, Scc, Hybrid};
|
|
|
|
/*!
|
|
* Creates a new set of parametric model checking settings.
|
|
*/
|
|
SparseDtmcEliminationModelCheckerSettings();
|
|
|
|
/*!
|
|
* Retrieves the selected elimination method.
|
|
*
|
|
* @return The selected elimination method.
|
|
*/
|
|
EliminationMethod getEliminationMethod() const;
|
|
|
|
/*!
|
|
* Retrieves the selected elimination order.
|
|
*
|
|
* @return The selected elimination order.
|
|
*/
|
|
EliminationOrder getEliminationOrder() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to eliminate entry states in the very end is set.
|
|
*
|
|
* @return True iff the option is set.
|
|
*/
|
|
bool isEliminateEntryStatesLastSet() const;
|
|
|
|
/*!
|
|
* Retrieves the maximal size of an SCC on which state elimination is to be directly applied.
|
|
*
|
|
* @return The maximal size of an SCC on which state elimination is to be directly applied.
|
|
*/
|
|
uint_fast64_t getMaximalSccSize() const;
|
|
|
|
const static std::string moduleName;
|
|
|
|
private:
|
|
const static std::string eliminationMethodOptionName;
|
|
const static std::string eliminationOrderOptionName;
|
|
const static std::string entryStatesLastOptionName;
|
|
const static std::string maximalSccSizeOptionName;
|
|
};
|
|
|
|
} // namespace modules
|
|
} // namespace settings
|
|
} // namespace storm
|
|
|
|
#endif /* STORM_SETTINGS_MODULES_SPARSEDTMCELIMINATIONMODELCHECKERSETTINGS_H_ */
|