diff --git a/src/modelchecker/region/SamplingModel.cpp b/src/modelchecker/region/SamplingModel.cpp index 9539c2bde..2df9c63fd 100644 --- a/src/modelchecker/region/SamplingModel.cpp +++ b/src/modelchecker/region/SamplingModel.cpp @@ -252,6 +252,10 @@ namespace storm { template<> void SamplingModel<storm::models::sparse::Mdp<storm::RationalFunction>, double>::invokeSolver(){ std::unique_ptr<storm::solver::MinMaxLinearEquationSolver<double>> solver = storm::solver::configureMinMaxLinearEquationSolver(this->solveGoal, storm::utility::solver::MinMaxLinearEquationSolverFactory<double>(), this->matrixData.matrix); + if(!this->solveGoal.minimize()){ + //The value iteration method is not correct if the value is maximized and the initial x-vector is not <= the actual probability/reward. + this->eqSysResult.assign(this->eqSysResult.size(), storm::utility::zero<double>()); + } solver->solveEquationSystem(this->eqSysResult, this->vectorData.vector); }