가중 그래프의 모든 스패닝 트리를 비용 순으로 생성하는 조합 알고리즘
초록
본 논문은 가중 그래프에서 최소 비용 스패닝 트리뿐 아니라 모든 가능한 스패닝 트리를 비용이 낮은 순서대로 효율적으로 열거하는 새로운 조합 알고리즘을 제안한다. 핵심은 기존 회로 행렬(FCM)을 변형한 차이 가중 회로 행렬(Difference Weighted Circuit Matrix, DWCM)을 이용해 트리 간 비용 차이를 체계적으로 계산하고, 이를 기반으로 우선순위 큐를 활용해 순차적으로 다음 트리를 선택한다. 알고리즘은 Kruskal·Prim과 같은 기존 MST 알고리즘과는 달리 전체 트리 집합을 완전 탐색하지 않으며, 중복 생성 없이 비용 순서대로 출력한다.
상세 분석
이 논문은 가중 그래프 G(V,E)의 모든 스패닝 트리를 비용이 증가하는 순서대로 생성하는 문제를 조합적 관점에서 접근한다. 기존 연구에서는 최소 스패닝 트리(MST)를 찾는 Kruskal, Prim 알고리즘이 널리 쓰였으며, 모든 스패닝 트리를 열거하는 방법으로는 회로 행렬(FCM) 기반의 열거법이나 역방향 탐색, 부트스트랩 방식 등이 제안되었다. 그러나 이러한 방법들은 보통 트리 집합을 무작위 혹은 사전 정의된 순서로 나열하거나, 중복을 방지하기 위해 복잡한 검증 절차를 필요로 하며, 비용 순서 보장은 어려웠다.
논문은 이러한 한계를 극복하기 위해 차이 가중 회로 행렬(DWCM)을 도입한다. DWCM은 기존 FCM의 각 열(즉, 그래프의 사이클)에 대해 해당 사이클에 포함된 간선들의 가중치 차이를 기록한다. 구체적으로, 기본 MST를 먼저 구하고, 각 사이클에 대해 “교체 가능한 간선”과 “교체 후 발생하는 비용 증가량”을 행렬 원소로 저장한다. 이렇게 하면 현재 트리에서 하나의 간선을 교체하여 새로운 트리를 만들 때, 증가되는 비용을 O(1) 시간에 조회할 수 있다.
알고리즘 흐름은 다음과 같다. 1) Kruskal 혹은 Prim을 이용해 최소 비용 스패닝 트리 T₀를 구한다. 2) T₀에 포함되지 않은 모든 간선 e에 대해, T₀+e가 형성하는 사이클을 찾고, 사이클 내에서 가장 무거운 간선 f를 식별한다. 3) 교체 비용 Δ = w(e) - w(f) 를 DWCM에 기록한다. 4) 모든 가능한 (e,f) 교체쌍을 우선순위 큐에 삽입하고, Δ를 기준으로 최소값을 가진 쌍을 추출한다. 5) 선택된 교체를 수행해 새로운 트리 T₁을 얻고, T₁을 출력한다. 6) T₁을 현재 트리로 삼아 2~5 과정을 반복한다.
이때 중요한 점은 교체 후 트리 T₁이 기존에 생성된 트리와 중복되지 않도록 관리한다는 것이다. 논문은 “이미 방문한 트리 집합”을 해시 테이블에 저장하고, 새로운 트리 후보가 등장하면 해시값을 검사해 중복을 차단한다. 또한, 사이클 탐색은 Union-Find 자료구조와 깊이 우선 탐색(DFS)를 결합해 O(|E|α(|V|)) 시간에 수행한다.
복잡도 분석에 따르면, 초기 MST 구하는 단계는 O(|E|log|V|)이며, 이후 각 교체 단계는 사이클 탐색 O(|V|)와 우선순위 큐 연산 O(log k) (k는 현재 후보 수)를 포함한다. 전체 트리 수는 |V|^{|V|-2} (Cayley’s formula)와 동일하지만, 알고리즘은 필요 트리만 순차적으로 생성하므로 메모리 사용량은 O(|E|+|V|) 수준에 머문다.
실험 결과는 무작위 가중 그래프와 실제 네트워크 토폴로지를 대상으로 수행했으며, 기존 전열거 기법에 비해 평균 30~45%의 시간 절감과 50% 이상의 메모리 절감을 보였다. 특히 비용 순서 보장이 필수인 네트워크 설계, 전력망 재구성, 그리고 다중 경로 라우팅 최적화 등에 적용 가능함을 강조한다.
이 논문의 핵심 기여는 (1) 비용 차이를 미리 계산해 두는 DWCM이라는 새로운 데이터 구조, (2) 우선순위 큐와 해시 기반 중복 방지를 결합한 트리 열거 프레임워크, (3) 이론적 복잡도와 실험적 성능 모두에서 기존 방법을 능가하는 실용적인 알고리즘을 제시한 점이다. 다만, 사이클 탐색 비용이 트리 규모가 커질수록 선형에 가까워지는 점과, 매우 조밀한 그래프에서는 후보 수가 급증해 우선순위 큐 관리가 병목이 될 수 있다는 제한점도 언급한다. 향후 연구에서는 DWCM을 압축 저장하거나, 병렬화 기법을 도입해 대규모 그래프에 대한 확장성을 높이는 방안을 제시한다.