1
Fork 0

history of BMZ algorithm is available

This commit is contained in:
fc_botelho 2005-01-27 20:07:57 +00:00
parent b4930a47f1
commit dfa28a005a
3 changed files with 51 additions and 2 deletions

35
BMZ.t2t
View File

@ -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]
----------------------------------------

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -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]
----------------------------------------

View File

@ -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]
----------------------------------------