Skip to main content
QUICK REVIEW

[논문 리뷰] In-Place Longest Common Extensions.

Nicola Prezza|arXiv (Cornell University)|2016. 08. 17.
Algorithms and Data Compression참고 문헌 26인용 수 5
한 줄 요약

이 논문은 크기가 $n\lceil\log_2|\Sigma|\rceil$ 비트인 텍스트를 대체하는 인-place 데이터 구조를 제안한다. 이는 최적의 시간 복잡도로 텍스트 추출과 $\mathcal{O}(\log n)$-시간 LCE 쿼리를 지원하며, 순수 텍스트를 사용하는 것보다 지수적으로 빠른 성능을 제공한다. 이 구조는 LCP 배열을 $\mathcal{O}(n\log n)$ 예상 시간 내에 계산하는 최초의 인-place 알고리즘과 $b$개의 접미사를 $\mathcal{O}(n + b\log^2 n)$ 예상 시간 내에 정렬하는 인-place 알고리즘을 가능하게 하여 이전의 인-place 방법보다 크게 향상시킨다.

ABSTRACT

Longest Common Extension (LCE) queries are a fundamental sub-routine in several string-processing algorithms, including (but not limited to) suffix-sorting, string matching, compression, and identification of repeats and palindrome factors. A LCE query takes as input two positions $i,j$ in a text $T\in\Sigma^n$ and returns the length $\ell$ of the longest common prefix between $T$'s $i$-th and $j$-th suffixes. In this paper, we present the following result: we can replace the (plain) text with a data structure of the \emph{exact same size}---$n\lceil\log_2|\Sigma| ceil$ bits---supporting text extraction in optimal time and LCE queries in logarithmic time---i.e. \emph{exponentially} faster than what can be achieved using the plain text alone. Our structure can be built in $\mathcal O(n\log n)$ expected time and linear space. We show that our result is a powerful tool that can be used to efficiently solve in-place a wide variety of string processing problems: we provide the first in-place algorithms to compute the LCP array in $\mathcal O(n\log n)$ expected time (the previous fastest in-place algorithm runs in $\mathcal O(n^2)$ time) and to suffix-sort---with high probability of success---any set of $b$ text suffixes in $\mathcal O(n+b\log^2 n)$ expected time (the previous fastest in-place algorithm runs in $\mathcal O(nb)$ time).

연구 동기 및 목표

  • 원본 텍스트와 동일한 공간에서 최적의 시간 복잡도로 LCE 쿼리를 지원하는 데이터 구조를 설계하는 것.
  • 이전의 $\mathcal{O}(n^2)$ 인-place 한계를 넘어서 $\mathcal{O}(n\log n)$ 예상 시간 내에 LCP 배열을 인-place로 계산할 수 있도록 하는 것.
  • 이전의 $\mathcal{O}(nb)$ 한계를 뛰어넘어 $\mathcal{O}(n + b\log^2 n)$ 예상 시간 내에 $b$개의 접미사를 인-place로 정렬할 수 있는 인-place 접미사 정렬 알고리즘을 개발하는 것.
  • 이와 같은 데이터 구조가 다양한 종류의 문자열 처리 문제를 인-place로 효율적으로 해결하는 데 사용될 수 있음을 보여주는 것.

제안 방법

  • 이 데이터 구조는 원본 텍스트를 압축된 인-place 표현으로 대체하며, $\mathcal{O}(\log n)$ 시간 내에 텍스트 추출과 LCE 쿼리를 모두 지원한다.
  • 원본 텍스트와 동일한 크기인 $n\lceil\log_2|\Sigma|\rceil$ 비트를 사용하여 텍스트의 압축된 표현을 구현한다.
  • 랜덤화된 구축 과정을 사용하여 $\mathcal{O}(n\log n)$ 예상 시간 내에 구조를 구성한다.
  • LCE 쿼리는 접미사 배열과 LCP 배열에 기반한 웨이블릿 트리 유사 구조를 통해 처리한다.
  • 이 방법은 데이터 구조가 텍스트에서 순서와 선택 연산을 지원함으로써 효율적인 접미사 비교를 가능하게 한다는 사실을 활용한다.
  • LCP 배열과 접미사 정렬을 위한 인-place 알고리즘은 이 구조 위에 구축되며, 접미사 접근과 그들의 LCE를 시뮬레이션할 수 있는 능력을 활용한다.

실험 결과

연구 질문

  • RQ1원본 텍스트와 동일한 크기인 $n\lceil\log_2|\Sigma|\rceil$ 비트만을 사용하면서도 $\mathcal{O}(\log n)$ 시간 내에 LCE 쿼리를 지원하는 인-place 데이터 구조를 설계할 수 있는가?
  • RQ2이 데이터 구조를 통해 $\mathcal{O}(n\log n)$ 예상 시간 내에 LCP 배열을 계산하는 최초의 인-place 알고리즘을 구현할 수 있는가?
  • RQ3이 구조는 $b$개의 접미사를 $\mathcal{O}(n + b\log^2 n)$ 예상 시간 내에 효율적으로 인-place로 정렬할 수 있는가?
  • RQ4이 구조를 사용할 경우, 이전의 인-place 방법에 비해 인-place 문자열 알고리즘의 성능이 어떻게 향상되는가?

주요 결과

  • 제안된 데이터 구조는 $\mathcal{O}(\log n)$ 시간 내에 LCE 쿼리를 지원하며, 순수 텍스트만을 사용할 경우의 $\mathcal{O}(n)$ 시간에 비해 지수적으로 빠른 성능을 제공한다.
  • LCP 배열은 $\mathcal{O}(n\log n)$ 예상 시간 내에 인-place 알고리즘을 통해 계산되며, 이는 이전의 $\mathcal{O}(n^2)$ 한계를 크게 향상시킨다.
  • $b$개의 접미사 정렬은 $\mathcal{O}(n + b\log^2 n)$ 예상 시간 내에 수행되며, 이는 이전의 $\mathcal{O}(nb)$ 인-place 방법보다 향상되었다.
  • 이 데이터 구조는 정확히 $n\lceil\log_2|\Sigma|\rceil$ 비트를 사용하여 원본 텍스트의 크기와 일치하므로 진정으로 인-place 동작이 가능하다.
  • 이 데이터 구조의 구축은 $\mathcal{O}(n\log n)$ 예상 시간과 선형 공간을 요구하므로 대규모 텍스트에 대해 실용적이다.
  • 이 프레임워크는 다양한 종류의 문자열 처리 문제를 효율적으로 인-place로 해결할 수 있도록 하여 광범위한 적용 가능성을 입증한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.