Skip to main content
QUICK REVIEW

[논문 리뷰] Tying up the loose ends in fully LZW-compressed pattern matching

Paweł Gawrychowski|arXiv (Cornell University)|2011. 09. 19.
Algorithms and Data Compression인용 수 19
한 줄 요약

이 논문은 Lempel-Ziv-Welch (LZW) 방법을 사용하여 패턴과 텍스트가 모두 압축된 경우에 대해 최적의 선형 시간 알고리즘을 처음으로 제안한다. 블록 커버, 반복적 압축, 그리고 코드워드 트라이 상의 접두사 함수(PREF)를 새로운 방식으로 활용함으로써, O(n + m)의 시간 복잡도를 달성하여 이전의 O((n + m) log(n + m)) 해법보다 크게 향상되었으며, 압축된 패턴 매칭 분야에서 오랫동안 남아있던 열린 문제를 해결한다.

ABSTRACT

We consider a natural generalization of the classical pattern matching problem: given compressed representations of a pattern p[1..M] and a text t[1..N] of sizes m and n, respectively, does p occur in t? We develop an optimal linear time solution for the case when both p and t are compressed using the LZW method. This improves the previously known O((n+m)log(n+m)) time solution of Gasieniec and Rytter, and essentially closes the line of research devoted to studying LZW-compressed exact pattern matching.

연구 동기 및 목표

  • LZW 압축된 문자열에 대해 완전한 압축된 패턴 매칭 문제를 최적의 선형 시간 내에 해결하기.
  • 이전에 알려진 O((n + m) log(n + m)) 해법과 이론적 하한선인 O(n + m) 사이의 격차를 해소하기.
  • 패턴이나 텍스트를 전부 해압하지 않고도 압축된 형태로 패턴의 발생을 효율적으로 탐지할 수 있는 방법 개발하기.
  • 이전 연구에서 제안한 O(n + M) 선형 시간 알고리즘을, 패턴과 텍스트가 모두 압축된 완전한 압축 케이스로 확장하기.

제안 방법

  • 알고리즘은 패턴의 조각을 LZW 코드워드의 접두사로 표현하는 블록 커버 데이터 구조를 사용하여, 전체 해압 없이도 효율적인 조작을 가능하게 한다.
  • 이웃하는 블록이 더 긴 코드워드의 접두사로 나타날 경우, 이를 병합함으로써 반복적 압축을 적용하여 구조적 복잡도를 감소시킨다.
  • 접두사 함수(PREF)를 사용하여 압축된 형태의 패턴 조각과 텍스트 조각 간의 가장 긴 공통 접두사를 계산하며, 상수 시간 접근을 위한 레벨 조상 데이터 구조를 활용한다.
  • 코드워드 트라이 상에 접미사 트리를 구축하여, 임의의 두 코드워드 간의 가장 긴 공통 접두사를 상수 시간에 질의할 수 있도록 하며, 이는 최소 공통 조상(LCA) 질의를 통해 달성된다.
  • 알고리즘은 패턴 위치를 커버하는 현재 블록을 가리키는 포인터를 동적으로 유지하며, 스캔 중에 상수 시간에 업데이트하여 효율적인 패턴 매칭을 지원한다.
  • 주기적인 패턴의 경우, 이전 연구에서 제안한 O(n + M) 알고리즘의 수정된 버전을 사용하며, 해압 없이도 압축된 구조를 유지하기 위한 추가 기법을 적용한다.

실험 결과

연구 질문

  • RQ1완전한 LZW 압축된 패턴 매칭을 선형 시간, 즉 O(n + m) 내에 해결할 수 있는가? 여기서 n과 m은 텍스트와 패턴의 압축된 크기이다.
  • RQ2패턴과 텍스트를 해압하지 않고도 압축된 형태로 패턴의 발생을 탐지할 수 있는가?
  • RQ3LZW 압축된 문자열의 어떤 구조적 성질을 활용하여 패턴 매칭에서 최적의 시간 복잡도를 달성할 수 있는가?
  • RQ4접두사 함수(PREF)를 어떻게 수정하여 블록 커버로 표현된 압축된 패턴 조각에 대해 효율적으로 작동시킬 수 있는가?
  • RQ5Gąsieniec와 Rytter가 제안한 O((n + m) log(n + m)) 해법을 새로운 데이터 구조와 압축 기법을 사용하여 최적의 O(n + m) 시간으로 향상시킬 수 있는가?

주요 결과

  • 논문은 텍스트와 패턴의 압축 크기가 각각 n과 m일 때, 완전한 LZW 압축 패턴 매칭에 대해 최초로 O(n + m) 시간 복잡도를 보장하는 최적 알고리즘을 제시한다.
  • 알고리즘은 패턴 조각을 LZW 코드워드의 접두사로 유지하는 블록 커버 표현을 사용하여, 효율적이고 압축된 형태의 패턴 매칭을 가능하게 한다.
  • 코드워드 트라이 상에 접미사 트리를 구축함으로써, 임의의 두 코드워드 간의 가장 긴 공통 접두사를 상수 시간에 질의할 수 있으며, 이는 선형 시간 성능을 확보하는 데 핵심적이다.
  • 반복적 압축과 함께 접두사 함수(PREF)를 사용함으로써, 알고리즘은 단일 패assing 내에 전체 패턴을 걸쳐 잠재적 매칭을 검증할 수 있다.
  • 주기적인 패턴의 경우, 이전 연구에서 제안한 O(n + M) 알고리즘의 수정된 버전을 적용하며, 압축 크기 기반 선형 시간을 유지하기 위해 조정이 이루어진다.
  • 해결책은 최적이며, LZW 압축 하에서 완전한 압축된 패턴 매칭의 선형 시간 달성을 오랫동안 둔류해 온 열린 문제를 완전히 해결한다.

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

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

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

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