Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
QuantileHelper.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4#include <map>
5
13
14namespace storm {
15class Environment;
16
17namespace modelchecker {
18namespace helper {
19namespace rewardbounded {
20
21template<typename ModelType>
23 typedef typename ModelType::ValueType ValueType;
24
25 public:
26 QuantileHelper(ModelType const& model, storm::logic::QuantileFormula const& quantileFormula);
27
28 std::vector<std::vector<storm::utility::ExtendedValueType<ValueType>>> computeQuantile(Environment const& env);
29
30 private:
31 std::pair<CostLimitClosure, std::vector<ValueType>> computeQuantile(Environment& env, storm::storage::BitVector const& consideredDimensions,
32 bool complementaryQuery);
33 bool computeQuantile(Environment& env, storm::storage::BitVector const& consideredDimensions,
34 storm::logic::ProbabilityOperatorFormula const& boundedUntilOperator, storm::storage::BitVector const& lowerBoundedDimensions,
35 CostLimitClosure& satCostLimits, CostLimitClosure& unsatCostLimits, MultiDimensionalRewardUnfolding<ValueType, true>& rewardUnfolding);
36
40 uint64_t getDimension() const;
41
46 storm::storage::BitVector getOpenDimensions() const;
47
48 storm::expressions::Variable const& getVariableForDimension(uint64_t const& dim) const;
49
50 ModelType const& model;
51 storm::logic::QuantileFormula const& quantileFormula;
52 std::map<storm::storage::BitVector, std::pair<CostLimitClosure, std::vector<ValueType>>> cachedSubQueryResults;
53
55 mutable uint64_t numCheckedEpochs;
56 mutable uint64_t numPrecisionRefinements;
57 mutable storm::utility::Stopwatch swEpochAnalysis;
58 mutable storm::utility::Stopwatch swExploration;
59};
60} // namespace rewardbounded
61} // namespace helper
62} // namespace modelchecker
63} // namespace storm
QuantileHelper(ModelType const &model, storm::logic::QuantileFormula const &quantileFormula)
std::vector< std::vector< storm::utility::ExtendedValueType< ValueType > > > computeQuantile(Environment const &env)
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
A class that provides convenience operations to display run times.
Definition Stopwatch.h:13