Skip to content

Commit a9b36d5

Browse files
authored
Merge pull request #821 from azberjibiou/patch-2
Add post on Delaunay triangulation using Lawson Algorithm
2 parents d6b2f67 + ef2b5ac commit a9b36d5

File tree

1 file changed

+176
-0
lines changed

1 file changed

+176
-0
lines changed
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
---
2+
layout: post
3+
title: "Lawson Algorithm을 통한 Delaunay triangulation 구하기"
4+
date: 2025-08-27
5+
author: azberjibiou
6+
tags: [algorithm, problem-solving, computational-geometry]
7+
---
8+
9+
# Lawson Algorithm을 통한 Delaunay triangulation 구하기
10+
본 글은 평면 위 점들의 집합을 가장 안정적이고 균일한 삼각형들로 분할하는 **Delaunay Triangulation**을 종합적으로 탐구한다.
11+
먼저 보로노이 다이어그램과의 관계 및 '빈 외접원 속성'을 통해 들로네 삼각분할의 수학적 정의를 명확히 하고, 이어서 고전적인 구축 방법인 **Lawson's algorithm**을 분석한다.
12+
마지막으로 이 알고리즘이 왜 항상 정확한 결과를 보장하는지를 증명하기 위해 2차원에서의 문제를 3차원으로 lifting하는 우아한 기법을 사용한다.
13+
14+
15+
## **1. Delaunay triangulation의 정의와 최적성**
16+
17+
평면에 분포된 유한한 점의 집합을 겹치지 않는 삼각형들로 분할하는 triangulation은 계산기하학의 근본적인 문제 중 하나로, 유한요소해석, 컴퓨터 그래픽스, 지형 모델링 등 다양한 분야에서 핵심적인 역할을 한다. 수많은 가능한 삼각분할 중에서도 **Delaunay Triangulation**은 특정 기하학적 최적성 기준을 만족하여, 수치적으로 안정적이고 시각적으로 균일한 결과를 제공하는 표준적인 방법으로 널리 인정받는다.
18+
19+
---
20+
21+
### **1.1. Voronoi Diagram과의 duality**
22+
23+
평면 위의 서로 다른 점들의 유한 집합 $P = \{p_1, p_2, \dots, p_n\}$가 주어졌을 때, 각 점 $p_i \in P$의 **Voronoi Cell** $V(p_i)$은 평면 위의 다른 어떤 점보다 $p_i$에 더 가까운 점들의 집합으로 정의된다.
24+
25+
이러한 셀들의 집합으로 구성된 **Voronoi Diagram** Vor(P)는 평면을 각 점의 최근접 영역으로 분할한 구조이다.
26+
27+
Delaunay Triangulation DT(P)는 Voronoi Diagram의 **Geometric Dual**로 가장 자연스럽게 정의된다. 정확히는 두 점 $p_i$와 $p_j$의 voronoi cell $V(p_i)$와 $V(p_j)$가 서로 인접하여 교집합이 공집합이 아닐 때 두 점 사이에 간선이 존재한다.
28+
29+
**Proposition.** 점 집합 P의 어떠한 네 점도 한 원 위에 있지 않을 때, $DT(P)$는 triangulation이다.
30+
31+
**Proof.**
32+
어떤 graph가 triangulation이 되려면 다음 두 조건을 만족해야 한다: (A) Planar graph여야 하고, (B) 모든 bounded face가 삼각형이어야 한다.
33+
34+
Planarity 증명:
35+
$Vor(P)$는 평면을 분할하는 구조이므로 그 자체로 planar graph이다. Planar graph의 dual graph는 항상 planar graph임이 잘 알려져 있다. 따라서 $DT(P)$는 planar graph이다.
36+
37+
Bounded Face가 삼각형임의 증명:
38+
Dual graph의 한 면의 경계를 이루는 간선의 수는, 그 면에 대응하는 원래 그래프의 정점의 차수와 같다.
39+
$P$의 어떤 네 점도 한 원 위에 있을 수 없다. 만약 한 Voronoi vertex에 4개 이상의 cell이 만난다면, 이는 4개 이상의 점이 동일 원 위에 있음을 의미하므로 가정에 모순이다. 따라서 $Vor(P)$의 모든 정점의 차수는 정확히 3이다.
40+
그러므로 $DT(P)$의 모든 bounded face는 반드시 3개의 간선으로 둘러싸인 삼각형이다.
41+
42+
위의 1과 2에 의해, $DT(P)$는 planar graph이고 모든 bounded face가 삼각형이므로 triangulation이다. Q.E.D.
43+
44+
---
45+
46+
### **1.2. Delaunay Triangulation의 핵심 조건: 빈 외접원 속성**
47+
48+
Voronoi diagram과의 dual 관계로부터 Delaunay triangulation을 판별하는 강력하고 독립적인 조건인 **빈 외접원 속성**(Empty Circumcircle Property)이 유도된다.
49+
50+
**Theorem.** 한 triangulation $T$가 Delaunay triangulation일 필요충분조건은, $T$에 속한 모든 삼각형의 외접원이 그 삼각형을 구성하는 세 정점 외에 집합 $P$에 속한 다른 어떤 점도 내부에 포함하지 않는 것이다.
51+
52+
**Proof.**
53+
54+
**(1) ($\Rightarrow$): Delaunay triangle 내부에는 정점이 없다.**
55+
56+
이 증명은 duality에서 명확히 드러난다. $DT(P)$에 속한 임의의 삼각형 $\triangle p_i p_j p_k$를 생각해보자. 이 삼각형은 $DT(P)$의 face이므로, dual 관계에 의해 $Vor(P)$의 vertex $v$에 대응된다. 이 vertex $v$는 정의상 세 cell $V(p_i), V(p_j), V(p_k)$가 만나는 점이며, 세 점 $p_i, p_j, p_k$에서 동일한 거리에 있다. 따라서 $v$는 삼각형 $\triangle p_i p_j p_k$의 외심(circumcenter)이다.
57+
58+
이제, 만약 이 외접원 내부에 다른 점 $p_l$이 존재한다고 가정해보자. 그렇다면 점 $p_l$은 외심인 $v$에 $p_i, p_j, p_k$보다 더 가깝다. 이는 $v$가 $p_l$의 Voronoi cell인 $V(p_l)$에 속해야 함을 의미하며, 이는 $v$가 $V(p_i), V(p_j), V(p_k)$의 경계에 있다는 사실에 모순이다. 따라서 외접원의 내부는 반드시 비어 있어야 한다.
59+
60+
**(2) ($\Leftarrow$): 빈 외접원 속성을 만족하는 triangulation은 Delaunay triangulation이다.**
61+
62+
이제 역을 증명하기 위해, 모든 삼각형이 빈 외접원 속성을 만족하는 triangulation $T$가 있다고 가정하자.
63+
64+
1. $T$에 속한 임의의 삼각형 $\triangle pqr$을 선택하자. 가정에 의해, 이 삼각형의 외접원은 내부에 다른 점을 포함하지 않는다. 이 외접원의 중심을 $c$라고 하자.
65+
2. 빈 외접원 속성은 외접원의 중심 $c$가 $P$에 속한 다른 어떤 점 $x$보다 점 $p, q, r$에 더 가깝거나 거리가 같다는 것을 의미한다. 즉, $d(c, p) = d(c, q) = d(c, r) \le d(c, x)$ for all $x \in P$이다.
66+
3. 이 조건은 $c$가 Voronoi cell $V(p), V(q), V(r)$의 교집합에 속한다는 정의와 정확히 일치한다. 따라서 외접원의 중심 $c$는 이 세 cell이 만나는 Voronoi vertex이다.
67+
4. $V(p), V(q), V(r)$이 한 정점에서 만난다는 것은, 이 세 cell이 서로 인접(adjacent)하여 공통된 간선을 공유함을 의미한다.
68+
5. Dual의 정의에 따라, 이는 간선 $(p,q), (q,r), (r,p)$가 모두 Delaunay edge임을 뜻한다.
69+
6. 이 논리는 $T$에 속한 모든 삼각형에 적용되므로, $T$를 구성하는 모든 간선은 Delaunay edge이다. 두 triangulation의 간선 집합이 동일하므로, $T$는 Delaunay triangulation $DT(P)$와 반드시 같아야 한다. Q.E.D.
70+
71+
---
72+
73+
## **2. Lawson's Algorithm: Implementation via Iterative Flipping**
74+
75+
1장에서 Delaunay triangulation의 정의와 그것이 왜 최적의 triangulation으로 간주되는지를 정립했다. 이제부터는 주어진 점 집합 $P$에 대해 이러한 Delaunay triangulation을 실제로 구축하는 알고리즘에 대해 논의한다. 그중 가장 기본적이고 직관적인 방법 중 하나가 바로 **Lawson's algorithm**이다.
76+
77+
Lawson's algorithm의 핵심 아이디어는 점진적으로 완벽한 구조를 쌓아 올리는 것이 아니라, 일단 어떤 형태든 상관없이 완전한 triangulation을 만든 후, 국소적인 결함들을 반복적으로 수정하여 점차 전체를 최적의 상태로 개선해 나가는 **iterative improvement** 방식에 있다. 알고리즘은 더 이상 개선할 부분이 없을 때, 즉 Delaunay triangulation이 완성되었을 때 종료된다.
78+
79+
---
80+
81+
### **2.1. 알고리즘의 개념과 The Illegal Edge**
82+
83+
Lawson's algorithm의 반복적인 수정 과정은 '결함'을 찾아 수정하는 단일 연산에 기반한다. 여기서 '결함'이란 Delaunay 조건을 만족하지 못하는 국소적인 기하학적 형태를 의미하며, 이는 **illegal edge**라는 개념으로 정의된다.
84+
85+
> **Definition: The Illegal Edge**
86+
> Triangulation의 내부 간선 $(p_i, p_j)$가 두 삼각형 $\triangle p_i p_j p_k$와 $\triangle p_i p_j p_l$에 의해 공유될 때, 만약 점 $p_l$이 삼각형 $\triangle p_i p_j p_k$의 외접원 내부에 위치한다면, 이 간선 $(p_i, p_j)$는 **illegal**하다고 정의된다.
87+
88+
이 정의는 1.2절에서 다룬 빈 외접원 속성을 직접적으로 위반하는 상황을 가리킨다. 사각형 $p_i p_k p_j p_l$을 고려했을 때, 대각선인 $(p_i, p_j)$가 Delaunay 조건을 만족하지 못하는 것이다. 대칭적으로, 점 $p_k$가 $\triangle p_i p_j p_l$의 외접원 내부에 있을 때도 이 간선은 illegal하다.
89+
90+
Lawson's algorithm은 triangulation 내에 존재하는 모든 illegal edge를 찾아, 다음 절에서 설명할 edge-flipping 연산을 통해 legal edge로 바꾸는 과정을 더 이상 수정할 illegal edge가 없을 때까지 반복한다.
91+
92+
---
93+
94+
### **2.2. The Edge-Flipping Operation**
95+
96+
2.1절에서 정의한 illegal edge를 수정하여 Delaunay 조건을 만족시키는 국소적 변환 방법이 바로 **edge-flipping** 연산이다. 이 연산은 Lawson's algorithm의 심장과도 같은 핵심 메커니즘이다.
97+
98+
Edge-flipping은 두 개의 인접한 삼각형이 공유하는 내부 edge에 대해서만 적용될 수 있다. 내부 edge $(p_i, p_j)$가 두 삼각형 $\triangle p_i p_j p_k$와 $\triangle p_i p_j p_l$에 의해 공유되고, 이들이 함께 볼록 사각형(convex quadrilateral) $p_i p_k p_j p_l$을 형성한다고 가정하자.
99+
100+
이때 edge-flipping 연산은 다음과 같이 수행된다.
101+
102+
1. 공유되던 기존 간선 $(p_i, p_j)$를 제거한다.
103+
2. 사각형의 다른 두 정점인 $p_k$와 $p_l$을 잇는 새로운 간선 $(p_k, p_l)$를 추가한다.
104+
105+
이 연산을 통해 기존의 두 삼각형 $\triangle p_i p_j p_k$와 $\triangle p_i p_j p_l$은 사라지고, 새로운 두 삼각형 $\triangle p_k p_l p_i$와 $\triangle p_k p_l p_j$로 재구성된다. 사각형의 외부 경계는 그대로 유지된 채 내부의 triangulation 방식만 바뀌게 된다. Lawson's algorithm에서는 이 edge-flipping 연산을 illegal edge에 대해서만 선택적으로 적용하여 triangulation의 품질을 점진적으로 개선한다.
106+
107+
---
108+
109+
### **2.3. Edge-Flipping의 수렴성과 정확성 (Convergence and Correctness)**
110+
111+
지금까지 illegal edge를 찾아 edge-flipping을 통해 수정하는 Lawson's algorithm의 핵심 연산을 정의했다. 이제 이 반복적인 과정이 유한한 횟수 안에 반드시 종료되며, 그 결과가 정확히 Delaunay triangulation임을 증명해야 한다. 이 증명은 2차원 평면의 triangulation 문제를 3차원 공간의 볼록한 곡면 문제로 변환하는 강력한 기법인 **Lifting Map**을 통해 이루어진다.
112+
113+
---
114+
115+
#### **The Lifting Map과 핵심 Lemma**
116+
117+
2차원 평면의 각 점 $p = (p_x, p_y)$를 3차원 공간의 포물면(paraboloid) 위의 점 $\hat{p}$로 대응시키는 Lifting Map을 정의하자.
118+
$$\hat{p} = (p_x, p_y, p_x^2 + p_y^2)$$
119+
이 변환의 가장 중요한 속성은 2차원에서의 in-circle 테스트를 3차원에서의 orientation 테스트로 바꿔준다는 것이다.
120+
121+
> **Lemma.** 점 $s$가 삼각형 $\triangle pqr$의 외접원 내부에 있을 필요충분조건은, 3차원으로 lift된 점 $\hat{s}$가 $\hat{p}, \hat{q}, \hat{r}$을 지나는 평면보다 아래(below)에 놓이는 것이다.
122+
123+
**Proof Sketch.** 표준적인 in-circle 테스트는 다음과 같은 4x4 행렬식의 부호로 판별할 수 있다.
124+
125+
$$
126+
\det \begin{pmatrix}
127+
p_x & p_y & p_x^2+p_y^2 & 1 \\
128+
q_x & q_y & q_x^2+q_y^2 & 1 \\
129+
r_x & r_y & r_x^2+r_y^2 & 1 \\
130+
s_x & s_y & s_x^2+s_y^2 & 1
131+
\end{pmatrix}
132+
$$
133+
134+
이 행렬식의 값은 다음과 같은 두 가지 조건 하에서 0이 된다:
135+
1. 2D에서 네 점 $p, q, r, s$가 한 원 위에 있을 때 (cocircular).
136+
2. 3D에서 lift된 네 점 $\hat{p}, \hat{q}, \hat{r}, \hat{s}$가 한 평면 위에 있을 때 (coplanar).
137+
138+
이 두 조건은 서로 동치이며, 원의 일반 방정식 $A(x^2 + y^2) - Bx - Cy + D = 0$으로부터 유도된다. 행렬식의 부호는 점 $s$가 원의 내부에 있는지(평면 아래에 있는지) 혹은 외부에 있는지를 결정한다.
139+
140+
---
141+
142+
#### **수렴성 증명**
143+
144+
1. 각 edge-flip은 2차원에서 illegal edge를 제거하는 연산이다. Lemma에 따라, 이는 3차원에서 움푹 들어간 non-convex한 부분을 '펴서' 더 볼록한 형태로 만드는 것과 같다.
145+
2. 이 과정은 lift된 점들의 아래쪽 볼록 껍질(lower convex hull)을 찾아가는 과정으로 해석할 수 있다. 각 flip은 볼록 껍질에 더 가까워지는 방향으로 단조롭게 진행된다.
146+
3. 주어진 $n$개의 점으로 만들 수 있는 edge의 총개수는 $\binom{n}{2}$로 유한하다. 각 flip은 단조로운 개선을 이루므로 이전에 flip한 간선은 다시 flip될 수 없다. 따라서 이 과정은 유한한 횟수($O(n^2)$ 이하) 안에 반드시 종료된다.
147+
148+
---
149+
150+
#### **정확성 증명**
151+
152+
알고리즘은 더 이상 illegal edge가 없을 때 종료된다. 이 최종 상태의 triangulation을 $T_f$라고 하자.
153+
154+
1. 귀류법을 사용하기 위해, $T_f$가 Delaunay triangulation이 아니라고 가정하자.
155+
2. 가정에 따라, $T_f$에는 empty circumcircle property를 위반하는 삼각형 $\triangle pqr$이 존재한다. 즉, 이 삼각형의 외접원 내부에 다른 점 $s$가 있다.
156+
3. Lifting Map Lemma에 의해, 3차원에서 점 $\hat{s}$는 평면 $H$($\hat{p}, \hat{q}, \hat{r}$을 지나는) 아래에 놓인다.
157+
4. lift된 triangulation의 vertex인 $\hat{s}$가 그 triangulation의 face인 $\triangle pqr$이 정의하는 평면 $H$ 아래에 놓여 있으므로, $T_f$를 lift한 3D 표면은 전체적으로 convex하지 않다.
158+
5. convex하지 않은 다면체 표면에는 반드시 non-convex edge가 존재한다. 즉, 두 삼각형 면이 만나 '계곡'을 이루는 edge $(\hat{a}, \hat{b})$가 반드시 존재한다.
159+
6. 이러한 non-convex edge $(\hat{a}, \hat{b})$는 2차원에서 정확히 illegal edge $(a,b)$에 해당한다.
160+
7. 이는 더 이상 illegal edge가 없다는 알고리즘의 종료 조건에 모순이다.
161+
162+
따라서 $T_f$가 Delaunay triangulation이 아니라는 가정은 거짓이며, 알고리즘의 결과는 반드시 Delaunay triangulation이다. Q.E.D.
163+
164+
---
165+
166+
## **3. 결론**
167+
168+
본고에서는 평면 위 점 집합에 대한 최적의 삼각분할인 Delaunay triangulation의 수학적 정의와 핵심 속성에 대해 탐구하고, 이를 구축하기 위한 고전적이고 직관적인 방법인 Lawson's algorithm을 심도 있게 분석했다.
169+
170+
Lawson's algorithm은 임의의 triangulation에서 시작하여, Delaunay 조건을 국소적으로 위반하는 illegal edge를 찾아 edge-flipping 연산으로 수정하는 단순한 규칙을 반복한다. 이 반복적 개선 과정은 3차원 포물면에 점들을 투영하는 Lifting Map을 통해, 3D 표면의 오목한 부분을 점차 펴내어 아래쪽 볼록 껍질(lower convex hull)을 찾아가는 과정과 같음을 보였다. 각 flip이 단조로운 개선을 보장하므로 이 과정은 $O(n^2)$ 시간 복잡도 내에 반드시 종료되며, 그 결과는 Delaunay triangulation의 정의를 완벽하게 만족함을 증명했다.
171+
172+
Lawson's algorithm은 현대의 더 빠른 $O(n \log n)$ 알고리즘에 비해 성능 면에서는 한계가 명확하다. 하지만 그 학술적 의의는 매우 크다. 이 알고리즘은 어떤 triangulation에서든 Delaunay triangulation에 도달할 수 있음을 보여주는 강력하고 건설적인 증거가 되며, edge-flipping이라는 연산은 다른 복잡한 기하 알고리즘에서도 핵심적인 부품으로 사용된다. 결국 Lawson's algorithm은 Delaunay triangulation이라는 목표의 우아한 기하학적 구조를 가장 명확하고 직관적인 방식으로 보여주는 근본적인 알고리즘으로 평가할 수 있다.
173+
174+
## **4. 참고자료**
175+
176+
https://n.ethz.ch/~vkuperber/flipgraph.pdf

0 commit comments

Comments
 (0)