Storm
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
12
13namespace storm {
14class Environment;
15
16namespace modelchecker {
17namespace helper {
18namespace rewardbounded {
19
20template<typename ModelType>
22 typedef typename ModelType::ValueType ValueType;
23
24 public:
25 QuantileHelper(ModelType const& model, storm::logic::QuantileFormula const& quantileFormula);
26
27 std::vector<std::vector<ValueType>> computeQuantile(Environment const& env);
28
29 private:
30 std::pair<CostLimitClosure, std::vector<ValueType>> computeQuantile(Environment& env, storm::storage::BitVector const& consideredDimensions,
31 bool complementaryQuery);
32 bool computeQuantile(Environment& env, storm::storage::BitVector const& consideredDimensions,
33 storm::logic::ProbabilityOperatorFormula const& boundedUntilOperator, storm::storage::BitVector const& lowerBoundedDimensions,
34 CostLimitClosure& satCostLimits, CostLimitClosure& unsatCostLimits, MultiDimensionalRewardUnfolding<ValueType, true>& rewardUnfolding);
35
39 uint64_t getDimension() const;
40
45 storm::storage::BitVector getOpenDimensions() const;
46
47 storm::storage::BitVector getDimensionsForVariable(storm::expressions::Variable const& var) const;
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
std::vector< std::vector< ValueType > > computeQuantile(Environment const &env)
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
A class that provides convenience operations to display run times.
Definition Stopwatch.h:14
LabParser.cpp.
Definition cli.cpp:18