|
|
@ -151,7 +151,9 @@ namespace storm { |
|
|
|
} |
|
|
|
|
|
|
|
for (typename storm::storage::SparseMatrix<T>::const_iterator entryIt = backwardTransitions.begin(currentState), entryIte = backwardTransitions.end(currentState); entryIt != entryIte; ++entryIt) { |
|
|
|
if (phiStates[entryIt->getColumn()] && (!statesWithProbabilityGreater0.get(entryIt->getColumn()) && (!useStepBound || remainingSteps[entryIt->getColumn()] < currentStepBound - 1))) { |
|
|
|
if (phiStates[entryIt->getColumn()] && (!statesWithProbabilityGreater0.get(entryIt->getColumn()) && (!useStepBound || remainingSteps[entryIt->getColumn()] < currentStepBound))) { |
|
|
|
statesWithProbabilityGreater0.set(entryIt->getColumn(), true); |
|
|
|
|
|
|
|
// If we don't have a bound on the number of steps to take, just add the state to the stack.
|
|
|
|
if (useStepBound) { |
|
|
|
// If there is at least one more step to go, we need to push the state and the new number of steps.
|
|
|
@ -161,7 +163,6 @@ namespace storm { |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
statesWithProbabilityGreater0.set(entryIt->getColumn(), true); |
|
|
|
stack.push_back(entryIt->getColumn()); |
|
|
|
} |
|
|
|
} |
|
|
@ -440,7 +441,7 @@ namespace storm { |
|
|
|
} |
|
|
|
|
|
|
|
for (typename storm::storage::SparseMatrix<T>::const_iterator entryIt = backwardTransitions.begin(currentState), entryIte = backwardTransitions.end(currentState); entryIt != entryIte; ++entryIt) { |
|
|
|
if (phiStates.get(entryIt->getColumn()) && (!statesWithProbabilityGreater0.get(entryIt->getColumn()) && (!useStepBound || remainingSteps[entryIt->getColumn()] < currentStepBound - 1))) { |
|
|
|
if (phiStates.get(entryIt->getColumn()) && (!statesWithProbabilityGreater0.get(entryIt->getColumn()) && (!useStepBound || remainingSteps[entryIt->getColumn()] < currentStepBound))) { |
|
|
|
// If we don't have a bound on the number of steps to take, just add the state to the stack.
|
|
|
|
if (useStepBound) { |
|
|
|
// If there is at least one more step to go, we need to push the state and the new number of steps.
|
|
|
@ -589,7 +590,7 @@ namespace storm { |
|
|
|
} |
|
|
|
|
|
|
|
for(typename storm::storage::SparseMatrix<T>::const_iterator predecessorEntryIt = backwardTransitions.begin(currentState), predecessorEntryIte = backwardTransitions.end(currentState); predecessorEntryIt != predecessorEntryIte; ++predecessorEntryIt) { |
|
|
|
if (phiStates.get(predecessorEntryIt->getColumn()) && (!statesWithProbabilityGreater0.get(predecessorEntryIt->getColumn()) && (!useStepBound || remainingSteps[predecessorEntryIt->getColumn()] < currentStepBound - 1))) { |
|
|
|
if (phiStates.get(predecessorEntryIt->getColumn()) && (!statesWithProbabilityGreater0.get(predecessorEntryIt->getColumn()) && (!useStepBound || remainingSteps[predecessorEntryIt->getColumn()] < currentStepBound))) { |
|
|
|
// Check whether the predecessor has at least one successor in the current state set for every
|
|
|
|
// nondeterministic choice.
|
|
|
|
bool addToStatesWithProbabilityGreater0 = true; |
|
|
|