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의 적은 공간을 사용하며 빠른 시간에 생성된다.