An Efficient Data Structure to Obtain Range Minima in Constant Time in Constructing Suffix Arrays

접미사 배열 생성 과정에서 구간 최소간 위치를 상수 시간에 찾기 위한 효율적인 자료구조

  • Published : 2004.04.01

Abstract

We present an efficient data structure to obtain the range minima in an away in constant time. Recently, suffix ways are extensively used to search DNA sequences fast in bioinformatics. In constructing suffix arrays, solving the range minima problem is necessary When we construct suffix arrays, we should solve the range minima problem not only in a time-efficient way but also in a space-efficient way. The reason is that DNA sequences consist of millions or billions of bases. Until now, the most efficient data structure to find the range minima in an way in constant time is based on the method that converts the range minima problem in an array into the LCA (Lowest Common Ancestor) problem in a Cartesian tree and then converts the LCA problem into the range minima problem in a specific array. This data structure occupies O( n) space and is constructed in O(n) time. However since this data structure includes intermediate data structures required to convert the range minima problem in an array into other problems, it requires large space (=13n) and much time. Our data structure is based on the method that directly solves the range minima problem. Thus, our data structure requires small space (=5n) and less time in practice. As a matter of course, our data structure requires O(n) time and space theoretically.

본 논문에서는 배열에서 구간 최소값 위치를 상수 시간에 찾기 위한 효율적인 자료구조를 제시한다. 최근의 생물 정보학 분야에서 빠른 DNA 서열의 검색을 위해 접미사 배열이 많이 사용되고 있는데 이 접미사 배열을 생성하는 문제는 구간 최소값 위치 문제를 포함하고 있다. 이 접미사 배열을 생성할 때는 구간 최소값 위치 문제를 빠르게 푸는 것뿐만 아니라 공간 효율적으로 해결하는 것도 중요하다. 그 이유는 DNA 서열이 수백만 개에서 수십 억 개의 염기를 가진 굉장히 큰 데이타이기 때문이다. 배열의 구간 최소간 위치를 상수 시간에 찾기 위해 지금까지 알려진 가장 효율적인 자료구조는 배열의 구간 최소값 문제를 Cartesian 트리에서의 LCA(Lowest Common Ancestor) 문제로 바꾸고 이 트리에서의 LCA 문제를 다시 특수한 배열에서의 구간 최소값 문제로 바꾸어 푸는 방법을 이용한 자료구조이다. 이 자료구조는 이론적으로 O(n) 공간을 사용하여 O(n) 시간에 생성된다. 하지만 이 자료구조는 배열의 구간 최소값 문제를 두 번에 걸쳐 다른 문제로 변환하는 과정을 포함하고 있기 때문에 실제로 사용되는 공간은 상당히 큰 13n이며 또한 많은 시간이 요구된다. 본 논문에서 제시하는 자료구조는 배열의 구간 최소값 문제를 다른 문제로 변환하지 않고 직접 구하는 자료구조이다. 따라서 이론적으로 O(n) 공간을 차지하며 O(n) 시간에 생성될 뿐만 아니라 실제적으로도 5n의 적은 공간을 사용하며 빠른 시간에 생성된다.

Keywords

References

  1. D. Kim, J. Sim, H. Park, and K. Park, Linear-Time Construction of Suffix arrays, Combinatorial Pattern Matching (2003), 186-199 https://doi.org/10.1007/3-540-44888-8_14
  2. Vuillemin, A Unifying Look at Ddata Structures, Comm. ACM Vol. 24, (1980), 229-239 https://doi.org/10.1145/358841.358852
  3. H. Gabow, J. Bently, and R. Tarjan, Scaling and Related Techniques for Geometry Problems, ACM Symp. Theory of Computing (1984), 135-143 https://doi.org/10.1145/800057.808675
  4. D. Harel and R Tarjan, Fast Algorithms for Finding Nearest Common Ancestors, SIAM J. Computing 13 (1984), 338-355 https://doi.org/10.1137/0213024
  5. B. Schieber and U. Vishkim, On Finding Lowest Common Ancestors: Simplification and Parallelization, SIAM J. Computing 17 (1988), 1253-1262 https://doi.org/10.1137/0217079
  6. M. Bender and M. Farach-Colton, The LCA Problem Revisited, In Proceedings of LATIN 2000, LNCS 1776, (2000), 88-94
  7. A.Aho, J.Hopcroft, J.Ullman, Data structures and algorithms, Addisson-Wesley, 1983
  8. O. Berkman and U. Vishkin, Recursive Star-Tree Parallel Ddata Structure, SIAM J. Computing 22 (1993), 221-242 https://doi.org/10.1137/0222017
  9. B. Wang, G. Chen, Cost-Optimal Parallel Algorithms for Constructing 2-3 Trees, J. Parallel and Distributed Computing, 11(3), (1991), 257-262 https://doi.org/10.1016/0743-7315(91)90050-J