Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseMdpPrctlHelper.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
12
13namespace storm {
14
15class Environment;
16
17namespace storage {
18class BitVector;
19}
20
21namespace models {
22namespace sparse {
23template<typename ValueType>
24class StandardRewardModel;
25}
26} // namespace models
27
28namespace modelchecker {
29class CheckResult;
30
31namespace helper {
32
33template<typename ValueType, typename SolutionType = ValueType>
35 public:
36 static std::map<storm::storage::sparse::state_type, SolutionType> computeRewardBoundedValues(
38 storm::storage::BitVector const& initialStates);
39
40 static std::vector<SolutionType> computeNextProbabilities(Environment const& env, OptimizationDirection dir,
41 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
42 storm::storage::BitVector const& nextStates);
43
46 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& phiStates,
47 storm::storage::BitVector const& psiStates, bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
48
51 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
52 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
53 storm::storage::BitVector const& psiStates, bool qualitative,
54 bool produceScheduler, bool useMecBasedTechnique = false);
55
56 template<typename RewardModelType>
57 static std::vector<SolutionType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
58 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
59 RewardModelType const& rewardModel, uint_fast64_t stepCount);
60
61 template<typename RewardModelType>
62 static std::vector<SolutionType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
63 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
64 RewardModelType const& rewardModel, uint_fast64_t stepBound);
65
66 template<typename RewardModelType>
69 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
70 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
71 RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
72 ModelCheckerHint const& hint = ModelCheckerHint());
73 template<typename RewardModelType>
75 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
76 RewardModelType const& rewardModel, uint_fast64_t stepBound, ValueType discountFactor);
77
78 template<typename RewardModelType>
81 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
82 ValueType discountFactor, ModelCheckerHint const& hint = ModelCheckerHint());
83
84 template<typename RewardModelType>
87 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel, storm::storage::BitVector const& targetStates,
88 bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
89
92 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& targetStates, bool qualitative,
93 bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
94
96 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
97 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
99 bool lowerBoundOfIntervals, storm::storage::BitVector const& targetStates, bool qualitative);
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
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 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 > computeDiscountedCumulativeRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepBound, ValueType discountFactor)
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 MDPSparseModelCheckingHelperReturnType< SolutionType > computeDiscountedTotalRewards(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, ValueType discountFactor, 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:16
A class that holds a possibly non-square matrix in the compressed row storage format.
storage::BitVector BitVector