Weber問題

同義語:ウェーバー問題Fermat–Weber問題Weber problemFermat–Weber problem

概要

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$ の値は単調に減る。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 凸関数, 内積, Fermat点

いくつかの町に品物を届ける倉庫を 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$ で表す。

Weber 問題

$\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 点と呼んでいる)。

存在と一意性

最小点の存在と一意性
  1. $f$ の最小点は存在し、最小点の全体は有界な閉凸集合である。
  2. 母点が 1 本の直線の上に含まれなければ、最小点はただ 1 つである。
  3. 母点がすべて直線 $L$ の上にあり、$L$ の点を $a_i=p+t_iv$($\lvert v\rvert=1$)と表すとき、最小点はすべて $L$ の上にあり、$x=p+tv$ が最小点であることは
    $$ \sum_{t_i< t}w_i\le\frac W2\quad\text{かつ}\quad\sum_{t_i>t}w_i\le\frac W2 $$
    (重み付きの 中央値 であること)と同値である。最小点の全体は 1 点か線分である。
遠くで大きく、直線の上で狭義に凸
  1. 三角不等式から $f(x)\ge\sum_iw_i(\lvert x\rvert-\lvert a_i\rvert)=W\lvert x\rvert-C$($C:=\sum_iw_i\lvert a_i\rvert$)である。$R:=(f(a_1)+C)/W$ とすると、$\lvert x\rvert>R$ なら $f(x)>f(a_1)$ である。連続関数 $f$ は有界閉集合 $\{\lvert x\rvert\le R\}$ で最小値をとり、それが全体の最小値である。最小値を $f^\ast$ とすると、最小点の全体 $\{f\le f^\ast\}$ は凸関数の下位集合なので凸で、連続性から閉じていて、$R$ の球に含まれる。
  2. 最小点 $x\ne y$ があるとする。$x,y$ を通る直線 $\{x+s(y-x)\}$ の上にない母点 $a_j$ がある。$a_j$ からこの直線までの距離を $h>0$、直線の上で $a_j$ に最も近い点のパラメータを $s_j$ とすると、$\lvert x+s(y-x)-a_j\rvert=\sqrt{\lvert y-x\rvert^2(s-s_j)^2+h^2}$ で、これは $s$ の関数として 2 階導関数 $\lvert y-x\rvert^2h^2/(\cdots)^{3/2}>0$ をもち、狭義凸である。よって $f(\frac{x+y}2)<\frac12f(x)+\frac12f(y)=f^\ast$ となり矛盾する。
  3. 要点:$L$ への正射影で距離はすべて縮むので最小点は $L$ の上にあり、$L$ の上では片側微分係数の符号で判定する。
    詳しい証明を開く

    $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$ が $f$ の最小点であることは、$G(x)=0$、すなわち
    $$ \sum_{i=1}^nw_i\,\frac{a_i-x}{\lvert a_i-x\rvert}=0 $$
    と同値である。
  2. 母点 $a_k$ が $f$ の最小点であることは、$\lvert G(a_k)\rvert\le w_k$ と同値である。
方向微分係数で判定する

段 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$

例

正方形の 4 頂点

母点を $(\pm1,\pm1)$ の 4 点、重みをすべて $1$ とする。原点 $0$ から 4 頂点へ向かう単位ベクトルは $\frac1{\sqrt2}(\pm1,\pm1)$ で、和は $0$ である。原点は母点でないので、thm-wbp-main の 1 により最小点であり、4 点は一直線上にないので thm-wbp-exist の 2 によりただ 1 つの最小点である。最小値は $4\sqrt2$ である。

3 点の場合と Fermat 点

平面の三角形 $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]$ の点はすべて最小点である。

反例:母点が最小点でも勾配は 0 でない

$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 の不等式が必要である。

Weiszfeld の反復

最小点の条件 $\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。重みのない場合に、各母点に距離の逆数の重さを置いた重心をとる操作として述べている)。

Weiszfeld の反復の性質

$x$ を母点でない点とし、$\lambda(x):=\sum_i\frac{w_i}{\lvert x-a_i\rvert}$ とおく。

  1. $\Phi(x)-x=-\frac{G(x)}{\lambda(x)}$ である。とくに $\Phi(x)=x$ であることは、$x$ が $f$ の最小点であることと同値である。
  2. $f(\Phi(x))\le f(x)$ であり、等号が成り立つのは $\Phi(x)=x$ のときだけである。
2 次関数で上から押さえる

$\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$

  1. から、Weiszfeld の反復は、勾配 $G(x)$ の逆向きに歩幅 $1/\lambda(x)$ で進む勾配降下法である。(2) により、反復が母点に当たらない限り $f$ の値は単調に減っていく。ただし、反復の点が母点に当たると次の点が定義できない(ex-wbp-anchor)。Weiszfeld は反復が出発点によらず最小点に収束すると述べているが(Wei37 p. 356)、この例のように母点に当たる場合の扱いが要る。この記事では収束を証明しない。
反復で値が下がる様子

母点 $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$ に着いて止まる)

関連する問題

  • 距離を変える。距離の 2 乗の和 $\sum_iw_i\lvert x-a_i\rvert^2$ の最小点は重み付きの重心 $\sum_iw_ia_i/W$ である(勾配 $2\sum_iw_i(x-a_i)$ が $0$ になる点)。平面で $\lvert u\rvert+\lvert v\rvert$ の形の距離($\ell^1$ ノルム)を使うと、問題は座標ごとに分かれ、各座標の中央値をとればよい(BV04 §8.7.1 Example 8.4)。thm-wbp-exist の 3 はその 1 次元の場合にあたる。
  • 点を増やす。与えられた点を結ぶ最短のネットワーク(Steiner木)では、新しく加える分岐点はちょうど 3 本の辺をもち、3 本は互いに $120^\circ$ の角をなす(Steiner木 の定理「最短のネットワークの形」)。3 本の向きの単位ベクトルの和は $0$ なので、thm-wbp-main の 1 により、分岐点は隣の 3 点を母点とする重みの等しい Weber 問題の最小点である。
  • 凸最適化として。$f$ は凸関数なので、局所的な最小は全体の最小であり(凸関数 の命題「凸関数の局所的な最小は全体の最小」)、thm-wbp-main は凸関数の最小点を方向微分係数で判定する一般的な方法の 1 つの例である。

関連項目

参考文献

[1]
Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004, §8.7.1 Linear facility location problems(pp. 432–433)、Example 8.4(p. 433)
[2]
E. Weiszfeld, Sur le point pour lequel la somme des distances de n points donnés est minimum, Tohoku Mathematical Journal (First Series), 1937, p. 355 の定理(最小点の特徴づけ)、pp. 355–356(重心をとる反復とその収束の主張)

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する