Skip to main content
QUICK REVIEW

[논문 리뷰] Computing the Number of Longest Common Subsequences

Ronald I. Greenberg|ArXiv.org|2003. 01. 29.
Algorithms and Data Compression참고 문헌 8인용 수 5
한 줄 요약

이 논문은 두 문자열 간의 서로 다른 가장 긴 공통 부분수열(LCS)의 수와 LCS 임bedding의 수를 계산하기 위해 O(mn) 시간 및 O(m) 공간의 최적화된 동적 프rogram밍 알고리즘을 제안한다. 이는 경로 재구성 과정을 통해 카운트를 추적하는 하향식 재귀적 접근을 간소화하여, 모든 해를 명시적으로 저장하지 않고도 효율적인 열거를 가능하게 한다.

ABSTRACT

This note provides very simple, efficient algorithms for computing the number of distinct longest common subsequences of two input strings and for computing the number of LCS embeddings.

연구 동기 및 목표

  • 두 문자열 간의 서로 다른 가장 긴 공통 부분수열(LCS)의 수를 계산하기 위한 단순하고 효율적인 알고리즘을 개발하는 것.
  • 기존 방법을 확장하여, 입력 문자열 내에서 LCS의 위치 매핑(임bedding)의 수를 세는 것.
  • 두 계산 작업 모두에 대해 O(mn) 시간 복잡도를 유지하면서 공간 복잡도를 O(m)으로 줄이는 것.
  • 기존의 동적 프로그래밍 기반 LCS 수 계산 방법을 단순화하여 불필요한 계산과 저장을 제거하는 것.

제안 방법

  • 표준 재귀 규칙을 따르며, A[1..i]와 B[1..j]의 접두사에 대한 LCS 길이를 계산하기 위해 DP 테이블 L[i,j]를 사용한다.
  • 이전 상태로부터 유효한 경로를 집계함으로써, 각각 서로 다른 LCS의 수 또는 LCS 임bedding의 수를 세기 위해 두 번째 테이블 D[i,j] 또는 E[i]를 유지한다.
  • 상단(L[i-1,j])과 왼쪽(L[i,j-1])에서 온 값이 동일한 LCS 길이에 기여할 경우에만 이를 합산하고, 필요에 따라 중복을 제거한다.
  • 현재 및 이전 열만 저장함으로써 메모리를 최적화하여, 메모리 사용량을 O(m)으로 줄인다.
  • 전체 배열을 저장하지 않고도 반복적으로 값을 갱신하기 위해 일시적 변수(newL, newE, oldL, oldE)를 사용한다.
  • 업데이트 단계의 조건문을 조정하여, 서로 다른 LCS의 수와 임bedding의 수를 세는 데서의 논리적 전환을 간단히 조정한다.

실험 결과

연구 질문

  • RQ1모든 가능한 LCS를 나열하는 것보다 더 효율적으로 서로 다른 가장 긴 공통 부분수열의 수를 계산할 수 있는가?
  • RQ2LCS 임bedding의 수를 계산하기 위해 필요한 최소 공간 복잡도는 무엇인가?
  • RQ3동적 프로그래밍 재귀식을 어떻게 단순화하여, 서로 다른 LCS의 수와 임bedding의 수를 통합적이고 공간 효율적인 프레임워크로 계산할 수 있는가?
  • RQ4모든 임bedding을 명시적으로 생성하지 않고도 LCS 임bedding의 수를 계산할 수 있는가?

주요 결과

  • 알고리즘은 O(mn) 시간 및 O(m) 공간으로 서로 다른 LCS의 수를 계산하며, 표준 LCS 길이 계산의 시간 복잡도와 동일하다.
  • 동일한 프레임워크를 사용하여 동일한 시간 및 공간 복잡도로 LCS 임bedding의 수를 효율적으로 계산할 수 있다.
  • 전체 DP 테이블을 저장하지 않고도 현재와 이전 열만 유지함으로써 메모리 사용량을 크게 줄였다.
  • 동일한 LCS 길이를 유도하는 유효한 조상(상단 및 왼쪽)의 기여를 합산하며, 중복을 제거하기 위해 뺄셈 연산을 적용한다.
  • 빈 문자열과 같은 극단적인 케이스를 정확히 처리하며, 이 경우 항상 1(빈 부분수열)이 된다.
  • 모든 해를 저장하거나 더 복잡한 데이터 구조를 사용하는 기존 방법보다 알고리즘이 더 단순하고 효율적이다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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