Browse Source

multi-objective: Aborting time-bounded reachability computation when termination signal is received.

tempestpy_adaptions
Tim Quatmann 4 years ago
parent
commit
20665eb862
  1. 4
      src/storm/modelchecker/multiobjective/pcaa/StandardMaPcaaWeightVectorChecker.cpp

4
src/storm/modelchecker/multiobjective/pcaa/StandardMaPcaaWeightVectorChecker.cpp

@ -7,6 +7,7 @@
#include "storm/models/sparse/StandardRewardModel.h" #include "storm/models/sparse/StandardRewardModel.h"
#include "storm/utility/macros.h" #include "storm/utility/macros.h"
#include "storm/utility/vector.h" #include "storm/utility/vector.h"
#include "storm/utility/SignalHandler.h"
#include "storm/logic/Formulas.h" #include "storm/logic/Formulas.h"
#include "storm/solver/SolverSelectionOptions.h" #include "storm/solver/SolverSelectionOptions.h"
@ -113,7 +114,7 @@ namespace storm {
auto upperTimeBoundIt = upperTimeBounds.begin(); auto upperTimeBoundIt = upperTimeBounds.begin();
uint_fast64_t currentEpoch = upperTimeBounds.empty() ? 0 : upperTimeBoundIt->first; uint_fast64_t currentEpoch = upperTimeBounds.empty() ? 0 : upperTimeBoundIt->first;
while (true) {
while (!storm::utility::resources::isTerminate()) {
// Update the objectives that are considered at the current time epoch as well as the (weighted) reward vectors. // Update the objectives that are considered at the current time epoch as well as the (weighted) reward vectors.
updateDataToCurrentEpoch(MS, PS, *minMax, consideredObjectives, currentEpoch, weightVector, upperTimeBoundIt, upperTimeBounds); updateDataToCurrentEpoch(MS, PS, *minMax, consideredObjectives, currentEpoch, weightVector, upperTimeBoundIt, upperTimeBounds);
@ -129,6 +130,7 @@ namespace storm {
break; break;
} }
} }
STORM_LOG_WARN_COND(!storm::utility::resources::isTerminate(), "Time-bounded reachability computation aborted.");
// compose the results from MS and PS // compose the results from MS and PS
storm::utility::vector::setVectorValues(this->weightedResult, MS.states, MS.weightedSolutionVector); storm::utility::vector::setVectorValues(this->weightedResult, MS.states, MS.weightedSolutionVector);

Loading…
Cancel
Save