퍼머넌트와 해밀턴 사이클을 위한 하위 집합 기반 가속 알고리즘

퍼머넌트와 해밀턴 사이클을 위한 하위 집합 기반 가속 알고리즘

초록

이 논문은 $n\times n$ 정수 행렬의 퍼머넌트 계산과, $n$개의 정점과 $\exp(\operatorname{poly}(n))$개의 간선을 가진 방향 다중그래프에서 해밀턴 사이클 수를 세는 두 문제를, 자신보다 작은 규모의 동일 문제 인스턴스로 효율적으로 분할하는 새로운 결정론적 기법을 제시한다. 기존의 $O(2^n\operatorname{poly}(n))$ 시간 알고리즘을 개선하여, 최악의 경우에도 $2^{,n-\Omega(\sqrt{n/\log n})}$ 시간 안에 해결할 수 있음을 증명한다. 핵심은 “모든 부분집합 아래”라는 이름의 재귀적 분할 전략과 고속 집합 합성(convolution) 기술을 결합한 것이다.

상세 분석

본 논문은 퍼머넌트와 해밀턴 사이클 카운팅이라는 두 전형적인 $#\mathsf{P}$-완전 문제에 대해, 전통적인 전역 탐색 방식이 아닌 “부분집합 아래”(Below All Subsets)라는 새로운 구조적 분할을 도입한다. 먼저, 입력 행렬 $A\in\mathbb{Z}^{n\times n}$에 대해 영구값을 정의하는 전통적인 전개식 $\operatorname{perm}(A)=\sum_{\sigma\in S_n}\prod_{i=1}^n A_{i,\sigma(i)}$를 고려한다. 저자들은 이를 $k$개의 행·열 블록으로 나누고, 각 블록에 대해 부분집합을 선택하는 방식으로 문제를 재귀적으로 축소한다. 핵심 아이디어는 “작은 부분집합을 고정하고 나머지 원소들을 모두 포함하는 큰 부분집합을 동시에 고려한다”는 점이다. 이렇게 하면, 각 단계에서 $2^{\sqrt{n}}$ 정도의 크기를 갖는 하위 인스턴스가 $2^{\sqrt{n}}$ 개 생성되며, 전체 재귀 깊이는 $O(\sqrt{n/\log n})$ 로 제한된다.

이때 발생하는 중복 계산을 방지하기 위해 저자들은 고속 집합 합성(set convolution)과 다항식 곱셈을 활용한다. 구체적으로, 각 블록에 대한 부분집합들의 기여를 다항식 형태로 표현하고, FFT 기반 다항식 곱셈을 통해 $O(2^{k}\operatorname{poly}(k))$ 시간 안에 모든 조합을 합산한다. 또한, 모듈러 연산을 이용해 정수 크기를 제한함으로써 메모리와 시간 복잡도를 동시에 최적화한다.

해밀턴 사이클 카운팅 문제에 대해서는, 방향 다중그래프 $G=(V,E)$의 인접 행렬을 이용해 순환을 나타내는 퍼머넌트와 유사한 형태의 행렬식(det) 표현을 도출한다. 이후 위와 동일한 블록 분할 및 집합 합성 기법을 적용해, $n$개의 정점을 $k$개의 그룹으로 나누고 각 그룹 내에서 가능한 경로 집합을 미리 계산한다. 그룹 간 연결은 다시 다항식 곱셈으로 결합되며, 전체 복잡도는 퍼머넌트와 동일하게 $2^{,n-\Omega(\sqrt{n/\log n})}$ 로 수렴한다.

이러한 접근법은 기존의 동적 계획법(DP) 기반 $O(2^n)$ 알고리즘이 겪는 “전체 부분집합을 일일이 탐색”하는 비효율성을 근본적으로 회피한다는 점에서 혁신적이다. 특히, 재귀 깊이가 $\Theta(\sqrt{n/\log n})$ 로 제한되면서, 전체 탐색 공간이 지수적으로 감소한다. 저자들은 또한 복잡도 하한과 비교하여, 현재 제시된 알고리즘이 $2^{n-o(n)}$ 수준의 최선에 가깝다는 점을 논증한다.

결과적으로, 이 논문은 퍼머넌트와 해밀턴 사이클 카운팅이라는 두 고전 문제에 대해, “부분집합 아래”라는 새로운 구조적 시각을 도입함으로써, 결정론적 알고리즘이 $o(2^n)$ 시간 안에 해결될 수 있음을 최초로 증명하였다. 이는 향후 다른 순열 기반 카운팅 문제에도 동일한 기법을 적용할 가능성을 열어준다.