Proceedings of IEEE 36th Annual Foundations of Computer Science (1995)
Oct. 23, 1995 to Oct. 25, 1995
R.M. Karp , California Univ., Berkeley, CA, USA
O. Waarts , California Univ., Berkeley, CA, USA
G. Zweig , California Univ., Berkeley, CA, USA
This paper introduces the bit vector intersection problem: given a large collection of sparse bit vectors, find all the pairs with at least t ones in common for a given input parameter t. The assumption is that the number of ones common to any two vectors is significantly less than t, except for an unknown set of O(n) pairs. This problem has important applications in DNA physical mapping, clustering, and searching for approximate dictionary matches. We present two randomized algorithms that solve this problem with high probability and in sub-quadratic expected time. One of these algorithms is based on a recursive tree-searching procedure, and the other on hashing. We analyze the tree scheme in terms of branching processes, while our analysis of the hashing scheme is based on Markov chains. Since both algorithms have similar asymptotic performance, we also examine experimentally their relative merits in practical situations. We conclude by showing that a fundamental problem arising in the Human Genome Project is captured by the bit vector intersection problem described above and hence can be solved by our algorithms.
randomised algorithms; tree data structures; algorithm theory; bit vector intersection; sparse bit vectors; dictionary matches; randomized algorithms; high probability; recursive tree-searching; hashing
R. Karp, G. Zweig and O. Waarts, "The bit vector intersection problem," Proceedings of IEEE 36th Annual Foundations of Computer Science(FOCS), Milwaukee, Wisconsin, 1995, pp. 621.