Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseCtmcCslHelper.h
Go to the documentation of this file.
1#pragma once
2
4
8
10
12
13namespace storm {
14
15class Environment;
16
17namespace modelchecker::helper {
19 public:
20 template<typename ValueType>
24 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
25 storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates,
26 std::vector<ValueType> const& exitRates, bool qualitative, ValueType lowerBound,
27 ValueType upperBound);
28
29 template<typename ValueType>
30 static std::vector<ValueType> computeUntilProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
32 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
33 std::vector<ValueType> const& exitRateVector, storm::storage::BitVector const& phiStates,
34 storm::storage::BitVector const& psiStates, bool qualitative);
35
36 template<typename ValueType>
37 static std::vector<ValueType> computeAllUntilProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
39 std::vector<ValueType> const& exitRateVector, storm::storage::BitVector const& initialStates,
40 storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates);
41
42 template<typename ValueType>
43 static std::vector<ValueType> computeNextProbabilities(Environment const& env, storm::storage::SparseMatrix<ValueType> const& rateMatrix,
44 std::vector<ValueType> const& exitRateVector, storm::storage::BitVector const& nextStates);
45
46 template<typename ValueType, typename RewardModelType>
48 static std::vector<ValueType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
50 std::vector<ValueType> const& exitRateVector, RewardModelType const& rewardModel,
51 ValueType timeBound);
52
53 template<typename ValueType, typename RewardModelType>
55 static std::vector<ValueType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
57 std::vector<ValueType> const& exitRateVector, RewardModelType const& rewardModel,
58 ValueType timeBound);
59
60 template<typename ValueType, typename RewardModelType>
61 static std::vector<ValueType> computeReachabilityRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
63 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
64 std::vector<ValueType> const& exitRateVector, RewardModelType const& rewardModel,
65 storm::storage::BitVector const& targetStates, bool qualitative);
66
67 template<typename ValueType, typename RewardModelType>
68 static std::vector<ValueType> computeTotalRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
70 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
71 std::vector<ValueType> const& exitRateVector, RewardModelType const& rewardModel, bool qualitative);
72
73 template<typename ValueType>
74 static std::vector<ValueType> computeReachabilityTimes(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
76 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
77 std::vector<ValueType> const& exitRateVector, storm::storage::BitVector const& targetStates,
78 bool qualitative);
79
80 template<typename ValueType>
82 static std::vector<ValueType> computeAllTransientProbabilities(Environment const& env, storm::storage::SparseMatrix<ValueType> const& rateMatrix,
83 storm::storage::BitVector const& initialStates, storm::storage::BitVector const& phiStates,
84 storm::storage::BitVector const& psiStates, std::vector<ValueType> const& exitRates,
85 ValueType timeBound);
86
96 template<typename ValueType>
99 storm::storage::BitVector const& maybeStates, ValueType uniformizationRate,
100 std::vector<ValueType> const& exitRates);
101
116 template<typename ValueType, bool useMixedPoissonProbabilities = false>
118 static std::vector<ValueType> computeTransientProbabilities(Environment const& env, storm::storage::SparseMatrix<ValueType> const& uniformizedMatrix,
119 std::vector<ValueType> const* addVector, ValueType timeBound, ValueType uniformizationRate,
120 std::vector<ValueType> values, ValueType epsilon);
121
129 template<typename ValueType>
131 std::vector<ValueType> const& exitRates);
132
140 template<typename ValueType>
142 std::vector<ValueType> const& exitRates);
143
151 template<typename ValueType>
152 static bool checkAndUpdateTransientProbabilityEpsilon(storm::Environment const& env, ValueType& epsilon, std::vector<ValueType> const& resultVector,
153 storm::storage::BitVector const& relevantPositions);
154};
155} // namespace modelchecker::helper
156} // namespace storm
static storm::storage::SparseMatrix< ValueType > computeGeneratorMatrix(storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRates)
Converts the given rate-matrix into the generator matrix.
static ::SupportsExponential std::vector< ValueType > computeBoundedUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, std::vector< ValueType > const &exitRates, bool qualitative, ValueType lowerBound, ValueType upperBound)
static ::SupportsExponential std::vector< ValueType > computeTransientProbabilities(Environment const &env, storm::storage::SparseMatrix< ValueType > const &uniformizedMatrix, std::vector< ValueType > const *addVector, ValueType timeBound, ValueType uniformizationRate, std::vector< ValueType > values, ValueType epsilon)
Computes the transient probabilities for lambda time steps.
static ::SupportsExponential std::vector< ValueType > computeInstantaneousRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRateVector, RewardModelType const &rewardModel, ValueType timeBound)
static ::SupportsExponential storm::storage::SparseMatrix< ValueType > computeUniformizedMatrix(storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::BitVector const &maybeStates, ValueType uniformizationRate, std::vector< ValueType > const &exitRates)
Computes the matrix representing the transitions of the uniformized CTMC.
static std::vector< ValueType > computeUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &exitRateVector, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool qualitative)
static bool checkAndUpdateTransientProbabilityEpsilon(storm::Environment const &env, ValueType &epsilon, std::vector< ValueType > const &resultVector, storm::storage::BitVector const &relevantPositions)
Checks whether the given result vector is sufficiently precise, according to the provided epsilon and...
static storm::storage::SparseMatrix< ValueType > computeProbabilityMatrix(storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRates)
Converts the given rate-matrix into a time-abstract probability matrix.
static std::vector< ValueType > computeAllUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRateVector, storm::storage::BitVector const &initialStates, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
static std::vector< ValueType > computeTotalRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &exitRateVector, RewardModelType const &rewardModel, bool qualitative)
static ::SupportsExponential std::vector< ValueType > computeAllTransientProbabilities(Environment const &env, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::BitVector const &initialStates, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, std::vector< ValueType > const &exitRates, ValueType timeBound)
static std::vector< ValueType > computeReachabilityTimes(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &exitRateVector, storm::storage::BitVector const &targetStates, bool qualitative)
static ::SupportsExponential std::vector< ValueType > computeCumulativeRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRateVector, RewardModelType const &rewardModel, ValueType timeBound)
static std::vector< ValueType > computeReachabilityRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &rateMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &exitRateVector, RewardModelType const &rewardModel, storm::storage::BitVector const &targetStates, bool qualitative)
static std::vector< ValueType > computeNextProbabilities(Environment const &env, storm::storage::SparseMatrix< ValueType > const &rateMatrix, std::vector< ValueType > const &exitRateVector, storm::storage::BitVector const &nextStates)
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
A class that holds a possibly non-square matrix in the compressed row storage format.
LabParser.cpp.