Daciuk et al. [Computational Linguistics 26(1):316 (2000)] describe a method for constructing incrementally minimal, deterministic, acyclic finite-state automata (dictionaries) from sets of strings. But acyclic finite-state automata have limitations: For instance, if one wants a linguistic application to accept all possible integer numbers or Internet addresses, the corresponding finite-state automaton has to be cyclic. In this article, we describe a simple and equally efficient method for modifying any minimal finite-state automaton (be it acyclic or not) so that a string is added to or removed from the language it accepts; both operations are very important when dictionary maintenance is performed and solve the dictionary construction problem addressed by Daciuk et al. as a special case. The algorithms proposed here may be straightforwardly derived from the customary textbook constructions for the intersection and the complementation of finite-state automata; the algorithms exploit the special properties of the automata resulting from the intersection operation when one of the finite-state automata accepts a single string.
[1]
Emmanuel Roche,et al.
Finite-State Language Processing
,
1997
.
[2]
Mikel L. Forcada,et al.
A compiler for morphological analysers and generators based on finite-state transducers
,
1999
.
[3]
Bruce W. Watson,et al.
Incremental construction of minimal acyclic finite state automata
,
2000,
CL.
[4]
Richard J. Lipton,et al.
On the complexity of intersecting finite state automata
,
2000,
Proceedings 15th Annual IEEE Conference on Computational Complexity.
[5]
Bruce W. Watson.
A new algorithm for the construction of minimal acyclic DFAs
,
2003,
Sci. Comput. Program..
[6]
Jeffrey D. Ullman,et al.
Introduction to Automata Theory, Languages and Computation
,
1979
.