距離空間

Elementry
最終更新: タグ: Topology

都市を移動したり、曲がいかに似ているかでランク付けしたり、二つの文字列を一文字ずつ比較したりすることを想像してほしい。これらのどの状況でも、裏側では同じことをしている:距離を測ることだ。距離空間(metric space)は、そのアイデアを正確に捉える数学的な方法だ — 物理的な空間に限らず、あらゆる文脈で。

なぜ「距離」にはルールが必要か

距離が何を意味すべきかについて、強い直感がある。考えなくとも、こんなことを期待するはずだ:

  • 距離は決して負の数にならない。
  • 同じ地点にある二つのものの距離はゼロ — そしてそれが唯一のゼロになる方法だ。
  • A から B への距離は B から A への距離と同じ。
  • 中間の地点 C で立ち止まっても、A から B への直接ルートより短くなることはない。

この四つの期待は街の区画についての常識だけではない。どんな「近さ」の概念も一貫した、有用な方法で機能させるために必要な唯一のルールだと判明した。距離空間の理論全体がそれらの上に作られている。

形式的定義

距離空間とは次の組 (X,d)(X, d) だ:

  • XX は任意の空でない集合 — 空間の「点」の集まり。
  • d:X×XRd : X \times X \to \mathbb{R}距離関数(metric、あるいは distance function)と呼ばれる関数で、すべての点の組を実数に対応させる。

距離関数 dd はすべての x,y,zXx, y, z \in X に対して次の四つのルールを満たさなければならない:

ルール 1 — 非負性(non-negativity)。

d(x,y)0(1)d(x, y) \geq 0 \tag{1}

距離は決して負にならない。何かから「マイナス3メートル」離れることはできない。

ルール 2 — 識別不可能者の同一性(identity of indiscernibles)。

d(x,y)=0    x=y(2)d(x, y) = 0 \iff x = y \tag{2}

距離がゼロになるのはその時に限り、二つの点が同じのときだ。任意の異なる二点の間には厳密に正の距離がなければならない。

ルール 3 — 対称性(symmetry)。

d(x,y)=d(y,x)(3)d(x, y) = d(y, x) \tag{3}

距離は双方向だ。xx から yy への距離は yy から xx への距離と等しい。物理的な空間では当然に感じられるが、新しい距離関数を珍しい空間のために発明するときも明示的に確認する必要がある。

ルール 4 — 三角不等式(triangle inequality)。

d(x,z)d(x,y)+d(y,z)(4)d(x, z) \leq d(x, y) + d(y, z) \tag{4}

第三の点 yy を経由する迂回路は、xx から zz への直接ルートと少なくとも同じ長さになる。このルールが距離を不合理で一貫性のない振る舞いから守る。

四つのルールすべてを満たす任意の関数が距離関数と呼ばれるに値する。

三つの具体的な例

実数直線

X=RX = \mathbb{R}(すべての実数)とする。定義:

d(x,y)xyd(x, y) \coloneqq |x - y|

これは二つの数の絶対的な差だ。四つのルールすべてを確認できる:

  1. xy0|x - y| \geq 0 — 絶対値は決して負にならない。✓
  2. xy=0|x - y| = 0x=yx = y のときに限り成立する。✓
  3. xy=yx|x - y| = |y - x|。✓
  4. xzxy+yz|x - z| \leq |x - y| + |y - z| — 絶対値に対する標準的な三角不等式。✓

よって (R,)(\mathbb{R},\, |\cdot - \cdot|) は距離空間だ。これはおそらく最も馴染みのある距離関数だ。

ユークリッド平面

X=R2X = \mathbb{R}^2(実数のすべての組。平面上の点を表す)とする。定義:

d ⁣((x1,x2),(y1,y2))(x1y1)2+(x2y2)2d\!\left((x_1, x_2),\, (y_1, y_2)\right) \coloneqq \sqrt{(x_1 - y_1)^2 + (x_2 - y_2)^2}

これは直線距離のためのピタゴラスの公式だ。確かに以前に使ったことがある。これをユークリッド距離(Euclidean metric)と呼び、この距離関数を持つ (R2,d)(\mathbb{R}^2, d)ユークリッド空間だ。

離散距離関数

あまり明らかでない例を挙げよう。任意の空でない集合 XX を取り、次のように定義する:

d(x,y){0if x=y1if xyd(x, y) \coloneqq \begin{cases} 0 & \text{if } x = y \\ 1 & \text{if } x \neq y \end{cases}

異なる点のすべての組は、その点が実際に何であれ、正確に距離1になる。馬鹿げて聞こえるが、四つのルールすべてを満たす — 一つずつ確認できる — ため、本当に距離関数として認められる。離散距離関数(discrete metric)は「同じか違うか?」が唯一の意味のある問いである空間をモデル化するのに役立つ。

抽象化が報われる理由

なぜこんなに手間をかけるのか、と思うかもしれない。なぜユークリッド距離を使って先に進まないのか?

答えは、この抽象化によって何かを一度証明するだけで、それが自動的にすべての場所に適用されるからだ。点の列がある極限にどんどん近づいていくアイデアを考えてみよう。距離空間では次のように正確に定義できる:

x1,x2,x3,x_1, x_2, x_3, \ldots がある点 LL収束する(converge)とは、すべての ε>0\varepsilon > 0 に対して、ある NN が存在して、n>Nn > N ならすべての点に対して d(xn,L)<εd(x_n, L) < \varepsilon が成り立つことをいう。

平易な言葉で:列の点が最終的にすべて、選んだ任意の距離 ε\varepsilon の範囲内に収まるようになる。この定義は dd だけを使うため、次のすべての場合に同様に機能する:

  • 実数直線上の数の列、
  • ユークリッド平面上の点の列、
  • 編集距離(edit distance)のもとでの文字列の列、
  • 最大差の距離のもとでの関数の列、
  • 他の無限に多くの設定。

四つのルールだけを使って収束の定理を一度証明すれば、存在するすべての距離空間と今後発明されるあらゆる距離空間での結果が即座に得られる。

まとめ

  • 距離空間 (X,d)(X, d) は集合 XX と、四つのルールを満たす距離関数 dd の組だ — 非負性 (1)(1)、識別不可能者の同一性 (2)(2)、対称性 (3)(3)、三角不等式 (4)(4)
  • d(x,y)=xyd(x, y) = |x - y| を持つ実数直線、ピタゴラスの公式を持つユークリッド平面離散距離関数はすべて有効な距離空間だ — 全く異なる設定だが、同じ四つのルールの上に作られている。
  • 抽象的な距離によって収束のような重要な概念を一度だけ定義し、すべての距離空間に同時に適用できる。
  • 距離空間は位相幾何学と数学的解析の根本的な構成要素の一つだ。