STORM_LOG_ASSERT(this->_memoryInitialStates.is_initialized(),"Trying to extract the initial states of the DA but there are none available. Was there a computation call before?");
// Create a memory structure for the MDP scheduler with memory.
// set non-reachable (modelState,memoryState)-Pairs (i.e. those that are not contained in _productChoices) to "unreachable", (extend Scheduler by something like std::vector<std::Bitvector>> reachableSchedulerChoices; und isChoiceReachable(..))
// set non-reachable (modelState,memoryState)-Pairs (i.e. those that are not contained in _productChoices) to "unreachable",
// also: states that are never reached using the scheduler
// (extend Scheduler by something like std::vector<std::Bitvector>>
STORM_LOG_THROW(model.getInitialStates().get(initialModelState),storm::exceptions::InvalidOperationException,"Invalid index of initial model state: "<<initialMemoryState<<". This is not an initial state of the model.");
STORM_LOG_THROW(!onlyInitialStatesRelevant||model.getInitialStates().get(initialModelState),storm::exceptions::InvalidOperationException,"Invalid index of initial model state: "<<initialMemoryState<<". This is not an initial state of the model.");
STORM_LOG_THROW(initialMemoryState<transitions.size(),storm::exceptions::InvalidOperationException,"Invalid index of initial memory state: "<<initialMemoryState<<". There are only "<<transitions.size()<<" states in this memory structure.");
autoinitMemStateIt=initialMemoryStates.begin();// TODO allow all
// Get the initial states and reachable states. A stateIndex s corresponds to the model state (s / memoryStateCount) and memory state (s % memoryStateCount)