Abstract
A minimal perfect hash function h for a set S ⊆ U of size n is a function \(h\colon U\to \{0,\ldots,n-1\}\) that is one-to-one on S. The complexity measures of interest are storage space for h, evaluation time (which should be constant), and construction time. The talk gives an overview of several recent randomized constructions of minimal perfect hash functions, leading to space-efficient solutions that are fast in practice. A central issue is a method (“split-and-share”) that makes it possible to assume that fully random (hash) functions are available.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bast, H., Mehlhorn, K., Schäfer, G., Tamaki, H.: Matching algorithms are fast in sparse random graphs. Theory Comput. Syst. 39(1), 3–14 (2006)
Bentley, J.: Programming pearls: a sample of brilliance. J. Assoc. Comput. Mach. 30(9), 754–757 (1987)
Bloom, B.H.: Space/time trade-offs in hash coding with allowable errors. Commun. ACM 13(7), 422–426 (1970)
Botelho, F.C., Kohayakawa, Y., Ziviani, N.: A practical minimal perfect hashing method. In: Nikoletseas, S.E. (ed.) WEA 2005. LNCS, vol. 3503, pp. 488–500. Springer, Heidelberg (2005)
Botelho, F.C., Pagh, R., Ziviani, N.: Simple and space-efficient minimal perfect hash functions. In: Proc. 10th Workshop on Algorithms and Data Structures (WADS 2007). LNCS, vol. 4619, Springer, Heidelberg (2007)
Carter, L., Wegman, M.N.: Universal classes of hash functions. J. Comput. Syst. Sci. 18(2), 143–154 (1979)
Chazelle, B., Kilian, J., Rubinfeld, R., Tal, A.: The Bloomier filter: an efficient data structure for static support lookup tables. In: Proc. 15th ACM-SIAM SODA 2004, pp. 30–39 (2004)
Czech, Z.J., Havas, G., Majewski, B.S.: An optimal algorithm for generating minimal perfect hash functions. Inform. Proc. Lett. 43(5), 257–264 (1992)
Czech, Z.J., Havas, G., Majewski, B.S.: Perfect Hashing (Fundamental Study. Theor. Comput. Sci. 182(1–2), 1–143 (1997)
Demaine, E.D., Meyer auf der Heide, F., Pagh, R., Patrascu, M.: De dictionariis dynamicis pauco spatio utentibus (lat. On dynamic dictionaries using little space). In: Correa, J.R., Hevia, A., Kiwi, M.A. (eds.) LATIN 2006. LNCS, vol. 3887, pp. 349–361. Springer, Heidelberg (2006)
Dietzel, L.: Speicherplatzeffiziente perfekte Hashfunktionen, Diplomarbeit, Technische Universität Ilmenau, Fakultät IA (in German) (2005)
Dietzfelbinger, M., Gil, J., Matias, Y., Pippenger, N.: Polynomial hash functions are reliable. In: Kuich, W. (ed.) Automata, Languages and Programming. LNCS, vol. 623, pp. 235–246. Springer, Heidelberg (1992)
Dietzfelbinger, M., Hagerup, T.: Simple minimal perfect hashing in less space. In: Meyer auf der Heide, F. (ed.) ESA 2001. LNCS, vol. 2161, pp. 109–120. Springer, Heidelberg (2001)
Dietzfelbinger, M., Meyer auf der Heide, F.: Dynamic hashing in real time. In: Paterson, M.S. (ed.) Automata, Languages and Programming. LNCS, vol. 443, pp. 6–19. Springer, Heidelberg (1990)
Dietzfelbinger, M., Karlin, A., Mehlhorn, K., Meyer auf der Heide, F., Rohnert, H., Tarjan, R.: Dynamic perfect hashing: Upper and lower bounds. SIAM J. Comput. 23(4), 738–761 (1994)
Dietzfelbinger, M., Weidling, C.: Balanced allocation and dictionaries with tightly packed constant size bins. Theoret. Comput. Sci. 380(1–2), 47–68 (2007)
Fotakis, D., Pagh, R., Sanders, P., Spirakis, P.G.: Space efficient hash tables with worst case constant access time. Theory Comput. Syst. 38(2), 229–248 (2005)
Fredman, M.L., Komlós, J.: On the size of separating systems and families of perfect hash functions. SIAM J. Alg. Disc. Meth. 5(1), 61–68 (1984)
Fredman, M.L., Komlós, J., Szemerédi, E.: Storing a sparse table with 0(1) worst case access time. J. Assoc. Comput. Mach. 31(3), 538–544 (1984)
Hagerup, T., Tholey, T.: Efficient minimal perfect hashing in nearly minimal space. In: Ferreira, A., Reichel, H. (eds.) STACS 2001. LNCS, vol. 2010, pp. 317–326. Springer, Heidelberg (2001)
Knuth, D.E.: The Art of Computer Programming, 2nd edn. Seminumerical Algorithms, vol. 2. Addison-Wesley, Reading (1981)
Majewski, B.S., Wormald, N.C., Havas, G., Czech, Z.J.: A family of perfect hashing methods. Computer J. 39(6), 547–554 (1996)
Mehlhorn, K.: Data Structures and Algorithms. Sorting and Searching, vol. 1. Springer, Berlin (1984)
Motwani, R.: Average-case analysis of algorithms for matchings and related problems. J. Assoc. Comput. Mach. 41(6), 1329–1356 (1994)
Pagh, R.: Hash and displace: Efficient evaluation of minimal perfect hash functions. In: Dehne, F., Gupta, A., Sack, J.-R., Tamassia, R. (eds.) WADS 1999. LNCS, vol. 1663, pp. 49–54. Springer, Heidelberg (1999)
Pittel, B., Wormald, N.C.: Counting connected graphs inside-out. J. Comb. Theory, Ser. B 93(2), 127–172 (2005)
Sanders, P.: personal communication
Schmidt, J.P., Siegel, A.: The spatial complexity of oblivious k-probe hash functions. SIAM J. Comput. 19(5), 775–786 (1990)
Siegel, A.: On universal classes of extremely random constant-time hash functions. SIAM J. Comput. 33(3), 505–543 (2004)
Thorup, M.: Even strongly universal hashing is pretty fast. In: Proc. 11th ACM-SIAM SODA 2000, pp. 496–497 (2000)
Weidling, C.: Platzeffiziente Hashverfahren mit garantierter konstanter Zugriffszeit, Dissertation. Technische Universität Ilmenau (in German) Electronic version. (2004), http://www.db-thueringen.de/servlets/DocumentServlet?id=2431
Woelfel, P.: Maintaining external memory efficient hash tables. In: Díaz, J., Jansen, K., Rolim, J.D.P., Zwick, U. (eds.) APPROX 2006 and RANDOM 2006. LNCS, vol. 4110, pp. 508–519. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dietzfelbinger, M. (2007). Design Strategies for Minimal Perfect Hash Functions. In: Hromkovič, J., Královič, R., Nunkesser, M., Widmayer, P. (eds) Stochastic Algorithms: Foundations and Applications. SAGA 2007. Lecture Notes in Computer Science, vol 4665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74871-7_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-74871-7_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74870-0
Online ISBN: 978-3-540-74871-7
eBook Packages: Computer ScienceComputer Science (R0)