완전 매칭 개수를 세는 새로운 알고리즘적 전환
초록
본 논문은 포함‑배제나 트리분해 없이, Δ≥3인 이분 그래프(2n 정점, Δn 간선)에서 완전 매칭 개수를 O⁎(2^{(1‑1/O(Δ log Δ))n}) 시간에 계산하는 정확 알고리즘을 제시한다. 핵심은 코딩 이론의 MacWilliams Identity를 이용해 문제를 컷‑가중치 분포 계산으로 환원하고, 이를 빠른 전산 기법으로 해결하는 것이다.
상세 분석
완전 매칭 개수(#PM) 문제는 이분 그래프의 영구(permanent) 계산과 동치이며, 전통적으로 Ryser‑식, 포함‑배제, 그리고 트리폭 기반 DP가 주요 접근법으로 사용되어 왔다. Ryser‑식은 O⁎(2^{n}) 시간에 해결하지만, 공간은 선형이며, 트리폭 기반 방법은 그래프가 희소할 때만 효율적이다. 본 논문은 이러한 전통적 경로를 완전히 벗어나, 그래프의 구조적 파라미터인 평균 차수 Δ에 따라 시간 복잡도가 점진적으로 개선되는 새로운 프레임워크를 제시한다.
핵심 아이디어는 그래프의 인접 행렬을 이진 선형 코드의 생성 행렬로 해석하고, 그래프의 모든 컷(cut)의 가중치 분포를 해당 코드의 중량 열거 함수(weight enumerator)와 연결시키는 것이다. 여기서 MacWilliams Identity는 한 코드와 그 이중 코드(dual code)의 중량 열거 함수를 서로 변환할 수 있음을 보장한다. 즉, 원래의 완전 매칭 개수 문제를 직접 다루는 대신, 이중 코드의 중량 열거 함수를 계산함으로써 원 문제의 해를 얻을 수 있다.
이 변환 과정은 다음과 같이 진행된다. 첫째, 그래프 G의 각 간선을 변수 x_e 로 두고, 매칭을 나타내는 0‑1 벡터를 구성한다. 둘째, 모든 매칭에 대한 특성 다항식을 만든 뒤, 이를 이진 코드의 코드워드 집합으로 본다. 셋째, MacWilliams Identity를 적용해 이 코드의 이중 코드에 대한 중량 열거 함수를 구한다. 넷째, 이중 코드의 중량 열거 함수를 효율적으로 계산하기 위해 저자들은 빠른 푸리에 변환(Fast Walsh‑Hadamard Transform)과 서브셋 컨볼루션을 결합한 알고리즘을 설계한다. 이 알고리즘은 그래프의 평균 차수 Δ가 커질수록 발생하는 중복 계산을 Δ·log Δ 만큼 억제하여, 최종 복잡도가 O⁎(2^{(1‑1/O(Δ log Δ))n}) 로 수렴하도록 만든다.
시간 복잡도 분석에서는, 컷‑가중치 분포를 구하는 핵심 단계가 O⁎(2^{n}) 에서 시작하지만, Δ에 비례하는 제한된 간선 집합을 이용해 각 단계에서 발생하는 연산을 평균적으로 1/(Δ log Δ) 비율만큼 감소시킨다. 따라서 Δ가 커질수록(예: Δ=Θ(n)) 알고리즘은 거의 2^{n} 에 근접하지만, Δ가 작을수록(예: Δ=O(1)) 기존 Ryser‑식 대비 현저히 빠른 실행 시간을 보인다.
공간 복잡도는 전체 중량 열거 함수를 저장하기 위해 O(2^{n}) 를 요구한다. 이는 현재 알려진 대부분의 정확 카운팅 알고리즘이 공유하는 전형적인 트레이드오프이며, 저자들은 향후 압축 표현이나 외부 메모리 기법을 통해 공간을 절감할 가능성을 제시한다.
이 논문의 주요 공헌은 (1) 완전 매칭 카운팅을 코딩 이론의 MacWilliams Identity와 연결한 새로운 환원 기법, (2) Δ에 의존적인 시간 개선을 달성한 빠른 컷‑가중치 분포 계산 알고리즘, 그리고 (3) 기존 방법들과는 다른 복잡도 프로파일을 제공함으로써, 특히 평균 차수가 중간 정도인 그래프에서 실용적인 성능 향상을 기대할 수 있다는 점이다.