Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ParetoCurveCheckResult.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
8
9namespace storm {
10namespace modelchecker {
11template<typename ValueType>
13 public:
14 typedef std::vector<ValueType> point_type;
15 typedef std::vector<storm::utility::ExtendedValueType<ValueType>> ExtendedPointType;
16 typedef std::shared_ptr<storm::storage::geometry::Polytope<ValueType>> polytope_type;
17
19
20 virtual bool isParetoCurveCheckResult() const override;
21
22 std::vector<ExtendedPointType> const& getPoints() const;
23 bool hasUnderApproximation() const;
24 bool hasOverApproximation() const;
27
28 virtual std::ostream& writeToStream(std::ostream& out) const override;
29
30 protected:
31 ParetoCurveCheckResult(std::vector<ExtendedPointType> const& points, polytope_type const& underApproximation = nullptr,
32 polytope_type const& overApproximation = nullptr);
33 ParetoCurveCheckResult(std::vector<ExtendedPointType>&& points, polytope_type&& underApproximation = nullptr, polytope_type&& overApproximation = nullptr);
34
38 ParetoCurveCheckResult(std::vector<point_type> const& points, polytope_type const& underApproximation = nullptr,
39 polytope_type const& overApproximation = nullptr)
40 requires(!std::is_same_v<ExtendedPointType, point_type>);
41
42 // The pareto optimal points that have been found.
43 std::vector<ExtendedPointType> points;
44
45 // An underapproximation of the set of achievable values
47
48 // An overapproximation of the set of achievable values
50};
51} // namespace modelchecker
52} // namespace storm
std::vector< storm::utility::ExtendedValueType< ValueType > > ExtendedPointType
std::vector< ExtendedPointType > const & getPoints() const
std::shared_ptr< storm::storage::geometry::Polytope< ValueType > > polytope_type
virtual std::ostream & writeToStream(std::ostream &out) const override