Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseMdpPrctlHelper.h
Go to the documentation of this file.
1#ifndef STORM_MODELCHECKER_SPARSE_MDP_PRCTL_MODELCHECKER_HELPER_H_
2#define STORM_MODELCHECKER_SPARSE_MDP_PRCTL_MODELCHECKER_HELPER_H_
3
4#include <vector>
5
11
14
16
17namespace storm {
18
19class Environment;
20
21namespace storage {
22class BitVector;
23}
24
25namespace models {
26namespace sparse {
27template<typename ValueType>
28class StandardRewardModel;
29}
30} // namespace models
31
32namespace modelchecker {
33class CheckResult;
34
35namespace helper {
36
37template<typename ValueType, typename SolutionType = ValueType>
39 public:
40 static std::map<storm::storage::sparse::state_type, SolutionType> computeRewardBoundedValues(
42 storm::storage::BitVector const& initialStates);
43
44 static std::vector<SolutionType> computeNextProbabilities(Environment const& env, OptimizationDirection dir,
45 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
46 storm::storage::BitVector const& nextStates);
47
50 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& phiStates,
51 storm::storage::BitVector const& psiStates, bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
52
55 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
56 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
57 storm::storage::BitVector const& psiStates, bool qualitative,
58 bool produceScheduler, bool useMecBasedTechnique = false);
59
60 template<typename RewardModelType>
61 static std::vector<SolutionType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
62 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
63 RewardModelType const& rewardModel, uint_fast64_t stepCount);
64
65 template<typename RewardModelType>
66 static std::vector<SolutionType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
67 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
68 RewardModelType const& rewardModel, uint_fast64_t stepBound);
69
70 template<typename RewardModelType>
73 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
74 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
75 RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
76 ModelCheckerHint const& hint = ModelCheckerHint());
77
78 template<typename RewardModelType>
81 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel, storm::storage::BitVector const& targetStates,
82 bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
83
86 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& targetStates, bool qualitative,
87 bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
88
90 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
91 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
93 bool lowerBoundOfIntervals, storm::storage::BitVector const& targetStates, bool qualitative);
94
95 static std::unique_ptr<CheckResult> computeConditionalProbabilities(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
96 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
97 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
98 storm::storage::BitVector const& targetStates,
99 storm::storage::BitVector const& conditionStates);
100
101 private:
102 static MDPSparseModelCheckingHelperReturnType<SolutionType> computeReachabilityRewardsHelper(
104 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
105 std::function<std::vector<ValueType>(uint_fast64_t, storm::storage::SparseMatrix<ValueType> const&, storm::storage::BitVector const&)> const&
106 totalStateRewardVectorGetter,
107 storm::storage::BitVector const& targetStates, bool qualitative, bool produceScheduler,
108 std::function<storm::storage::BitVector()> const& zeroRewardStatesGetter, std::function<storm::storage::BitVector()> const& zeroRewardChoicesGetter,
109 ModelCheckerHint const& hint = ModelCheckerHint());
110};
111
112} // namespace helper
113} // namespace modelchecker
114} // namespace storm
115
116#endif /* STORM_MODELCHECKER_SPARSE_MDP_PRCTL_MODELCHECKER_HELPER_H_ */
This class contains information that might accelerate the model checking process.
static MDPSparseModelCheckingHelperReturnType< SolutionType > computeReachabilityTimes(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &targetStates, bool qualitative, bool produceScheduler, ModelCheckerHint const &hint=ModelCheckerHint())
static MDPSparseModelCheckingHelperReturnType< SolutionType > computeGloballyProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &psiStates, bool qualitative, bool produceScheduler, bool useMecBasedTechnique=false)
static std::unique_ptr< CheckResult > computeConditionalProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::storage::BitVector const &targetStates, storm::storage::BitVector const &conditionStates)
static MDPSparseModelCheckingHelperReturnType< SolutionType > computeTotalRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, RewardModelType const &rewardModel, bool qualitative, bool produceScheduler, ModelCheckerHint const &hint=ModelCheckerHint())
static std::vector< SolutionType > computeCumulativeRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepBound)
static std::vector< SolutionType > computeInstantaneousRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepCount)
static std::map< storm::storage::sparse::state_type, SolutionType > computeRewardBoundedValues(Environment const &env, OptimizationDirection dir, rewardbounded::MultiDimensionalRewardUnfolding< ValueType, true > &rewardUnfolding, storm::storage::BitVector const &initialStates)
static std::vector< SolutionType > computeNextProbabilities(Environment const &env, OptimizationDirection dir, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::BitVector const &nextStates)
static MDPSparseModelCheckingHelperReturnType< SolutionType > computeUntilProbabilities(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&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, bool produceScheduler, ModelCheckerHint const &hint=ModelCheckerHint())
static std::vector< SolutionType > computeReachabilityRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, storm::models::sparse::StandardRewardModel< storm::Interval > const &intervalRewardModel, bool lowerBoundOfIntervals, storm::storage::BitVector const &targetStates, bool qualitative)
static MDPSparseModelCheckingHelperReturnType< SolutionType > computeReachabilityRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, RewardModelType const &rewardModel, storm::storage::BitVector const &targetStates, bool qualitative, bool produceScheduler, ModelCheckerHint const &hint=ModelCheckerHint())
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.
storage::BitVector BitVector
LabParser.cpp.
Definition cli.cpp:18