Browse Source

Fixed incorrect results for PcaaWeightVectorChecker.

tempestpy_adaptions
Tim Quatmann 3 years ago
parent
commit
a95ff3056a
No known key found for this signature in database GPG Key ID: 6EDE19592731EEC3
  1. 5
      src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.cpp
  2. 3
      src/storm/modelchecker/multiobjective/pcaa/StandardPcaaWeightVectorChecker.h

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

@ -585,6 +585,7 @@ namespace storm {
}
ecQuotient->ecqStayInEcChoices = std::move(ecElimResult.sinkRows);
ecQuotient->origReward0Choices = std::move(newReward0Choices);
ecQuotient->origTotalReward0Choices = std::move(newTotalReward0Choices);
ecQuotient->rowsWithSumLessOne = std::move(rowsWithSumLessOne);
ecQuotient->auxStateValues.resize(ecQuotient->matrix.getRowGroupCount());
ecQuotient->auxChoiceValues.resize(ecQuotient->matrix.getRowCount());
@ -741,7 +742,7 @@ namespace storm {
unprocessedStates.set(state, false);
originalSolution[state] = ecqSolution[ecqState];
}
computeSchedulerProb1(transitionMatrix, backwardsTransitions, ecStatesToProcess, ecStatesToReach, originalOptimalChoices);
computeSchedulerProb1(transitionMatrix, backwardsTransitions, ecStatesToProcess, ecStatesToReach, originalOptimalChoices, &ecQuotient->origTotalReward0Choices);
// Clear bitvectors for next ecqState.
ecStatesToProcess.clear();
ecStatesToReach.clear();
@ -801,7 +802,7 @@ namespace storm {
unprocessedStates.set(state, false);
originalSolution[state] = ecqSolution[ecqState];
}
computeSchedulerProb1(transitionMatrix, backwardsTransitions, ecStatesToProcess, ecStatesToReach, originalOptimalChoices);
computeSchedulerProb1(transitionMatrix, backwardsTransitions, ecStatesToProcess, ecStatesToReach, originalOptimalChoices, &ecQuotient->origTotalReward0Choices);
// Clear bitvectors for next ecqState.
ecStatesToProcess.clear();
ecStatesToReach.clear();

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

@ -159,7 +159,8 @@ namespace storm {
std::vector<uint_fast64_t> originalToEcqStateMapping;
std::vector<storm::storage::FlatSetStateContainer> ecqToOriginalStateMapping;
storm::storage::BitVector ecqStayInEcChoices;
storm::storage::BitVector origReward0Choices;
storm::storage::BitVector origReward0Choices; // includes total and LRA rewards
storm::storage::BitVector origTotalReward0Choices; // considers just total rewards
storm::storage::BitVector rowsWithSumLessOne;
std::vector<ValueType> auxStateValues;

Loading…
Cancel
Save