Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
PartitionRefiner.h
Go to the documentation of this file.
1#pragma once
2
6
9
10namespace storm {
11namespace models {
12namespace symbolic {
13template<storm::dd::DdType DdType, typename ValueType>
14class Model;
15}
16} // namespace models
17
18namespace dd {
19namespace bisimulation {
20
21template<storm::dd::DdType DdType, typename ValueType>
23 public:
25 BisimulationOptions const& bisimulationOptions);
26
27 virtual ~PartitionRefiner() = default;
28
35 virtual bool refine(SignatureMode const& mode = SignatureMode::Eager);
36
42
47
52
56 Status getStatus() const;
57
58 std::chrono::high_resolution_clock::duration getTotalSignatureTime() const;
59 std::chrono::high_resolution_clock::duration getTotalRefinementTime() const;
60
61 protected:
64 Partition<DdType, ValueType> const& targetPartition, SignatureMode const& mode = SignatureMode::Eager);
66 Partition<DdType, ValueType> const& oldPartition);
67
68 virtual bool refineWrtStateRewards(storm::dd::Add<DdType, ValueType> const& stateRewards);
69 virtual bool refineWrtStateActionRewards(storm::dd::Add<DdType, ValueType> const& stateActionRewards);
70
71 // The current status.
73
74 // The number of refinements that were made.
75 uint64_t refinements;
76
77 // The state partition in the refinement process. Initially set to the initial partition.
79
80 // The object used to compute the signatures.
82
83 // The object used to refine the state partition based on the signatures.
85
86 // Time measurements.
87 std::chrono::high_resolution_clock::duration totalSignatureTime;
88 std::chrono::high_resolution_clock::duration totalRefinementTime;
89};
90
91} // namespace bisimulation
92} // namespace dd
93} // namespace storm
virtual bool refineWrtStateActionRewards(storm::dd::Add< DdType, ValueType > const &stateActionRewards)
std::chrono::high_resolution_clock::duration getTotalRefinementTime() const
virtual bool refineWrtStateRewards(storm::dd::Add< DdType, ValueType > const &stateRewards)
Signature< DdType, ValueType > getFullSignature() const
Retrieves the full signature of all states wrt.
Partition< DdType, ValueType > const & getStatePartition() const
Retrieves the current state partition in the refinement process.
virtual bool refine(SignatureMode const &mode=SignatureMode::Eager)
Refines the partition.
Status getStatus() const
Retrieves the status of the refinement process.
std::chrono::high_resolution_clock::duration totalSignatureTime
std::chrono::high_resolution_clock::duration totalRefinementTime
bool refineWrtRewardModel(storm::models::symbolic::StandardRewardModel< DdType, ValueType > const &rewardModel)
Refines the partition wrt.
Partition< DdType, ValueType > internalRefine(SignatureComputer< DdType, ValueType > &stateSignatureComputer, SignatureRefiner< DdType, ValueType > &signatureRefiner, Partition< DdType, ValueType > const &oldPartition, Partition< DdType, ValueType > const &targetPartition, SignatureMode const &mode=SignatureMode::Eager)
std::chrono::high_resolution_clock::duration getTotalSignatureTime() const
Partition< DdType, ValueType > statePartition
PartitionRefiner(storm::models::symbolic::Model< DdType, ValueType > const &model, Partition< DdType, ValueType > const &initialStatePartition, BisimulationOptions const &bisimulationOptions)
SignatureRefiner< DdType, ValueType > signatureRefiner
SignatureComputer< DdType, ValueType > signatureComputer
Base class for all symbolic models.
Definition Model.h:42