1#ifndef STORM_SOLVER_SYMBOLICGAMESOLVER_H_
2#define STORM_SOLVER_SYMBOLICGAMESOLVER_H_
22template<storm::dd::DdType Type,
typename ValueType =
double>
116template<storm::dd::DdType Type,
typename ValueType>
121 virtual std::unique_ptr<storm::solver::SymbolicGameSolver<Type, ValueType>>
create(
123 storm::dd::Bdd<Type> const& illegalPlayer2Mask, std::set<storm::expressions::Variable>
const& rowMetaVariables,
124 std::set<storm::expressions::Variable>
const& columnMetaVariables,
125 std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>>
const& rowColumnMetaVariablePairs,
126 std::set<storm::expressions::Variable>
const& player1Variables, std::set<storm::expressions::Variable>
const& player2Variables)
const;
virtual std::unique_ptr< storm::solver::SymbolicGameSolver< Type, ValueType > > create(storm::dd::Add< Type, ValueType > const &A, storm::dd::Bdd< Type > const &allRows, storm::dd::Bdd< Type > const &illegalPlayer1Mask, storm::dd::Bdd< Type > const &illegalPlayer2Mask, std::set< storm::expressions::Variable > const &rowMetaVariables, std::set< storm::expressions::Variable > const &columnMetaVariables, std::vector< std::pair< storm::expressions::Variable, storm::expressions::Variable > > const &rowColumnMetaVariablePairs, std::set< storm::expressions::Variable > const &player1Variables, std::set< storm::expressions::Variable > const &player2Variables) const
virtual ~SymbolicGameSolverFactory()=default
An interface that represents an abstract symbolic game solver.
bool generatePlayer1Strategy
virtual ~SymbolicGameSolver()=default
storm::dd::Add< Type, ValueType > illegalPlayer2Mask
storm::dd::Bdd< Type > const & getPlayer1Strategy() const
boost::optional< storm::dd::Bdd< Type > > player2Strategy
storm::dd::Add< Type, ValueType > illegalPlayer1Mask
std::vector< std::pair< storm::expressions::Variable, storm::expressions::Variable > > rowColumnMetaVariablePairs
storm::dd::Bdd< Type > allRows
virtual storm::dd::Add< Type, ValueType > solveGame(Environment const &env, OptimizationDirection player1Goal, OptimizationDirection player2Goal, storm::dd::Add< Type, ValueType > const &x, storm::dd::Add< Type, ValueType > const &b, boost::optional< storm::dd::Bdd< Type > > const &basePlayer1Strategy=boost::none, boost::optional< storm::dd::Bdd< Type > > const &basePlayer2Strategy=boost::none)
Solves the equation system defined by the game matrix.
void setGeneratePlayer1Strategy(bool value)
void setGeneratePlayersStrategies(bool value)
storm::dd::Add< Type, ValueType > A
boost::optional< storm::dd::Bdd< Type > > player1Strategy
storm::dd::Bdd< Type > const & getPlayer2Strategy() const
std::set< storm::expressions::Variable > rowMetaVariables
void setGeneratePlayer2Strategy(bool value)
std::set< storm::expressions::Variable > columnMetaVariables
std::set< storm::expressions::Variable > player2Variables
bool generatePlayer2Strategy
std::set< storm::expressions::Variable > player1Variables