A TIME AND SPACE EFFICIENT ALGORITHM FOR MINIMIZING COVER AUTOMATA FOR FINITE LANGUAGES
A deterministic finite automaton (DFA) [Formula: see text] is called a cover automaton (DFCA) for a finite language L over some alphabet Σ if [Formula: see text], with l being the length of some longest word in L. Thus a word w ∈ Σ* is in L if and only if |w| ≤ l and [Formula: see text]. The DFCA [Formula: see text] is minimal if no DFCA for L has fewer states. In this paper, we present an algorithm which converts an n–state DFA for some finite language L into a corresponding minimal DFCA, using only O(n log n) time and O(n) space. The best previously known algorithm requires O(n2) time and space. Furthermore, the new algorithm can also be used to minimize any DFCA, where the best previous method takes O(n4) time and space. Since the required data structure is rather complex, an implementation in the common programming language C/C++ is also provided.