14template<
typename ValueType,
typename StateType = u
int32_t>
18 using DFTStatePointer = std::shared_ptr<storm::dft::storage::DFTState<ValueType>>;
19 using DFTElementPointer = std::shared_ptr<storm::dft::storage::elements::DFTElement<ValueType>>;
20 using DFTGatePointer = std::shared_ptr<storm::dft::storage::elements::DFTGate<ValueType>>;
21 using DFTRestrictionPointer = std::shared_ptr<storm::dft::storage::elements::DFTRestriction<ValueType>>;
32 void load(DFTStatePointer
const& state);
81 bool dependencySuccessful =
true)
const;
112 bool takeFirstDependency);
121 std::pair<StateType, bool> getNewStateId(DFTStatePointer state,
StateToIdCallback const& stateToIdCallback)
const;
130 DFTStatePointer state;
133 bool uniqueFailedState;
136 bool deterministicModel =
false;
139 bool mTakeFirstDependency =
false;
Next state generator for DFTs.
void propagateFailure(DFTStatePointer newState, std::shared_ptr< storm::dft::storage::elements::DFTBE< ValueType > const > &nextBE, storm::dft::storage::DFTStateSpaceGenerationQueues< ValueType > &queues) const
Propagate the failures in a given state if the given BE fails.
storm::generator::StateBehavior< ValueType, StateType > expand(StateToIdCallback const &stateToIdCallback)
Expand and explore current state.
DFTStatePointer createSuccessorState(DFTStatePointer const origState, std::shared_ptr< storm::dft::storage::elements::DFTBE< ValueType > const > be) const
Create successor state from given state by letting the given BE fail next.
void load(storm::storage::BitVector const &state)
storm::generator::StateBehavior< ValueType, StateType > createMergeFailedState(StateToIdCallback const &stateToIdCallback)
Create unique failed state.
bool isDeterministicModel() const
std::vector< StateType > getInitialStates(StateToIdCallback const &stateToIdCallback)
DFTStatePointer createInitialState() const
Create initial state.
std::function< StateType(DFTStatePointer const &)> StateToIdCallback
void propagateFailsafe(DFTStatePointer newState, std::shared_ptr< storm::dft::storage::elements::DFTBE< ValueType > const > &nextBE, storm::dft::storage::DFTStateSpaceGenerationQueues< ValueType > &queues) const
Propagate the failsafe state in a given state if the given BE fails.
Represents a Dynamic Fault Tree.
Abstract base class for basic events (BEs) in DFTs.
Dependency gate with probability p.
A bit vector that is internally represented as a vector of 64-bit values.