Storm 1.13.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
BaierUpperRewardBoundsComputer.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <functional>
5#include <vector>
6
7namespace storm {
8namespace storage {
9template<typename ValueType>
10class SparseMatrix;
11}
12
13namespace modelchecker {
14namespace helper {
15
16template<typename ValueType>
18 public:
29 BaierUpperRewardBoundsComputer(storm::storage::SparseMatrix<ValueType> const& transitionMatrix, std::vector<ValueType> const& oneStepTargetProbabilities,
30 std::function<uint64_t(uint64_t)> const& stateToScc = {});
31
45 storm::storage::SparseMatrix<ValueType> const& backwardTransitions, std::vector<ValueType> const& oneStepTargetProbabilities,
46 std::function<uint64_t(uint64_t)> const& stateToScc = {});
47
48 struct Bounds {
49 ValueType lower;
50 ValueType upper;
51 };
52
57 Bounds computeTotalRewardBounds(std::vector<ValueType> const& rewards);
58
70 static std::vector<ValueType> computeUpperBoundOnExpectedVisitingTimes(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
71 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
72 std::vector<ValueType> const& oneStepTargetProbabilities);
73
81 static std::vector<ValueType> computeUpperBoundOnExpectedVisitingTimes(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
82 std::vector<ValueType> const& oneStepTargetProbabilities);
83
92 static std::vector<ValueType> computeUpperBoundOnExpectedVisitingTimes(storm::storage::SparseMatrix<ValueType> const& transitionMatrix,
93 storm::storage::SparseMatrix<ValueType> const& backwardTransitions,
94 std::vector<ValueType> const& oneStepTargetProbabilities,
95 std::function<uint64_t(uint64_t)> const& stateToScc);
96
97 private:
98 storm::storage::SparseMatrix<ValueType> const& transitionMatrix;
99 storm::storage::SparseMatrix<ValueType> const* backwardTransitions;
100 std::function<uint64_t(uint64_t)> stateToScc;
101 std::vector<ValueType> const& oneStepTargetProbabilities;
102};
103} // namespace helper
104} // namespace modelchecker
105} // namespace storm
BaierUpperRewardBoundsComputer(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, std::vector< ValueType > const &oneStepTargetProbabilities, std::function< uint64_t(uint64_t)> const &stateToScc={})
Creates an object that can compute upper bounds on the maximal expected rewards for the provided MDP.
Bounds computeTotalRewardBounds(std::vector< ValueType > const &rewards)
Computes a lower and an upper bound on the expected total rewards.
static std::vector< ValueType > computeUpperBoundOnExpectedVisitingTimes(storm::storage::SparseMatrix< ValueType > const &transitionMatrix, storm::storage::SparseMatrix< ValueType > const &backwardTransitions, std::vector< ValueType > const &oneStepTargetProbabilities)
Computes for each state an upper bound for the maximal expected times each state is visited.
A class that holds a possibly non-square matrix in the compressed row storage format.