You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.2 KiB
94 lines
3.2 KiB
#pragma once
|
|
|
|
#include "storm/settings/modules/ModuleSettings.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
/*!
|
|
* This class represents the settings for the abstraction procedures.
|
|
*/
|
|
class AbstractionSettings : public ModuleSettings {
|
|
public:
|
|
enum class PivotSelectionHeuristic {
|
|
NearestMaximalDeviation, MostProbablePath, MaxWeightedDeviation
|
|
};
|
|
|
|
enum class SplitMode {
|
|
All, None, NonGuard
|
|
};
|
|
|
|
enum class ReuseMode {
|
|
All, None, Qualitative, Quantitative
|
|
};
|
|
|
|
/*!
|
|
* Creates a new set of abstraction settings.
|
|
*/
|
|
AbstractionSettings();
|
|
|
|
/*!
|
|
* Retrieves whether the option to use the decomposition was set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isUseDecompositionSet() const;
|
|
|
|
/*!
|
|
* Retrieves the selected split mode.
|
|
*
|
|
* @return The selected split mode.
|
|
*/
|
|
SplitMode getSplitMode() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to add all guards was set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isAddAllGuardsSet() const;
|
|
|
|
/*!
|
|
* Retrieves whether the option to use interpolation was set.
|
|
*
|
|
* @return True iff the option was set.
|
|
*/
|
|
bool isUseInterpolationSet() const;
|
|
|
|
/*!
|
|
* Retrieves the precision that is used for detecting convergence.
|
|
*
|
|
* @return The precision to use for detecting convergence.
|
|
*/
|
|
double getPrecision() const;
|
|
|
|
/*!
|
|
* Retrieves the selected heuristic to select pivot blocks.
|
|
*
|
|
* @return The selected heuristic.
|
|
*/
|
|
PivotSelectionHeuristic getPivotSelectionHeuristic() const;
|
|
|
|
/*!
|
|
* Retrieves the selected reuse mode.
|
|
*
|
|
* @return The selected reuse mode.
|
|
*/
|
|
ReuseMode getReuseMode() const;
|
|
|
|
const static std::string moduleName;
|
|
|
|
private:
|
|
const static std::string useDecompositionOptionName;
|
|
const static std::string splitModeOptionName;
|
|
const static std::string addAllGuardsOptionName;
|
|
const static std::string useInterpolationOptionName;
|
|
const static std::string precisionOptionName;
|
|
const static std::string pivotHeuristicOptionName;
|
|
const static std::string reuseResultsOptionName;
|
|
};
|
|
|
|
}
|
|
}
|
|
}
|