3 research outputs found
Synchronizing Strongly Connected Partial DFAs
We study synchronizing partial DFAs, which extend the classical concept of
synchronizing complete DFAs and are a special case of synchronizing unambiguous
NFAs. A partial DFA is called synchronizing if it has a word (called a reset
word) whose action brings a non-empty subset of states to a unique state and is
undefined for all other states. While in the general case the problem of
checking whether a partial DFA is synchronizing is PSPACE-complete, we show
that in the strongly connected case this problem can be efficiently reduced to
the same problem for a complete DFA. Using combinatorial, algebraic, and formal
languages methods, we develop techniques that relate main synchronization
problems for strongly connected partial DFAs with the same problems for
complete DFAs. In particular, this includes the \v{C}ern\'{y} and the rank
conjectures, the problem of finding a reset word, and upper bounds on the
length of the shortest reset words of literal automata of finite prefix codes.
We conclude that solving fundamental synchronization problems is equally hard
in both models, as an essential improvement of the results for one model
implies an improvement for the other.Comment: Full version of the paper at STACS 202
Boosting expensive synchronizing heuristics
For automata, synchronization, the problem of bringing an automaton to a particular state regardless of its initial state, is important. It has several applications in practice and is related to a fifty-year-old conjecture on the length of the shortest synchronizing word. Although using shorter words increases the effectiveness in practice, finding a shortest one (which is not necessarily unique) is NP-hard. For this reason, there exist various heuristics in the literature. However, high-quality heuristics such as SynchroP producing relatively shorter sequences are very expensive and can take hours when the automaton has tens of thousands of states. The SynchroP heuristic has been frequently used as a benchmark to evaluate the performance of the new heuristics. In this work, we first improve the runtime of SynchroP and its variants by using algorithmic techniques. We then focus on adapting SynchroP for many-core architectures,
and overall, we obtain more than 1000× speedup on GPUs compared to naive sequential implementation that has been frequently used as a benchmark to evaluate new heuristics in the literature. We also propose two SynchroP variants and evaluate their performance