history of BMZ algorithm is available
This commit is contained in:
parent
b4930a47f1
commit
dfa28a005a
35
BMZ.t2t
35
BMZ.t2t
@ -4,15 +4,48 @@ BMZ Algorithm
|
|||||||
%!includeconf: CONFIG.t2t
|
%!includeconf: CONFIG.t2t
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
**History**
|
**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 Algorithm**
|
||||||
|
|
||||||
**The Heuristic**
|
**The Heuristic**
|
||||||
|
|
||||||
**Papers**
|
**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]
|
[Home index.html]
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
Before Width: | Height: | Size: 271 B After Width: | Height: | Size: 2.6 KiB |
9
CHM.t2t
9
CHM.t2t
@ -11,6 +11,15 @@ CHM Algorithm
|
|||||||
|
|
||||||
**Papers**
|
**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]
|
[Home index.html]
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
9
FAQ.t2t
9
FAQ.t2t
@ -8,7 +8,7 @@ CMPH FAQ
|
|||||||
perfect hash function, the ids will be the indices of the keys in the
|
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.
|
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
|
- The algorithms do not guarantee that a minimal perfect hash function can
|
||||||
be created. In practice, it will always work if your input
|
be created. In practice, it will always work if your input
|
||||||
is big enough (>100 keys).
|
is big enough (>100 keys).
|
||||||
@ -18,6 +18,13 @@ CMPH FAQ
|
|||||||
``` #sort input.txt | uniq > input_uniq.txt
|
``` #sort input.txt | uniq > input_uniq.txt
|
||||||
and run cmph with 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]
|
[Home index.html]
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user