Implementation of Rank/Select Data Structure using Alphabet Frequency

문자의 빈도수를 고려한 Rank/Select 자료구조 구현

  • 권유진 (한국IBM 유비쿼터스컴퓨팅랩) ;
  • 이선호 (한양대학교 전기통신컴퓨터공학부) ;
  • 박근수 (서울대학교 컴퓨터공학부)
  • Published : 2009.08.15

Abstract

The rank/select data structure is a basic tool of succinct representations for several data structures such as trees, graphs and text indexes. For a given string sequence, it is used to answer the occurrence of characters up to a certain position. In previous studies, theoretical rank/select data structures were proposed, but they didn't support practical operational time and space. In this paper, we propose a simple solution for implementing rank/select data structures efficiently. According to experiments, our methods without complex encodings achieve nH$_0$ + O(n) bits of theoretical size and perform rank/select operations faster than the original HSS data structure.

Rank/select 자료구조는 트리, 그래프, 문자열 인덱스 등의 다양한 자료구조를 간결하게 표현하는 기본 도구이다. Rank/select 자료구조는 주어진 문자열에 어느 위치까지 나타난 문자 개수를 세는 연산을 처리한다. 효율적인 rank/select 자료구조를 위해 이론적인 압축 방식들이 제안되었으나, 실제 구현에 있어 연산 시간 및 저장 공간의 효율을 보장할 수 없었다. 본 논문은 간단한 방법으로 이론적인 압축 크기를 보장하면서 연산 시간도 효율적인 rank/select 자료구조 구현 방법을 제시한다. 본 논문의 실험을 통해, 복잡한 인코딩 방법 없이도 이론적인 nH$_0$ + O(n) 비트 크기에 근접하면서 기존의 HSS 자료구조보다 빠른 rank/select 연산을 지원하는 구현 방법임을 보인다.

Keywords

References

  1. E. M. McCreight, A space-economical suffix tree construction algorithm, Journal of ACM, 23, pp.262-272, 1979.
  2. U. Manber and G. Myers, Suffix arrays: a new method for on-line string searches, SIAM Journal on Computing, 22, pp.935-948, 1993. https://doi.org/10.1137/0222058
  3. R. Grossi and J. S. Vitter, Compressed suffix arrays and suffix trees with applications to text indexing and string matching, SIAM Journal on Computing, 35, pp.378-407, 2005. https://doi.org/10.1137/S0097539702402354
  4. P. Ferragina and G. Manzini, Indexing compressed texts, Journal of ACM, 52, pp.552-581, 2005. https://doi.org/10.1145/1082036.1082039
  5. 최용욱, 심정섭, 박근수, 접미사 배열을 이용한 시간과 공간 효율적인 검색, 한국정보과학회논문지, 32, pp.260-267, 2005.
  6. G. Jacobson, Space-efficient static trees and graphs, In Proceedings of FOCS, 1989.
  7. D. R. Clark, Compact Pat Trees, PhD thesis, University of Waterloo, 1988.
  8. J. I. Munro and V. Raman, Succinct representation of balanced parentheses and static trees, SIAM Journal on Computing, 31, pp.762-776, 2001. https://doi.org/10.1137/S0097539799364092
  9. R. Grossi, A. Gupta and J. S. Vitter, High-Order Entropy-Compressed Text Indexes. In Proceedings of SODA, 2003.
  10. W. Hon, K. Sadakane and W. Sung, Breaking a time-and-space barrier in constructing full-text indices. In Proceedings of FOCS, 2003.
  11. A. Golynski, J. I. Munro and S. S. Rao, Rank/select operations on large alphabets: a tool for text indexing, In Proceedings of SODA, 2006.
  12. F. Claude and G. Navarro. Practical Rank/ Select Queries over Arbitrary Sequences. In Proceedings of SPIRE, 2008.
  13. G. Manzini, An analysis of the Burrows-Wheeler transform, Journal of ACM, 48, pp.407-430, 2001. https://doi.org/10.1145/382780.382782
  14. K. Sadakane, New text indexing functionalities of the compressed suffix arrays, Journal of Algorithms, 48, pp.294-313, 2003. https://doi.org/10.1016/S0196-6774(03)00087-7
  15. R. Raman, V. Raman, and S. S. Rao. Succinct indexable dictionaries with applications to encoding k-ary trees, prefix sums and multisets, In Proceedings of SODA, 2002.
  16. T. Cover and J. Thomas. Elements of Information Theory, Wiley-Interscience, 1991.
  17. R. González, S. Grabowski, V. Mäkinen, and G. Navarro. Practical Implementation of Rank and Select Queries. In Poster Proceedings of 4th WEA, 2005.
  18. D. Okanohara and K. Sadakane, Practical entropycompressed rank/select dictionary, In Proceedings of ALENEX, 2007.
  19. 박치성, 조준하, 김동규, Succinct 표현의 효율적인 구현을 통한 압축된 써픽스 배열 생성. 한국정보과학회 제 32회 추계학술발표회 2005.