dehnert
9 years ago
16 changed files with 289 additions and 49 deletions
-
11src/storage/prism/Module.cpp
-
7src/storage/prism/Module.h
-
22src/storage/prism/Program.cpp
-
7src/storage/prism/Program.h
-
33src/storage/prism/menu_games/AbstractCommand.cpp
-
37src/storage/prism/menu_games/AbstractCommand.h
-
7src/storage/prism/menu_games/AbstractModule.cpp
-
14src/storage/prism/menu_games/AbstractModule.h
-
29src/storage/prism/menu_games/AbstractProgram.cpp
-
31src/storage/prism/menu_games/AbstractProgram.h
-
16src/storage/prism/menu_games/AbstractionDdInformation.cpp
-
49src/storage/prism/menu_games/AbstractionDdInformation.h
-
16src/storage/prism/menu_games/AbstractionExpressionInformation.cpp
-
39src/storage/prism/menu_games/AbstractionExpressionInformation.h
-
12src/storage/prism/menu_games/VariablePartition.cpp
-
8src/storage/prism/menu_games/VariablePartition.h
@ -0,0 +1,16 @@ |
|||
#include "src/storage/prism/menu_games/AbstractionDdInformation.h"
|
|||
|
|||
#include "src/storage/dd/DdManager.h"
|
|||
|
|||
namespace storm { |
|||
namespace prism { |
|||
namespace menu_games { |
|||
|
|||
template <storm::dd::DdType DdType, typename ValueType> |
|||
AbstractionDdInformation<DdType, ValueType>::AbstractionDdInformation(std::shared_ptr<storm::dd::DdManager<DdType>> const& manager) : ddManager(manager) { |
|||
// Intentionally left empty.
|
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,49 @@ |
|||
#ifndef STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONDDINFORMATION_H_ |
|||
#define STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONDDINFORMATION_H_ |
|||
|
|||
#include <memory> |
|||
#include <vector> |
|||
|
|||
#include "src/storage/dd/DdType.h" |
|||
#include "src/storage/expressions/Variable.h" |
|||
|
|||
namespace storm { |
|||
namespace dd { |
|||
template <storm::dd::DdType DdType> |
|||
class DdManager; |
|||
} |
|||
|
|||
namespace prism { |
|||
namespace menu_games { |
|||
|
|||
template <storm::dd::DdType DdType, typename ValueType> |
|||
struct AbstractionDdInformation { |
|||
public: |
|||
/*! |
|||
* Creates a new DdInformation that uses the given manager. |
|||
* |
|||
* @param manager The manager to use. |
|||
*/ |
|||
AbstractionDdInformation(std::shared_ptr<storm::dd::DdManager<DdType>> const& manager); |
|||
|
|||
// The manager responsible for the DDs. |
|||
std::shared_ptr<storm::dd::DdManager<DdType>> ddManager; |
|||
|
|||
// The DD variables corresponding to the predicates. |
|||
std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> predicateDdVariables; |
|||
|
|||
// The DD variable encoding the command (i.e., the nondeterministic choices of player 1). |
|||
storm::expressions::Variable commandDdVariable; |
|||
|
|||
// The DD variable encoding the update IDs for all actions. |
|||
storm::expressions::Variable updateDdVariable; |
|||
|
|||
// The DD variables encoding the nondeterministic choices of player 2. |
|||
std::vector<storm::expressions::Variable> optionDdVariables; |
|||
}; |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
#endif /* STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONDDINFORMATION_H_ */ |
@ -0,0 +1,16 @@ |
|||
#include "src/storage/prism/menu_games/AbstractionExpressionInformation.h"
|
|||
|
|||
#include "src/storage/expressions/ExpressionManager.h"
|
|||
#include "src/storage/expressions/Expression.h"
|
|||
|
|||
namespace storm { |
|||
namespace prism { |
|||
namespace menu_games { |
|||
|
|||
AbstractionExpressionInformation::AbstractionExpressionInformation(storm::expressions::ExpressionManager& expressionManager, std::vector<storm::expressions::Expression> const& predicates, std::set<storm::expressions::Variable> const& variables) : expressionManager(expressionManager), predicates(predicates), variables(variables) { |
|||
// Intentionally left empty.
|
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,39 @@ |
|||
#ifndef STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONEXPRESSIONINFORMATION_H_ |
|||
#define STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONEXPRESSIONINFORMATION_H_ |
|||
|
|||
#include <vector> |
|||
#include <set> |
|||
|
|||
namespace storm { |
|||
namespace expressions { |
|||
class ExpressionManager; |
|||
class Expression; |
|||
class Variable; |
|||
} |
|||
|
|||
namespace prism { |
|||
namespace menu_games { |
|||
|
|||
struct AbstractionExpressionInformation { |
|||
public: |
|||
/*! |
|||
* Creates an expression information object with the given expression manager. |
|||
* |
|||
* @param expressionManager The expression manager to use. |
|||
*/ |
|||
AbstractionExpressionInformation(storm::expressions::ExpressionManager& expressionManager, std::vector<storm::expressions::Expression> const& predicates = std::vector<storm::expressions::Expression>(), std::set<storm::expressions::Variable> const& variables = std::set<storm::expressions::Variable>()); |
|||
|
|||
// The manager responsible for the expressions of the program and the SMT solvers. |
|||
storm::expressions::ExpressionManager& expressionManager; |
|||
|
|||
// The current set of predicates used in the abstraction. |
|||
std::vector<storm::expressions::Expression> predicates; |
|||
|
|||
// The set of all variables. |
|||
std::set<storm::expressions::Variable> variables; |
|||
}; |
|||
} |
|||
} |
|||
} |
|||
|
|||
#endif /* STORM_STORAGE_PRISM_MENU_GAMES_ABSTRACTIONEXPRESSIONINFORMATION_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue