9namespace modelchecker {
18template<
typename ValueType,
bool Nondeterministic>
52 std::vector<automata::AcceptanceCondition::acceptance_expr::ptr>
const& conjunction,
90 uint_fast64_t getMemoryState(uint_fast64_t daState, uint_fast64_t infSet);
98 InfSetPool() =
default;
115 uint_fast64_t size()
const;
118 std::vector<storm::storage::BitVector> _storage;
121 static const uint_fast64_t DEFAULT_INFSET;
123 bool _randomScheduler;
124 std::vector<storm::storage::BitVector> _dontCareStates;
129 std::vector<boost::optional<std::set<uint_fast64_t>>>
134 std::vector<std::vector<storm::storage::BitVector>>
137 std::vector<uint_fast64_t> _memoryInitialStates;
Helper class for scheduler construction in LTL model checking.
void saveProductEcChoices(automata::AcceptanceCondition const &acceptance, storm::storage::MaximalEndComponent const &acceptingEC, storm::storage::MaximalEndComponent const &containingMEC, std::vector< automata::AcceptanceCondition::acceptance_expr::ptr > const &conjunction, typename transformer::DAProduct< productModelType >::ptr product)
Save choices for states in the accepting end component of the DA-Model product and for the states in ...
storm::storage::Scheduler< ValueType > extractScheduler(storm::models::sparse::Model< ValueType > const &model, bool onlyInitialStatesRelevant)
Returns a deterministic fully defined scheduler (except for dontCareStates) for the given model.
typename std::conditional< Nondeterministic, storm::models::sparse::Mdp< ValueType >, storm::models::sparse::Dtmc< ValueType > >::type productModelType
The type of the product model (DTMC or MDP) that is used during the computation.
void prepareScheduler(uint_fast64_t numDaStates, storm::storage::BitVector const &acceptingProductStates, std::unique_ptr< storm::storage::Scheduler< ValueType > > reachScheduler, transformer::DAProductBuilder const &productBuilder, typename transformer::DAProduct< productModelType >::ptr product, storm::storage::BitVector const &modelStatesOfInterest, storm::storage::SparseMatrix< ValueType > const &transitionMatrix)
Extracts scheduler choices and creates the memory structure for the LTL-Scheduler.
void setRandom()
Set the scheduler choices to random.
This class represents a discrete-time Markov chain.
Base class for all sparse models.
A bit vector that is internally represented as a vector of 64-bit values.
This class represents a maximal end-component of a nondeterministic model.
This class defines which action is chosen in a particular state of a non-deterministic model.
A class that holds a possibly non-square matrix in the compressed row storage format.