28template<
class SparseModelType,
typename GeometryValueType>
32 typedef typename std::shared_ptr<storm::storage::geometry::Polytope<GeometryValueType>>
Polytope;
37 Point(std::vector<GeometryValueType>
const& coordinates);
38 Point(std::vector<GeometryValueType>&& coordinates);
40 std::vector<GeometryValueType>
const&
get()
const;
41 std::vector<GeometryValueType>&
get();
53 std::string
toString(
bool convertToDouble =
false)
const;
56 std::vector<GeometryValueType> coordinates;
63 typedef typename std::map<PointId, Point>::const_iterator
iterator_type;
87 uint64_t
size()
const;
96 void printToStream(std::ostream& out,
bool includeIDs =
true,
bool convertToDouble =
false);
99 std::map<PointId, Point> points;
109 std::vector<PointId>
const&
getPoints()
const;
119 std::vector<PointId> pointsOnFacet;
137 void addHalfspaceToOverApproximation(
Environment const& env, std::vector<GeometryValueType>
const& normalVector, GeometryValueType
const& offset);
153 std::vector<GeometryValueType> getReferenceCoordinates(
Environment const& env)
const;
169 void negateMinObjectives(std::vector<GeometryValueType>& vector)
const;
172 std::queue<Facet> unprocessedFacets;
174 std::vector<Polytope> unachievableAreas;
175 std::vector<GeometryValueType> eps;
176 std::shared_ptr<DeterministicSchedsLpChecker<SparseModelType, GeometryValueType>> lpChecker;
177 std::unique_ptr<PcaaWeightVectorChecker<SparseModelType>> wvChecker;
178 std::vector<DeterministicSchedsObjectiveHelper<SparseModelType>> objectiveHelper;
180 std::shared_ptr<SparseModelType>
const& model;
181 uint64_t originalModelInitialState;
182 std::vector<Objective<ModelValueType>>
const& objectives;
void addPoint(PointId const &pointId, Point const &point)
std::vector< PointId > const & getPoints() const
uint64_t getNumberOfPoints() const
storm::storage::geometry::Halfspace< GeometryValueType > const & getHalfspace() const
Polytope getInducedPolytope(Pointset const &pointset, std::vector< GeometryValueType > const &referenceCoordinates)
Creates a polytope that captures all points that lie 'under' the facet.
Facet(storm::storage::geometry::Halfspace< GeometryValueType > const &halfspace)
DominanceResult getDominance(Point const &other) const
std::string toString(bool convertToDouble=false) const
std::vector< GeometryValueType > const & get() const
uint64_t dimension() const
void setParetoOptimal(bool value=true)
void setOnFacet(bool value=true)
Point(std::vector< GeometryValueType > const &coordinates)
bool isParetoOptimal() const
std::map< PointId, Point >::const_iterator iterator_type
iterator_type end() const
void printToStream(std::ostream &out, bool includeIDs=true, bool convertToDouble=false)
Polytope downwardClosure() const
Returns the downward closure of the contained points.
Point const & getPoint(PointId const &id) const
Returns the point with the given ID.
void collectPointsInPolytope(std::set< PointId > &collectedPoints, Polytope const &polytope)
iterator_type begin() const
uint64_t size() const
Returns the number of points currently contained in the set.
boost::optional< PointId > addPoint(Environment const &env, Point &&point)
If the given point is not dominated by another point in the set, it is added to the set and its ID is...
virtual std::unique_ptr< CheckResult > check(Environment const &env)
SparseModelType::ValueType ModelValueType
void exportPlotOfCurrentApproximation(Environment const &env)
DeterministicSchedsParetoExplorer(preprocessing::SparseMultiObjectivePreprocessorResult< SparseModelType > &preprocessorResult)
std::shared_ptr< storm::storage::geometry::Polytope< GeometryValueType > > Polytope