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;
62 void setUpViOperator()
const;
63 void extractScheduler(std::vector<SolutionType>& x, std::vector<ValueType>
const& b,
OptimizationDirection const& dir,
bool robust,
64 bool updateX =
true)
const;
66 void createLinearEquationSolver(
Environment const& env)
const;
69 std::unique_ptr<LinearEquationSolverFactory<SolutionType>> linearEquationSolverFactory;
74 mutable std::shared_ptr<storm::solver::helper::ValueIterationOperator<ValueType, true, SolutionType>> viOperatorTriv;
75 mutable std::shared_ptr<storm::solver::helper::ValueIterationOperator<ValueType, false, SolutionType>> viOperatorNontriv;
77 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.