Efficient enumeration of words in regular languages
暂无分享,去创建一个
The cross-section enumeration problem is to list all words of length n in a regular language L in lexicographical order. The enumeration problem is to list the first m words in L according to radix order. We present an algorithm for the cross-section enumeration problem that is linear in n+t, where t is the output size. We provide a detailed analysis of the asymptotic running time of our algorithm and that of known algorithms for both enumeration problems. We discuss some shortcomings of the enumeration algorithm found in the Grail computation package. In the practical domain, we modify Makinen's enumeration algorithm to get an algorithm that is usually the most efficient in practice. We performed an extensive performance analysis of the new and previously known enumeration and cross-section enumeration algorithms and found when each algorithm is preferable.
[1] V. Strassen. Gaussian elimination is not optimal , 1969 .
[2] J. Conway. Regular algebra and finite machines , 1971 .
[3] Erkki Mäkinen,et al. On Lexicographic Enumeration of Regular and Context-Free Languages , 1997, Acta Cybern..
[4] Albert Nijenhuis,et al. Combinatorial Algorithms for Computers and Calculators , 1978 .
[5] Don Coppersmith,et al. Matrix multiplication via arithmetic progressions , 1987, STOC.