Storm 1.14.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
14
15namespace storm {
16
17class Environment;
18
19namespace storage {
20class BitVector;
21}
22
23namespace models {
24namespace sparse {
25template<typename ValueType>
27}
28} // namespace models
29
30namespace modelchecker {
31class CheckResult;
32
33namespace helper {
34
35template<typename ValueType, typename SolutionType = ValueType>
37 public:
40
44 static std::vector<SolutionType> computeRewardBoundedValues(Environment const& env, OptimizationDirection dir,
46 storm::storage::BitVector const& initialStates);
47
48 static std::vector<SolutionType> computeNextProbabilities(Environment const& env, OptimizationDirection dir,
49 UncertaintyResolutionMode uncertaintyResolutionMode,
50 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
51 storm::storage::BitVector const& nextStates);
52
55 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, storm::storage::BitVector const& phiStates,
56 storm::storage::BitVector const& psiStates, bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
57
60 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
61 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
62 storm::storage::BitVector const& psiStates, bool qualitative,
63 bool produceScheduler, bool useMecBasedTechnique = false);
64
65 template<typename RewardModelType>
66 static std::vector<SolutionType> computeInstantaneousRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
67 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
68 RewardModelType const& rewardModel, uint_fast64_t stepCount);
69
70 template<typename RewardModelType>
71 static std::vector<SolutionType> computeCumulativeRewards(Environment const& env, storm::solver::SolveGoal<ValueType, SolutionType>&& goal,
72 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
73 RewardModelType const& rewardModel, uint_fast64_t stepBound);
74
75 template<typename RewardModelType>
77 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
78 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel,
79 bool qualitative, bool produceScheduler, ModelCheckerHint const& hint = ModelCheckerHint());
80 template<typename RewardModelType>
82 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
83 RewardModelType const& rewardModel, uint_fast64_t stepBound, ValueType discountFactor);
84
85 template<typename RewardModelType>
87 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
88 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
89 RewardModelType const& rewardModel, bool qualitative, bool produceScheduler,
90 ValueType discountFactor, ModelCheckerHint const& hint = ModelCheckerHint());
91
92 template<typename RewardModelType>
94 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
95 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, RewardModelType const& rewardModel,
96 storm::storage::BitVector const& targetStates, bool qualitative, bool produceScheduler,
97 ModelCheckerHint const& hint = ModelCheckerHint());
98
100 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
101 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
102 storm::storage::BitVector const& targetStates, bool qualitative, bool produceScheduler,
103 ModelCheckerHint const& hint = ModelCheckerHint());
104
105 template<typename IntervalRewardType>
106 static std::vector<ExtendedSolutionType> computeReachabilityRewards(
108 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
109 storm::models::sparse::StandardRewardModel<IntervalRewardType> const& intervalRewardModel, bool lowerBoundOfIntervals,
110 storm::storage::BitVector const& targetStates, bool qualitative);
111
113 storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
114 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
115 storm::storage::BitVector const& targetStates,
116 storm::storage::BitVector const& conditionStates);
117
118 private:
119 static ExtendedReturnType computeReachabilityRewardsHelper(
121 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
122 std::function<std::vector<ValueType>(uint_fast64_t, storm::storage::SparseMatrix<ValueType> const&, storm::storage::BitVector const&)> const&
123 totalStateRewardVectorGetter,
124 storm::storage::BitVector const& targetStates, bool qualitative, bool produceScheduler,
125 std::function<storm::storage::BitVector()> const& zeroRewardStatesGetter, std::function<storm::storage::BitVector()> const& zeroRewardChoicesGetter,
126 ModelCheckerHint const& hint = ModelCheckerHint());
127};
128
129} // namespace helper
130} // namespace modelchecker
131} // namespace storm
This class contains information that might accelerate the model checking process.
storm::utility::ExtendedValueType< SolutionType > ExtendedSolutionType
static ExtendedReturnType 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 ExtendedReturnType 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())
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< ExtendedSolutionType > 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< IntervalRewardType > const &intervalRewardModel, bool lowerBoundOfIntervals, storm::storage::BitVector const &targetStates, bool qualitative)
static ExtendedReturnType 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 > computeNextProbabilities(Environment const &env, OptimizationDirection dir, UncertaintyResolutionMode uncertaintyResolutionMode, storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::BitVector const &nextStates)
static ExtendedReturnType 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())
MDPSparseModelCheckingHelperReturnType< SolutionType, ExtendedSolutionType > ExtendedReturnType
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 std::vector< SolutionType > computeRewardBoundedValues(Environment const &env, OptimizationDirection dir, rewardbounded::MultiDimensionalRewardUnfolding< ValueType, true > &rewardUnfolding, storm::storage::BitVector const &initialStates)
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)
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.
std::conditional_t< storm::NumberTraits< ValueType >::HasInfinity, ValueType, ExtendedNumber< ValueType > > ExtendedValueType
The type to use for values that may be infinite.
solver::UncertaintyResolutionMode UncertaintyResolutionMode
solver::OptimizationDirection OptimizationDirection