21 auto formulaInfo =
property.getRawFormula()->info();
22 if (formulaInfo.containsBoundedUntilFormula() || formulaInfo.containsNextFormula() || formulaInfo.containsCumulativeRewardFormula()) {
23 STORM_LOG_INFO(
"Assuming step or time bounded property:" << property);
25 }
else if (formulaInfo.containsLongRunFormula()) {
49 std::stringstream str;
96 STORM_LOG_INFO(
"Automatic engine using features " << f.toString() <<
".");
98 if (f.numVariables <= 12) {
99 if (f.avgDomainSize <= 323.25) {
100 if (f.stateDomainSize <= 381703) {
101 if (f.numAutomata <= 1) {
104 if (f.numEdges <= 34) {
105 if (!f.nondeterminism) {
108 if (f.stateDomainSize <= 1764) {
119 if (!f.continuousTime) {
120 if (f.numEdges <= 6002) {
121 if (f.propertyType == PropertyType::Bounded) {
122 if (f.numEdges <= 68) {
128 if (f.avgDomainSize <= 26.4375) {
131 if (f.stateDomainSize <= 208000000) {
142 if (f.numAutomata <= 16) {
145 if (f.propertyType == PropertyType::Bounded) {
157 if (f.stateDomainSize <= 47006507008) {
158 if (f.avgDomainSize <= 4.538461446762085) {
159 if (f.numVariables <= 82) {
160 if (!f.continuousTime) {
161 if (f.numAutomata <= 8) {
170 if (f.numVariables <= 114) {
180 if (f.numVariables <= 19) {
181 if (f.avgDomainSize <= 20.430288314819336) {
184 if (f.stateDomainSize <= 209736679590723584) {
187 if (f.propertyType == PropertyType::Bounded) {
195 if (!f.nondeterminism) {
196 if (f.numVariables <= 27) {
197 if (f.propertyType == PropertyType::Bounded) {
206 if (f.numAutomata <= 8) {
229 "Tried to get the engine but apparently no prediction was done before.");
234 return useBisimulation;
241void AutomaticSettings::sparse() {
243 useBisimulation =
false;
247void AutomaticSettings::hybrid() {
249 useBisimulation =
false;
253void AutomaticSettings::dd() {
255 useBisimulation =
false;
259void AutomaticSettings::exact() {
261 useBisimulation =
false;
265void AutomaticSettings::ddbisim() {
267 useBisimulation =
true;
InformationObject getModelInformation() const
Returns various information of this model.
bool isDeterministicModel() const
Determines whether this model is a deterministic one in the sense that each state only has one choice...
bool isDiscreteTimeModel() const
Determines whether this model is a discrete-time model.
bool enableBisimulation() const
storm::utility::Engine getEngine() const
Retrieve "good" settings after calling predict.
void predict(storm::jani::Model const &model, storm::jani::Property const &property)
Predicts "good" settings for the provided model checking query.
#define STORM_LOG_INFO(message)
#define STORM_LOG_THROW(cond, exception, message)
PropertyType getPropertyType(storm::jani::Property const &property)
Engine
An enumeration of all engines.
std::string toString() const
Features(storm::jani::Model const &model, storm::jani::Property const &property)
PropertyType propertyType