Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MultiObjectiveFormula.h
Go to the documentation of this file.
1#ifndef STORM_LOGIC_MULTIOBJECTIVEFORMULA_H_
2#define STORM_LOGIC_MULTIOBJECTIVEFORMULA_H_
3
5
6namespace storm {
7namespace logic {
9 public:
10 enum class Type { Tradeoff, Lexicographic };
11
12 MultiObjectiveFormula(std::vector<std::shared_ptr<Formula const>> const& subformulas, Type type);
13
14 virtual ~MultiObjectiveFormula();
15
16 virtual bool isMultiObjectiveFormula() const override;
17
18 bool isTradeoff() const;
19 bool isLexicographic() const;
20 Type getType() const;
21 virtual bool hasQualitativeResult() const override; // Result is true or false
22 virtual bool hasQuantitativeResult() const override; // Result is numerical or a pareto curve
23 virtual bool hasNumericalResult() const; // Result is numerical (1-dimensional)
24 virtual bool hasMultiDimensionalResult() const; // Result is multi-dimensional (pareto curve or point)
25
26 Formula const& getSubformula(uint_fast64_t index) const;
27 uint_fast64_t getNumberOfSubformulas() const;
28 std::vector<std::shared_ptr<Formula const>> const& getSubformulas() const;
29
30 virtual boost::any accept(FormulaVisitor const& visitor, boost::any const& data) const override;
31 virtual void gatherAtomicExpressionFormulas(std::vector<std::shared_ptr<AtomicExpressionFormula const>>& atomicExpressionFormulas) const override;
32 virtual void gatherAtomicLabelFormulas(std::vector<std::shared_ptr<AtomicLabelFormula const>>& atomicLabelFormulas) const override;
33 virtual void gatherReferencedRewardModels(std::set<std::string>& referencedRewardModels) const override;
34 virtual void gatherUsedVariables(std::set<storm::expressions::Variable>& usedVariables) const override;
35
36 virtual std::ostream& writeToStream(std::ostream& out, bool allowParentheses = false) const override;
37
38 private:
39 std::vector<std::shared_ptr<Formula const>> subformulas;
40 Type type;
41};
42} // namespace logic
43} // namespace storm
44
45#endif /* STORM_LOGIC_MULTIOBJECTIVEFORMULA_H_ */
std::vector< std::shared_ptr< Formula const > > const & getSubformulas() const
virtual bool isMultiObjectiveFormula() const override
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
virtual void gatherAtomicLabelFormulas(std::vector< std::shared_ptr< AtomicLabelFormula const > > &atomicLabelFormulas) const override
virtual void gatherReferencedRewardModels(std::set< std::string > &referencedRewardModels) const override
virtual bool hasQuantitativeResult() const override
virtual boost::any accept(FormulaVisitor const &visitor, boost::any const &data) const override
virtual void gatherUsedVariables(std::set< storm::expressions::Variable > &usedVariables) const override
virtual bool hasQualitativeResult() const override
Formula const & getSubformula(uint_fast64_t index) const
virtual void gatherAtomicExpressionFormulas(std::vector< std::shared_ptr< AtomicExpressionFormula const > > &atomicExpressionFormulas) const override