Storm 1.13.0.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
13
14namespace storm {
15
16class Environment;
17
18namespace storage {
19class BitVector;
20}
21
22namespace models {
23namespace sparse {
24template<typename ValueType>
26}
27} // namespace models
28
29namespace modelchecker {
30class CheckResult;
31
32namespace helper {
33
34template<typename ValueType, typename SolutionType = ValueType>
36 public:
37 static std::map<storm::storage::sparse::state_type, SolutionType> computeRewardBoundedValues(
39 storm::storage::BitVector const& initialStates);
40
41 static std::vector<SolutionType> computeNextProbabilities(Environment const& env, OptimizationDirection dir,
42 UncertaintyResolutionMode uncertaintyResolutionMode,
43 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
44 storm::storage::BitVector const& nextStates);
45
48 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& phiStates,
49 storm::storage::BitVector const& psiStates, bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
50
53 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
54 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
55 storm::storage::BitVector const& psiStates, bool qualitative,
56 bool produceScheduler, bool useMecBasedTechnique = false);
57
58 template<typename RewardModelType>
59 static std::vector<SolutionType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
60 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
61 RewardModelType const& rewardModel, uint_fast64_t stepCount);
62
63 template<typename RewardModelType>
64 static std::vector<SolutionType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
65 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
66 RewardModelType const& rewardModel, uint_fast64_t stepBound);
67
68 template<typename RewardModelType>
71 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
72 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
73 RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
74 ModelCheckerHint const& hint = ModelCheckerHint());
75 template<typename RewardModelType>
77 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
78 RewardModelType const& rewardModel, uint_fast64_t stepBound, ValueType discountFactor);
79
80 template<typename RewardModelType>
83 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
84 ValueType discountFactor, ModelCheckerHint const& hint = ModelCheckerHint());
85
86 template<typename RewardModelType>
89 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel, storm::storage::BitVector const& targetStates,
90 bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
91
94 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& targetStates, bool qualitative,
95 bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
96
97 template<typename IntervalRewardType>
98 static std::vector<SolutionType> computeReachabilityRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
99 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
100 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
102 bool lowerBoundOfIntervals, storm::storage::BitVector const& targetStates, bool qualitative);
103
105 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
106 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
107 storm::storage::BitVector const& targetStates,
108 storm::storage::BitVector const& conditionStates);
109
110 private:
111 static MDPSparseModelCheckingHelperReturnType<SolutionType> computeReachabilityRewardsHelper(
113 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
114 std::function<std::vector<ValueType>(uint_fast64_t, storm::storage::SparseMatrix<ValueType> const&, storm::storage::BitVector const&)> const&
115 totalStateRewardVectorGetter,
116 storm::storage::BitVector const& targetStates, bool qualitative, bool produceScheduler,
117 std::function<storm::storage::BitVector()> const& zeroRewardStatesGetter, std::function<storm::storage::BitVector()> const& zeroRewardChoicesGetter,
118 ModelCheckerHint const& hint = ModelCheckerHint());
119};
120
121} // namespace helper
122} // namespace modelchecker
123} // namespace storm
This class contains information that might accelerate the model checking process.
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 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 std::vector< SolutionType > computeNextProbabilities(Environment const &env, OptimizationDirection dir, UncertaintyResolutionMode uncertaintyResolutionMode, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::BitVector const &nextStates)
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 > computeInstantaneousRewards(Environment const &env, storm::solver::SolveGoal< ValueType, SolutionType > &&goal, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, RewardModelType const &rewardModel, uint_fast64_t stepCount)
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 > 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 > 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 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.
solver::UncertaintyResolutionMode UncertaintyResolutionMode
solver::OptimizationDirection OptimizationDirection