Browse Source

Using new time bounded environment also for IMCA method.

tempestpy_adaptions
TimQu 5 years ago
parent
commit
ca59635f8a
  1. 4
      src/storm/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp

4
src/storm/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp

@ -82,7 +82,7 @@ namespace storm {
// Truncation error // Truncation error
ValueType kappa = storm::utility::convertNumber<ValueType>(env.solver().timeBounded().getUnifPlusKappa()); ValueType kappa = storm::utility::convertNumber<ValueType>(env.solver().timeBounded().getUnifPlusKappa());
// Precision to be achieved // Precision to be achieved
ValueType epsilon = storm::utility::convertNumber<ValueType>(env.solver().timeBounded().getPrecision());
ValueType epsilon = storm::utility::convertNumber<ValueType>(2.0) * storm::utility::convertNumber<ValueType>(env.solver().timeBounded().getPrecision());
bool relativePrecision = env.solver().timeBounded().getRelativeTerminationCriterion(); bool relativePrecision = env.solver().timeBounded().getRelativeTerminationCriterion();
// Uniformization rate // Uniformization rate
ValueType lambda = *std::max_element(markovianExitRates.begin(), markovianExitRates.end()); ValueType lambda = *std::max_element(markovianExitRates.begin(), markovianExitRates.end());
@ -862,7 +862,7 @@ namespace storm {
for (auto value : exitRateVector) { for (auto value : exitRateVector) {
maxExitRate = std::max(maxExitRate, value); maxExitRate = std::max(maxExitRate, value);
} }
ValueType delta = (2 * storm::settings::getModule<storm::settings::modules::GeneralSettings>().getPrecision()) / (upperBound * maxExitRate * maxExitRate);
ValueType delta = (2.0 * storm::utility::convertNumber<ValueType>(env.solver().timeBounded().getPrecision())) / (upperBound * maxExitRate * maxExitRate);
// (2) Compute the number of steps we need to make for the interval. // (2) Compute the number of steps we need to make for the interval.
uint64_t numberOfSteps = static_cast<uint64_t>(std::ceil((upperBound - lowerBound) / delta)); uint64_t numberOfSteps = static_cast<uint64_t>(std::ceil((upperBound - lowerBound) / delta));

Loading…
Cancel
Save