Browse Source

Printing the number of performed iterations (reverted from commit b5399d0596)

tempestpy_adaptions
TimQu 7 years ago
parent
commit
13184aefcf
  1. 5
      src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.cpp
  2. 8
      src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.h
  3. 11
      src/storm/solver/AbstractEquationSolver.h
  4. 5
      src/storm/solver/IterativeMinMaxLinearEquationSolver.cpp
  5. 6
      src/storm/solver/NativeLinearEquationSolver.cpp
  6. 8
      src/storm/solver/TopologicalLinearEquationSolver.cpp
  7. 7
      src/storm/solver/TopologicalMinMaxLinearEquationSolver.cpp

5
src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.cpp

@ -194,8 +194,7 @@ namespace storm {
std::fill(ecQuotient->auxStateValues.begin(), ecQuotient->auxStateValues.end(), storm::utility::zero<ValueType>());
solver->solveEquations(env, ecQuotient->auxStateValues, ecQuotient->auxChoiceValues);
this->overallPerformedIterations += solver->overallPerformedIterations;
solver->overallPerformedIterations = 0;
this->weightedResult = std::vector<ValueType>(transitionMatrix.getRowGroupCount());
transformReducedSolutionToOriginalModel(ecQuotient->matrix, ecQuotient->auxStateValues, solver->getSchedulerChoices(), ecQuotient->ecqToOriginalChoiceMapping, ecQuotient->originalToEcqStateMapping, this->weightedResult, this->optimalChoices);
@ -278,8 +277,6 @@ namespace storm {
STORM_LOG_THROW(req.empty(), storm::exceptions::UncheckedRequirementException, "At least one requirement of the LinearEquationSolver was not met.");
solver->solveEquations(env, x, b);
this->overallPerformedIterations += solver->overallPerformedIterations;
solver->overallPerformedIterations = 0;
// Set the result for this objective accordingly
storm::utility::vector::setVectorValues<ValueType>(objectiveResults[objIndex], maybeStates, x);

8
src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.h

@ -37,13 +37,7 @@ namespace storm {
StandardPcaaWeightVectorChecker(SparseMultiObjectivePreprocessorResult<SparseModelType> const& preprocessorResult);
virtual ~StandardPcaaWeightVectorChecker() {
if (overallPerformedIterations != 0) {
std::cout << "PERFORMEDITERATIONS: " << overallPerformedIterations << std::endl;
}
}
mutable uint64_t overallPerformedIterations = 0;
virtual ~StandardPcaaWeightVectorChecker() = default;
/*!
* - computes the optimal expected reward w.r.t. the weighted sum of the rewards of the individual objectives

11
src/storm/solver/AbstractEquationSolver.h

@ -3,7 +3,7 @@
#include <memory>
#include <chrono>
#include <iostream>
#include <boost/optional.hpp>
#include "storm/solver/TerminationCondition.h"
@ -17,15 +17,6 @@ namespace storm {
public:
AbstractEquationSolver();
virtual ~AbstractEquationSolver() {
if (overallPerformedIterations != 0) {
std::cout << "PERFORMEDITERATIONS: " << overallPerformedIterations << std::endl;
}
}
mutable uint64_t overallPerformedIterations = 0;
/*!
* Sets a custom termination condition that is used together with the regular termination condition of the
* solver.

5
src/storm/solver/IterativeMinMaxLinearEquationSolver.cpp

@ -582,8 +582,7 @@ namespace storm {
}
reportStatus(status, iterations);
this->overallPerformedIterations += iterations;
// We take the means of the lower and upper bound so we guarantee the desired precision.
ValueType two = storm::utility::convertNumber<ValueType>(2.0);
storm::utility::vector::applyPointwise<ValueType, ValueType, ValueType>(*lowerX, *upperX, *lowerX, [&two] (ValueType const& a, ValueType const& b) -> ValueType { return (a + b) / two; });
@ -1280,8 +1279,6 @@ namespace storm {
reportStatus(status, iterations);
this->overallPerformedIterations += iterations;
if (!this->isCachingEnabled()) {
clearCache();
}

6
src/storm/solver/NativeLinearEquationSolver.cpp

@ -549,8 +549,7 @@ namespace storm {
if (!this->isCachingEnabled()) {
clearCache();
}
this->overallPerformedIterations += iterations;
this->logIterations(converged, terminate, iterations);
return converged;
@ -735,8 +734,7 @@ namespace storm {
if (!this->isCachingEnabled()) {
clearCache();
}
this->overallPerformedIterations += iterations;
this->logIterations(converged, terminate, iterations);
STORM_LOG_WARN_COND(hasMinValueBound && hasMaxValueBound, "Could not compute lower or upper bound within the given number of iterations.");
STORM_LOG_INFO("Quick Power Iteration terminated with lower value bound " << minValueBound << " and upper value bound " << maxValueBound << ".");

8
src/storm/solver/TopologicalLinearEquationSolver.cpp

@ -91,7 +91,6 @@ namespace storm {
for (auto const& scc : *this->sortedSccDecomposition) {
if (scc.isTrivial()) {
returnValue = solveTrivialScc(*scc.begin(), x, b) && returnValue;
++this->overallPerformedIterations;
} else {
sccAsBitVector.clear();
for (auto const& state : scc) {
@ -102,16 +101,9 @@ namespace storm {
}
}
if (this->sccSolver) {
this->overallPerformedIterations += this->sccSolver->overallPerformedIterations;
this->sccSolver->overallPerformedIterations = 0;
}
if (!this->isCachingEnabled()) {
clearCache();
}
return returnValue;
}

7
src/storm/solver/TopologicalMinMaxLinearEquationSolver.cpp

@ -109,7 +109,6 @@ namespace storm {
for (auto const& scc : *this->sortedSccDecomposition) {
if (scc.isTrivial()) {
returnValue = solveTrivialScc(*scc.begin(), dir, x, b) && returnValue;
++this->overallPerformedIterations;
} else {
sccRowGroupsAsBitVector.clear();
sccRowsAsBitVector.clear();
@ -133,12 +132,6 @@ namespace storm {
}
}
if (this->sccSolver) {
this->overallPerformedIterations += this->sccSolver->overallPerformedIterations;
this->sccSolver->overallPerformedIterations = 0;
}
if (!this->isCachingEnabled()) {
clearCache();
}

Loading…
Cancel
Save