From 6fb9e54973d947df3a090b8a21d1330000392dde Mon Sep 17 00:00:00 2001 From: TimQu Date: Wed, 28 Dec 2016 19:45:43 +0100 Subject: [PATCH] minor fix for the selection of the precision in Pareto queries --- .../multiobjective/pcaa/SparsePcaaParetoQuery.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/storm/modelchecker/multiobjective/pcaa/SparsePcaaParetoQuery.cpp b/src/storm/modelchecker/multiobjective/pcaa/SparsePcaaParetoQuery.cpp index 7941757b2..1123bcdf1 100644 --- a/src/storm/modelchecker/multiobjective/pcaa/SparsePcaaParetoQuery.cpp +++ b/src/storm/modelchecker/multiobjective/pcaa/SparsePcaaParetoQuery.cpp @@ -7,7 +7,7 @@ #include "storm/modelchecker/results/ParetoCurveCheckResult.h" #include "storm/utility/constants.h" #include "storm/utility/vector.h" -#include "storm/settings//SettingsManager.h" +#include "storm/settings/SettingsManager.h" #include "storm/settings/modules/MultiObjectiveSettings.h" #include "storm/settings/modules/GeneralSettings.h" @@ -22,7 +22,10 @@ namespace storm { // Set the precision of the weight vector checker typename SparseModelType::ValueType weightedPrecision = storm::utility::convertNumber(storm::settings::getModule().getPrecision()); - weightedPrecision /= typename SparseModelType::ValueType(2); + weightedPrecision /= storm::utility::sqrt(storm::utility::convertNumber(this->objectives.size())); + // multiobjPrecision / sqrt(numObjectives) is the largest possible value for which termination is guaranteed. + // Lets be a little bit more precise to reduce the number of required iterations. + weightedPrecision *= storm::utility::convertNumber(0.9); this->weightVectorChecker->setWeightedPrecision(weightedPrecision); }