STORM_LOG_ASSERT(model.getInitialStates().getNumberOfSetBits()==1,"Multi-objective Model checking on model with multiple initial states is not supported.");
STORM_LOG_ASSERT(model.getInitialStates().getNumberOfSetBits()==1,"Multi-objective Model checking on model with multiple initial states is not supported.");
STORM_LOG_THROW(dynamic_cast<storm::models::sparse::MarkovAutomaton<typenameSparseModelType::ValueType>const*>(&model)->isClosed(),storm::exceptions::InvalidArgumentException,"Unable to check multi-objective formula on non-closed Markov automaton.");
STORM_LOG_THROW(dynamic_cast<storm::models::sparse::MarkovAutomaton<typenameSparseModelType::ValueType>const*>(&model)->isClosed(),storm::exceptions::InvalidArgumentException,"Unable to check multi-objective formula on non-closed Markov automaton.");
STORM_LOG_THROW(false,storm::exceptions::InvalidArgumentException,"The multi-objective query type is not supported for the selected solution method '"<<toString(method)<<"'.");
STORM_LOG_THROW(preprocessorResult.queryType==preprocessing::SparseMultiObjectivePreprocessorResult<SparseModelType>::QueryType::Pareto,storm::exceptions::NotImplementedException,"Currently, only Pareto queries with scheduler restrictions are implemented.");
STORM_LOG_THROW(false,storm::exceptions::InvalidArgumentException,"The multi-objective query type is not supported for the selected solution method '"<<toString(method)<<"'.");
break;
}
result=query->check(env);
if(env.modelchecker().multi().isExportPlotSet()){
query->exportPlotOfCurrentApproximation(env);
}
}
}
break;
break;
}
}
caseMultiObjectiveMethod::ConstraintBased:
caseMultiObjectiveMethod::ConstraintBased:
{
{
STORM_LOG_THROW(!env.modelchecker().multi().isSchedulerRestrictionSet(),storm::exceptions::InvalidEnvironmentException,"The selected multi-objective model checking method does not support scheduler restrictions.");