Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MaximalEndComponentDecomposition.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
9
10namespace storm::storage {
11
15template<typename ValueType>
16class MaximalEndComponentDecomposition : public Decomposition<MaximalEndComponent> {
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 */
38 storm::storage::SparseMatrix<ValueType> const& backwardTransitions);
39
40 /*
41 * Creates an MEC decomposition of the given subsystem of given model (represented by a row-grouped matrix).
42 * If a state-action pair (aka choice) has a transition that leaves the subsystem, the entire state-action pair is ignored.
43 *
44 * @param transitionMatrix The transition relation of model to decompose into MECs.
45 * @param backwardTransition The reversed transition relation.
46 * @param states The states of the subsystem to decompose.
47 */
49 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& states);
50
51 /*
52 * Creates an MEC decomposition of the given subsystem of given model (represented by a row-grouped matrix).
53 * If a state-action pair (aka choice) has a transition that leaves the subsystem, the entire state-action pair is ignored, independent of how the given
54 * 'choices' vector is set for that choice.
55 *
56 * @param transitionMatrix The transition relation of model to decompose into MECs.
57 * @param backwardTransition The reversed transition relation.
58 * @param states The states of the subsystem to decompose.
59 * @param choices The choices of the subsystem to decompose.
60 */
62 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& states,
63 storm::storage::BitVector const& choices);
64
72
79
86
93
100
106 std::string statistics(uint64_t totalNumberOfStates) const;
107
108 private:
118 void performMaximalEndComponentDecomposition(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
119 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
122};
123} // namespace storm::storage
Helper class that optionally holds a reference to an object of type T.
Definition OptionalRef.h:48
The base class of sparse nondeterministic 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.
MaximalEndComponentDecomposition & operator=(MaximalEndComponentDecomposition const &other)
Assigns the contents of the given MEC decomposition to the current one by copying its contents.
std::string statistics(uint64_t totalNumberOfStates) const
Returns a string containing statistics about the MEC decomposition, e.g., the number of (trivial/non-...
A class that holds a possibly non-square matrix in the compressed row storage format.
constexpr NullRefType NullRef
Definition OptionalRef.h:31