극대공통부분서열을 찾는 개선된 알고리즘

An Improved Algorithm of Finding a Maximal Common Subsequence

초록

두 문자열의 극대공통부분서열(MCS)은 어떤 문자를 삽입하여도 더 긴 공통부분서열을 만들 수 없는 공통부분서열이다. 최장공통부분서열(LCS)과 달리 MCS의 길이는 다양하고, 가장 긴 MCS가 LCS이다. LCS는 일반적으로 두 서열의 유사도를 비교할 때 사용되지만, 계산하는데 매우 긴 시간이 걸린다. MCS는 LCS보다 빠르게 계산할 수 있으므로 더 긴 MCS를 찾는 문제는 중요하다. 길이의 합이 n인 두 문자열 X와 Y의 MCS 중 하나를 O(n) 공간을 이용하여 시간에 계산하는 알고리즘이 제시되었고 이를 개선한 알고리즘들도 제시되었다. 본 논문에서는 기존의 알고리즘들보다 더 많은 문자를 확인하여, 상수 k가 주어졌을 때 O(kn) 공간을 이용하여 시간에 MCS를 계산하는 알고리즘을 제시한다. 실제 데이터와 무작위로 생성한 데이터를 이용하여 실험을 진행한 결과, 본 논문에서 제시한 알고리즘으로 계산된 MCS의 길이가 기존의 알고리즘으로 계산된 MCS보다, 최대 6.31배 길다.

키워드

maximal common subsequenceslongest common subsequencesstring comparisonstring algorithms극대공통부분서열최장공통부분서열문자열 비교문자열 알고리즘
제목
극대공통부분서열을 찾는 개선된 알고리즘
제목 (타언어)
An Improved Algorithm of Finding a Maximal Common Subsequence
저자
신현준나중채심정섭
DOI
10.5626/JOK.2023.50.9.737
발행일
2023-09
유형
Y
저널명
정보과학회논문지
50
9
페이지
737 ~ 745