论文标题
改进的算法,用于查找最短的同步单词
An Improved Algorithm for Finding the Shortest Synchronizing Words
论文作者
论文摘要
确定性有限的完整自动机的同步单词是一个单词,其动作将每个状态都映射到一个状态。在同步自动机理论中,找到最短或简短的同步单词是一个中心计算问题,并且应用于其他领域,例如基于模型的测试和代码理论。因为在\ emph {Exact}算法中,找到最短的同步单词的问题在计算上很难。我们根据双向广度优先搜索重新设计了以前最快的已知确切算法,并在实际意义上对时间和空间进行了改进。我们开发了新的算法增强功能,并将算法适应多线程和GPU计算。我们的实验表明,新算法比以前最快的算法快多次,并且其优势随着问题实例的硬度而迅速增长。给定时间限制,我们计算了最短的二进制二进制自动机的最短同步单词的长度,最高570个状态,大大击败了先前的记录。我们完善了这些自动机平均复位阈值的实验估计。最后,我们开发了一个致力于该问题的一般计算包,其中包括我们算法的有效且实用的实现,以及几种著名的启发式方法。
A synchronizing word of a deterministic finite complete automaton is a word whose action maps every state to a single one. Finding a shortest or a short synchronizing word is a central computational problem in the theory of synchronizing automata and is applied in other areas such as model-based testing and the theory of codes. Because the problem of finding a shortest synchronizing word is computationally hard, among \emph{exact} algorithms only exponential ones are known. We redesign the previously fastest known exact algorithm based on the bidirectional breadth-first search and improve it with respect to time and space in a practical sense. We develop new algorithmic enhancements and adapt the algorithm to multithreaded and GPU computing. Our experiments show that the new algorithm is multiple times faster than the previously fastest one and its advantage quickly grows with the hardness of the problem instance. Given a modest time limit, we compute the lengths of the shortest synchronizing words for random binary automata up to 570 states, significantly beating the previous record. We refine the experimental estimation of the average reset threshold of these automata. Finally, we develop a general computational package devoted to the problem, where an efficient and practical implementation of our algorithm is included, together with several well-known heuristics.