최적 직교 그래프 그리기와 볼록 굴곡 비용
초록
본 논문은 최대 차수가 4인 평면 그래프에 대해, 각 간선마다 굴곡 수에 따라 정의된 볼록 비용 함수를 이용해 전체 비용을 최소화하는 직교 그리기 문제를 다룬다. 비용 함수가 볼록이고 첫 번째 굴곡에 비용이 없을 경우, 모든 블록당 하나의 간선을 제외하고는 최대 세 번의 굴곡만 필요함을 보이며, 이를 플래너 플로우 알고리즘으로 O(n·T_flow(n)) 시간에 해결한다.
상세 분석
OptimalFlexDraw 문제는 “그래프 G와 각 간선 e에 대해 비용 함수 cost_e(k) (k는 굴곡 수) 가 주어졌을 때, 모든 가능한 평면 임베딩 중 비용이 최소인 직교 그리기를 찾는 것”으로 정의된다. 일반적인 경우 이 문제는 NP‑hard임이 알려져 있으나, 논문은 두 가지 제한을 두어 다항시간 알고리즘을 설계한다. 첫째, 모든 cost_e가 볼록(convex) 함수여야 한다. 즉, 비용 증가율이 비감소함을 의미한다. 둘째, 첫 번째 굴곡에 대한 비용이 0이어야 하는데, 이는 FlexDraw 문제에서 요구되는 ‘양의 유연성(positive flexibility)’ 조건과 동일하다. 이러한 가정 하에, 저자들은 각 블록(최대 2‑연결 성분)마다 최적 해가 존재함을 증명한다. 구체적으로, 블록 내 모든 간선은 최대 세 번의 굴곡만을 가질 수 있으며, 단 하나의 간선에 대해서만 네 번까지 허용된다. 이는 기존 연구에서 “한 간선당 최대 두 번”이라는 제한을 완화한 것이며, 실제 그래프 시각화에서 복잡한 라우팅을 허용하면서도 비용을 제어할 수 있게 한다.
알고리즘적 핵심은 전통적인 ‘orthogonal representation’과 ‘flow network’ 모델을 결합한 것이다. 먼저 그래프를 2‑연결 성분 트리(BC‑tree)로 분해하고, 각 블록에 대해 가능한 직교 임베딩을 ‘angle assignment’ 형태로 표현한다. 각 정점의 90° 각도와 각 간선의 굴곡 수는 플로우 네트워크의 용량 및 비용으로 매핑된다. 여기서 비용은 각 간선의 convex cost_e 함수에 따라 플로우 양(=굽은 횟수)에 부여된다. 플라너 플로우 알고리즘은 다중 소스·싱크를 지원하는 planar flow 모델을 사용해 최소 비용 흐름을 구한다. 이때 T_flow(n)은 평면 네트워크에서 최소 비용 흐름을 구하는 최선의 시간 복잡도이며, 현재 알려진 최적 알고리즘은 O(n log n) 정도이다. 따라서 전체 복잡도는 O(n·T_flow(n))이 된다.
비연결 그래프의 경우, BC‑tree의 트리 구조를 따라 각 블록을 독립적으로 처리한 뒤, 블록 간 연결을 위한 ‘bridge’ 간선에 대해 추가적인 플로우 조정을 수행한다. 이 과정에서 O(n) 만큼의 추가 연산이 필요하므로 전체 복잡도는 O(n·T_flow(n) + n) ≈ O(n·T_flow(n))가 된다.
또한, 저자들은 최적 해의 구조적 특성을 분석하여, “한 블록당 최대 하나의 간선만 네 번의 굴곡을 가질 수 있다”는 정리를 증명한다. 이는 비용 함수가 볼록하고 첫 굴곡 비용이 0일 때, 추가 굴곡이 발생하면 비용이 급격히 증가하기 때문에, 최적 해가 자연스럽게 굴곡 수를 제한하게 되는 현상이다. 이러한 구조적 제한은 실제 구현 시 메모리와 계산량을 크게 줄여준다.
마지막으로, 실험적 평가를 통해 제안된 알고리즘이 기존의 ‘총 굴곡 최소화’ 혹은 ‘최대 굴곡 제한’ 방식보다 비용 측면에서 우수함을 확인한다. 특히, 비용 함수가 비선형(예: 0, 0, 5, 15, …)인 경우에도 최적 해를 효율적으로 찾을 수 있음을 보여준다.