Storm 1.10.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
RobustMaximalEndComponentDecomposition.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace storm::storage {
11
15template<typename ValueType>
16class RobustMaximalEndComponentDecomposition : public Decomposition<StronglyConnectedComponent> {
17 public:
18 /*
19 * Creates an empty MEC decomposition.
20 */
22
23 /*
24 * Creates an MEC decomposition of the given model.
25 *
26 * @param model The model to decompose into MECs.
27 */
28 template<typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
30
31 /*
32 * Creates an MEC decomposition of the given model (represented by a row-grouped matrix).
33 *
34 * @param transitionMatrix The transition relation of model to decompose into MECs.
35 * @param backwardTransition The reversed transition relation.
36 * @param vector The vector of the system of equations (e.g. rewards or probabilities to go to target).
37 */
39 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, std::vector<ValueType> const& vector);
40
41 /*
42 * Creates an MEC decomposition of the given subsystem of given model (represented by a row-grouped matrix).
43 * If a state-action pair (aka choice) has a transition that leaves the subsystem, the entire state-action pair is ignored.
44 *
45 * @param transitionMatrix The transition relation of model to decompose into MECs.
46 * @param backwardTransition The reversed transition relation.
47 * @param states The states of the subsystem to decompose.
48 * @param vector The vector of the system of equations (e.g. rewards or probabilities to go to target).
49 */
51 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, std::vector<ValueType> const& vector,
52 storm::storage::BitVector const& states);
53
61
68
75
82
89
96 std::vector<uint64_t> computeStateToSccIndexMap(uint64_t numberOfStates) const;
97
98 private:
108 void performRobustMaximalEndComponentDecomposition(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
109 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
110 storm::OptionalRef<std::vector<ValueType> const> vector = storm::NullRef,
112};
113} // namespace storm::storage
Helper class that optionally holds a reference to an object of type T.
Definition OptionalRef.h:48
The base class of all sparse deterministic models.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
This class represents the decomposition of a model into blocks which are of the template type.
This class represents the decomposition of a nondeterministic model into its maximal end components.
RobustMaximalEndComponentDecomposition & operator=(RobustMaximalEndComponentDecomposition const &other)
Assigns the contents of the given MEC decomposition to the current one by copying its contents.
RobustMaximalEndComponentDecomposition(storm::models::sparse::DeterministicModel< ValueType > const &model, storm::storage::BitVector const &states)
Creates an MEC decomposition of the given subsystem in the given model.
std::vector< uint64_t > computeStateToSccIndexMap(uint64_t numberOfStates) const
Computes a vector that for each state has the index of the scc of that state in it.
A class that holds a possibly non-square matrix in the compressed row storage format.
constexpr NullRefType NullRef
Definition OptionalRef.h:31