+/* Copy a given stack by deep-copying it at the State level : this is required so we can backtrack at different
+ * points without interacting with the stacks in the opened_states_ waiting for their turn. On the other hand,
+ * the exploration of one stack in opened_states_ could only slightly modify the sleep set of another stack in
+ * opened_states_, so it is only a slight waste of performance in the exploration. */
+void DFSExplorer::add_to_opened_states(stack_t stack)
+{
+ stack_t tmp_stack;
+ for (auto& state : stack)
+ tmp_stack.push_back(std::make_shared<State>(State(*state)));
+ opened_states_.emplace(tmp_stack);
+}
+