[논문 리뷰] On-line Indexing for General Alphabets via Predecessor Queries on Subsets of an Ordered List
이 논문은 일반 알파벳에 대해 $O(\log\log n + \log\log|\Sigma|)$ worst-case 예상 시간 복잡도를 달성하는 온라인 접미사 트리 구축을 위한 새로운 데이터 구조를 제안한다. 이는 접미사 트리 구축 문제를 새로운 유형의 순서 유지 문제인 순서 목록의 동적 부분집합에서의 이전자 검색 문제(POLP)로 환원함으로써 달성된다. 이 해결책은 y-fast 트라이의 통합 분할과 청크 및 버킷 업데이트 간의 효율적 스케줄링을 활용하여 최적의 복잡도를 유지한다.
The problem of Text Indexing is a fundamental algorithmic problem in which one wishes to preprocess a text in order to quickly locate pattern queries within the text. In the ever evolving world of dynamic and on-line data, there is also a need for developing solutions to index texts which arrive on-line, i.e. a character at a time, and still be able to quickly locate said patterns. In this paper, a new solution for on-line indexing is presented by providing an on-line suffix tree construction in $O(\log \log n + \log\log |Σ|)$ worst-case expected time per character, where $n$ is the size of the string, and $Σ$ is the alphabet. This improves upon all previously known on-line suffix tree constructions for general alphabets, at the cost of having the run time in expectation. The main idea is to reduce the problem of constructing a suffix tree on-line to an interesting variant of the order maintenance problem, which may be of independent interest. In the famous order maintenance problem, one wishes to maintain a dynamic list $L$ of size $n$ under insertions, deletions, and order queries. In an order query, one is given two nodes from $L$ and must determine which node precedes the other in $L$. In the Predecessor search on Dynamic Subsets of an Ordered Dynamic List problem (POLP) it is also necessary to maintain dynamic subsets of $L$ such that given some $u\in L$ it will be possible to quickly locate the predecessor of $u$ in any subset. This paper provides an efficient data structure capable of solving the POLP with worst-case expected bounds that match the currently best known bounds for predecessor search in the RAM model, improving over a solution which may be implicitly obtained from Dietz [Die89]. Furthermore, this paper improves or simplifies bounds for several additional applications, including fully-persistent arrays and the Order-Maintenance Problem.
연구 동기 및 목표
- 문자 하나씩 도착하는 텍스트에 대해 실시간으로 접미사 트리를 구축하는 문제에 대응하기 위해, 특히 크거나 일반적인 알파벳을 사용하는 경우에 유용한 방법을 제공한다.
- 일반 알파벳에 대해 이전의 온라인 접미사 트리 구축 방법보다 높은 평균 또는 worst-case 시간 복잡도를 가지는 것을 개선하고자 한다.
- 다양한 동적 부분집합을 포함하는 순서 목록에서 효율적인 이전자 검색을 지원하는 동적 데이터 구조를 설계하여, 더 빠른 온라인 색인을 가능하게 하고자 한다.
- y-fast 트라이와 순서 유지 구조의 분할 과정을 통합하고 최적화하여 상호 간섭을 방지하고 예상 worst-case 성능을 유지하고자 한다.
제안 방법
- 온라인 접미사 트리 구축 문제를 순서 목록의 동적 부분집합에서의 이전자 검색 문제(POLP)로 환원한다.
- y-fast 트라이와 x-fast 트라이를 융합한 하이브리드 데이터 구조를 사용하여 $O(\log\log n)$ 시간 내에 이전자 검색을 지원한다.
- 모든 y-fast 트라이 구조에 걸쳐 $\log^2 n$번의 삽입마다 분할을 유도하는 통합된 분할 메커니즘을 도입하여 간섭을 방지한다.
- 시간 자원을 할당하여 순서 유지 구조와 y-fast 트라이 업데이트 간의 작업 스케줄링을 수행함으로써 삽입당 $O(1)$ 예상 시간을 확보한다.
- 청크와 버킷 크기 및 트리 깊이를 수정하여 태그 업데이트 빈도를 감소시키고, $O(\log n)$의 작업을 $\log n$ 시간 자원에 분산시킨다.
- 청크 분할과 버킷 분할 간의 간섭을 처리하기 위해 이중 작업 스케줄링 전략을 활용하여, 시간 자원당 $O(1)$ 예상 작업을 유지한다.
실험 결과
연구 질문
- RQ1일반 알파벳에 대해 온라인 접미사 트리 구축이 $O(\log\log n + \log\log|\Sigma|)$ worst-case 예상 시간 복잡도로 수행될 수 있는가?
- RQ2순서 목록의 동적 부분집합에서의 이전자 검색 문제는 낮은 업데이트 비용을 유지하면서 효율적으로 해결될 수 있는가?
- RQ3y-fast 트라이와 순서 유지 구조의 분할 과정을 통합하여 성능 저하 없이 수행할 수 있는가?
- RQ4y-fast 트라이와 순서 유지 구조에서 동시 발생하는 분할 작업 간의 간섭은 최소한의 오버헤드로 해결할 수 있는가?
주요 결과
- 제안된 데이터 구조는 $O(1)$ worst-case 시간 내에 순서 질의를 지원하여 이 작업에 대해 최적의 성능를 달성한다.
- 순서 목록 $L$에 노드를 삽입하는 데 $O(\log\log n)$ worst-case 예상 시간이 소요되며, 이는 이전의 평균 시간 복잡도에 비해 향상된 것이다.
- 어떤 동적 부분집합 $S_i$에 요소를 삽입하는 데 $O\left(\log\log n\right)$ worst-case 예상 시간이 소요되며, RAM 모델에서 알려진 최고의 이전자 검색 복잡도와 일치한다.
- 어느 부분집합 $S_i$에서 노드 $u$의 이전자를 찾는 데 $O(\log\log n)$ worst-case 시간이 소요되어 온라인 색인에서의 빠른 패턴 검색을 보장한다.
- 전체 공간 사용량은 선형 유지되며, 모든 y-fast 트라이에서 총 $O(n/\log n)$개의 버킷을 사용하여 확장 가능성을 확보한다.
- 이 해결책은 완전 지속성 배열 및 단조성 리스트 레이블링 문제와 같은 관련 문제의 복잡도를 향상 또는 단순화한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.