We review previous methods for finding minimal perfect hash functions, showing that the earlier ones have no serious practical value for large sets. Then we present optimal time solutions to the problem, which generate minimal perfect hash functions for arbitrary sets in expected linear time and use almost linear space. The hash functions are fast computable. We give examples of performance for large sets. An important way for describing groups is by finite presentations.
Large presentations arise in practice which are poorly suited for either human or computer use.
Presentation simplification processes which take bad presentations and produce good presentations have been developed. Substantial use is made of substring searching and appropriate techniques for this context are described. Effective use is made of signatures and change flags. Change flags are shown to be the most beneficial of the methods tested here, with very significant performance improvement. Experimental performance figures are given.