정사각형 문자열 섞기 문제는 NP완전

정사각형 문자열 섞기 문제는 NP완전
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

두 문자열을 순서를 유지하면서 뒤섞어 만든 문자열을 shuffle라 한다. 두 동일한 문자열을 섞어 만든 문자열을 square라고 정의한다. 본 논문은 주어진 문자열이 square인지 판별하는 문제가 다항시간 알고리즘이 존재하지 않으며, 3‑Partition 문제로부터 다항시간 환원(many‑one reduction)을 통해 NP‑complete임을 증명한다. 기존에 두 문자열이 주어졌을 때 shuffle 여부를 판단하는 동적 계획법은 다항시간에 해결 가능하지만, 입력 문자열만으로 square 여부를 판단하는 문제는 NP‑hard임을 최초로 확립한다.

상세 분석

본 연구는 문자열 섞기(shuffle)와 그 특수 경우인 square 문제를 형식적으로 정의하고, 이들 문제 사이의 복잡도 차이를 명확히 구분한다. 섞기 문제는 두 입력 문자열 x와 y가 주어졌을 때, 목표 문자열 z가 x와 y를 각각 순서를 유지한 채 interleaving한 결과인지 여부를 판단한다. 이 문제는 전통적인 동적 계획법(DP)으로 O(|x|·|y|) 시간에 해결 가능하다는 것이 알려져 있다. 반면, square 문제는 입력 문자열 z만 주어졌을 때, 존재하는 문자열 s가 존재하여 z = shuffle(s, s)인지 여부를 묻는다. 여기서는 s 자체가 알려지지 않으므로, 가능한 s의 후보 공간이 지수적으로 커진다.

논문은 먼저 square 문제를 결정론적 비결정적 다항시간(NP) 클래스에 포함시킨다. 검증자는 비결정적으로 s를 추측하고, DP를 이용해 shuffle(s, s)와 z가 일치하는지 검증한다. 핵심은 NP‑hard성을 보이기 위한 환원 단계이다. 저자는 유명한 NP‑complete 문제인 3‑Partition을 선택한다. 3‑Partition은 정수 집합 A={a₁,…,a₃m}와 목표값 B가 주어졌을 때, A를 m개의 세 원소 집합으로 나누어 각 집합의 합이 정확히 B가 되도록 할 수 있는지를 묻는다. 이 문제는 강한 NP‑complete 특성을 가지고 있어, 입력 크기와 숫자 값이 모두 다항식 범위에 제한될 때에도 여전히 어려운 문제이다.

환원 과정은 다음과 같다. 먼저 3‑Partition 인스턴스를 문자열 형태로 인코딩한다. 각 정수 aᵢ는 길이가 aᵢ인 블록으로 표현되며, 블록 사이에 구분 기호(#)를 삽입한다. 이렇게 구성된 문자열을 여러 번 복제하고, 특정 패턴으로 뒤섞어 최종 문자열 z를 만든다. 중요한 설계 포인트는 z가 square가 되려면, 복제된 블록들이 정확히 두 번씩 나타나야 하며, 이때 각 블록이 서로 맞물려야만 전체 문자열이 동일한 두 문자열의 interleaving이 된다. 즉, 블록들의 배치가 3‑Partition의 해와 일대일 대응한다.

구체적으로, 저자는 두 종류의 서브스트링을 정의한다. 첫 번째는 “가중치 블록”으로, 각 aᵢ에 대응하는 aᵢ개의 동일 문자(예: ‘a’)로 구성된다. 두 번째는 “구분 블록”으로, 고정 길이의 구분 문자(예: ‘#’)를 사용한다. 이들을 적절히 배열한 뒤, 각 블록을 두 번씩 복제하고, 복제본 사이에 교차 삽입을 허용한다. 만약 3‑Partition의 해가 존재한다면, 블록들을 m개의 그룹으로 나눌 수 있고, 각 그룹의 총 길이가 B가 되므로, 두 복제본을 정확히 맞추어 interleaving이 가능해진다. 반대로, z가 square라면 반드시 이러한 그룹화가 존재해야 하므로, 3‑Partition의 해가 존재한다는 결론에 도달한다.

이 환원은 다항시간에 수행 가능하며, 문자열 길이는 입력 정수들의 합에 선형적으로 비례한다. 따라서 square 판별 문제가 NP‑hard임을 증명한다. 마지막으로, NP‑hard와 NP에 속함을 모두 보였으므로, square 문제는 NP‑complete임을 최종적으로 선언한다.

이 논문의 주요 기여는 (1) square 문제의 복잡도 지위를 처음으로 NP‑complete로 규정한 점, (2) 기존 DP 기반 shuffle 판별 알고리즘과는 근본적으로 다른 구조적 어려움을 드러낸 점, (3) 3‑Partition을 이용한 정교한 문자열 인코딩 기법을 제시함으로써, 문자열 조합 문제의 복잡도 분석에 새로운 도구를 제공한 점이다. 또한, 이 결과는 문자열 기반 암호학, 데이터 압축, 그리고 생물정보학에서의 패턴 매칭 문제 등에 파급 효과를 미칠 가능성이 있다.


댓글 및 학술 토론

Loading comments...

의견 남기기