距離函数

**距離関数**（きょりかんすう、）、**距離計量**（きょりけいりょう）あるいは単に**距離**（きょり、）、**計量**（けいりょう、）は、集合の二点間の距離を定義する関数である。
距離が定義されている集合を**[[距離空間]]**（きょりくうかん、metric space）と呼ぶ。

距離はその集合上の位相（距離位相）を誘導するが、必ずしもすべての位相空間が距離位相によって生成されるわけではない。

ある位相空間の位相を距離によって記述することができるとき、その位相空間は距離化可能  であるという。  
: 計量というときは、距離だけでなくそこから規定される種々の幾何学構造をひとまとまりのものとして考えているという気分が入っている。
: 微分幾何学では計量テンソル (metric tensor) の意味で術語 metric を用いることがある。

## 定義

集合 *X* 上の関数

: d: X \times X\rightarrow \mathbb{R}

（ここで、\mathbb R は実数全体の成す集合）が距離関数であるとは、*x*, *y*, *z* を *X* の任意の元として、以下の条件

# d(x, y) \geq 0 （非負性）
# d(x, y) = 0  \quad \mathrm{if\,\, and\,\, only\,\, if}\quad  x = y （同一律） 
# d(x, y) = d(y, x) （対称律）
# d(x, z) \leq d(x, y) + d(y, z) （劣加法性あるいは三角不等式）
が満たされることを言う（条件 1, 2 をあわせて正定値性ということもある）。非負性をいう条件 1 は他の条件から導くことができる（上の三角不等式で z=x とした式に同一律と対称律を適用すれば非負性が導かれる）ので、距離函数だけを考えるならば条件 1 を必ずしも別項立てる必要はないが、適当な一般化を考えたりする際には分けておくほうが有効なこともある。

これらの条件は直感的な距離の概念が持っている性質を抽出したものである。たとえば、相異なる2点の間には正の距離があり、距離によって識別できないならば同じ点（; 不可識別者同一）である。また、ある点 *x* から別の点 *y* へ行く距離と、辿り方を逆にした *y* から *x* までの距離とは同じである。三角不等式は、ある点 *x* から別の点 *z* へ直接行く場合と比べて、ｘからzへ行くまでに『そこを経由したほうが近くなるような点ｙ』は*X*のどこにも存在しないということである。ユークリッドは「二点間の最短距離は直線である」と述べているが、これはユークリッド幾何学における三角不等式を表したものに他ならない。

## 付加構造を持つ距離
三角不等式よりもさらに強い条件
: d(x, z) \leq \max ( d(x, y), d(y, z) )
が満たされる距離は超距離と呼ばれる。

距離空間 *X* 上の距離 *d* が固有 (intrinsic; 内在的) であるとは、*X* の任意の2点 *x*, *y* が *d*(*x*, *y*) にいくらでも近い弧長を持つ曲線で結ぶことができるときに言う。

加法 + : *X* &times; *X* → *X* の定義された集合上で、距離 *d* が**[[平行移動不変性|平行移動不変]]**であるとは
:d(x, y) = d(x + a, y + a)
が *X* の任意の *x*, *y* および *a* について成立することを言う。

## 例

* 離散距離: if *x* = *y* then *d*(*x*,*y*) = 0.  Otherwise, *d*(*x*,*y*) = 1.
* ユークリッド距離は平行移動不変かつ回転不変な距離である。
* マンハッタン距離は平行移動不変距離である。
* 一般に、ノルムの導く距離（後述）は平行移動不変である。
*  （局所凸）位相線型空間 *E* に半ノルムの列 *(p<sub>n</sub>)<sub>n&isin;*'N**</sub>'' が定義されているとき、<div><math>d(x,y)=\sum_{n=1}^\infty \frac{1}{2^n} \frac{p_n(x-y)}{1+p_n(x-y)}</math></div> は同じ位相を定める距離である（1/2<sup>''n''</sup>  は正数からなる絶対総和可能列 (summable sequence) (''a''<sub>''n''</sub>) に取り替えることもできる)。

== 距離の同値性 ==

与えられた集合 ''X'' に定められた二つの距離 ''d''<sub>1</sub>, ''d''<sub>2</sub> が（位相的に）**同値**（どうち、）であるとは 恒等写像
: id: (''X'',''d''<sub>1</sub>) → (''X'',''d''<sub>2</sub>)
が[[同相]]であることをいう。また、これが[[一様同相]]ならば二つの距離は**一様同値**（いちようどうち、<em lang="en">uniformly equivalent</em>）であるという。

たとえば、''d'' が距離であるとき、min(''d'', 1) と ''d''/(1 + ''d'') は ''d'' に同値な距離を定める。


== ノルムの定める距離 ==

与えられた[[ノルム線型空間|ノルム空間]] (''X'', ||&bull;||) に対して、''X'' 上の距離 ''d'' を
: <math>d(x, y)\,:=\,\rVert x-y\lVert </math>
によって定めることができる。これを、ノルム ||&bull;|| によって**誘導された距離**という。

逆に、[[ベクトル空間]] ''X'' 上に距離 ''d'' が定義されて、以下の条件
* ''d''(''x'', ''y'') = ''d''(''x'' + ''a'', ''y'' + ''a'') （平行移動不変性）
* ''d''(α''x'', α''y'') = |α|''d''(''x'', ''y'') （同次性）
が満たされるとき、''X'' 上のノルムが
: <math> \rVert x\lVert :=d(x,0)</math>
と置くことによって定まる。

同様に、[[半ノルム]]は擬距離を定め、平行移動不変かつ同次の擬距離は半ノルムを誘導する。

== 一般化 ==
距離の公理の条件を緩める方法はいくつかあるので、それぞれ（あるいはいくつかの組み合わせ）に応じて距離空間を一般化する方法も複数存在する。それら一般化された距離の概念についての用語法は完全に標準化されているわけではないことに注意を要する。とりわけ、[[函数解析学]]においてベクトル空間上の[[半ノルム]]から生じる擬距離は、半ノルムから生じる距離だから「半距離」と呼ぶとしても不自然ではないけれども、そうすると[[位相空間論]]における用語法と齟齬をきたす。

=== 拡大距離 ===
文脈によっては、距離函数 ''d'' が値として無限大 (&infin;) をとることを許容する（即ち、二点間の距離は[[拡大実数]]直線における非負値であるとする）こともある。このような距離函数を称して**拡大距離** (''extended metric'') と言う。

任意の拡大距離函数は、適当な方法で（[[連続性]]や[[収斂性]]といった）位相的な概念を変えないという意味で等価な（有限値をとる通常の）距離函数に変形することができる。それを為すには、0 を 0 に写す[[劣加法的函数|劣加法性]][[単調写像|単調減少函数]]を使い、例えば ''d''&prime;(''x'', ''y'') = ''d''(''x'', ''y'') / (1 + ''d''(''x'', ''y'')) や ''d''&prime;&prime;(''x'', ''y'') = min(1, ''d''(''x'', ''y''))) などとすればよい。

距離函数が有限非負実数値をとるという条件は、もっと別の[[有向集合]]に値をとるという方向に緩めることもできる。このような方法で公理を定式化しなおして、[[一様空間]]（異なる点の間での局所位相を比較可能にする抽象構造を備えた位相空間）の構成を導くことができる。

=== 擬距離 ===

空間 ''X'' 上の**擬距離** (''pseudometric'') 函数 ''d'': ''X'' × ''X'' → **R** は距離の公理のうち不可識別者同一の仮定を各 ''x'' に対して ''d''(''x'', ''x'') = 0 を満たすのみに緩める（つまり ''d''(''x'', ''y'') = 0 でありながら ''x'' &ne; ''y'' となることが起こりうる）以外はすべて満足する。即ち、擬距離の公理は

# ''d''(''x'', ''y'') ≥ 0
# ***d*(*x*, *x*) = 0**
# ''d''(''x'', ''y'') = ''d''(''y'', ''x'')
# ''d''(''x'', ''z'') ≤ ''d''(''x'', ''y'') + ''d''(''y'', ''z'').

で与えられる。擬距離は一般化された距離のなかで最もよく用いられる概念である。文献によっては、この一般化された距離の概念を、[[半ノルム]]から導かれることを以て「半距離」と呼ぶ場合があるので注意。

=== 準距離 ===
いくつかの文献では、**準距離** (''quasimetric'') 函数を対称性を除く全ての距離の公理を満足する函数として定義する。即ち、準距離の公理は

# ''d''(''x'', ''y'') ≥ 0
# ''d''(''x'', ''y'') = 0 ⇔ ''x'' = ''y''
# ''d''(''x'', ''z'') ≤ ''d''(''x'', ''y'') + ''d''(''y'', ''z'').

で与えられる。空間 ''X'' 上の準距離 ''d'' に対して、
: ''d''&prime;(''x'', ''y'') = (''d''(''x'', ''y'') + ''d''(''y'', ''x''))
とおいて得られる ''d''&prime; は ''X'' 上の距離を成す。

準距離の概念は実生活の中にありふれている。例えば、山村からなる集合 ''X'' を考え、山村間の移動時間を ''d'' とすると、これは準距離になる（山を登って移動するのは下って移動するよりも時間が掛かる）。他にも、一方通行の路を含むような[[マンハッタン距離]]空間を考えたとき、地点 ''A'' から地点 ''B'' へ行く経路の集合と地点 ''B'' から地点 ''A'' へ行く経路の集合が違うということがありうる。にもかかわらず数学で準距離を扱うことは希であり、その名称も標準的に定まったものと言うわけではない。

実数全体の成す集合 **R** 上の準距離の例が
: ''d''(''x'', ''y'') = ''y'' &minus; ''x'' if ''y'' ≥ ''x'', and
: ''d''(''x'', ''y'') = 1 otherwise.
とおくことによって得られる。この準距離から定められる位相空間は[[ゾルゲンフライ直線]]である。

=== 半距離 ===
空間 ''X'' 上の**半距離** (''semimetric'') 函数 ''d'': ''X'' × ''X'' → **R** は三角不等式を除く全ての距離の公理を満たす。即ち半距離の公理は
# ''d''(''x'', ''y'') ≥ 0
# ''d''(''x'', ''y'') = 0 ⇔ ''x'' = ''y''
# ''d''(''x'', ''y'') = ''d''(''y'', ''x'')
で与えられる。文献によっては、半距離は
: &rho;-三角不等式 (ρ-relaxed triangle inequality): ''d''(''x'', ''z'') ≤ ρ (''d''(''x'', ''y'') + ''d''(''y'', ''z'')) &nbsp;&nbsp;&nbsp; 
: &rho;-不等式 (ρ-inframetric inequality): ''d''(''x'', ''z'') ≤ ρ max(''d''(''x'', ''y''), ''d''(''y'', ''z'')) &nbsp;&nbsp;&nbsp; .
のように弱い形の三角不等式を満足するとすることもある。ρ-劣距離不等式は（公理の条件 1 のもと）ρ-緩三角不等式を導き、また ρ-緩三角不等式からは 2ρ-劣距離不等式が得られる。これら位相的に同値な条件を満足する半距離を「準距離」("quasimetrics") と呼ぶものもあるし、 ("nearmetrics")や、**劣距離** (''inframetrics'') ということもある。

ρ-劣距離不等式は[[インターネット]]における[[往復遅延時間]]のモデルを作るために導入された。三角不等式からは 2-劣距離不等式が導かれ、また[[超距離不等式]]は 1-劣距離不等式そのものである。

=== 前距離 ===
**前距離** (''premetric'') は距離の公理のほとんどを仮定から外したものになっていて、前距離函数は
# ''d''(''x'', ''y'') ≥ 0
# ''d''(''x'', ''x'') = 0
の二つを満足することのみが要求される。これを前距離と呼ぶのは標準的な語法というわけではなく、「前距離」が別の一般化された距離、例えば擬半距離を指したり、擬距離を指したりする場合もある。ロシア語の本の翻訳では（premetric でなく）"prametric" となっているものもある。

前距離 ''d'' から以下のようにして位相が定められる。正の実数 ''r'' を取り、中心 ''p'' の ''r''-開球体を
: ''B''<sub>''r''</sub>(''p'') = {''x'' | ''d''(''x'', ''p'') &lt; ''r''}
で定め、集合 ''S'' が開であるというのを ''S'' に属する各点 ''p'' に対して、中心 ''p'' の適当な ''r'' に対する ''r''-開球体で、''S'' に含まれるようなものが取れることと定義する（一般に、''r''-開球体自身はこの位相に関して開であるとは限らない。実は ''r''-開球体の内部が空となることが起こりうる）。こうして任意の前距離空間が位相空間となり、実は[[列型空間]]になる。

距離に対すると同様に、二つの集合 ''A'', ''B'' 間の距離を
: ''d''(''A'', ''B'') = inf<sub>''x''∊''A'', ''y''∊''B''</sub> ''d''(''x'', ''y'')
で定めると、これは前距離空間の[[冪集合]]上の前距離になる。同じことを（擬半）-距離空間に対して行えば、得られるものは擬半距離（即ち対称的な前距離）になる。また任意の前距離から
: ''cl''(''A'') = {''x'' | ''d''(''x'', ''A'') = 0}
として[[前閉包作用素]] (preclosure operator) ''cl'' が生じる。

=== 擬準距離 ===
接頭修飾辞「擬」、「準」、「半」などは組み合わせて使うことができる。例えば **擬準距離** （これをしばしば片距離 (''hemimetric'') ともいう）は不可識別者同一の公理と対称性の公理を緩めて、単に三角不等式を満足するだけの前距離を意味するものになる。擬準距離空間において ''r''-開球体の全体は開集合の基である。非常に基本的な擬準距離の例は、二点集合 {0,1} に前距離 ''d'' を ''d''(0,1) = 1 および ''d''(1,0) = 0 で入れたもので、得られる位相空間は[[シェルピンスキー空間]]になる。

拡大擬準距離を備えた集合は[[ウィリアム・ローヴェア]]が「一般化距離空間」("generalized metric spaces") として研究した。[[圏論]]的な観点からは、拡大擬距離空間の全体や拡大擬準距離空間の全体は、対応する距離函数を通じて、距離空間の圏のなかで考えるとよく振る舞う。これらの圏では自由に積や余積をとったり商対象を構成したりできるが、ひとたび「拡大」という部分を落とすと有限積や有限余積しかとれなくなり、「擬」という部分を落とすと商が取れなくなる。はこれらの圏論的に良い性質を保持するような距離空間の一般化である。

=== 部分距離 ===
**部分距離** (''partial metric'') あるいは**p距離*' (*pmetric'') の概念は S. G. Matthews が領域理論の脈絡において導入したものである。p距離とは、大雑把に言えば、距離の公理から「同一点の距離はゼロである」という公理を除いたものになっている。各点はゼロでない大きさ（あるいは重み）を持つと言ってもよい。正式には、集合 X 上のp距離とは、非負実数値函数 p\colon X\times X\to \mathbb{R} であって、次の公理を満足するものである：
# p(x, x) = p(x,y) = p(y,y) ならば x = y
# p(x, x) \leq p(x, y)
# p(x, y)=p(y, x)
# p(x, z) \leq p(x, y) + p(y, z) - p(y, y)
三角不等式の最後の項は、p(x, y) + p(y, z) において y の大きさ p(y, y) が重複して測られているので、それを補正するものと考えられる。p距離空間 X には、開球
: B(x;\varepsilon) := \{y \in X \mid p(x, y) 
を近傍基とすることで、自然に位相を定めることができる。この誘導位相に関して X はT0空間を成す。一方でT1分離公理は必ずしも満たさないことが知られている。すなわち X は対称（R0）ではない。このことは、上の開球の定義において、y \in B(x;\varepsilon) と x \in B(y;\varepsilon) が必ずしも同値とならないことに因る。

### 重要な一般化距離
微分幾何学において用いられる計量テンソルは「無限小」距離函数と考えることができる。計量テンソルは適当な可微分性条件を備えた接空間上の内積として定義されるが、本項に言う意味での距離函数ではなく、積分して初めて距離函数が導かれる。計量テンソルを備えた多様体はリーマン多様体と呼ばれる。ここで内積の正定値性の要求を落とせば、同様に擬リーマン計量テンソルが得られ、積分して擬半距離が得られる。これらは相対論の幾何学的研究において用いられ、そこでは「不変距離」("invariant distance") とも呼ばれる。

## 脚注


## 関連項目
* 距離
* 道程あるいは弧長
* 距離空間