Skip to main content
QUICK REVIEW

[논문 리뷰] Representing the suffix tree with the CDAWG

Djamal Belazzougui, Fabio Cunial|arXiv (Cornell University)|2017. 05. 24.
Algorithms and Data Compression참고 문헌 11인용 수 7
한 줄 요약

이 논문은 공간 효율적인 접미사 트리 표현을 제안하며, Compact Directed Acyclic Word Graph(CDAWG)를 사용하여 핵심 접미사 트리 연산—예: LCA, 접미사 배열 접근, 부분문자열 추출—을 O(1)에서 O(log n) 시간 내에 지원한다. 이는 O(e_T + e_{\bar{T}}) 단위의 공간을 유지하면서 이루어지며, 중복성이 높은 문자열 처리에 적합하다. 이 방법은 무거운 경로 분해를 활용하고, 뒤집힌 CDAWG를 T를 생성하는 문맥 자유 문법과 연결함으로써, T, 접미사 배열, 관련 구조물에 대한 효율적인 랜덤 액세스를 가능하게 한다.

ABSTRACT

Given a string $T$, it is known that its suffix tree can be represented using the compact directed acyclic word graph (CDAWG) with $e_T$ arcs, taking overall $O(e_T+e_{\overline{T}})$ words of space, where ${\overline{T}}$ is the reverse of $T$, and supporting some key operations in time between $O(1)$ and $O(\log{\log{n}})$ in the worst case. This representation is especially appealing for highly repetitive strings, like collections of similar genomes or of version-controlled documents, in which $e_T$ grows sublinearly in the length of $T$ in practice. In this paper we augment such representation, supporting a number of additional queries in worst-case time between $O(1)$ and $O(\log{n})$ in the RAM model, without increasing space complexity asymptotically. Our technique, based on a heavy path decomposition of the suffix tree, enables also a representation of the suffix array, of the inverse suffix array, and of $T$ itself, that takes $O(e_T)$ words of space, and that supports random access in $O(\log{n})$ time. Furthermore, we establish a connection between the reversed CDAWG of $T$ and a context-free grammar that produces $T$ and only $T$, which might have independent interest.

연구 동기 및 목표

  • 유전체 서열이나 버전 관리 문서와 같은 반복적인 문자열에서 효율적인 연산을 지원하는 압축된 접미사 트리 표현을 설계하는 것.
  • CDAWG 크기가 반복적인 텍스트에서 비선형적으로 증가하는 특성을 활용하여, 기존의 압축된 접미사 배열보다 공간 사용량을 줄이는 것.
  • 최적의 공간 복잡도를 유지하면서 CDAWG 기반 접미사 트리 표현에 추가 쿼리(예: 접미사 배열, 역접미사 배열, LCP 배열)를 확장하는 것.
  • 뒤집힌 CDAWG와 T를 생성하는 문맥 자유 문법 사이의 공식적인 연결 고리를 확립하여 효율적인 문자열 액세스를 가능하게 하는 것.
  • 오직 O(e_T) 단위의 공간만을 사용하여 T, 접미사 배열, 관련 배열에 대해 O(log n) 시간 내에 랜덤 액세스를 지원하는 것.

제안 방법

  • 접미사 트리의 중량 경로 분해를 사용하여 LCA, 조상, selectLeaf 등의 효율적 탐색 및 연산을 O(1)에서 O(log log n) 시간 내에 수행하는 것.
  • CDAWG 구조를 통해 BWT 간격과 접미사 링크를 저장하여 접미사 배열 및 역접미사 배열에 대한 효율적 액세스를 가능하게 하는 것.
  • 뒤집힌 CDAWG를 T를 생성하는 직선 프로그램(문법)으로 활용하여, 문법 액세스 쿼리를 통해 T[i]와 T[i..j]에 O(log n) 시간 내에 액세스할 수 있도록 하는 것.
  • 동형 서브트리의 특성을 이용해 접미사 트리를 CDAWG를 통해 압축함으로써 공간을 감소시키고, 차별 배열의 문법 기반 압축을 가능하게 하는 것.
  • 뒤집힌 문자열 ¯T의 RLBWT를 사용하여 각 문자당 O(log log n) 시간 내에 간선 레이블 탐색을 지원하는 것.
  • CDAWG 기반 표현에 문자 깊이, 부모, 접미사 링크 등의 추가 연산을 통합하여 동일한 점근적 공간 복잡도 내에서 지원하는 것.

실험 결과

연구 질문

  • RQ1CDAWG를 사용하여 접미사 트리를 O(e_T + e_{\bar{T}}) 단위의 공간 내에서 표현하면서, 핵심 연산을 O(1)에서 O(log log n) 시간 내에 지원할 수 있는가?
  • RQ2오직 O(e_T) 단위의 공간만을 사용하여 T, 접미사 배열, 역접미사 배열에 대해 O(log n) 시간 내에 랜덤 액세스를 지원할 수 있는가?
  • RQ3뒤집힌 CDAWG와 T를 생성하는 문맥 자유 문법 사이에 공식적인 연결 고리가 존재하는가? 그리고 이를 효율적인 문자열 액세스에 활용할 수 있는가?
  • RQ4공간 복잡도를 증가시키지 않고도 LCA, 조상, 접미사 링크 등의 연산을 O(1)에서 O(log log n) 시간 내에 지원할 수 있는가?
  • RQ5랜덤 액세스에 포함된 O(log n) 항목을 동일한 공간 예산을 유지하면서 줄일 수 있는가, 아니면 이는 점근적으로 피할 수 없는가?

주요 결과

  • 접미사 트리는 O(e_T + e_{\bar{T}}) 단위의 공간 내에서 표현 가능하며, 여기서 e_T는 T의 CDAWG에서의 간선 수이다. 이는 반복성이 높은 문자열에서 비선형적인 공간 증가를 가능하게 한다.
  • LCA, leftmostLeaf, selectLeaf와 같은 핵심 연산들은 O(1)에서 O(log log n) 시간 내에 지원되며, 일부 연산에 대해 이전의 O(log n) 기준을 향상시킨다.
  • T[i]에 대한 랜덤 액세스는 O(log n) 시간, T[i..j]에 대한 랜덤 액세스는 O(log n + j−i) 시간 내에 수행되며, 이는 뒤집힌 CDAWG를 문법으로 활용함으로써 가능하다.
  • 뒤집힌 CDAWG는 T를 생성하는 문맥 자유 문법과 공식적으로 연결되어 있으며, 이는 차별 배열의 문법 기반 압축에 대한 이론적 기반을 제공한다.
  • 접미사 배열, 역접미사 배열, LCP 배열은 모두 O(e_T) 단위의 공간 내에서 O(log n) 랜덤 액세스 시간을 가지며, CDAWG의 공간 효율성과 일치한다.
  • 이 방법은 오직 O(e_T) 공간만을 사용하여 매칭 통계 및 특정 부분문자열 커널을 O(m log n) 시간 내에 효율적으로 계산할 수 있으며, 반복적인 문자열 응용에 적합하다.

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

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

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

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