辞書式順序

提供: miniwiki
移動先:案内検索

数学における辞書式順序(じしょしきじゅんじょ、: lexicographical order. lexicographic-, dictionary-)とはいくつかの順序集合直積集合上に順序を定める方法の一つである。順序集合 AB が与えられた際の直積集合 A × B 上の辞書式順序は

[math]\{(a, b) \le (a', b') \mid (a \lt a') \cup (a = a' \cap b \le b') \}[/math]

として定められる。辞書式順序という名前は、この順序の定め方が辞書における項目の並べ方を一般化したものと見なせることに由来する。つまり、単語(文字の並び)a1a2...ak が別の単語 b1b2...bk の前に現れるのは aibi と異なるような最初の i について、文字の順番の中で aibi より前に現れる場合である。このとき2つの単語は同じ長さ(文字数)であるものと仮定されているが、実際の辞書では普通短い単語の方を後ろにどんな文字よりも先の順番にある空白を付け加えることで単語の長さが揃っているものとして考える、という操作が行われる。

概要

整列順序の入った添字集合 I で添字づけられた全順序集合 (Ai)iI が与えられたとする。このとき、直積集合 iI Ai 上に以下のようにして定められる順序は iI Ai 上の辞書式順序と呼ばれる:

[math](a_i)_i \lt (b_i)_i \iff a_j \lt b_j \quad (j = \min \left\{ i \in I \mid a_i \ne b_i \right\}).[/math]

上の定義は I が特に有限集合 {1, ... , n} の場合にも適用できる。その場合には次のように言いかえることができる。すなわち A1, ... , An を全順序集合とするとき、直積集合 A1 × … × An 上の辞書式順序とは次のようになる: a = (a1, ... , an)b = (b1, ... , bn)A1 × … × An の元とする。

  1. 「先頭の文字」a1b1 が異なり、a1 < b1 ならば a < b
  2. 反対に a1 > b1 ならば a > b とし、
  3. a1 = b1 だったならば a2b2 を同様に比べる、

という操作を繰り返して ab の間の大小関係が決定される。

辞書式順序の重要な性質に整列性を保つというものがある。つまり、順序集合 AB が整列順序集合ならば辞書式順序をいれた直積集合も整列順序集合になる。

辞書式順序の応用

単項式に対する順序

多変数の多項式の集合の中での単項式の集合は各変数に関する単項式集合たちの直積集合と見なすことができる。したがってこの単項式の集合上にそれぞれの変数の単項式に関する順序をもとにした辞書式順序を考えることができる。

社会での応用

辞書式順序の実社会における応用として日付の書式に関するISO 8601規格が挙げられる。この規格では日付は YYYYMMDD(Yは年、Mは月、Dは日を表す)という書式によって表され、単純に文字の並びとして並び替えるだけの整列アルゴリズムで時系列順の並び替えが得られる。ここで、このアルゴリズムが機能するためには年は4つの数字で表され、月や日は2つの数字で表されていなければならないので、たとえば数字1つの日付には0を付け足して '01' などと表すことになる。