18template<
typename ValueType>
33 relevantStates = ~targetStates.value();
39 for (
auto const& scc : sccs) {
40 for (
auto const& sccState : scc) {
41 for (uint64_t rowIndex =
pomdp.getNondeterministicChoiceIndices()[sccState]; rowIndex <
pomdp.getNondeterministicChoiceIndices()[sccState + 1];
43 for (
auto const& entry :
pomdp.getTransitionMatrix().getRow(rowIndex)) {
45 if (scc.containsState(entry.getColumn())) {
This class represents a partially observable Markov decision process.
A bit vector that is internally represented as a vector of 64-bit values.
This class represents the decomposition of a graph-like structure into its strongly connected compone...
bool detectFiniteBeliefMdp(storm::models::sparse::Pomdp< ValueType > const &pomdp, std::optional< storm::storage::BitVector > const &targetStates)
This method tries to detect that the beliefmdp is finite.
bool isOne(ValueType const &a)
bool isZero(ValueType const &a)
StronglyConnectedComponentDecompositionOptions & dropNaiveSccs(bool value=true)
Sets if trivial SCCs (i.e. SCCs consisting of just one state without a self-loop) are to be kept in t...
StronglyConnectedComponentDecompositionOptions & subsystem(storm::storage::BitVector const &subsystem)
Sets a bit vector indicating which subsystem to consider for the decomposition into SCCs.