Skip to main content
QUICK REVIEW

[논문 리뷰] Fast Searching in Packed Strings

Philip Bille|arXiv (Cornell University)|2009. 07. 17.
Algorithms and Data Compression참고 문헌 15인용 수 6
한 줄 요약

이 논문은 단어 램에서 단일 비용 워드-RAM 환경에서 $ O\bigl(\frac{n}{\log_\sigma n} + m + \mathrm{occ}\bigr) $ 시간 복잡도를 달성하기 위해 새로운 세그먼트 오토마타와 표에 기반한 전이 시뮬레이션을 활용한 빠른 정확한 문자열 매칭 알고리즘을 제시한다. 이 방법은 워드 수준의 병렬 처리와 압축된 부분 오토마타 인코딩을 활용하여 $ m = o(n) $ 인 경우 고전적인 Knuth-Morris-Pratt 경계를 뛰어넘으며, $ m = O(n / \log_\sigma n) $ 일 때 정보 이론적 하한선과 일치하여 최적성을 확보한다.

ABSTRACT

Given strings $P$ and $Q$ the (exact) string matching problem is to find all positions of substrings in $Q$ matching $P$. The classical Knuth-Morris-Pratt algorithm [SIAM J. Comput., 1977] solves the string matching problem in linear time which is optimal if we can only read one character at the time. However, most strings are stored in a computer in a packed representation with several characters in a single word, giving us the opportunity to read multiple characters simultaneously. In this paper we study the worst-case complexity of string matching on strings given in packed representation. Let $m \leq n$ be the lengths $P$ and $Q$, respectively, and let $σ$ denote the size of the alphabet. On a standard unit-cost word-RAM with logarithmic word size we present an algorithm using time $$ O\left(\frac{n}{\log_σn} + m + \occ ight). $$ Here $\occ$ is the number of occurrences of $P$ in $Q$. For $m = o(n)$ this improves the $O(n)$ bound of the Knuth-Morris-Pratt algorithm. Furthermore, if $m = O(n/\log_σn)$ our algorithm is optimal since any algorithm must spend at least $Ω(\frac{(n+m)\log σ}{\log n} + \occ) = Ω(\frac{n}{\log_σn} + \occ)$ time to read the input and report all occurrences. The result is obtained by a novel automaton construction based on the Knuth-Morris-Pratt algorithm combined with a new compact representation of subautomata allowing an optimal tabulation-based simulation.

연구 동기 및 목표

  • 여러 문자가 한 워드에 저장되는 패킹된 문자열에서의 문자열 매칭의 최악의 복잡도를 해결하기 위해.
  • 한 번에 한 문자씩 접근하는 것을 전제로 하는 고전적 알고리즘(예: Knuth-Morris-Pratt)의 한계를 극복하기 위해, 워드 수준의 병렬 처리를 활용할 수 없음을 해결하기 위해.
  • 압축된 오토마타 부분상태 인코딩과 탭루레이션을 통한 빠른 시뮬레이션을 가능하게 하는 데이터 구조와 알고리즘을 설계하기 위해.
  • 특정 조건에서 알고리즘이 최적임을 입증하기 위해, 즉 $ m = O(n / \log_\sigma n) $ 일 때 정보 이론적 하한선과 일치함을 보여주기 위해.
  • 패턴에 독립적인 사전 계산된 표를 통해 다중 검색 시나리오를 효율적으로 지원하기 위해.

제안 방법

  • 크기 $ r = \Theta(\log n) $ 의 겹치는 간격으로 상태를 그룹화하는 KMP 오토마타 $ K $ 의 압축 표현인 세그먼트 오토마타 $ C(P,r) $ 를 도입하기 위해.
  • 세그먼트 경계에 따라 오토마타를 부분오토마타로 분할하여, 사전에 계산된 전이 표를 사용해 효율적인 시뮬레이션을 가능하게 하기 위해.
  • 각 세그먼트에 대해 Next 함수를 표에 기반해 계산하여, 반복마다 최대 $ r-1 $ 개의 문자를 상수 시간 내에 시뮬레이션할 수 있도록 하기 위해.
  • 가벼운 전이(실패가 아니며 수용하지 않는 전이)는 일괄 처리하고, 무거운 전이 또는 수용 전이의 경우 개별적으로 처리하는 수정된 시뮬레이션 알고리즘을 적용하기 위해.
  • 워드 수준의 병렬 처리와 비트 연산을 활용해 동시에 여러 문자를 처리함으로써 반복 횟수를 줄이기 위해.
  • 시간과 공간 복잡도를 균형 있게 유지하기 위해 $ t = n^\varepsilon $ 로 설정하여 공간 복잡도를 $ O(n^\varepsilon + m) $ 로 최적화하기 위해.

실험 결과

연구 질문

  • RQ1워드 수준의 병렬 처리를 활용함으로써 패킹된 문자열 매칭에서 문자당 시간 복잡도를 선형 이하로 낮출 수 있는가?
  • RQ2빠른 시뮬레이션을 지원하고 최적의 시간 복잡도를 달성할 수 있는 압축된 오토마타 표현 방식을 설계할 수 있는가?
  • RQ3빈번한 상태 전환으로 인해 $ O(n) $ 시간이 소요되지 않도록 패킹된 문자열에서 오토마타 전이를 효율적으로 시뮬레이션할 수 있는가?
  • RQ4탭루레이션 기반 기법을 KMP 오토마타에 적응시켜 패킹된 문자열에서 최적의 성능을 달성할 수 있는가?
  • RQ5패킹된 문자열 매칭의 이론적 성능 한계는 무엇이며, 이를 달성할 수 있는가?

주요 결과

  • 제안된 알고리즘은 로그 단위 워드 크기의 단일 비용 워드-RAM 환경에서 $ O\bigl(\frac{n}{\log_\sigma n} + m + \mathrm{occ}\bigr) $ 시간 복잡도를 달성한다.
  • $ m = o(n) $ 일 경우, 고전적인 Knuth-Morris-Pratt 알고리즘의 $ O(n) $ 경계를 초월하여 성능 향상을 이룬다.
  • $ m = O(n / \log_\sigma n) $ 일 경우, 정보 이론적 하한선 $ \Omega\bigl(\frac{n}{\log_\sigma n} + \mathrm{occ}\bigr) $ 과 일치하여 최적성을 확보한다.
  • 임의의 상수 $ \varepsilon \in (0,1) $ 에 대해 공간 복잡도가 $ O(n^\varepsilon + m) $ 로 유지되어 효율적인 메모리 사용이 가능하다.
  • 새로운 세그먼트 오토마타와 표에 기반한 전이 시뮬레이션을 통해 문자의 일괄 처리가 가능해져 반복 횟수를 $ O(n/r + \mathrm{occ}) $ 로 줄였다.
  • 패턴에 독립적인 사전 계산된 표를 통해 다중 검색에 확장 가능하며, 쿼리 간에 재사용이 가능하다.

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

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

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

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