Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseDtmcPrctlHelper.h
Go to the documentation of this file.
1#ifndef STORM_MODELCHECKER_SPARSE_DTMC_PRCTL_MODELCHECKER_HELPER_H_
2#define STORM_MODELCHECKER_SPARSE_DTMC_PRCTL_MODELCHECKER_HELPER_H_
3
4#include <vector>
5
6#include <boost/optional.hpp>
7
11
15
18
19namespace storm {
20class Environment;
21
22namespace modelchecker {
23class CheckResult;
24
25namespace helper {
26
27template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>>
29 public:
30 static std::map<storm::storage::sparse::state_type, ValueType> computeRewardBoundedValues(
31 Environment const& env, storm::models::sparse::Dtmc<ValueType> const& model, std::shared_ptr<storm::logic::OperatorFormula const> rewardBoundedFormula);
32
33 static std::vector<ValueType> computeNextProbabilities(Environment const& env, storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
34 storm::storage::BitVector const& nextStates);
35
36 static std::vector<ValueType> computeUntilProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
37 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
38 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
39 storm::storage::BitVector const& phiStates, storm::storage::BitVector const& psiStates,
40 bool qualitative, ModelCheckerHint const& hint = ModelCheckerHint());
41
42 static std::vector<ValueType> computeAllUntilProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
43 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
44 storm::storage::BitVector const& initialStates, storm::storage::BitVector const& phiStates,
45 storm::storage::BitVector const& psiStates);
46
47 static std::vector<ValueType> computeGloballyProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
48 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
49 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
50 storm::storage::BitVector const& psiStates, bool qualitative);
51
52 static std::vector<ValueType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
53 storm::storage::SparseMatrix<ValueType> const& transitionMatrix, RewardModelType const& rewardModel,
54 uint_fast64_t stepBound);
55
56 static std::vector<ValueType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
57 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
58 RewardModelType const& rewardModel, uint_fast64_t stepCount);
59
60 static std::vector<ValueType> computeTotalRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
61 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
62 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel,
63 bool qualitative, ModelCheckerHint const& hint = ModelCheckerHint());
64
65 static std::vector<ValueType> computeReachabilityRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
66 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
67 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
68 RewardModelType const& rewardModel, storm::storage::BitVector const& targetStates,
69 bool qualitative, ModelCheckerHint const& hint = ModelCheckerHint());
70
71 static std::vector<ValueType> computeReachabilityRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
72 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
73 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
74 std::vector<ValueType> const& totalStateRewardVector,
75 storm::storage::BitVector const& targetStates, bool qualitative,
76 ModelCheckerHint const& hint = ModelCheckerHint());
77
78 static std::vector<ValueType> computeReachabilityTimes(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
79 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
80 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
81 storm::storage::BitVector const& targetStates, bool qualitative,
82 ModelCheckerHint const& hint = ModelCheckerHint());
83
84 static std::vector<ValueType> computeConditionalProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
85 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
86 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
87 storm::storage::BitVector const& targetStates,
88 storm::storage::BitVector const& conditionStates, bool qualitative);
89
90 static std::vector<ValueType> computeConditionalRewards(Environment const& env, storm::solver::SolveGoal<ValueType>&& goal,
91 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
92 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
93 RewardModelType const& rewardModel, storm::storage::BitVector const& targetStates,
94 storm::storage::BitVector const& conditionStates, bool qualitative);
95
96 private:
97 static std::vector<ValueType> computeReachabilityRewards(
99 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
100 std::function<std::vector<ValueType>(uint_fast64_t, storm::storage::SparseMatrix<ValueType> const&, storm::storage::BitVector const&)> const&
101 totalStateRewardVectorGetter,
102 storm::storage::BitVector const& targetStates, bool qualitative, std::function<storm::storage::BitVector()> const& zeroRewardStatesGetter,
103 ModelCheckerHint const& hint = ModelCheckerHint());
104
105 struct BaierTransformedModel {
106 BaierTransformedModel() : noTargetStates(false) {
107 // Intentionally left empty.
108 }
109
110 storm::storage::BitVector getNewRelevantStates(storm::storage::BitVector const& oldRelevantStates) const;
111 storm::storage::BitVector getNewRelevantStates() const;
112
113 storm::storage::BitVector beforeStates;
114 boost::optional<storm::storage::SparseMatrix<ValueType>> transitionMatrix;
115 boost::optional<storm::storage::BitVector> targetStates;
116 boost::optional<std::vector<ValueType>> stateRewards;
117 bool noTargetStates;
118 };
119
120 static BaierTransformedModel computeBaierTransformation(Environment const& env, storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
121 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
122 storm::storage::BitVector const& targetStates, storm::storage::BitVector const& conditionStates,
123 boost::optional<std::vector<ValueType>> const& stateRewards);
124};
125} // namespace helper
126} // namespace modelchecker
127} // namespace storm
128
129#endif /* STORM_MODELCHECKER_SPARSE_DTMC_PRCTL_MODELCHECKER_HELPER_H_ */
This class contains information that might accelerate the model checking process.
static std::vector< ValueType > computeNextProbabilities(Environment const &env, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::BitVector const &nextStates)
static std::vector< ValueType > computeReachabilityTimes(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &targetStates, bool qualitative, ModelCheckerHint const &hint=ModelCheckerHint())
static std::vector< ValueType > computeReachabilityRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, RewardModelType const &rewardModel, storm::storage::BitVector const &targetStates, bool qualitative, ModelCheckerHint const &hint=ModelCheckerHint())
static std::vector< ValueType > computeUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates, bool qualitative, ModelCheckerHint const &hint=ModelCheckerHint())
static std::vector< ValueType > computeConditionalProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &targetStates, storm::storage::BitVector const &conditionStates, bool qualitative)
static std::vector< ValueType > computeAllUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, 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 &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, RewardModelType const &rewardModel, bool qualitative, ModelCheckerHint const &hint=ModelCheckerHint())
static std::map< storm::storage::sparse::state_type, ValueType > computeRewardBoundedValues(Environment const &env, storm::models::sparse::Dtmc< ValueType > const &model, std::shared_ptr< storm::logic::OperatorFormula const > rewardBoundedFormula)
static std::vector< ValueType > computeConditionalRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, RewardModelType const &rewardModel, storm::storage::BitVector const &targetStates, storm::storage::BitVector const &conditionStates, bool qualitative)
static std::vector< ValueType > computeInstantaneousRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepCount)
static std::vector< ValueType > computeGloballyProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &psiStates, bool qualitative)
static std::vector< ValueType > computeCumulativeRewards(Environment const &env, storm::solver::SolveGoal< ValueType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepBound)
This class represents a discrete-time Markov chain.
Definition Dtmc.h:14
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
A class that holds a possibly non-square matrix in the compressed row storage format.
LabParser.cpp.
Definition cli.cpp:18