Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
LpMinMaxLinearEquationSolver.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace storm {
8
9class Environment;
10
11namespace solver {
12
18template<typename ValueType>
20 public:
23 std::unique_ptr<storm::utility::solver::LpSolverFactory<ValueType>>&& lpSolverFactory);
25 std::unique_ptr<storm::utility::solver::LpSolverFactory<ValueType>>&& lpSolverFactory);
26
27 virtual bool internalSolveEquations(Environment const& env, OptimizationDirection dir, std::vector<ValueType>& x,
28 std::vector<ValueType> const& b) const override;
29
30 virtual void clearCache() const override;
31
33 boost::optional<storm::solver::OptimizationDirection> const& direction = boost::none,
34 bool const& hasInitialScheduler = false) const override;
35
36 private:
37 bool solveEquationsViToLp(Environment const& env, OptimizationDirection dir, std::vector<ValueType>& x, std::vector<ValueType> const& b) const;
38 bool solveEquationsLp(Environment const& env, OptimizationDirection dir, std::vector<ValueType>& x, std::vector<ValueType> const& b,
39 std::vector<ValueType> const* lowerBounds = nullptr, std::vector<ValueType> const* upperBounds = nullptr) const;
40
41 std::unique_ptr<storm::utility::solver::LpSolverFactory<ValueType>> lpSolverFactory;
42};
43
44} // namespace solver
45} // namespace storm
boost::optional< std::vector< ValueType > > upperBounds
boost::optional< std::vector< ValueType > > lowerBounds
Solves a MinMaxLinearEquationSystem using a linear programming solver.
virtual bool internalSolveEquations(Environment const &env, OptimizationDirection dir, std::vector< ValueType > &x, std::vector< ValueType > const &b) const override
virtual MinMaxLinearEquationSolverRequirements getRequirements(Environment const &env, boost::optional< storm::solver::OptimizationDirection > const &direction=boost::none, bool const &hasInitialScheduler=false) const override
Retrieves the requirements of this solver for solving equations with the current settings.
virtual void clearCache() const override
Clears the currently cached data that has been stored during previous calls of the solver.
OptimizationDirectionSetting direction
The optimization direction to use for calls to functions that do not provide it explicitly....
bool hasInitialScheduler() const
Returns true iff an initial scheduler is set.
storm::storage::SparseMatrix< ValueType > const * A
A class that holds a possibly non-square matrix in the compressed row storage format.
LabParser.cpp.
Definition cli.cpp:18