90 lines
3.4 KiB
90 lines
3.4 KiB
#ifndef STORM_SETTINGS_MODULES_BISIMULATIONSETTINGS_H_
|
|
#define STORM_SETTINGS_MODULES_BISIMULATIONSETTINGS_H_
|
|
|
|
#include "storm/settings/modules/ModuleSettings.h"
|
|
|
|
#include "storm/storage/dd/bisimulation/SignatureMode.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
/*!
|
|
* This class represents the bisimulation settings.
|
|
*/
|
|
class BisimulationSettings : public ModuleSettings {
|
|
public:
|
|
// An enumeration of all available bisimulation types.
|
|
enum class BisimulationType { Strong, Weak };
|
|
|
|
enum class QuotientFormat { Sparse, Dd };
|
|
|
|
enum class ReuseMode { None, BlockNumbers };
|
|
|
|
enum class InitialPartitionMode { Regular, Finer };
|
|
|
|
/*!
|
|
* Creates a new set of bisimulation settings.
|
|
*/
|
|
BisimulationSettings();
|
|
|
|
/*!
|
|
* Retrieves whether strong bisimulation is to be used.
|
|
*
|
|
* @return True iff strong bisimulation is to be used.
|
|
*/
|
|
bool isStrongBisimulationSet() const;
|
|
|
|
/*!
|
|
* Retrieves whether weak bisimulation is to be used.
|
|
*
|
|
* @return True iff weak bisimulation is to be used.
|
|
*/
|
|
bool isWeakBisimulationSet() const;
|
|
|
|
/*!
|
|
* Retrieves the format in which the quotient is to be extracted.
|
|
* NOTE: only applies to DD-based bisimulation.
|
|
*/
|
|
QuotientFormat getQuotientFormat() const;
|
|
|
|
/*!
|
|
* Retrieves whether representatives for blocks are to be used instead of the block numbers.
|
|
* NOTE: only applies to DD-based bisimulation.
|
|
*/
|
|
bool isUseRepresentativesSet() const;
|
|
|
|
/*!
|
|
* Retrieves the mode to compute signatures.
|
|
*/
|
|
storm::dd::bisimulation::SignatureMode getSignatureMode() const;
|
|
|
|
/*!
|
|
* Retrieves the selected reuse mode.
|
|
*/
|
|
ReuseMode getReuseMode() const;
|
|
|
|
/*!
|
|
* Retrieves the initial partition mode.
|
|
*/
|
|
InitialPartitionMode getInitialPartitionMode() 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 typeOptionName;
|
|
static const std::string representativeOptionName;
|
|
static const std::string quotientFormatOptionName;
|
|
static const std::string signatureModeOptionName;
|
|
static const std::string reuseOptionName;
|
|
static const std::string initialPartitionOptionName;
|
|
};
|
|
} // namespace modules
|
|
} // namespace settings
|
|
} // namespace storm
|
|
|
|
#endif /* STORM_SETTINGS_MODULES_BISIMULATIONSETTINGS_H_ */
|