A linear time algorithm to solve the single function coarsest partition problem

  • Robert Paige
  • Robert E. Tarjan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 172)


The problem of finding the coarsest partition of a set S with respect to another partition of S and one or more functions on S has several applications, one of which is the state minimization of finite state automata. In 1971 Hopcroft presented an algorithm to solve the many function coarsest partition problem for sets of n elements in O(n log n) time and O(n) space. Aho, Hopcroft, and Ullman later presented an algorithm that solves the special case of this problem for only one function. Both these algorithms use a negative strategy that repeatedly refines the original partition until a solution is found. We present a new algorithm to solve the single function coarsest partition problem in O(n) time and space using a different, constructive approach.


Equivalence Class Finite Automaton Linear Time Algorithm Finite State Automaton Negative Strategy 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A., Hopcroft, J., Ullman, J., Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.Google Scholar
  2. 2.
    Birkhoff, G. Lattice Theory. American Mathematical Society, Providence, 1966.Google Scholar
  3. 3.
    Booth, K. S. "Lexicographically Least Circular Substrings." IPL 10, 4,5 (July 1980), 240–242.Google Scholar
  4. 4.
    Downey, P., Sethi, R., and Tarjan, R. "Variations on the Common Subexpression Problem." JACM 27, 4 (Oct 1980), 758–771.Google Scholar
  5. 5.
    Hopcroft, J.E. An n log n Algorithm for Minimizing States in a Finite Automaton. In Theory of Machines and Computations, Kohavi, and Paz, Ed., Academic Press, New York, 1971, pp. 189–196.Google Scholar
  6. 6.
    Knuth, D.E., Morris, J.H., Pratt, V.R. "Fast Pattern Matching in Strings." SIAM J. Computing 6, 2 (1977), 323–350.Google Scholar
  7. 7.
    Nelson, G., and Oppen, D. "Fast Decision Procedures Based on Congruence Closure." JACM 27, 2 (Apr 1980).Google Scholar
  8. 8.
    Paige, R., and Koenig, S. "Finite Differencing of Computable Expressions." ACM TOPLAS 4, 3 (July 1982), 402–454.Google Scholar
  9. 9.
    Schwartz, J.T. "Automatic Data Structure Choice in a Language of Very High Level." CACM 18, 12 (Dec 1975), 722–728.Google Scholar
  10. 10.
    Shiloach, Y. "Fast Canonization of Circular Strings." Journal of Algorithms 2 (June 1981), 107–121.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1984

Authors and Affiliations

  • Robert Paige
    • 1
  • Robert E. Tarjan
    • 2
  1. 1.Dept of Computer ScienceRutgers UniversityNew BrunswickUSA
  2. 2.AT&T Bell LaboratoriesMurray HillUSA

Personalised recommendations