Skip to main content
QUICK REVIEW

[论文解读] Finding the Minimal DFA of Very Large Finite State Automata with an Application to Token Passing Networks

Vlad Slavici, Daniel Kunkle|arXiv (Cornell University)|Mar 29, 2011
semigroups and automata theory参考文献 37被引用 8
一句话总结

本论文提出了一种可扩展的、基于磁盘的并行算法,用于从大型非确定性有限自动机(NFA)计算最小确定性有限自动机(DFA),使处理生成中间DFA状态数达19亿的状态的NFA成为可能。该方法利用一组通用计算机集群执行子集构造和前向细化最小化,将一个19亿状态的DFA缩减为最小的774,172个状态DFA,并将该技术应用于验证令牌传递网络中堆栈可排序排列的猜想。

ABSTRACT

Finite state automata (FSA) are ubiquitous in computer science. Two of the most important algorithms for FSA processing are the conversion of a non-deterministic finite automaton (NFA) to a deterministic finite automaton (DFA), and then the production of the unique minimal DFA for the original NFA. We exhibit a parallel disk-based algorithm that uses a cluster of 29 commodity computers to produce an intermediate DFA with almost two billion states and then continues by producing the corresponding unique minimal DFA with less than 800,000 states. The largest previous such computation in the literature was carried out on a 512-processor CM-5 supercomputer in 1996. That computation produced an intermediate DFA with 525,000 states and an unreported number of states for the corresponding minimal DFA. The work is used to provide strong experimental evidence satisfying a conjecture on a series of token passing networks. The conjecture concerns stack sortable permutations for a finite stack and a 3-buffer. The origins of this problem lie in the work on restricted permutations begun by Knuth and Tarjan in the late 1960s. The parallel disk-based computation is also compared with both a single-threaded and multi-threaded RAM-based implementation using a 16-core 128 GB large shared memory computer.

研究动机与目标

  • 通过使用基于磁盘的并行计算,克服在计算超大有限状态自动机的最小DFA时遇到的内存瓶颈。
  • 将子集构造和DFA最小化过程的规模扩展至通用硬件主内存的极限之外。
  • 将该方法应用于理论计算机科学中的一个挑战性问题:分析具有有限缓冲区的令牌传递网络中的堆栈可排序排列。
  • 提供实验证据,支持关于3缓冲区和有限堆栈模型下堆栈可排序排列结构的猜想。
  • 在大规模自动机上,比较基于磁盘的并行、多线程基于RAM和单线程方法的性能。

提出的方法

  • 采用基于磁盘的并行实现子集构造算法,对大型NFA进行确定化,将中间DFA状态作为子集存储在磁盘上,以避免主内存限制。
  • 将前向细化算法适配为基于磁盘的并行处理,以高效地最小化生成的大型DFA。
  • 该算法采用广度优先搜索策略,并通过在磁盘上存储子集表示来显式检测重复项,每个子集表示最多需要约80字节(支持最多20个NFA状态)。
  • 使用29台通用计算机组成的集群来分发计算,数据在节点间分区,I/O通过共享存储区域网络(SAN)进行管理。
  • 开发了一种在16核、128 GB共享内存机器上的多线程实现,用于对比,该实现利用主内存内的线程级并行性。
  • 该方法在一组建模为NFA的令牌传递网络上进行评估,堆栈深度从9增加到12,对应NFA和中间DFA的规模逐步增大。

实验结果

研究问题

  • RQ1基于磁盘的并行算法是否能够将子集构造和DFA最小化扩展至传统基于RAM系统的内存限制之外?
  • RQ2在大规模自动机上,基于磁盘的并行方法与多线程基于RAM的实现相比,性能如何?
  • RQ3随着堆栈深度增加,一组令牌传递网络的最小DFA大小是多少?其结果是否支持关于堆栈可排序排列的猜想?
  • RQ4当应用于具有超过10亿个状态的DFA时,前向细化算法是否仍保持高效和可扩展?
  • RQ5从大规模自动机计算中获得的实验结果,是否能为有限缓冲网络中堆栈可排序排列结构的一般猜想提供支持?

主要发现

  • 基于磁盘的并行算法成功从一个在堆栈深度为12时具有5,035,742个状态的NFA中构造出一个中间DFA,其状态数达1,899,715,733个,使用峰值1,136 GB磁盘空间,耗时1天12小时。
  • 最终得到的最小DFA被缩减至774,172个状态,减少幅度超过2,400倍,该过程在1天8小时内通过基于磁盘的前向细化完成。
  • 尽管磁盘使用效率高,但子集构造阶段由于在100 Mb/s快速以太网上的网络I/O瓶颈,扩展性表现较差。
  • 多线程基于RAM的实现从1到8个核心时几乎呈线性扩展,但从8到16个线程时由于最小化过程中的锁竞争,表现出次线性扩展。
  • 最大规模实例(堆栈深度12)在16核、128 GB共享内存机器上因内存耗尽而无法处理,证实了基于磁盘扩展的必要性。
  • 实验结果为3缓冲区和有限堆栈模型下堆栈可排序排列结构的猜想提供了强有力的支持,表明在一系列令牌传递网络中存在普遍模式。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。