검색 : [ author: Joong Chae Na ] (3)

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

신현준, 나중채, 심정섭

http://doi.org/10.5626/JOK.2023.50.9.737

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

더 긴 극대 공통 부분 서열을 찾기 위한 알고리즘

이동엽, 나중채

http://doi.org/10.5626/JOK.2022.49.7.507

극대 공통 부분 서열(Maximal Common Subsequence, MCS)은 어떤 문자라도 추가하면 더 이상 공통 조건을 만족하지 않는 공통 부분 서열이다. 최근에 두 문자열의 MCS를 찾는 알고리즘이 제시되었는데, 이 알고리즘은 제곱 시간이 걸리는 최장 공통 부분 서열(Longest Common Subsequence, LCS) 계산 알고리즘에 비해 매우 빠르다. 하지만 이 알고리즘에 의해 계산된 MCS는 LCS보다 훨씬 짧다는 것이 실험적으로 밝혀졌다. 본 논문에서는 기존 알고리즘을 개선하여 더 긴 MCS를 찾는 두 가지 알고리즘을 제시하고, 다양한 실제 데이터와 랜덤 생성 데이터에 대한 실험을 통해 성능의 개선을 확인한다. 본 논문에서 제시한 알고리즘은 실제 데이터에서는 1.47~3.17배, 랜덤 데이터에서는 1.50~3.08배 길이의 MCS를 찾는다.

사각망 순열패턴매칭 문제에 대한 병렬알고리즘

최지효, 김영호, 나중채, 심정섭

http://doi.org/10.5626/JOK.2019.46.4.299

사각망 순열패턴매칭은 텍스트 T(|T|= n)와 패턴 P(|P|= m)가 주어졌을 때, P와 순위동형인 T의 모든 사각망 부분서열을 찾는 문제이다. 본 논문에서는 사각망 순열패턴매칭문제를 해결하는 두 가지 병렬알고리즘을 제시한다. 먼저 O(n)개의 스레드를 사용하여 O(nm) 시간에 해결하는 병렬알고리즘을 제시한 후, O(nm)개의 스레드를 사용하여 O(n) 시간에 해결하는 병렬알고리즘을 제시한다. 다우존스 지수 데이터에 대한 실험결과, n = 36, 364 m = 30일 때, 순위통계트리를 사용한 순차알고리즘에 비해 첫번째 병렬알고리즘은 약 7.2배 빠른 수행시간을 보였고, 두 번째 병렬알고리즘은 약 20.6배 빠른 수행시간을 보였다.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

사무국

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr