3 changed files with 70 additions and 1 deletions
-
2src/models/ModelType.h
-
0src/models/symbolic/StochasticTwoPlayerGame.cpp
-
69src/models/symbolic/StochasticTwoPlayerGame.h
@ -0,0 +1,69 @@ |
|||||
|
#ifndef STORM_MODELS_SYMBOLIC_STOCHASTICTWOPLAYERGAME_H_ |
||||
|
#define STORM_MODELS_SYMBOLIC_STOCHASTICTWOPLAYERGAME_H_ |
||||
|
|
||||
|
#include "src/models/symbolic/NondeterministicModel.h" |
||||
|
#include "src/utility/OsDetection.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
namespace models { |
||||
|
namespace symbolic { |
||||
|
|
||||
|
/*! |
||||
|
* This class represents a discrete-time Markov decision process. |
||||
|
*/ |
||||
|
template<storm::dd::DdType Type> |
||||
|
class StochasticTwoPlayerGame : public NondeterministicModel<Type> { |
||||
|
public: |
||||
|
StochasticTwoPlayerGame(Mdp<Type> const& other) = default; |
||||
|
StochasticTwoPlayerGame& operator=(StochasticTwoPlayerGame<Type> const& other) = default; |
||||
|
|
||||
|
#ifndef WINDOWS |
||||
|
StochasticTwoPlayerGame(StochasticTwoPlayerGame<Type>&& other) = default; |
||||
|
StochasticTwoPlayerGame& operator=(StochasticTwoPlayerGame<Type>&& other) = default; |
||||
|
#endif |
||||
|
|
||||
|
/*! |
||||
|
* Constructs a model from the given data. |
||||
|
* |
||||
|
* @param modelType The type of the model. |
||||
|
* @param manager The manager responsible for the decision diagrams. |
||||
|
* @param reachableStates A DD representing the reachable states. |
||||
|
* @param initialStates A DD representing the initial states of the model. |
||||
|
* @param transitionMatrix The matrix representing the transitions in the model. |
||||
|
* @param rowVariables The set of row meta variables used in the DDs. |
||||
|
* @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row |
||||
|
* meta variables. |
||||
|
* @param columVariables The set of column meta variables used in the DDs. |
||||
|
* @param columnExpressionAdapter An object that can be used to translate expressions in terms of the |
||||
|
* column meta variables. |
||||
|
* @param rowColumnMetaVariablePairs All pairs of row/column meta variables. |
||||
|
* @param player1Variables The meta variables used to encode the nondeterministic choices of player 1. |
||||
|
* @param player2Variables The meta variables used to encode the nondeterministic choices of player 2. |
||||
|
* @param allNondeterminismVariables The meta variables used to encode the nondeterminism in the model. |
||||
|
* @param labelToExpressionMap A mapping from label names to their defining expressions. |
||||
|
* @param optionalStateRewardVector The reward values associated with the states. |
||||
|
* @param optionalTransitionRewardMatrix The reward values associated with the transitions of the model. |
||||
|
*/ |
||||
|
StochasticTwoPlayerGame(std::shared_ptr<storm::dd::DdManager<Type>> manager, |
||||
|
storm::dd::Bdd<Type> reachableStates, |
||||
|
storm::dd::Bdd<Type> initialStates, |
||||
|
storm::dd::Add<Type> transitionMatrix, |
||||
|
std::set<storm::expressions::Variable> const& rowVariables, |
||||
|
std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> rowExpressionAdapter, |
||||
|
std::set<storm::expressions::Variable> const& columnVariables, |
||||
|
std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> columnExpressionAdapter, |
||||
|
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, |
||||
|
std::set<storm::expressions::Variable> const& allNondeterminismVariables, |
||||
|
std::map<std::string, storm::expressions::Expression> labelToExpressionMap = std::map<std::string, storm::expressions::Expression>(), |
||||
|
boost::optional<storm::dd::Add<Type>> const& optionalStateRewardVector = boost::optional<storm::dd::Dd<Type>>(), |
||||
|
boost::optional<storm::dd::Add<Type>> const& optionalTransitionRewardMatrix = boost::optional<storm::dd::Dd<Type>>()); |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
} // namespace symbolic |
||||
|
} // namespace models |
||||
|
} // namespace storm |
||||
|
|
||||
|
#endif /* STORM_MODELS_SYMBOLIC_STOCHASTICTWOPLAYERGAME_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue