평면 그래프에서 두 면 사이 최단 정점 불연속 경로 찾기
이 논문은 방향성 평면 그래프와 두 개의 서로 다른 면 s와 t가 주어졌을 때, s와 t에 각각 인접한 k개의 시작·목표 정점 쌍 (s_i, t_i)를 연결하는 정점-불연속 경로 집합을 총 길이가 최소가 되도록 O(k n log n) 시간에 구하는 알고리즘을 제시한다.
저자: Eric Colin De Verdi`ere (LIENS), Alex, er Schrijver (CWI)
논문은 평면 그래프 G와 두 개의 서로 다른 면 s와 t가 주어졌을 때, s와 t에 각각 인접한 k개의 시작 정점 s₁,…,s_k와 목표 정점 t₁,…,t_k를 연결하는 정점‑불연속 경로 집합을 찾는 문제를 다룬다. 기존 연구에서는 k가 고정된 경우 다항 시간에 해결 가능하다는 결과가 있었지만, k가 가변적인 경우는 일반적으로 NP‑hard다. 다만, 모든 단말이 외부 면에 있거나, 시작 정점들이 하나의 면에, 목표 정점들이 또 다른 면에 모두 위치하는 특수 경우는 효율적인 알고리즘이 알려져 있다. 본 논문은 두 번째 특수 경우, 즉 시작 정점들이 하나의 면 s에, 목표 정점들이 다른 면 t에 각각 위치하고 s와 t가 서로 다른 면인 상황에서, 각 경로의 길이 합을 최소화하는 정점‑불연속 경로 집합을 O(k n log n) 시간에 찾는 알고리즘을 제시한다.
먼저, 입력 그래프 G를 변형하여 새로운 그래프 D를 만든다. 변형 과정에서 비단말 정점 v를 시계방향으로 연결된 작은 “링” 구조로 교체한다. 이 링의 모든 아크 길이는 0이며, 원래 G의 아크는 그대로 D에 포함된다. 이렇게 하면 D의 모든 비단말 정점은 차수가 3이 되고, 단말 정점은 차수가 1이 된다. 중요한 점은 D에서 아크‑불연속 경로 집합이 정점‑불연속 경로 집합과 일대일 대응한다는 것이다. 따라서 문제는 이제 D에서 아크‑불연속 경로를 찾는 문제로 바뀐다.
다음 단계에서는 흐름 모델을 도입한다. D의 아크에 0 ≤ x(a) ≤ 1인 흐름 변수를 두고, 흐름값이 k가 되도록 한다. 흐름값은 s₁,…,s_k에서 나가는 흐름의 총량과 동일하다. 또한, 각 아크에 길이(비용) λ(a)를 부여한다. 목표는 흐름값이 k이면서 총 비용이 최소인 흐름을 찾는 것이다. 여기서 “와인딩 넘버”라는 개념을 도입한다. D의 이중 그래프 D*에서 s*와 t*를 연결하는 고정된 경로 U를 잡고, 각 아크가 U를 가로지를 때의 방향에 따라 +1, −1, 0을 부여한다. 흐름 x에 대한 와인딩 넘버는 u·x(내적)이며, 이는 흐름이 s와 t 사이를 몇 번 “돌아가는지”를 나타낸다. 문제의 제약 조건은 이 와인딩 넘버가 m(mod k)와 일치해야 한다는 것이다. 여기서 m은 U가 s와 t를 통과하는 순서에 따라 정의되는 정수이다.
알고리즘은 잔여 그래프 D_x를 이용한다. 현재 흐름 x에 대해 용량이 남은 아크와 역방향 아크만을 포함하는 D_x를 만든다. D_x에서 음의 비용 사이클이 존재하면 해당 사이클을 따라 흐름을 증가시켜 비용을 낮출 수 있다. 따라서 최소 비용 흐름을 얻기 위해서는 D_x에 음의 비용 사이클이 없어야 한다. 이를 위해 잠재(potential) 변환을 사용해 모든 아크의 비용을 비음수로 만든다. 잠재 변환은 비용 함수 κ와 동등한 κ'를 찾아 κ'가 D_x의 모든 아크에 대해 비음수이도록 하는 과정이다.
그 후, 흐름 값을 1씩 증가시키는 과정을 k번 반복한다. 각 증분 단계에서는 D_x에서 s에서 t까지의 최단 경로를 다익스트라 알고리즘으로 찾고, 그 경로를 따라 흐름을 1만큼 늘린다. 다익스트라 실행은 O(n log n) 시간이며, 이를 k번 수행하면 전체 O(k n log n) 시간이 된다. 이때 매 단계마다 잠재 변환을 갱신해 비용이 비음수임을 유지한다.
흐름값이 k에 도달했지만 아직 와인딩 넘버가 원하는 m(mod k)와 일치하지 않을 경우, “플로우 회전” 기법을 적용한다. 이는 D_x에서 s와 t를 둘러싸는 원형 사이클을 찾아 흐름을 순환시키는 것으로, 와인딩 넘버를 ±1씩 조정한다. 필요한 만큼 회전하면 정확히 m(mod k)와 일치하게 된다. 회전 과정 역시 잔여 그래프에서 사이클을 찾는 것이므로 O(n log n) 이하의 시간에 수행된다.
마지막으로, D에서 얻은 아크‑불연속 경로 집합을 원래 그래프 G로 되돌린다. 각 링을 통과한 경로는 정확히 하나의 원래 정점에 대응하므로, 결과는 G에서 정점‑불연속 경로 집합이 된다. 루프가 포함된 경우에도 루프를 제거해도 총 길이가 감소하지 않으며, 최적성을 유지한다.
결과적으로, 논문은 (1) 그래프 변환을 통한 정점‑불연속 ↔ 아크‑불연속 동등성, (2) 와인딩 넘버를 이용한 순서 제약의 흐름 모델링, (3) 잔여 그래프와 잠재 변환을 결합한 최소 비용 흐름 알고리즘, (4) 플로우 회전을 통한 매칭 보정이라는 네 가지 핵심 아이디어를 제시한다. 이 알고리즘은 k가 고정되지 않은 경우에도 O(k n log n) 시간에 최적 해를 구할 수 있음을 증명한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기