STORM_LOG_THROW(checkTask.isOptimizationDirectionSet(),storm::exceptions::InvalidPropertyException,"Formula needs to specify whether minimal or maximal values are to be computed on nondeterministic model.");
STORM_LOG_THROW(checkTask.isOptimizationDirectionSet(),storm::exceptions::InvalidPropertyException,"Formula needs to specify whether minimal or maximal values are to be computed on nondeterministic model.");
STORM_LOG_THROW(checkTask.isOptimizationDirectionSet(),storm::exceptions::InvalidPropertyException,"Formula needs to specify whether minimal or maximal values are to be computed on nondeterministic model.");
STORM_LOG_THROW(checkTask.isOptimizationDirectionSet(),storm::exceptions::InvalidPropertyException,"Formula needs to specify whether minimal or maximal values are to be computed on nondeterministic model.");
STORM_LOG_DEBUG("Computed probabilities to satisfy for condition in "<<std::chrono::duration_cast<std::chrono::milliseconds>(conditionEnd-conditionStart).count()<<"ms.");
STORM_LOG_DEBUG("Computed probabilities to satisfy for condition in "<<std::chrono::duration_cast<std::chrono::milliseconds>(conditionEnd-conditionStart).count()<<"ms.");
@ -1528,7 +1530,7 @@ namespace storm {
STORM_LOG_DEBUG("Computing probabilities to reach target.");
STORM_LOG_DEBUG("Computing probabilities to reach target.");
STORM_LOG_DEBUG("Computed probabilities to reach target in "<<std::chrono::duration_cast<std::chrono::milliseconds>(targetEnd-targetStart).count()<<"ms.");
STORM_LOG_DEBUG("Computed probabilities to reach target in "<<std::chrono::duration_cast<std::chrono::milliseconds>(targetEnd-targetStart).count()<<"ms.");
STORM_LOG_DEBUG("Computed conditional probabilities in transformed model in "<<std::chrono::duration_cast<std::chrono::milliseconds>(conditionalEnd-conditionalStart).count()<<"ms.");
STORM_LOG_DEBUG("Computed conditional probabilities in transformed model in "<<std::chrono::duration_cast<std::chrono::milliseconds>(conditionalEnd-conditionalStart).count()<<"ms.");
STORM_LOG_THROW(!pathFormula.hasLowerBound()&&pathFormula.hasUpperBound(),storm::exceptions::InvalidPropertyException,"Formula needs to have single upper time bound.");
STORM_LOG_THROW(!pathFormula.hasLowerBound()&&pathFormula.hasUpperBound(),storm::exceptions::InvalidPropertyException,"Formula needs to have single upper time bound.");
STORM_LOG_INFO("Selecting 'Policy iteration' as the solution technique to guarantee exact results. If you want to override this, please explicitly specify a different method.");
method=MinMaxMethod::PolicyIteration;
}else{
STORM_LOG_WARN("The selected solution method does not guarantee exact results.");
}
}
STORM_LOG_THROW(method==MinMaxMethod::ValueIteration||method==MinMaxMethod::PolicyIteration||method==MinMaxMethod::RationalSearch,storm::exceptions::InvalidEnvironmentException,"This solver does not support the selected method.");
STORM_LOG_INFO("Selecting 'Policy iteration' as the solution technique to guarantee exact results. If you want to override this, please explicitly specify a different method.");
method=MinMaxMethod::PolicyIteration;
}else{
STORM_LOG_WARN("The selected solution method does not guarantee exact results.");
}
}
STORM_LOG_THROW(method==MinMaxMethod::ValueIteration||method==MinMaxMethod::PolicyIteration||method==MinMaxMethod::RationalSearch,storm::exceptions::InvalidEnvironmentException,"This solver does not support the selected method.");
STORM_LOG_THROW(method==MinMaxMethod::ValueIteration||method==MinMaxMethod::PolicyIteration||method==MinMaxMethod::RationalSearch,storm::exceptions::InvalidEnvironmentException,"This solver does not support the selected method.");
STORM_LOG_THROW(env.solver().minMax().getMethod==MinMaxMethod::LinearProgramming,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.")
STORM_LOG_THROW(env.solver().minMax().getMethod()==MinMaxMethod::LinearProgramming,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.");
STORM_LOG_THROW(env.solver().minMax().getMethod==MinMaxMethod::LinearProgramming,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.")
STORM_LOG_THROW(env.solver().minMax().getMethod()==MinMaxMethod::LinearProgramming,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.");
STORM_LOG_ASSERT(this->lpSolverFactory,"Lp solver factory not initialized.");
STORM_LOG_ASSERT(this->lpSolverFactory,"Lp solver factory not initialized.");
STORM_LOG_ASSERT(this->linearEquationSolverFactory,"Linear equation solver factory not initialized.");
STORM_LOG_ASSERT(this->linearEquationSolverFactory,"Linear equation solver factory not initialized.");
STORM_LOG_WARN_COND_DEBUG(this->isRequirementsCheckedSet(),"The requirements of the solver have not been marked as checked. Please provide the appropriate check or mark the requirements as checked (if applicable).");
STORM_LOG_WARN_COND_DEBUG(this->isRequirementsCheckedSet(),"The requirements of the solver have not been marked as checked. Please provide the appropriate check or mark the requirements as checked (if applicable).");
STORM_LOG_THROW(env.solver().minMax().getMethod()==MinMaxMethod::Topological,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.");
STORM_LOG_THROW(env.solver().minMax().getMethod()==MinMaxMethod::Topological,storm::exceptions::InvalidEnvironmentException,"This min max solver does not support the selected technique.");