Storm
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
10
12
13namespace storm {
14namespace dd {
15template<storm::dd::DdType DdType>
16class Bdd;
17}
18} // namespace storm
19
20namespace storm::gbar {
21namespace abstraction {
22
23template<storm::dd::DdType DdType>
24class AbstractionInformation;
25
28 MenuGameAbstractorOptions(std::vector<storm::expressions::Expression>&& constraints) : constraints(std::move(constraints)) {
29 // Intentionally left empty.
30 }
31
32 std::vector<storm::expressions::Expression> constraints;
33};
34
35template<storm::dd::DdType DdType, typename ValueType>
37 public:
39 virtual ~MenuGameAbstractor() = default;
40
41 virtual storm::dd::DdManager<DdType> const& getDdManager() const = 0;
42
45
48 virtual storm::expressions::Expression const& getGuard(uint64_t player1Choice) const = 0;
49 virtual std::pair<uint64_t, uint64_t> getPlayer1ChoiceRange() const = 0;
50 virtual uint64_t getNumberOfUpdates(uint64_t player1Choice) const = 0;
51 std::vector<std::map<storm::expressions::Variable, storm::expressions::Expression>> getVariableUpdates(uint64_t player1Choice) const;
52 virtual std::map<storm::expressions::Variable, storm::expressions::Expression> getVariableUpdates(uint64_t player1Choice,
53 uint64_t auxiliaryChoice) const = 0;
54 virtual std::set<storm::expressions::Variable> const& getAssignedVariables(uint64_t player1Choice) const = 0;
56
62
64 virtual void refine(RefinementCommand const& command) = 0;
65
67 virtual void exportToDot(std::string const& filename, storm::dd::Bdd<DdType> const& highlightStatesBdd, storm::dd::Bdd<DdType> const& filter) const = 0;
68
70 virtual uint64_t getNumberOfPredicates() const = 0;
71
77 virtual void addTerminalStates(storm::expressions::Expression const& expression) = 0;
78
83 void setTargetStates(storm::expressions::Expression const& targetStateExpression);
84
86 bool hasTargetStateExpression() const;
87
92 virtual void notifyGuardsArePredicates() = 0;
93
94 protected:
96
97 void exportToDot(storm::gbar::abstraction::MenuGame<DdType, ValueType> const& currentGame, std::string const& filename,
98 storm::dd::Bdd<DdType> const& highlightStatesBdd, storm::dd::Bdd<DdType> const& filter) const;
99
100 private:
101 bool restrictToRelevantStates;
102
103 // An expression characterizing the target states.
104 storm::expressions::Expression targetStateExpression;
105};
106
107} // namespace abstraction
108} // namespace storm::gbar
virtual MenuGame< DdType, ValueType > abstract()=0
Retrieves the abstraction.
storm::expressions::Expression const & getTargetStateExpression() const
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:16
SFTBDDChecker::Bdd Bdd
LabParser.cpp.
Definition cli.cpp:18
MenuGameAbstractorOptions(std::vector< storm::expressions::Expression > &&constraints)
std::vector< storm::expressions::Expression > constraints