Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MenuGameAbstractor.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <vector>
5
7
11
13
14namespace storm {
15namespace dd {
16template<storm::dd::DdType DdType>
17class Bdd;
18}
19} // namespace storm
20
21namespace storm::gbar {
22namespace abstraction {
23
24template<storm::dd::DdType DdType>
26
27template<storm::dd::DdType DdType, typename ValueType>
29 public:
30 explicit MenuGameAbstractor(AbstractionOptions const& options);
31 virtual ~MenuGameAbstractor() = default;
32
33 virtual storm::dd::DdManager<DdType> const& getDdManager() const = 0;
34
37
40 virtual storm::expressions::Expression const& getGuard(uint64_t player1Choice) const = 0;
41 virtual std::pair<uint64_t, uint64_t> getPlayer1ChoiceRange() const = 0;
42 virtual uint64_t getNumberOfUpdates(uint64_t player1Choice) const = 0;
43 std::vector<std::map<storm::expressions::Variable, storm::expressions::Expression>> getVariableUpdates(uint64_t player1Choice) const;
44 virtual std::map<storm::expressions::Variable, storm::expressions::Expression> getVariableUpdates(uint64_t player1Choice,
45 uint64_t auxiliaryChoice) const = 0;
46 virtual std::set<storm::expressions::Variable> const& getAssignedVariables(uint64_t player1Choice) const = 0;
48
54
56 virtual void refine(RefinementCommand const& command) = 0;
57
59 virtual void exportToDot(std::string const& filename, storm::dd::Bdd<DdType> const& highlightStatesBdd, storm::dd::Bdd<DdType> const& filter) const = 0;
60
62 virtual uint64_t getNumberOfPredicates() const = 0;
63
69 virtual void addTerminalStates(storm::expressions::Expression const& expression) = 0;
70
75 void setTargetStates(storm::expressions::Expression const& targetStateExpression);
76
78 bool hasTargetStateExpression() const;
79
84 virtual void notifyGuardsArePredicates() = 0;
85
86 protected:
88
89 void exportToDot(storm::gbar::abstraction::MenuGame<DdType, ValueType> const& currentGame, std::string const& filename,
90 storm::dd::Bdd<DdType> const& highlightStatesBdd, storm::dd::Bdd<DdType> const& filter) const;
91
92 private:
93 bool restrictToRelevantStates;
94
95 // An expression characterizing the target states.
96 storm::expressions::Expression targetStateExpression;
97};
98
99} // namespace abstraction
100} // namespace storm::gbar
virtual MenuGame< DdType, ValueType > abstract()=0
Retrieves the abstraction.
storm::expressions::Expression const & getTargetStateExpression() const
MenuGameAbstractor(AbstractionOptions const &options)
virtual uint64_t getNumberOfUpdates(uint64_t player1Choice) const =0
virtual storm::dd::DdManager< DdType > const & getDdManager() const =0
virtual std::set< storm::expressions::Variable > const & getAssignedVariables(uint64_t player1Choice) const =0
virtual std::map< storm::expressions::Variable, storm::expressions::Expression > getVariableUpdates(uint64_t player1Choice, uint64_t auxiliaryChoice) const =0
virtual void refine(RefinementCommand const &command)=0
Methods to refine the abstraction.
void setTargetStates(storm::expressions::Expression const &targetStateExpression)
Sets the expression characterizing the target states.
std::vector< std::map< storm::expressions::Variable, storm::expressions::Expression > > getVariableUpdates(uint64_t player1Choice) const
virtual storm::dd::Bdd< DdType > getStates(storm::expressions::Expression const &expression)=0
Retrieves a BDD that characterizes the states corresponding to the given expression.
virtual void addTerminalStates(storm::expressions::Expression const &expression)=0
Adds the expression to the ones characterizing terminal states, i.e.
virtual storm::expressions::Expression getInitialExpression() const =0
virtual uint64_t getNumberOfPredicates() const =0
Retrieves the number of predicates currently in use.
virtual storm::expressions::Expression const & getGuard(uint64_t player1Choice) const =0
virtual std::pair< uint64_t, uint64_t > getPlayer1ChoiceRange() const =0
virtual void notifyGuardsArePredicates()=0
Notifies the abstractor that the guards are predicates, which may be used to improve the bottom state...
virtual void exportToDot(std::string const &filename, storm::dd::Bdd< DdType > const &highlightStatesBdd, storm::dd::Bdd< DdType > const &filter) const =0
Exports a representation of the current abstraction state in the dot format.
virtual AbstractionInformation< DdType > const & getAbstractionInformation() const =0
Retrieves information about the abstraction.
This class represents a discrete-time stochastic two-player game.
Definition MenuGame.h:14
Options that configure the game-based abstraction-refinement procedure.