공통 순열 문제의 NP완전성 증명

본 논문은 알파벳 Σ와 두 문자열 a, b가 주어졌을 때 Σ의 모든 기호를 한 번씩만 포함하는 순열이 두 문자열의 공통 부분수열이 되는지를 판정하는 문제(Common Permutation)가 NP‑완전임을 증명한다. 3‑SAT으로부터의 다항식 시간 감소와 정렬 개념을 이용한 귀납적 논증을 제시한다.

저자: Marian Dvorsky

논문은 “Common Permutation Problem”이라는 새로운 문자열 문제를 정의하고, 이 문제의 계산 복잡도 클래스를 정확히 규명한다. 문제 정의는 다음과 같다: 알파벳 Σ와 Σ 위에 정의된 두 문자열 a, b가 주어질 때, Σ의 모든 기호를 정확히 한 번씩 포함하는 순열 π가 a와 b 모두의 공통 부분수열이 되는지를 판정한다. 이는 기존의 Longest Common Subsequence(LCS) 문제와는 달리, 중복 기호를 허용하지 않는 제한된 형태의 공통 부분수열을 찾는 문제와 직접적으로 연결된다. 저자는 이를 “Restricted Common Subsequence”의 특수 경우로 보고, 해당 특수 경우가 NP‑완전임을 증명한다. 먼저, 기본 개념과 정의를 정리한다. 알파벳 Σ는 유한 집합이며, 문자열은 Σ 위의 기호들의 유한 시퀀스로 정의된다. 부분수열은 원래 문자열에서 순서를 유지하면서 선택된 기호들의 시퀀스이며, 공통 부분수열은 두 문자열 모두에서 부분수열이 되는 문자열을 의미한다. 순열은 Σ의 모든 원소를 한 번씩 나열한 문자열이다. 이러한 정의를 바탕으로, 문제의 존재 여부를 확인하기 위한 증명 도구로 “정렬(alignment)” 개념을 도입한다. 정렬은 a와 b에서 같은 기호를 선택해 순서를 보존하면서 짝지은 쌍들의 집합이며, 정렬이 존재하면 바로 공통 순열이 존재한다는 Lemma 3.1을 제시한다. 이 레마는 문제의 NP 귀속성을 보이는 핵심이다; 정렬 자체가 다항식 크기의 증명서가 되므로, 검증은 다항식 시간에 가능하다. NP‑hardness를 증명하기 위해, 저자는 3‑SAT 인스턴스를 공통 순열 인스턴스로 변환하는 다항식 시간 감소를 설계한다. 3‑SAT은 변수 집합 U와 각 절이 정확히 세 개의 리터럴을 포함하는 절 집합 C로 구성된다. 변환 과정은 다음과 같다. 먼저, 각 변수 u∈U에 대해 두 종류의 기호 u_i와 u̅_i(부정형)를 만든다. 각 절 c_j에 등장하는 리터럴에 따라 해당 기호들을 절 블록에 배치한다. 문자열 a와 b는 “진리 설정(truth‑setting) 파트”와 “만족 검사(satisfaction‑testing) 파트” 두 부분으로 나뉘며, 이 둘은 특별한 경계 기호 ‘•’로 구분한다. 진리 설정 파트에서는 변수마다 u_i와 u̅_i 중 하나만을 정렬할 수 있도록 블록을 구성한다. 예를 들어, 변수 u가 true이면 u_i를, false이면 u̅_i를 정렬한다. 이는 변수에 대한 진리값을 문자열 정렬에 직접 매핑한다. 다음으로, 만족 검사 파트에서는 각 절에 대해 세 리터럴에 대응하는 기호 x_i, y_i, z_i를 배치한다. 이 블록은 두 문자열에서 특정 순서로 배치되며, 세 기호가 동시에 정렬되는 것을 방지한다. 즉, 절이 만족되지 않을 경우 해당 절 블록에서 세 기호 모두를 정렬할 수 없게 된다. 반대로 절이 만족될 경우 최소 하나의 리터럴에 대응하는 기호만이 정렬 가능하고, 나머지는 다른 파트에서 정렬된다. 이렇게 설계된 블록은 절이 만족될 때와 만족되지 않을 때 정렬 가능성에 차이를 만들며, 전체 문자열에서 Σ의 모든 기호를 한 번씩 정렬할 수 있는지 여부가 원래 3‑SAT 인스턴스의 만족 여부와 정확히 일치한다. 증명에서는 경계 기호 ‘•’가 두 파트 간의 정렬 교차를 방지함을 강조한다. 이는 진리 설정 파트와 만족 검사 파트가 독립적으로 동작하도록 보장한다. 또한, 각 기호가 문자열 a와 b에 두 번씩 등장하도록 설계함으로써, 입력 제한을 “기호당 최대 두 번”으로도 NP‑완전성을 유지할 수 있음을 보인다(Corollary 4.1). 이는 실제 응용에서 입력 크기를 제한하는 경우에도 문제의 난이도가 변하지 않음을 의미한다. 결론적으로, 저자는 다음과 같은 결과를 얻는다. 1. 공통 순열 문제는 NP에 속한다(정렬을 증명서로 사용). 2. 3‑SAT으로부터 다항식 시간 감소가 가능하므로 NP‑hard이다. 3. 따라서 공통 순열 문제는 NP‑완전이다. 4. 심지어 각 기호가 두 문자열에 최대 두 번만 등장하도록 제한해도 NP‑완전성을 유지한다. 이러한 결과는 문자열 알고리즘 분야에서 “중복을 허용하지 않는 공통 부분수열” 문제의 복잡도가 일반 LCS 문제보다 훨씬 높으며, 효율적인 다항식 시간 알고리즘이 존재하지 않을 가능성을 명확히 한다. 또한, 정렬이라는 직관적인 시각적 도구를 통해 복잡도 증명을 구성함으로써, 다른 문자열 기반 최적화 문제에 대한 복잡도 분석에도 적용 가능한 방법론을 제공한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기