불일치에 민감한 고압축 문자열 접근
초록
이 논문은 압축도가 높은 문자열을 표현하는 RLSLP와 블록 트리 구조에 대해, 해당 위치의 가장 긴 반복 부분 문자열 길이 ℓₙ에 로그 비례하는 시간으로 임의의 문자에 접근할 수 있는 데이터 구조를 제안한다. 또한 구문 분석에서 구절의 소스가 크게 겹치지 않을 경우, 구절 복사 횟수와 ℓₙ을 이용해 접근 시간을 더욱 개선한다.
상세 분석
본 연구는 “압축도와 접근성 사이의 역상관 관계”라는 새로운 관점을 제시한다. 기존 연구들은 압축률이 높을수록 최악의 경우 접근 시간이 로그 수준 이상으로 증가한다는 사실에 초점을 맞추었으며, 특정 위치(예: 비터미널 끝)에서만 빠른 접근을 보장했다. 저자들은 이러한 한계를 넘어, 문자열 내에서 불일치(incongruity), 즉 주변 문자와의 반복성 차이가 큰 위치일수록 더 빠르게 접근할 수 있는 메커니즘을 설계하였다.
핵심 아이디어는 두 단계로 구성된다. 첫 번째는 RLSLP(런-길이 압축 직선 프로그램) 혹은 블록 트리의 잎 노드들을 전처리하여 각 잎이 담당하는 구간의 시작 위치 집합 {x_i}을 만든 뒤, 거리 민감 선행자(predecessor) 구조를 구축하는 것이다. 이 구조는 질의 위치 q와 가장 가까운 시작점 x_i 사이의 거리 d = q−x_i+1에 대해 O(log log d) 시간에 선행자를 찾는다. 이어서 해당 잎에 포함된 구문을 로컬 밸런싱된 문법 트리를 이용해 O(log |exp(A_i)|) 시간에 탐색한다. 여기서 |exp(A_i)| ≤ ℓ_q이며, ℓ_q는 질의 문자를 포함하는 가장 긴 반복 부분 문자열의 길이이다. 따라서 전체 접근 시간은 O(log ℓ_q)으로, ℓ_q가 작을수록(즉, 해당 문자가 주변과 덜 반복될수록) 빠른 접근이 가능하다.
두 번째 단계에서는 구문(parsing) 기반 접근을 확장한다. 구문은 명시적 구절과 다른 구절을 복사한 구절로 이루어지며, 각 구절은 소스 위치 p_i를 갖는다. 저자들은 “소스가 크게 겹치지 않는” 제약을 도입해, 한 구절이 복사하는 대상 구절보다 최대 O(1) 배 정도만 더 큰 경우에만 허용한다. 이 제약 하에, 질의 문자 S
댓글 및 학술 토론
Loading comments...
의견 남기기