Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SymmetryFinder.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
7
8namespace storm::dft {
9
10// Forward declaration
11namespace storage {
12template<typename T>
13class DFTColouring;
14} // namespace storage
15
16namespace utility {
17
18template<typename ValueType>
20 public:
28
29 private:
30 static std::map<size_t, size_t> findBijection(storm::dft::storage::DFT<ValueType> const& dft, size_t index1, size_t index2,
31 storm::dft::storage::DFTColouring<ValueType> const& colouring, bool sparesAsLeaves);
32
33 static void findSymmetriesHelper(storm::dft::storage::DFT<ValueType> const& dft, std::vector<size_t> const& candidates,
34 storm::dft::storage::DFTColouring<ValueType> const& colouring, std::map<size_t, std::vector<std::vector<size_t>>>& result);
35
36 static std::tuple<std::vector<size_t>, std::vector<size_t>, std::vector<size_t>, std::vector<size_t>> getInfluencedIds(
37 storm::dft::storage::DFT<ValueType> const& dft, size_t index);
38
39 static bool hasSeqRestriction(std::shared_ptr<storm::dft::storage::elements::DFTElement<ValueType> const> elem);
40};
41
42} // namespace utility
43} // namespace storm::dft
Represents a Dynamic Fault Tree.
Definition DFT.h:52
Abstract base class for DFT elements.
Definition DFTElement.h:39
static storm::dft::storage::DftSymmetries findSymmetries(storm::dft::storage::DFT< ValueType > const &dft)
Find symmetries in the given DFT.