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
4
#include "
storm/modelchecker/multiobjective/pcaa/SparsePcaaQuery.h
"
5
6
namespace
storm
{
7
namespace
modelchecker {
8
namespace
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
*/
14
template
<
class
SparseModelType,
typename
GeometryValueType>
15
class
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
*/
25
SparsePcaaAchievabilityQuery
(
preprocessing::SparseMultiObjectivePreprocessorResult<SparseModelType>
& preprocessorResult);
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_ */
SparsePcaaQuery.h
storm::Environment
Definition
Environment.h:17
storm::modelchecker::multiobjective::SparsePcaaAchievabilityQuery
Definition
SparsePcaaAchievabilityQuery.h:15
storm::modelchecker::multiobjective::SparsePcaaAchievabilityQuery::WeightVector
std::vector< GeometryValueType > WeightVector
Definition
SparsePcaaAchievabilityQuery.h:19
storm::modelchecker::multiobjective::SparsePcaaAchievabilityQuery::check
virtual std::unique_ptr< CheckResult > check(Environment const &env) override
Definition
SparsePcaaAchievabilityQuery.cpp:49
storm::modelchecker::multiobjective::SparsePcaaAchievabilityQuery::Point
std::vector< GeometryValueType > Point
Definition
SparsePcaaAchievabilityQuery.h:18
storm::modelchecker::multiobjective::SparsePcaaAchievabilityQuery::~SparsePcaaAchievabilityQuery
virtual ~SparsePcaaAchievabilityQuery()=default
storm::modelchecker::multiobjective::SparsePcaaQuery
Definition
SparsePcaaQuery.h:21
storm::storage::BitVector
A bit vector that is internally represented as a vector of 64-bit values.
Definition
BitVector.h:18
storm::storage::geometry::Polytope
Definition
Polytope.h:17
storm
LabParser.cpp.
Definition
cli.cpp:18
storm::modelchecker::multiobjective::preprocessing::SparseMultiObjectivePreprocessorResult
Definition
SparseMultiObjectivePreprocessorResult.h:19
src
storm
modelchecker
multiobjective
pcaa
SparsePcaaAchievabilityQuery.h
Generated by
1.9.8