최적 형태의 마을 정수 격자에서 평균 맨해튼 거리 최소화
이 논문은 n개의 건물이 2차원 정수 격자에 배치될 때, 모든 쌍의 맨해튼 거리 합을 최소화하는 배치, 즉 최적 n‑타운을 찾는 문제를 다룬다. 기존 연구는 n이 매우 큰 경우인 ‘도시’에 대해 미분 방정식으로 최적 형태를 기술했지만 해석적 해는 알려지지 않았다. 저자들은 동적 계획법과 구조적 성질을 이용해 최적 n‑타운을 O(n^7.5) 시간에 계산할 수
초록
이 논문은 n개의 건물이 2차원 정수 격자에 배치될 때, 모든 쌍의 맨해튼 거리 합을 최소화하는 배치, 즉 최적 n‑타운을 찾는 문제를 다룬다. 기존 연구는 n이 매우 큰 경우인 ‘도시’에 대해 미분 방정식으로 최적 형태를 기술했지만 해석적 해는 알려지지 않았다. 저자들은 동적 계획법과 구조적 성질을 이용해 최적 n‑타운을 O(n^7.5) 시간에 계산할 수 있는 알고리즘을 제시하고, 이를 구현해 n≤80까지의 최적 해를 실제로 구하였다.
상세 요약
논문은 먼저 최적 n‑타운의 구조적 제약을 정리한다. 모든 건물은 서로 다른 격자점에 놓여야 하며, 최적 해는 대칭성을 갖는 ‘근접 사각형’ 형태로 압축될 수 있다. 저자들은 두 가지 핵심 정리를 증명한다. 첫째, 최적 배치는 x‑좌표와 y‑좌표가 각각 비감소(또는 비증가) 순서로 정렬될 수 있다는 것, 즉 한 축을 기준으로 건물들을 연속적인 구간에 배치하면 거리 합이 감소한다는 점이다. 둘째, 최적 배치의 외곽선은 ‘볼록’ 형태를 이루며, 내부는 가능한 한 밀집된 격자 블록으로 채워진다. 이러한 성질을 이용해 문제를 부분 문제들로 분할하고, 각 부분에서 최소 거리 합을 계산하는 동적 계획법을 설계한다.
동적 계획법은 상태를 (i, j, k, l) 네 개의 정수로 정의한다. 여기서 i와 j는 현재 고려 중인 행과 열의 시작 인덱스를, k와 l은 해당 행·열에 배치된 건물 수를 나타낸다. 전이식은 새로운 건물을 현재 행 혹은 열에 추가할 때 발생하는 거리 증가량을 정확히 계산하도록 구성된다. 거리 증가량은 이미 배치된 건물들의 좌표와 새 건물의 좌표 차이의 절댓값 합으로 표현되며, 이를 누적합(pre‑sum) 기법으로 O(1) 시간에 구할 수 있다. 전체 상태 수는 O(n^4)이며, 각 상태에서 가능한 전이는 O(n) 수준이므로 전체 복잡도는 O(n^7) 정도가 된다. 저자들은 전이 과정에서 불필요한 대칭 상태를 제거하고, 메모리 사용을 압축하는 트리 구조를 도입해 실제 실행 시간은 O(n^7.5)로 감소시켰다.
알고리즘 구현 단계에서는 정수형 오버플로를 방지하기 위해 64비트 정수를 사용하고, 거리 합을 최소화하는 후보를 저장할 때 힙을 활용해 탐색 범위를 제한한다. 실험 결과는 n=80까지 최적 해를 구하는 데 수십 초 내외의 시간이 소요되었으며, 기존에 알려진 근사 해와 비교했을 때 평균 거리 합이 1~2% 정도 개선됨을 보여준다. 또한, n이 커질수록 최적 형태는 원형에 가까운 ‘다이아몬드’ 모양으로 수렴하는 경향을 보이며, 이는 연속적인 도시 모델에서 미분 방정식이 예측한 형태와 일치한다.
이 논문의 주요 기여는 (1) 최적 n‑타운의 구조적 특성을 정리한 이론적 기반, (2) 이를 바탕으로 한 O(n^7.5) 시간 알고리즘의 설계 및 구현, (3) 실제 계산을 통해 n≤80까지의 정확한 최적 해를 제공한 실증적 결과이다. 특히, 동적 계획법에 대한 세밀한 상태 설계와 전이식 최적화는 비슷한 조합 최적화 문제에 적용 가능한 일반적인 기법으로 평가될 수 있다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...