Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DiscountedValueIterationHelper.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <functional>
5#include <memory>
6#include <optional>
7#include <vector>
8
13
14namespace storm::solver::helper {
15
16template<typename ValueType, bool TrivialRowGrouping>
18 public:
20
21 template<storm::OptimizationDirection Dir, bool Relative>
22 SolverStatus DiscountedVI(std::vector<ValueType>& operand, std::vector<ValueType> const& offsets, uint64_t& numIterations, ValueType const& precision,
23 ValueType const& discountFactor, ValueType const& maximalAbsoluteReward,
24 std::function<SolverStatus(SolverStatus const&)> const& iterationCallback = {},
26
27 SolverStatus DiscountedVI(std::vector<ValueType>& operand, std::vector<ValueType> const& offsets, uint64_t& numIterations, bool relative,
28 ValueType const& precision, ValueType const& discountFactor, ValueType const& maximalAbsoluteReward,
29 std::optional<storm::OptimizationDirection> const& dir = {},
30 std::function<SolverStatus(SolverStatus const&)> const& iterationCallback = {},
32
33 SolverStatus DiscountedVI(std::vector<ValueType>& operand, std::vector<ValueType> const& offsets, bool relative, ValueType const& precision,
34 ValueType const& discountFactor, ValueType const& maximalAbsoluteReward,
35 std::optional<storm::OptimizationDirection> const& dir = {},
36 std::function<SolverStatus(SolverStatus const&)> const& iterationCallback = {},
38
39 private:
40 std::shared_ptr<ValueIterationOperator<ValueType, TrivialRowGrouping>> viOperator;
41};
42
43} // namespace storm::solver::helper
DiscountedValueIterationHelper(std::shared_ptr< ValueIterationOperator< ValueType, TrivialRowGrouping > > viOperator)
SolverStatus DiscountedVI(std::vector< ValueType > &operand, std::vector< ValueType > const &offsets, uint64_t &numIterations, ValueType const &precision, ValueType const &discountFactor, ValueType const &maximalAbsoluteReward, std::function< SolverStatus(SolverStatus const &)> const &iterationCallback={}, MultiplicationStyle mult=MultiplicationStyle::GaussSeidel) const
This class represents the Value Iteration Operator (also known as Bellman operator).