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