위치 힙의 새로운 알고리즘
초록
본 논문은 패턴 길이 제한에 따른 힙 높이 제한, 알파벳 크기와 무관한 선형 시간 구축, 사후 배열과의 상호 접근 지원, 그리고 압축 사후 배열로 효율적으로 시뮬레이션 가능한 변형 위치 힙 네 가지 주요 결과를 제시한다.
상세 분석
위치 힙(position heap)은 문자열의 모든 접미사를 트리 형태로 저장하면서도, 전통적인 suffix tree와 suffix array의 장점을 일부 결합한 자료구조이다. 기존 연구에서는 삽입·삭제 연산이 힙의 높이에 비례해 최악의 경우 O(n) 시간이 소요될 수 있다는 한계가 있었다. 저자들은 먼저 탐색하고자 하는 패턴의 최대 길이 L을 사전에 제한하면, 힙의 깊이도 O(L) 이하로 강제할 수 있음을 증명한다. 이는 힙 노드가 실제로 필요로 하는 접미사의 접두사 길이가 L을 초과하지 않기 때문에 가능한데, 결과적으로 삽입·삭제 연산의 최악 시간 복잡도가 O(L·log σ)에서 O(L)로 감소한다(σ는 알파벳 크기).
두 번째 기여는 알파벳 크기에 독립적인 선형 시간 구축 알고리즘이다. 기존 선형 구축 방법은 종종 radix sort나 bucket sort에 의존해 알파벳 크기와 연관된 추가 비용을 발생시켰다. 여기서는 문자 인코딩을 직접 다루지 않고, 문자열을 한 번 스캔하면서 각 접미사의 최소 공통 접두사를 동적으로 연결하는 방식으로, 전체 구축 과정을 O(n) 시간에 마친다. 이 과정은 스택과 포인터 배열만을 사용해 메모리 오버헤드를 최소화한다.
세 번째로, 위치 힙에 사후 배열(suffix array) 정보를 직접 삽입함으로써 두 자료구조 간의 상호 변환을 O(1) 시간에 지원한다. 구체적으로 각 힙 노드에 해당 접미사의 사후 배열 인덱스를 저장하고, 역으로 사후 배열의 각 위치에 힙 노드 포인터를 연결한다. 이렇게 하면 패턴 매칭 시 힙을 따라 탐색하면서도 사후 배열을 즉시 조회할 수 있어, 기존에 별도로 유지해야 했던 두 구조의 동기화 비용을 크게 절감한다.
마지막으로 제안된 변형 위치 힙은 압축 사후 배열(compressed suffix array, CSA) 위에 선형 개수의 부가 비트를 두어 시뮬레이션한다. 핵심 아이디어는 CSA가 제공하는 LCP(Largest Common Prefix)와 LF-mapping 정보를 활용해 힙의 부모·자식 관계를 계산하는 것이다. 추가 비트는 각 접미사의 힙 레벨과 연결된 노드 ID를 인코딩하며, 전체 부가 공간은 O(n) 비트 수준에 머문다. 따라서 메모리 사용량은 기존 압축 사후 배열에 비해 거의 변함이 없으면서도, 힙 기반 탐색과 업데이트가 가능해진다.
이 네 가지 결과는 각각 독립적인 이론적 기여일 뿐 아니라, 실제 문자열 검색 엔진이나 바이오인포매틱스 파이프라인에서의 적용 가능성을 크게 확대한다. 특히 대규모 유전체 데이터처럼 알파벳이 제한적이면서도 패턴 길이가 사전에 알려진 경우, 제안된 제한 높이 힙과 압축 시뮬레이션 기법은 메모리와 시간 효율성 측면에서 현존하는 솔루션을 능가할 것으로 기대된다.