다중 시퀀스 최장 공통 부분수열 탐색을 위한 침적·확장 기법
초록
본 논문은 다수의 문자열에 대한 최장 공통 부분수열(LCS) 문제를 해결하기 위해 침적(Deposition)과 확장(Extension) 두 단계로 구성된 새로운 휴리스틱 알고리즘인 DEA(Deposition and Extension Algorithm)를 제안한다. 침적 단계에서는 입력 시퀀스들을 순차적으로 겹쳐 공통 부분수열 후보를 생성하고, 확장 단계에서는 후보를 앞·뒤로 늘려가며 길이를 최대로 만든다. 알고리즘은 후보 길이에 대한 하한을 이론적으로 보장하며, 실험 결과 Long Run 및 Expansion 알고리즘보다 긴 LCS를 더 빠르게 도출함을 입증한다.
상세 분석
DEA는 기존 휴리스틱이 시퀀스 수와 길이가 증가할수록 성능이 급격히 저하되는 문제점을 해결하고자 고안되었다. 첫 번째 단계인 침적(Deposition)은 입력 시퀀스 집합을 순서대로 읽으며, 현재까지 구축된 공통 부분수열(CS)에 새로운 시퀀스의 문자들을 “덧붙이는” 방식으로 진행한다. 구체적으로, 현재 CS와 새 시퀀스 사이의 최장 공통 접두·접미를 찾고, 그 접두·접미를 CS에 병합한다. 이 과정은 O(m·n) 시간 복잡도를 가지며, 여기서 m은 시퀀스 수, n은 평균 길이이다. 침적 단계는 전체 시퀀스에 대해 한 번만 수행되므로 메모리 사용량도 O(n) 수준에 머문다.
두 번째 단계인 확장(Extension)은 침적 단계에서 얻은 CS를 기반으로 앞·뒤 양쪽으로 가능한 문자를 탐색한다. 확장은 두 가지 서브 단계로 나뉜다. (1) 전방 확장: CS의 앞에 위치한 모든 시퀀스에서 현재 문자와 일치하는 가장 앞 위치를 찾아 그 문자를 앞에 삽입한다. (2) 후방 확장: CS의 뒤에 위치한 모든 시퀀스에서 현재 문자와 일치하는 가장 뒤 위치를 찾아 그 문자를 뒤에 추가한다. 이때, 삽입 가능한 문자가 여러 개이면 빈도수가 가장 높은 문자를 선택해 전체 LCS 길이를 최대화한다. 확장 단계는 각 시퀀스를 한 번씩 스캔하므로 시간 복잡도는 O(m·n)이며, 반복적인 삽입·삭제 연산을 최소화하기 위해 연결 리스트 기반의 동적 문자열 구조를 사용한다.
이론적 분석에서는 DEA가 생성하는 CS의 길이가 최적 LCS 길이의 1/2 이상임을 증명한다. 이는 기존 Long Run 알고리즘이 보장하는 1/3보다 강력한 하한이며, 특히 시퀀스가 길고 다양할수록 실제 성능이 이론적 하한에 근접한다는 점이 강조된다. 또한, DEA는 입력 시퀀스의 알파벳 크기에 거의 영향을 받지 않으며, 대규모 데이터셋에서도 메모리 오버플로우 없이 실행 가능하도록 설계되었다.
실험에서는 무작위로 생성한 100~10,000 길이의 문자열 집합과 실제 바이오인포매틱스 데이터(예: DNA, 단백질 서열)를 대상으로 비교 분석하였다. 결과는 DEA가 Long Run 및 Expansion에 비해 평균 12%~25% 더 긴 LCS를 도출하고, 실행 시간은 동일하거나 30% 이하로 단축됨을 보여준다. 특히 5,000 이상 길이의 시퀀스 50개 이상을 다룰 때 DEA의 효율성 차이가 두드러졌다.
종합적으로 DEA는 복잡도 O(m·n)·O(1) 공간 효율성을 유지하면서도 LCS 길이에 대한 강력한 하한을 제공하는 실용적인 휴리스틱이다. 이는 대규모 다중 시퀀스 정렬, 유전 정보 비교, 텍스트 마이닝 등 다양한 응용 분야에서 기존 방법을 대체하거나 보완할 수 있는 잠재력을 가진다.
댓글 및 학술 토론
Loading comments...
의견 남기기