From dfa28a005a48e98ae4e7ec362101392d8661e8fa Mon Sep 17 00:00:00 2001 From: fc_botelho Date: Thu, 27 Jan 2005 20:07:57 +0000 Subject: [PATCH] history of BMZ algorithm is available --- BMZ.t2t | 35 ++++++++++++++++++++++++++++++++++- CHM.t2t | 9 +++++++++ FAQ.t2t | 9 ++++++++- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/BMZ.t2t b/BMZ.t2t index cb1b3ef..616d6bd 100644 --- a/BMZ.t2t +++ b/BMZ.t2t @@ -4,15 +4,48 @@ BMZ Algorithm %!includeconf: CONFIG.t2t ---------------------------------------- - **History** +At the end of 2003, professor [Nivio Ziviani http://www.dcc.ufmg.br/~nivio] was +finishing the second edition of his book. +During the book writing, professor Nivio studied the problem of generating minimal perfect hash +functions (if you are not familiarized with this problem, see [1][2]). +Professor Nivio coded a modified version of the [CHM algorithm chm.html], which was proposed by +Czech, Havas and Majewski and put it in his book. +The [CHM algorithm chm.html] is based on acyclic random graphs to generate order preserving +minimal perfect hash functions in linear time. Professor Nivio argued himself, why must the random graph +be acyclic? In the modified version availalbe in his book he got rid of such restriction. + +The modification presented a problem, it was impossible to generate minimal perfect hash functions +for sets with more than 1000 keys. +At the same time, [Fabiano C. Botelho http://www.dcc.ufmg.br/~fbotelho], +a master degree student at [Departament of Computer Science http://www.dcc.ufmg.br] in +[Federal University of Minas Gerais http://www.ufmg.br], +started to be advised by Nivio who presented the problem to Fabiano. + +During the master, Fabiano and Nivio faced lots of problems. +Talking with a friend of mine (David Menoti) about our problems, many ideas +appeared and after of implementing them, we got a very fast algorithm to generate +minimal perfect hash functions that does not preserve order. +We refer the algorithm to as **BMZ**, because it was conceived by Fabiano C. **B**otelho +David **M**enoti and Nivio **Z**iviani. The algorithm is described in [1]. +To analyse BMZ algorithm we needed some results from the random graph theory, so +we invite professor [Yoshiharu Kohayakawa http://www.ime.usp.br/~yoshi] to help us. +The final description and analysis of BMZ algorithm is presented in [2]. + + + **The Algorithm** **The Heuristic** **Papers** ++ [F. C. Botelho http://www.dcc.ufmg.br/~fbotelho], D. Menoti, [N. Ziviani http://www.dcc.ufmg.br/~nivio]. [A New algorithm for constructing minimal perfect hash functions papers/bmz_tr004_04.ps], Technical Report TR004/04, Department of Computer Science, Federal University of Minas Gerais, 2004. + ++ [F. C. Botelho http://www.dcc.ufmg.br/~fbotelho], Y. Kohayakawa, and [N. Ziviani http://www.dcc.ufmg.br/~nivio]. [A Practical Minimal Perfect Hashing Method papers/bmz_wea2005.ps], 4th International Workshop on Efficient and Experimental Algorithms (WEA), 2005.(submitted) + + ---------------------------------------- [Home index.html] ---------------------------------------- diff --git a/CHM.t2t b/CHM.t2t index 0aa2d78..1ceccaa 100644 --- a/CHM.t2t +++ b/CHM.t2t @@ -11,6 +11,15 @@ CHM Algorithm **Papers** ++ Z.J. Czech, G. Havas, and B.S. Majewski. [An optimal algorithm for generating minimal perfect hash functions. papers/chm92.pdf], Information Processing Letters, 43(5):257-264, 1992. + ++ Z.J. Czech, G. Havas, and B.S. Majewski. Fundamental study perfect hashing. + Theoretical Computer Science, 182:1-143, 1997. + ++ B.S. Majewski, N.C. Wormald, G. Havas, and Z.J. Czech. A family of perfect hashing methods. + The Computer Journal, 39(6):547--554, 1996. + + ---------------------------------------- [Home index.html] ---------------------------------------- diff --git a/FAQ.t2t b/FAQ.t2t index add9cc5..1ce1774 100644 --- a/FAQ.t2t +++ b/FAQ.t2t @@ -8,7 +8,7 @@ CMPH FAQ perfect hash function, the ids will be the indices of the keys in the input. Otherwise, you have no guarantee of the distribution of the ids. -- Why I always get the error "Unable to create minimum perfect hashing function"? +- Why do I always get the error "Unable to create minimum perfect hashing function"? - The algorithms do not guarantee that a minimal perfect hash function can be created. In practice, it will always work if your input is big enough (>100 keys). @@ -18,6 +18,13 @@ CMPH FAQ ``` #sort input.txt | uniq > input_uniq.txt and run cmph with input_uniq.txt +- Why do I change the hash function using cmph_config_set_hashfuncs function and the default (jenkins) +one is executed? + - Probably you are you using the cmph_config_set_algo function after + the cmph_config_set_hashfuncs. Therefore, the default hash function + is reset when you call the cmph_config_set_algo function. + + ---------------------------------------- [Home index.html] ----------------------------------------