#ifndef STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAPARETOQUERY_H_ #define STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAPARETOQUERY_H_ #include "storm/modelchecker/multiobjective/pcaa/SparsePcaaQuery.h" namespace storm { namespace modelchecker { namespace multiobjective { /* * This class represents a query for the Pareto curve approximation algorithm (Pcaa). * It implements the necessary computations for the different query types. */ template class SparsePcaaParetoQuery : public SparsePcaaQuery { public: // Typedefs for simple geometric objects typedef std::vector Point; typedef std::vector WeightVector; /* * Creates a new query for the Pareto curve approximation algorithm (Pcaa) * @param preprocessorResult the result from preprocessing */ SparsePcaaParetoQuery(SparseMultiObjectivePreprocessorResult& preprocessorResult); virtual ~SparsePcaaParetoQuery() = default; /* * Invokes the computation and retrieves the result */ virtual std::unique_ptr check() override; private: /* * Performs refinement steps until the approximation is sufficiently precise */ void exploreSetOfAchievablePoints(); }; } } } #endif /* STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAPARETOQUERY_H_ */