Skip to main content
QUICK REVIEW

[논문 리뷰] Efficiently computing runs on a trie

Ryo Sugahara, Yuto Nakashima|arXiv (Cornell University)|2019. 01. 29.
Algorithms and Data Compression인용 수 4
한 줄 요약

이 논문은 루트에서 자식 노드로 이르는 경로 상의 최대 반복 부분문자열인 트라이에서의 '런(run)' 개념을 도입하고, n개의 간선을 가진 트라이에서 이러한 런을 모두 계산하는 O(n log log n) 시간, O(n) 공간 알고리즘을 제시한다. 런의 최대 개수는 n 이하임을 입증하고, 0.993238n의 날카로운 점근적 하한을 제시하여 트라이에서 런의 밀도가 거의 선형임을 보여준다.

ABSTRACT

A maximal repetition, or run, in a string, is a maximal periodic substring whose smallest period is at most half the length of the substring. In this paper, we consider runs that correspond to a path on a trie, or in other words, on a rooted edge-labeled tree where the endpoints of the path must be a descendant/ancestor of the other. For a trie with $n$ edges, we show that the number of runs is less than $n$. We also show an asymptotic lower bound on the maximum density of runs in tries: $\\lim_{n\ ightarrow\\infty}\ ho_\\mathcal{T}(n)/n \\geq 0.993238$ where $\ ho_{\\mathcal{T}}(n)$ is the maximum number of runs in a trie with $n$ edges. Furthermore, we also show an $O(n\\log \\log n)$ time and $O(n)$ space algorithm for finding all runs.

연구 동기 및 목표

  • 루트가 있고 간선에 레이블이 부여된 트라이(트라이)에 대해 문자열 런의 개념을 확장하여, 루트에서 노드로 이르는 경로 상의 최대 반복 부분문자열인 런을 정의한다.
  • n개의 간선을 가진 트라이에서 발생할 수 있는 런의 최대 개수를 분석하고, 상한과 하한을 설정한다.
  • 모든 런을 계산하는 효율적인 알고리즘을 설계하여 이전의 O(n(log log n)^2) 해법보다 향상된 성능을 달성한다.
  • 트라이 환경에서 런, 릴론드 단어, 그리고 가장 긴 공통 연장(LCE) 질의 간의 관계를 탐구한다.

제안 방법

  • 모든 런이 부분문자열로써 릴론드 단어(L-root)를 포함한다는 성질을 활용하여, 트라이 내에서 런 탐지를 이끌어내는 데 사용한다.
  • 간격이 b^{4/5}인 마킹된 노드를 사용하여 트라이의 계층적 분해를 적용하여, 길이 b^{4/5}인 부분문자열에 대한 효율적인 LCE 질의를 가능하게 한다.
  • 접미사 트리를 사용하여 길이 x^2 = b^{4/5}인 표준 경로를 재이름하고 정렬함으로써, 범위 최소값 질의를 통한 선형 시간 정렬 및 LCE 계산을 가능하게 한다.
  • 두 단계 LCE 전략을 적용한다: 먼저 재이름된 경로 세그먼트(길이 b^{4/5})에서 LCE를 계산하고, 나머지 짧은 접두어는 원본 경로에서 상수 시간 LCE를 통해 해결한다.
  • 기수 정렬과 범위 최소값 질의 구조를 사용하여, 사전순으로 인접한 재이름된 표준 경로 간의 LCE를 O(n) 시간 내에 계산한다.
  • 이러한 기법들을 조합하여 O(n) 개의 트리 경로 LCE 질의를 총 O(n log log n) 시간 내에 처리함으로써, 런 탐지 알고리즘의 핵심을 형성한다.

실험 결과

연구 질문

  • RQ1n개의 간선을 가진 트라이에서 존재할 수 있는 런의 최대 개수는 얼마이며, 간선 수와 비교해 볼 때 어떻게 되는가?
  • RQ2문자열에서의 런 개념을 루트가 있고 간선에 레이블이 부여된 트라이(트라이)로 의미적으로 일반화할 수 있으며, 이러한 런은 어떤 구조적 성질을 갖는가?
  • RQ3트라이에서 모든 런을 계산하는 데 효율적인 알고리즘이 존재하는가? 그리고 달성 가능한 최선의 시간 복잡도는 무엇인가?
  • RQ4트라이에서 런의 점근적 밀도는 얼마이며, n이 증가함에 따라 n에 얼마나 가까이 다가갈 수 있는가?
  • RQ5문자열 런 계산에서 사용하는 기법들—예를 들어 릴론드 단어 성질과 LCE 데이터 구조—는 트라이 환경에 적응시킬 수 있는가?

주요 결과

  • n개의 간선을 가진 트라이에서의 런 최대 개수는 엄밀히 n 이하이며, ρ(n) ≤ n이라는 상한을 확립한다.
  • 런 밀도에 대한 점근적 하한은 최소 0.993238이며, 즉 lim_{n→∞} ρ_T(n)/n ≥ 0.993238이다.
  • 정수 알파벳을 사용하는 트라이에서 모든 런을 계산하는 O(n log log n)-시간, O(n)-공간 알고리즘이 제시된다.
  • 이 알고리즘은 계층적 경로 분해, 표준 경로의 재이름, 범위 최소값 질의를 통한 효율적 LCE 계산에 기반한다.
  • 이 방법을 통해 O(n log n) 시간 내에 모든 원시 루트를 가진 제곱문자열을 출력할 수 있으며, 이는 일부 트라이에서 Θ(n log n)개의 이러한 제곱문자열이 존재하므로 날카로운 상한임을 보여준다.
  • 결과적으로 트라이에서의 런은 수적으로도 많고, 문자열 런에 비해 시간 복잡도가 다소 증가할 뿐이지 효율적으로 계산 가능하다는 것이 입증된다.

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

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

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

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