Voronoi図(Voronoi diagram)とは、空間の有限個の点(母点)について、空間の各点をいちばん近い母点ごとに分けたものである。各母点の領域は垂直二等分超平面で区切られた閉半空間の共通部分なので凸であり、領域が有界であることは母点が母点全体の凸包の内部にあることと同値である。平面でどの 4 点も同じ円の上になく母点が一直線上にないとき、Voronoi 図の頂点と隣り合う領域の組は Delaunay 三角形分割の三角形と辺にちょうど対応し、$n$ 個の母点では頂点は $2n-5$ 個以下、組は $3n-6$ 組以下である。最も近い母点を探す問題などで使われる計算幾何学の基本の構造である。
前提知識: 凸集合, 凸包, 三角形の外心, Delaunay三角形分割
地図の上に店がいくつかあり、客はいちばん近い店に行くとする。このとき地図は「この店に行く客の場所」ごとの領域に分かれる。点の有限集合が与えられたとき、空間を「どの点がいちばん近いか」で分けたものを Voronoi 図(Voronoi diagram)という。三角形の外心 の節「大学数学で見る:Voronoi 図と Delaunay 三角形分割」では母点が 3 つの場合を調べ、境目が垂直二等分線の半直線で、3 つが外心で出会うことを見た。
この記事では、母点がいくつあっても成り立つ基本の性質を証明する。各領域は半空間の共通部分なので凸であり(prop-vor-halfspace)、領域が有界であることは母点が凸包の内部にあることと同値である(thm-vor-bounded)。平面では、母点が 1 本の直線の上になく、どの 4 点も同じ円の上になければ、Voronoi 図の頂点と辺は Delaunay三角形分割 の三角形と辺にちょうど対応し、$n$ 個の母点の Voronoi 図の頂点は $2n-5$ 個以下、隣り合う領域の組は $3n-6$ 組以下である(thm-vor-planar)。
以下、$d\ge1$、$S\subset\mathbb{R}^d$ は $2$ 個以上の点からなる有限集合とし、$S$ の点を 母点 という。距離は Euclid 距離 $\lvert x-y\rvert$ で測る。
母点 $p\in S$ の Voronoi 領域 を
$$
V(p):=\{x\in\mathbb{R}^d:\ \lvert x-p\rvert\le\lvert x-s\rvert\ \text{がすべての}\ s\in S\ \text{で成り立つ}\}
$$
と定める。領域の族 $\{V(p)\}_{p\in S}$ を $S$ の Voronoi 図 という。点 $x\in\mathbb{R}^d$ について、$\operatorname{dist}(x,S):=\min_{s\in S}\lvert x-s\rvert$ とし、$x$ にいちばん近い母点の集合を $N(x):=\{s\in S:\lvert x-s\rvert=\operatorname{dist}(x,S)\}$ と書く。
定義から、$x\in V(p)$ と $p\in N(x)$ は同値である。$N(x)$ はいつも空でないので、Voronoi 領域の和集合は $\mathbb{R}^d$ 全体である。平面($d=2$)では、$\lvert N(x)\rvert\ge3$ となる点 $x$ を Voronoi 頂点 という。これは $x$ が 3 つ以上の領域に属することと同じである。
文献によっては、ほかのどの母点よりも真に近い点の集合(開集合)を Voronoi 領域とよぶ(For17 §27.1)。この記事の $V(p)$ はその閉包にあたり、境目の点を含む。
相異なる $p,q\in S$ について $H(p,q):=\{x:\lvert x-p\rvert\le\lvert x-q\rvert\}$ とおく。
点 $x$ がどの領域に属するかは、1 次関数の最大で言い表せる。Delaunay三角形分割 の補題「外接円と持ち上げ」と同じく、放物面 $z=\lvert x\rvert^2$ への持ち上げを使う。
$p\in S$ について $a_p(x):=2\langle p,x\rangle-\lvert p\rvert^2$ とおく。$a_p$ のグラフは、放物面 $z=\lvert x\rvert^2$ の点 $(p,\lvert p\rvert^2)$ での接平面である。そして
$$
x\in V(p)\iff a_p(x)=\max_{s\in S}a_s(x)
$$
が成り立つ。
$\lvert x-s\rvert^2=\lvert x\rvert^2-a_s(x)$ であり、$\lvert x\rvert^2$ は $s$ によらないので、$\lvert x-s\rvert$ を最小にする $s$ と $a_s(x)$ を最大にする $s$ は同じである。接平面については、$z=\lvert x\rvert^2$ の $p$ での接平面が $z=\lvert p\rvert^2+2\langle p,x-p\rangle=a_p(x)$ であることから分かる。$\square$
つまり Voronoi 図は、母点を持ち上げた点での接平面たちの上側の包絡(各点での最大)を真下に射影したものである(For17 §27.1「Relation to convexity」は符号を変えた平面の下側の包絡で同じことを述べている)。
三角形の外心 の命題「空の円の性質」は、母点の数や次元によらず次の形で成り立つ。
$x\in\mathbb{R}^d$ と $r:=\operatorname{dist}(x,S)$ について、開球 $\{y:\lvert y-x\rvert< r\}$ は母点を含まず、球面 $\{y:\lvert y-x\rvert=r\}$ の上の母点はちょうど $N(x)$ である。したがって、空でない $T\subset S$ について、次の 2 つは同値である。
前半は $r$ と $N(x)$ の定義そのものである。1 を仮定すると $T\subset N(x)$ なので、半径 $r$ の球面が 2 の条件を満たす。2 を仮定し、その球面の半径を $r'$ とすると、どの母点 $s$ も $\lvert x-s\rvert\ge r'$ を満たし、$T$ の点では等号なので $r'=\operatorname{dist}(x,S)$ かつ $T\subset N(x)$ である。$\square$
$p\in S$ とし、$q\in S\setminus\{p\}$ を $p$ にいちばん近い母点の 1 つとする。このとき線分 $pq$ の中点 $m$ は $V(p)\cap V(q)$ に属する。
$\lvert m-p\rvert=\lvert m-q\rvert=\frac12\lvert p-q\rvert$ である。ある母点 $s$ で $\lvert m-s\rvert<\frac12\lvert p-q\rvert$ とすると、$s\ne p$ で、$\lvert p-s\rvert\le\lvert p-m\rvert+\lvert m-s\rvert<\lvert p-q\rvert$ となり、$q$ の選び方に反する。よって $\lvert m-p\rvert=\operatorname{dist}(m,S)$ で、$p,q\in N(m)$ である。$\square$
したがって、ある母点にいちばん近い母点を探すには、その領域と隣り合う領域の母点だけを調べればよい。$S$ 全体で距離が最小の 2 点(最近点対)も、隣り合う領域の母点の組の中にある。
$C\subset\mathbb{R}^d$ を空でない閉凸集合、$p\in C$ を $C$ の内点でない点とする。このとき長さ $1$ のベクトル $u$ で、すべての $y\in C$ について $\langle y-p,u\rangle\le0$ となるものがある。
要点:$C$ の外から $p$ に近づく点 $y_k$ と、$C$ の中で $y_k$ にいちばん近い点 $c_k$ をとり、$y_k-c_k$ の向きの極限を $u$ とする。
$p$ は内点でないので、$C$ に属さない点の列 $y_k\to p$ がとれる。$C$ は閉集合なので、$C$ の中で $y_k$ にいちばん近い点 $c_k$ がある($C\cap\{z:\lvert z-y_k\rvert\le\lvert p-y_k\rvert\}$ はコンパクトで空でない)。$y_k\notin C$ なので $c_k\ne y_k$ であり、$u_k:=(y_k-c_k)/\lvert y_k-c_k\rvert$ とおく。
任意の $z\in C$ と $0< t\le1$ について、$c_k+t(z-c_k)\in C$ なので $\lvert y_k-c_k-t(z-c_k)\rvert^2\ge\lvert y_k-c_k\rvert^2$ であり、展開して $t$ で割ると $-2\langle y_k-c_k,z-c_k\rangle+t\lvert z-c_k\rvert^2\ge0$ となる。$t\to0$ として $\langle z-c_k,u_k\rangle\le0$ を得る。
$\lvert c_k-y_k\rvert\le\lvert p-y_k\rvert\to0$ なので $c_k\to p$ である。単位球面はコンパクトなので、部分列をとって $u_k\to u$($\lvert u\rvert=1$)としてよい。極限をとって $\langle z-p,u\rangle\le0$ がすべての $z\in C$ で成り立つ。$\square$
$S\subset\mathbb{R}^d$ を $2$ 個以上の点からなる有限集合、$p\in S$ とする。$V(p)$ が有界であることは、$p$ が $\operatorname{conv}S$ の内点であることと同値である。とくに、$\operatorname{conv}S$ の境界にある母点の領域は有界でない。
($V(p)$ が有界でなければ $p$ は内点でない。)$V(p)$ の点の列 $x_k$ で $s_k:=\lvert x_k-p\rvert\to\infty$ となるものをとり、$u_k:=(x_k-p)/s_k$ とおく。部分列をとって $u_k\to u$($\lvert u\rvert=1$)としてよい。母点 $q$ について $x_k-q=(p-q)+s_ku_k$ なので、$\lvert x_k-p\rvert^2\le\lvert x_k-q\rvert^2$ は
$$
s_k^2\le\lvert p-q\rvert^2+2s_k\langle p-q,u_k\rangle+s_k^2,\qquad\text{すなわち}\qquad \langle q-p,u_k\rangle\le\frac{\lvert p-q\rvert^2}{2s_k}
$$
となる。$k\to\infty$ として $\langle q-p,u\rangle\le0$ がすべての $q\in S$ で成り立ち、凸結合をとって、すべての $y\in\operatorname{conv}S$ で $\langle y-p,u\rangle\le0$ となる(凸集合 の定理「凸包と凸結合」)。$p$ が内点なら、小さい $\varepsilon>0$ で $p+\varepsilon u\in\operatorname{conv}S$ となるが、$\langle\varepsilon u,u\rangle=\varepsilon>0$ なので矛盾する。
($p$ が内点でなければ $V(p)$ は有界でない。)$\operatorname{conv}S$ は閉凸集合なので(有限個の点の凸包はコンパクト)、lem-vor-support により、すべての $q\in S$ で $\langle q-p,u\rangle\le0$ となる単位ベクトル $u$ がある。$t\ge0$ と $x:=p+tu$ について
$$
\lvert x-q\rvert^2=\lvert p-q\rvert^2+2t\langle p-q,u\rangle+t^2\ge t^2=\lvert x-p\rvert^2
$$
なので $x\in V(p)$ である。よって $V(p)$ は半直線 $\{p+tu:t\ge0\}$ を含み、有界でない。$\square$
$S$ が 1 つの超平面に含まれるときは $\operatorname{conv}S$ に内点がないので、どの領域も有界でない。
ここからは $d=2$ とし、次の 2 つを仮定する。
$S\subset\mathbb{R}^2$ を (G1)・(G2) を満たす $n$ 点の集合、$\mathcal{D}$ をその Delaunay 三角形分割とする。
(G1)・(G2) のもとで $n\ge3$ なら、Voronoi 頂点は $2n-5$ 個以下、空でない $V(p)\cap V(q)$($p\ne q$)は $3n-6$ 組以下である。
(G1) により $\operatorname{conv}S$ は凸多角形で、その角の点 3 個以上はどれも母点なので $h\ge3$ である。thm-vor-planar の個数に代入する。$\square$
(G1)・(G2) を仮定しなくても、$n\ge3$ なら Voronoi 頂点は $2n-5$ 個以下、Voronoi 図の辺(2 つの領域の共通部分のうち、線分・半直線・直線になるもの)は $3n-6$ 本以下である(For17 §27.1「Combinatorial complexity」、p. 708。この記事では一般の場合は証明しない)。一方、空でない $V(p)\cap V(q)$ の組の数はこの上界を超えることがある。円の上に等間隔に並ぶ $6$ 点では、円の中心がすべての領域に属するので $15$ 組すべてが空でなく、$15>3\cdot6-6$ である。3 次元では事情が変わり、$n$ 点の Voronoi 図の頂点が $n^2$ に比例する個数になる例がある(同じ箇所)。
$A(0,0)$、$B(4,0)$、$C(5,3)$、$D(0,3)$ とする(三角形の外心 の例「4 つの母点で空の円を調べる」と同じ点)。4 点とも $\operatorname{conv}S$ の境界にあるので $h=4$ で、thm-vor-bounded によりどの領域も有界でない。外接円の内部に母点のない三角形は $ABD$ と $BCD$ だけなので、Voronoi 頂点は $ABD$ の外心 $(2,\frac32)$ と $BCD$ の外心 $(\frac52,\frac{13}6)$ の 2 個($2n-h-2=2$)である。隣り合う領域の組は $AB,AD,BD,BC,CD$ の 5 組($3n-h-3=5$)で、$V(B)\cap V(D)$ は 2 つの頂点を結ぶ線分($BD$ の中点 $(2,\frac32)$ から向き $(3,4)$ に進む)、ほかの 4 組は半直線である。$V(A)\cap V(C)$ は空である。
$O(0,0)$、$A(4,0)$、$B(0,4)$、$P(1,1)$ とする。$P$ は三角形 $OAB$ の内部にあり($h=3$)、どの 4 点も 1 つの円の上にない。外接円の内部に母点のない三角形は $OAP$、$OBP$、$ABP$ の 3 つで、外心はそれぞれ $(2,-1)$、$(-1,2)$、$(\frac72,\frac72)$ である(外接円の半径の 2 乗は $5,5,\frac{25}2$、残りの母点までの距離の 2 乗は $29,29,\frac{49}2$)。Voronoi 頂点は 3 個($2n-h-2=3$)、隣り合う組は $OA,OB,AB,OP,AP,BP$ の 6 組($3n-h-3=6$)である。$V(P)$ はこの 3 つの外心を頂点とする三角形で有界であり、ほかの 3 つの領域は有界でない(thm-vor-bounded)。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| (G1) $S$ は 1 本の直線の上にない | $(0,0),(1,0),(2,0)$ | $V(p)\cap V(q)$ が線分か半直線であること($(0,0)$ と $(1,0)$ の領域の共通部分は直線 $x=\frac12$ 全体で、Voronoi 頂点はない) |
| (G2) どの 4 点も 1 つの円の上にない | 正方形の頂点 $(0,0),(2,0),(2,2),(0,2)$ | Voronoi 頂点で出会う領域がちょうど 3 つであること($(1,1)$ で 4 つが出会い、対角の 2 頂点の領域の共通部分は 1 点 $\{(1,1)\}$ になる) |
| $q$ は $p$ にいちばん近い母点(prop-vor-nearest) | $(0,0),(1,0),(2,0)$ で $p=(0,0)$、$q=(2,0)$ | $V(p)\cap V(q)\ne\emptyset$($V(p)=\{x\le\frac12\}$、$V(q)=\{x\ge\frac32\}$ は交わらない) |
thm-vor-planar により、平面の Voronoi 図は Delaunay 三角形分割から、三角形ごとに外心を求め、辺ごとに隣の 2 つの外心を結ぶ(境界の辺では半直線を引く)ことで得られ、その手間は母点の個数に比例する(For17 §27.2、p. 709)。$n$ 点の Delaunay 三角形分割は、掃引する直線を動かしながら空の円を見つけていく平面走査法などで $O(n\log n)$ 時間で計算できる(For17 表 27.2.1・「The plane sweep algorithm」、pp. 709–710。この記事では証明しない)。
Voronoi 図は数学や自然科学の多くの分野で独立に見いだされ、Thiessen 図・Wigner–Seitz 図・Dirichlet 分割などの別名をもつ(For17 の序と用語集、p. 705)。ある母点にいちばん近い母点を探す問題では、prop-vor-nearest により候補を隣り合う領域の母点にしぼれる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する