You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.9 KiB
49 lines
1.9 KiB
#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 SparseModelType, typename GeometryValueType>
|
|
class SparsePcaaParetoQuery : public SparsePcaaQuery<SparseModelType, GeometryValueType> {
|
|
public:
|
|
|
|
// Typedefs for simple geometric objects
|
|
typedef std::vector<GeometryValueType> Point;
|
|
typedef std::vector<GeometryValueType> WeightVector;
|
|
|
|
/*
|
|
* Creates a new query for the Pareto curve approximation algorithm (Pcaa)
|
|
* @param preprocessorResult the result from preprocessing
|
|
*/
|
|
SparsePcaaParetoQuery(SparseMultiObjectivePreprocessorResult<SparseModelType>& preprocessorResult);
|
|
|
|
virtual ~SparsePcaaParetoQuery() = default;
|
|
|
|
|
|
/*
|
|
* Invokes the computation and retrieves the result
|
|
*/
|
|
virtual std::unique_ptr<CheckResult> check() override;
|
|
|
|
private:
|
|
|
|
|
|
/*
|
|
* Performs refinement steps until the approximation is sufficiently precise
|
|
*/
|
|
void exploreSetOfAchievablePoints();
|
|
};
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif /* STORM_MODELCHECKER_MULTIOBJECTIVE_PCAA_SPARSEPCAAPARETOQUERY_H_ */
|