Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DftModularizationChecker.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <vector>
5
10
11namespace storm::dft {
12namespace modelchecker {
13
21template<typename ValueType>
23 public:
24 using DFTElementCPointer = std::shared_ptr<storm::dft::storage::elements::DFTElement<ValueType> const>;
26
32
40 std::vector<ValueType> check(FormulaVector const &formulas, size_t chunksize = 0);
41
48 std::vector<ValueType> getProbabilitiesAtTimepoints(std::vector<ValueType> const &timepoints, size_t chunksize = 0);
49
56 // workDFT will be set in getProbabilitiesAtTimepoints()
57 return getProbabilitiesAtTimepoints({timebound}).at(0);
58 }
59
60 private:
65 void populateDynamicModules(storm::dft::storage::DftIndependentModule const &module);
66
72 std::shared_ptr<storm::dft::storage::DFT<ValueType>> replaceDynamicModules(std::vector<ValueType> const &timepoints);
73
80 std::vector<ValueType> const &timepoints);
81
82 // DFT.
83 std::shared_ptr<storm::dft::storage::DFT<ValueType>> dft;
84 // DFT modelchecker
86 // don't reinitialize Sylvan BDD
87 // temporary
88 std::shared_ptr<storm::dft::storage::SylvanBddManager> sylvanBddManager;
89 // Independent modules with their top element
90 std::vector<storm::dft::storage::DftIndependentModule> dynamicModules;
91};
92
93} // namespace modelchecker
94} // namespace storm::dft
std::vector< boost::variant< ValueType, approximation_result > > dft_results
std::vector< std::shared_ptr< storm::logic::Formula const > > property_vector
std::shared_ptr< storm::dft::storage::elements::DFTElement< ValueType > const > DFTElementCPointer
ValueType getProbabilityAtTimebound(ValueType const timebound)
Calculate the probability of failure for the given time bound.
typename DFTModelChecker< ValueType >::property_vector FormulaVector
DftModularizationChecker(std::shared_ptr< storm::dft::storage::DFT< ValueType > > dft)
Initializes and computes all modules.
std::vector< ValueType > getProbabilitiesAtTimepoints(std::vector< ValueType > const &timepoints, size_t chunksize=0)
Calculate the probability of failure for the given time points.
std::vector< ValueType > check(FormulaVector const &formulas, size_t chunksize=0)
Calculate the properties specified by the formulas.
Represents a Dynamic Fault Tree.
Definition DFT.h:49
Represents an independent module/subtree.
Definition DftModule.h:66
SFTBDDChecker::ValueType ValueType