30 std::vector<ValueType>
const& b, std::vector<uint64_t>* player1Choices =
nullptr,
31 std::vector<uint64_t>* player2Choices =
nullptr)
const override;
33 std::vector<ValueType>
const* b, uint_fast64_t n = 1)
const override;
38 GameMethod getMethod(
Environment const& env,
bool isExactMode)
const;
41 std::vector<ValueType>
const& b, std::vector<uint64_t>* player1Choices =
nullptr,
42 std::vector<uint64_t>* player2Choices =
nullptr)
const;
44 std::vector<ValueType>
const& b, std::vector<uint64_t>* player1Choices =
nullptr,
45 std::vector<uint64_t>* player2Choices =
nullptr)
const;
50 std::vector<ValueType>& player2ReducedResult, std::vector<ValueType>& player1ReducedResult,
54 void getInducedMatrixVector(std::vector<ValueType>& x, std::vector<ValueType>
const& b, std::vector<uint_fast64_t>
const& player1Choices,
56 std::vector<ValueType>& inducedVector)
const;
61 std::vector<ValueType>
const& b, std::vector<ValueType>& player2ChoiceValues, std::vector<uint_fast64_t>& player1Choices,
62 std::vector<uint_fast64_t>& player2Choices)
const;
65 ValueType
const& value2)
const;
67 bool player1RepresentedByMatrix()
const;
69 std::vector<uint64_t>
const& getPlayer1Grouping()
const;
70 uint64_t getNumberOfPlayer1States()
const;
71 uint64_t getNumberOfPlayer2States()
const;
74 mutable std::unique_ptr<storm::solver::Multiplier<ValueType>> multiplierPlayer2Matrix;
75 mutable std::unique_ptr<std::vector<ValueType>> auxiliaryP2RowVector;
76 mutable std::unique_ptr<std::vector<ValueType>> auxiliaryP2RowGroupVector;
77 mutable std::unique_ptr<std::vector<ValueType>> auxiliaryP1RowGroupVector;
80 std::unique_ptr<LinearEquationSolverFactory<ValueType>> linearEquationSolverFactory;
84 std::unique_ptr<std::vector<uint64_t>> localPlayer1Grouping;
85 std::unique_ptr<storm::storage::SparseMatrix<storm::storage::sparse::state_type>> localPlayer1Matrix;
86 std::unique_ptr<storm::storage::SparseMatrix<ValueType>> localPlayer2Matrix;
90 std::vector<uint64_t>
const* player1Grouping;
96 bool linearEquationSolverIsExact;
virtual bool solveGame(Environment const &env, OptimizationDirection player1Dir, OptimizationDirection player2Dir, std::vector< ValueType > &x, std::vector< ValueType > const &b, std::vector< uint64_t > *player1Choices=nullptr, std::vector< uint64_t > *player2Choices=nullptr) const override
Solves the equation system defined by the game matrices.
virtual void repeatedMultiply(Environment const &env, OptimizationDirection player1Dir, OptimizationDirection player2Dir, std::vector< ValueType > &x, std::vector< ValueType > const *b, uint_fast64_t n=1) const override
Performs (repeated) matrix-vector multiplication with the given parameters, i.e.