Weber問題(Weber problem)とは、空間の相異なる点 $a_1,\dots,a_n$ と正の重み $w_i$ に対し、重み付きの距離の和 $f(x)=\sum_i w_i\lvert x-a_i\rvert$ を最小にする点を求める問題であり、3 点・等しい重みの場合が Fermat 点の問題にあたる。$f$ は凸関数で最小点はいつも存在し、点が一直線上になければただ 1 つ、一直線上なら重み付きの中央値になる。母点でない点 $x$ が最小点であることは各母点へ向かう単位ベクトルの重み付きの和が $0$ になることと同値で、母点 $a_k$ が最小点であることはほかの母点からの単位ベクトルの重み付きの和の長さが $w_k$ 以下であることと同値である。数値計算には Weiszfeld の反復が使われ、反復の点が母点に当たらない限り $f$ の値は単調に減る。
いくつかの町に品物を届ける倉庫を 1 つ建てる。町 $i$ への輸送量を $w_i$ とし、運ぶ費用が「量 × 直線距離」に比例するなら、費用の合計がいちばん小さくなる場所はどこか。平面(または空間)の点 $a_1,\dots,a_n$ と正の重み $w_1,\dots,w_n$ に対し、重み付きの距離の和
$$
f(x)=\sum_{i=1}^nw_i\lvert x-a_i\rvert
$$
を最小にする点 $x$ を求める問題を Weber 問題(Weber problem)という。3 点・重みが等しい場合が Fermat点 の問題で、Weber 問題はその一般化にあたる。距離の 2 乗の和なら最小点は重み付きの重心になるが、距離そのものの和では、最小点を与える簡単な式は一般にはない。
この記事では、最小点がいつもあり、点が一直線上になければただ 1 つであること(thm-wbp-exist)を示し、最小点を「単位ベクトルの重み付きの和」で判定する主定理(thm-wbp-main)を証明する。最小点が与えられた点の 1 つになる場合も、この判定に含まれる。さらに、最小点を数値的に求める Weiszfeld の反復で、反復の点が母点に当たらない限り目的関数の値が必ず下がることを示す(thm-wbp-weiszfeld)。
$d\ge1$ とし、$\mathbb{R}^d$ の長さを $\lvert\cdot\rvert$、内積を $\langle\cdot,\cdot\rangle$ で表す。
$\mathbb{R}^d$ の相異なる点 $a_1,\dots,a_n$($n\ge1$)と正の実数 $w_1,\dots,w_n$ が与えられたとき、
$$
f(x):=\sum_{i=1}^nw_i\lvert x-a_i\rvert\qquad(x\in\mathbb{R}^d)
$$
を最小にする点を求める問題を Weber 問題 という。$a_i$ を 母点、$w_i$ を 重み、$W:=w_1+\cdots+w_n$ を重みの総和、$f$ の最小点を Weber 点 という。
$f$ は凸関数である。実際、$\lvert x-a\rvert$ は三角不等式により $\lvert(1-s)x+sy-a\rvert\le(1-s)\lvert x-a\rvert+s\lvert y-a\rvert$($0\le s\le1$)を満たし、正の重みをかけて足しても凸性は保たれる。Weber 問題は凸最適化の基本的な例で、施設の配置の問題として扱われる(BV04 §8.7.1。Example 8.4 は重みのない平面の場合の最小点を Weber 点と呼んでいる)。
$x\notin L$ の $L$ への正射影を $x'$ とすると、三平方の定理から $\lvert x'-a_i\rvert^2=\lvert x-a_i\rvert^2-\lvert x-x'\rvert^2<\lvert x-a_i\rvert^2$ なので $f(x')< f(x)$ で、$x$ は最小点でない。$L$ の上では $\varphi(t):=f(p+tv)=\sum_iw_i\lvert t-t_i\rvert$ で、右微分係数・左微分係数は
$$\varphi'_+(t)=\sum_{t_i\le t}w_i-\sum_{t_i>t}w_i,\qquad\varphi'_-(t)=\sum_{t_i< t}w_i-\sum_{t_i\ge t}w_i$$
である。凸関数 $\varphi$ について、$t$ が最小点であることは $\varphi'_-(t)\le0\le\varphi'_+(t)$ と同値である(凸関数 の定理「開区間上の凸関数の連続性と片側微分」と、傾きの単調性による)。$\varphi'_+(t)\ge0$ は $\sum_{t_i>t}w_i\le\frac W2$、$\varphi'_-(t)\le0$ は $\sum_{t_i< t}w_i\le\frac W2$ と同値である。最小点の全体は (1) により $L$ の上の有界閉凸集合、つまり 1 点か線分である。$\square$
$x\in\mathbb{R}^d$ について、$x$ と異なる母点から $x$ へ向かう単位ベクトルの重み付きの和を
$$
G(x):=\sum_{i:\,a_i\ne x}w_i\,\frac{x-a_i}{\lvert x-a_i\rvert}
$$
とおく。$x$ が母点でなければ、$f$ は $x$ で微分でき、$G(x)$ はその勾配である。$-G(x)$ は「$x$ から各母点へ向かう単位ベクトルの重み付きの和」で、母点たちが $x$ を引っぱる力の合力と見ることができる。
段 1(方向微分係数)。$x,v\in\mathbb{R}^d$ について $f'(x;v):=\lim_{s\to+0}\frac{f(x+sv)-f(x)}{s}$ を計算する。$a\ne x$ なら $s\mapsto\lvert x+sv-a\rvert=\sqrt{\lvert x-a\rvert^2+2s\langle x-a,v\rangle+s^2\lvert v\rvert^2}$ は $s=0$ で微分でき、微分係数は $\frac{\langle x-a,v\rangle}{\lvert x-a\rvert}$ である。$a=x$ なら $\frac{\lvert sv\rvert}{s}=\lvert v\rvert$ である。足し合わせて
$$
f'(x;v)=\langle G(x),v\rangle+w(x)\lvert v\rvert
$$
を得る。ここで $w(x)$ は、$x$ が母点 $a_k$ なら $w_k$、母点でなければ $0$ とする(母点は相異なるので高々 1 つ)。
段 2(最小 ⇔ 方向微分係数が非負)。$x$ が最小点なら、$f(x+sv)-f(x)\ge0$ を $s>0$ で割って極限をとり $f'(x;v)\ge0$ である。逆に、すべての $v$ で $f'(x;v)\ge0$ とする。$y\in\mathbb{R}^d$ をとり $v:=y-x$、$\varphi(s):=f(x+sv)$ とおくと、$\varphi$ は凸なので $\frac{\varphi(s)-\varphi(0)}{s}$ は $s>0$ について単調非減少である(凸関数 の命題「凸関数の傾きの単調性」)。よって
$$
f(y)-f(x)=\frac{\varphi(1)-\varphi(0)}{1}\ge\lim_{s\to+0}\frac{\varphi(s)-\varphi(0)}{s}=f'(x;v)\ge0
$$
で、$x$ は最小点である。
段 3(条件の書き換え)。$\lvert v\rvert=1$ の $v$ について $\langle G(x),v\rangle\ge-\lvert G(x)\rvert$ で、$G(x)\ne0$ なら $v=-G(x)/\lvert G(x)\rvert$ で等号が成り立つ。$v$ を正の数 $c$ 倍すると $f'(x;v)$ も $c$ 倍になるので、「すべての $v$ で $f'(x;v)\ge0$」は「$\lvert v\rvert=1$ のすべての $v$ で $f'(x;v)\ge0$」と同じで、これは
$$
w(x)-\lvert G(x)\rvert\ge0
$$
と同値である。$x$ が母点でなければ $w(x)=0$ なので $G(x)=0$、$x=a_k$ なら $\lvert G(a_k)\rvert\le w_k$ である。段 2 と合わせて定理を得る。$\square$
1 は Weiszfeld が重みのない場合に述べた特徴づけにあたる(Wei37 p. 355 の定理)。2 から、重みの大きい母点は最小点になりやすい。
ある $k$ について $w_k\ge\frac W2$ なら、母点 $a_k$ は最小点である。
$\lvert G(a_k)\rvert\le\sum_{i\ne k}w_i=W-w_k\le w_k$ なので、thm-wbp-main の 2 による。$\square$
母点を $(\pm1,\pm1)$ の 4 点、重みをすべて $1$ とする。原点 $0$ から 4 頂点へ向かう単位ベクトルは $\frac1{\sqrt2}(\pm1,\pm1)$ で、和は $0$ である。原点は母点でないので、thm-wbp-main の 1 により最小点であり、4 点は一直線上にないので thm-wbp-exist の 2 によりただ 1 つの最小点である。最小値は $4\sqrt2$ である。
平面の三角形 $ABC$ の 3 頂点を母点とし、重みをすべて $1$ とする。頂点 $A$ では
$$
\lvert G(A)\rvert^2=\Bigl\lvert\frac{A-B}{\lvert A-B\rvert}+\frac{A-C}{\lvert A-C\rvert}\Bigr\rvert^2=2+2\cos\angle BAC
$$
なので、thm-wbp-main の 2 により「$A$ が最小点」$\iff2+2\cos\angle BAC\le1\iff\angle BAC\ge120^\circ$ である。どの角も $120^\circ$ 未満なら最小点は母点でなく、thm-wbp-main の 1 により 3 本の単位ベクトルの和が $0$、すなわち最小点から 3 頂点を見込む角がすべて $120^\circ$ になる点(Fermat 点)である(Fermat点 の命題「単位ベクトルの和による判定」)。
たとえば $A(0,0)$、$B(4,0)$、$C(0,3)$ では角はどれも $120^\circ$ 未満で、最小点は約 $(0.6958,\,0.7512)$、最小値は約 $6.7664$ である。
$\mathbb{R}$ の母点 $0,1,3$ で重みがすべて $1$ なら、thm-wbp-exist の 3 により最小点は中央値 $1$ だけである。重みを $1,1,3$ にすると $W=5$ で、$t=3$ では $\sum_{t_i<3}w_i=2\le\frac52$、$\sum_{t_i>3}w_i=0$ なので最小点は $3$ である(cor-wbp-majority からも分かる)。2 点 $0,2$ で重みが等しいと、区間 $[0,2]$ の点はすべて最小点である。
$A(0,0)$、$B(1,0)$、$C(-1,1)$ では $\angle BAC=135^\circ\ge120^\circ$ なので、ex-wbp-fermat により頂点 $A$ が最小点である。このとき $G(A)=(-1,0)+\frac1{\sqrt2}(1,-1)$ で $\lvert G(A)\rvert^2=2+2\cos135^\circ=2-\sqrt2\ne0$ である。母点での最小は「$G=0$」では判定できず、thm-wbp-main の 2 の不等式が必要である。
最小点の条件 $\sum_iw_i\frac{a_i-x}{\lvert a_i-x\rvert}=0$ を $x$ について解いた形に書くと
$$
x=\frac{\sum_i\frac{w_i}{\lvert x-a_i\rvert}a_i}{\sum_i\frac{w_i}{\lvert x-a_i\rvert}}
$$
となる。右辺は、母点 $a_i$ に重さ $w_i/\lvert x-a_i\rvert$ を置いたときの重心である。そこで、母点でない $x$ について右辺を $\Phi(x)$ とおき、$x_{k+1}:=\Phi(x_k)$ とくり返して最小点に近づけようとするのが Weiszfeld の反復 である(Wei37 pp. 355–356。重みのない場合に、各母点に距離の逆数の重さを置いた重心をとる操作として述べている)。
$x$ を母点でない点とし、$\lambda(x):=\sum_i\frac{w_i}{\lvert x-a_i\rvert}$ とおく。
$\delta_i:=\lvert x-a_i\rvert>0$ とおく。
(1) $\lambda(x)(\Phi(x)-x)=\sum_i\frac{w_i}{\delta_i}(a_i-x)=-G(x)$ である。$x$ は母点でないので、thm-wbp-main の 1 から後半を得る。
(2) $y$ の関数
$$
g(y):=\sum_i\frac{w_i}{\delta_i}\lvert y-a_i\rvert^2=\lambda(x)\lvert y\rvert^2-2\Bigl\langle y,\sum_i\frac{w_i}{\delta_i}a_i\Bigr\rangle+\sum_i\frac{w_i}{\delta_i}\lvert a_i\rvert^2=\lambda(x)\lvert y-\Phi(x)\rvert^2+(\text{定数})
$$
は $y=\Phi(x)$ でただ 1 つの最小をとる。$g(x)=\sum_iw_i\delta_i=f(x)$ なので、$g(\Phi(x))\le f(x)$ で、$\Phi(x)\ne x$ なら $g(\Phi(x))< f(x)$ である。$e_i:=\lvert\Phi(x)-a_i\rvert$ とおくと、Cauchy–Schwarzの不等式 により
$$
f(\Phi(x))=\sum_i\sqrt{\frac{w_i}{\delta_i}}e_i\cdot\sqrt{w_i\delta_i}\le\Bigl(\sum_i\frac{w_i}{\delta_i}e_i^2\Bigr)^{1/2}\Bigl(\sum_iw_i\delta_i\Bigr)^{1/2}=\sqrt{g(\Phi(x))\,f(x)}\le f(x)
$$
である。$\Phi(x)\ne x$ なら最後の不等号は $f(x)>0$ と $g(\Phi(x))< f(x)$ により狭義である。$\square$
母点 $A(0,0)$、$B(4,0)$、$C(0,3)$(重み $1$)で、重心 $x_0=(\frac43,1)$ から始めると、$f$ の値は(小数第 4 位まで)
$$
6.9184,\quad6.8103,\quad6.7799,\quad6.7712,\quad6.7684,\quad6.7673,\ \dots
$$
と減っていき、ex-wbp-fermat の最小値 $6.7664$ に近づく。
平面の 5 つの母点
$$
a_1=(0,0),\quad a_2=(6,0),\quad a_3=(4,6),\quad a_4=(4,-6),\quad a_5=(-14,0)
$$
をとり、重みはすべて $1$ とする。$a_3$ は $x$ 軸の上にないので、母点は 1 本の直線の上に含まれない。出発点を母点でない点 $x=(-4,0)$ とする。
段 1(距離)。$x$ から各母点までの距離は
$$
\lvert x-a_1\rvert=4,\quad\lvert x-a_2\rvert=10,\quad\lvert x-a_3\rvert=\lvert x-a_4\rvert=\sqrt{8^2+6^2}=10,\quad\lvert x-a_5\rvert=10
$$
である。
段 2($\Phi(x)$)。$a_1=0$ と $a_2+a_3+a_4+a_5=(6+4+4-14,\,0+6-6+0)=(0,0)$ から
$$
\sum_{i=1}^5\frac{a_i}{\lvert x-a_i\rvert}=\frac{a_1}4+\frac{a_2+a_3+a_4+a_5}{10}=0,\qquad\lambda(x)=\frac14+\frac4{10}=\frac{13}{20}
$$
なので、$\Phi(x)=0=a_1$ である。
段 3($a_1$ は最小点でない)。$a_1$ から $a_2,a_5$ へ向かう単位ベクトル $(1,0)$ と $(-1,0)$ は打ち消し合い、$\lvert a_3\rvert=\lvert a_4\rvert=\sqrt{52}$ なので
$$
G(a_1)=\sum_{i=2}^5\frac{a_1-a_i}{\lvert a_1-a_i\rvert}=-\Bigl((1,0)+\frac{(4,6)+(4,-6)}{\sqrt{52}}+(-1,0)\Bigr)=\Bigl(-\frac{8}{\sqrt{52}},\,0\Bigr)
$$
で、$\lvert G(a_1)\rvert=\frac{4}{\sqrt{13}}\approx1.109>1=w_1$ である。thm-wbp-main の 2 により $a_1$ は最小点でない。
段 4(最小点)。$x$ 軸の上の点 $(t,0)$($0< t<4$)で $G$ の第 2 成分は対称性から $0$、第 1 成分は $1-1+1+\frac{2(t-4)}{\sqrt{(4-t)^2+36}}$ で、これが $0$ となるのは $4(4-t)^2=(4-t)^2+36$、すなわち $t=4-2\sqrt3\approx0.536$ のときである。thm-wbp-main の 1 と thm-wbp-exist の 2 により、ただ 1 つの最小点は $(4-2\sqrt3,\,0)$ で、最小値は $(20+t)+2\sqrt{48}=24+6\sqrt3\approx34.392$ である。一方 $f(a_1)=6+14+2\sqrt{52}=20+4\sqrt{13}\approx34.422$、$f(x)=4+40=44$ である。
反復は 1 回で最小点でない母点 $a_1$ に着き、そこで $\Phi$ は定義できない。重みはなく、母点は一直線上になく、出発点は母点でないので、Wei37 p. 356 の主張の仮定を満たしたまま、反復は最小点に収束しない。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 母点が 1 本の直線の上に含まれない | 母点 $0,2\in\mathbb{R}$(重みが等しい) | 最小点がただ 1 つであること(thm-wbp-exist の 2) |
| $x$ が母点でない | ex-wbp-obtuse の頂点 $A$ | 「最小点 $\iff G(x)=0$」(thm-wbp-main の 1) |
| 反復の点が母点に当たらない | ex-wbp-anchor | 母点でない点から始めた反復が出発点によらず最小点に収束すること(Wei37 p. 356 の主張。反復は最小点でない母点 $a_1$ に着いて止まる) |
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する