Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparsePcaaAchievabilityQuery.h
Go to the documentation of this file.
1#ifndef STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAACHIEVABILITYQUERY_H_
2#define STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAACHIEVABILITYQUERY_H_
3
5
6namespace storm {
7namespace modelchecker {
8namespace multiobjective {
9
10/*
11 * This class represents a query for the Pareto curve approximation algorithm (Pcaa).
12 * It implements the necessary computations for the different query types.
13 */
14template<class SparseModelType, typename GeometryValueType>
15class SparsePcaaAchievabilityQuery : public SparsePcaaQuery<SparseModelType, GeometryValueType> {
16 public:
17 // Typedefs for simple geometric objects
18 typedef std::vector<GeometryValueType> Point;
19 typedef std::vector<GeometryValueType> WeightVector;
20
21 /*
22 * Creates a new query for the Pareto curve approximation algorithm (Pcaa)
23 * @param preprocessorResult the result from preprocessing
24 */
26
27 virtual ~SparsePcaaAchievabilityQuery() = default;
28
29 /*
30 * Invokes the computation and retrieves the result
31 */
32 virtual std::unique_ptr<CheckResult> check(Environment const& env) override;
33
34 private:
35 void initializeThresholdData();
36
37 /*
38 * Returns whether the given thresholds are achievable.
39 */
40 bool checkAchievability(Environment const& env);
41
42 /*
43 * Updates the precision of the weightVectorChecker w.r.t. the provided weights
44 */
45 void updateWeightedPrecision(WeightVector const& weights);
46
47 /*
48 * Returns true iff there is one point in the given polytope that satisfies the given thresholds.
49 * It is assumed that the given polytope contains the downward closure of its vertices.
50 */
51 bool checkIfThresholdsAreSatisfied(std::shared_ptr<storm::storage::geometry::Polytope<GeometryValueType>> const& polytope);
52
53 Point thresholds;
54 storm::storage::BitVector strictThresholds;
55};
56
57} // namespace multiobjective
58} // namespace modelchecker
59} // namespace storm
60
61#endif /* STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAACHIEVABILITYQUERY_H_ */
virtual std::unique_ptr< CheckResult > check(Environment const &env) override
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
LabParser.cpp.
Definition cli.cpp:18