Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
EpochModel.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
10
11namespace storm {
12class Environment;
13
14namespace modelchecker {
15namespace helper {
16namespace rewardbounded {
17template<typename ValueType, bool SingleObjectiveMode>
18struct EpochModel {
19 typedef typename std::conditional<SingleObjectiveMode, ValueType, std::vector<ValueType>>::type SolutionType;
20
24 std::vector<SolutionType> stepSolutions;
25 std::vector<std::vector<ValueType>> objectiveRewards;
26 std::vector<storm::storage::BitVector> objectiveRewardFilter;
29 boost::optional<storm::solver::LinearEquationSolverProblemFormat> equationSolverProblemFormat;
30
34 std::vector<ValueType> analyzeSingleObjective(Environment const& env, OptimizationDirection dir, std::vector<ValueType>& x, std::vector<ValueType>& b,
35 std::unique_ptr<storm::solver::MinMaxLinearEquationSolver<ValueType>>& minMaxSolver,
36 boost::optional<ValueType> const& lowerBound, boost::optional<ValueType> const& upperBound);
37
41 std::vector<ValueType> analyzeSingleObjective(Environment const& env, std::vector<ValueType>& x, std::vector<ValueType>& b,
42 std::unique_ptr<storm::solver::LinearEquationSolver<ValueType>>& linEqSolver,
43 boost::optional<ValueType> const& lowerBound, boost::optional<ValueType> const& upperBound);
44};
45
46} // namespace rewardbounded
47} // namespace helper
48} // namespace modelchecker
49} // namespace storm
An interface that represents an abstract linear equation solver.
A class representing the interface that all min-max linear equation solvers shall implement.
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
A class that holds a possibly non-square matrix in the compressed row storage format.
LabParser.cpp.
Definition cli.cpp:18
std::vector< storm::storage::BitVector > objectiveRewardFilter
Definition EpochModel.h:26
std::vector< ValueType > analyzeSingleObjective(Environment const &env, OptimizationDirection dir, std::vector< ValueType > &x, std::vector< ValueType > &b, std::unique_ptr< storm::solver::MinMaxLinearEquationSolver< ValueType > > &minMaxSolver, boost::optional< ValueType > const &lowerBound, boost::optional< ValueType > const &upperBound)
Analyzes the epoch model, i.e., solves the represented equation system.
std::vector< ValueType > analyzeSingleObjective(Environment const &env, std::vector< ValueType > &x, std::vector< ValueType > &b, std::unique_ptr< storm::solver::LinearEquationSolver< ValueType > > &linEqSolver, boost::optional< ValueType > const &lowerBound, boost::optional< ValueType > const &upperBound)
Analyzes the epoch model, i.e., solves the represented equation system.
std::conditional< SingleObjectiveMode, ValueType, std::vector< ValueType > >::type SolutionType
Definition EpochModel.h:19
storm::storage::SparseMatrix< ValueType > epochMatrix
Definition EpochModel.h:22
std::vector< std::vector< ValueType > > objectiveRewards
Definition EpochModel.h:25
boost::optional< storm::solver::LinearEquationSolverProblemFormat > equationSolverProblemFormat
In case of DTMCs we have different options for the equation problem format the epoch model will have.
Definition EpochModel.h:29