Skip to main content
QUICK REVIEW

[논문 리뷰] A Compact DAG for Storing and Searching Maximal Common Subsequences

Alessio Conte, Roberto Grossi|arXiv (Cornell University)|2023. 01. 01.
Algorithms and Data Compression인용 수 3
한 줄 요약

이 논문은 다항수준의 공간 O(n³σ)에서 두 문자열의 모든 최대공통부분수열(MCS)을 표현하는 컴팩트한 방향성 비순환그래프(MDAG)를 소개한다. 이 MDAG는 O(n³σ log n)의 시간에 구축되며, 일정 평균 시간(CAT)으로의 열거, 사전순 순위/선택 연산, 접두사 기반 검색을 모두 근사 최적의 시간 내에서 지원한다. 이는 이전에 LCS와 MCS 계산 간의 복잡도 격차를 해소함으로써, LCS와 MCS 계산 간의 복잡도 격차를 완전히 메운다.

ABSTRACT

Maximal Common Subsequences (MCSs) between two strings X and Y are subsequences of both X and Y that are maximal under inclusion. MCSs relax and generalize the well known and widely used concept of Longest Common Subsequences (LCSs), which can be seen as MCSs of maximum length. While the number both LCSs and MCSs can be exponential in the length of the strings, LCSs have been long exploited for string and text analysis, as simple compact representations of all LCSs between two strings, built via dynamic programming or automata, have been known since the '70s. MCSs appear to have a more challenging structure: even listing them efficiently was an open problem open until recently, thus narrowing the complexity difference between the two problems, but the gap remained significant. In this paper we close the complexity gap: we show how to build DAG of polynomial size-in polynomial time-which allows for efficient operations on the set of all MCSs such as enumeration in Constant Amortized Time per solution (CAT), counting, and random access to the i-th element (i.e., rank and select operations). Other than improving known algorithmic results, this work paves the way for new sequence analysis methods based on MCSs.

연구 동기 및 목표

  • 두 문자열 간의 지수적으로 큰 최대공통부분수열(MCS) 집합을 효율적으로 저장하고 질의하는 데 도전한다.
  • 이전에 MCS 계산이 더 정보를 제공하는 응용 분야에서 LCS와 MCS 계산 간의 복잡도 격차를 메우기 위해, 효율적인 데이터 구조가 부족했던 문제를 해결한다.
  • 모든 MCS에 대해 효율적인 열거, 순위 매기기, 선택, 접두사 검색을 지원하는 컴팩트하고 다항 크기의 데이터 구조를 설계한다.
  • 실제 시퀀스 분석에서 MCS를 활용할 수 있도록, 전체 MCS 집합에 대해 근사 최적의 알고리즘 연산을 제공함으로써 MCS의 실용적 사용을 가능하게 한다.

제안 방법

  • 출발점에서 종료점까지의 경로가 유일한 MCS를 나타내는 레이블이 부여된 방향성 비순환그래프(MDAG)를 구축한다.
  • 일원 경로를 압축하여 공간을 감소시키면서도 사전순서와 경로 의미를 유지한다.
  • 각 노드의 출력 간선을 정렬함으로써 사전순 분할을 활용하여 순서 정렬된 열거 및 순위/선택 연산을 지원한다.
  • 동적 프로그래밍과 노드 카운트(annotation p(v))를 활용하여, 간선 부분합에 대한 이진 탐색을 통해 효율적인 선택 및 순위 매기기를 수행한다.
  • 자식 노드를 사전순으로 순회하는 깊이 우선 탐색(DFS)을 통해 일정 평균 시간(CAT)으로의 열거를 실현한다.
  • 주어진 접두사에 따라 MDAG를 탐색하고, 결과 노드에서부터 열거를 시작함으로써 접두사 기반 검색을 지원한다.

실험 결과

연구 질문

  • RQ1두 문자열 간의 모든 최대공통부분수열(MCS)을 다항공간 및 다항시간 내에 표현할 수 있는 컴팩트한 데이터 구조를 설계할 수 있는가?
  • RQ2컴팩트한 데이터 구조를 통해 모든 MCS를 일정 평균 시간(CAT)으로 열거할 수 있는가?
  • RQ3사전순으로 정렬된 MCS 집합에 대해 효율적인 순위 및 선택 연산을 근사 최적의 시간 내에서 지원할 수 있는가?
  • RQ4동일한 컴팩트한 구조를 통해 MCS에 대한 접두사 기반 검색을 효율적으로 지원할 수 있는가?
  • RQ5모든 MCS 문자열을 명시적으로 저장하지 않고도 MCS 집합의 지수적 크기를 어떻게 극복할 수 있는가?

주요 결과

  • MDAG 데이터 구조는 O(n³σ)의 공간에 모든 MCS를 저장할 수 있으며, O(n³σ log n)의 시간에 구축할 수 있다.
  • 모든 MCS를 사전순으로 열거하는 데 일정 평균 시간(CAT)을 보장하며, 총 시간은 O(|MCS(X,Y)|)가 소요된다.
  • MCS(X,Y) 내에서 주어진 문자열 P의 접두사 기반 검색은 O(|P| log σ + occ)의 시간에 수행되며, 여기서 occ는 일치하는 MCS의 수이다.
  • 사전순으로 i번째 MCS는 O(|S| log σ)의 시간에 선택할 수 있고, 주어진 MCS S의 순위는 동일한 시간에 계산할 수 있다.
  • 이 구조는 압축 저장을 지원하며 효율적인 임의 접근 연산을 가능하게 하여, MCS를 시퀀스 분석에 실용적으로 활용할 수 있도록 한다.
  • 이 작업은 LCS와 MCS 계산 간의 복잡도 격차를 메우며, MCS에 대한 모든 핵심 연산에 대해 다항시간, 다항공간 알고리즘을 제공함으로써 복잡도 격차를 완전히 해소한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.