32 std::vector<ValueType>
const& b)
const override;
37 boost::optional<storm::solver::OptimizationDirection>
const&
direction = boost::none,
41 MinMaxMethod getMethod(
Environment const& env,
bool isExactMode)
const;
44 std::vector<uint64_t>
const& scheduler, std::vector<SolutionType>& x, std::vector<ValueType>& subB,
48 std::vector<storm::storage::sparse::state_type>&& initialPolicy)
const;
49 bool valueImproved(
OptimizationDirection dir, ValueType
const& value1, ValueType
const& value2)
const;
53 std::vector<ValueType>
const& b)
const;
55 std::vector<ValueType>
const& b)
const;
57 std::vector<ValueType>
const& b)
const;
59 std::vector<ValueType>
const& b)
const;
64 void setUpViOperator()
const;
65 void extractScheduler(std::vector<SolutionType>& x, std::vector<ValueType>
const& b,
OptimizationDirection const& dir,
bool robust,
66 bool updateX =
true)
const;
68 void createLinearEquationSolver(
Environment const& env)
const;
71 std::unique_ptr<LinearEquationSolverFactory<SolutionType>> linearEquationSolverFactory;
76 mutable std::shared_ptr<storm::solver::helper::ValueIterationOperator<ValueType, true, SolutionType>> viOperatorTriv;
77 mutable std::shared_ptr<storm::solver::helper::ValueIterationOperator<ValueType, false, SolutionType>> viOperatorNontriv;
79 mutable std::unique_ptr<std::vector<ValueType>> auxiliaryRowGroupVector;
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.