2022-01-30 (Sun.)
\(\def\R{\mathbb R}\def\Re{\mathbb{R}_{\epsilon}}\def\S{\mathcal{S}}\)
集合 \(X\) とその上の2つの演算 \(\oplus\) と \(\otimes\) について,
が成り立つとき, \((X, \oplus, \otimes)\) を 半環 (semiring) という.
加えて, \(a \oplus a = a\) という冪等性が成り立つ半環を 冪等半環 (dioid) という.
環と同様に, \(\oplus\) を加法の演算, \(\otimes\) を乗法の演算と呼ぶことにする. また \(x \otimes y\) のことを \(xy\) と書く場合がある.
実数とそこに負の無限大 \((-\infty)\) を表す数 \(\epsilon\) を付加した集合 \[\Re = \R \cup \{ \epsilon \}\] これは \(\oplus\) を \(\max\), \(\otimes\) を \(+\) とすることで半環になる. これを 熱帯半環 という. また, max と plus で構成しているので max-plus 代数 という.
付加する数を正の無限大として, \(\max\) でなく \(\min\) を使っても同じ構造が得られるわけだが, こちらは min-plus 代数と呼んで区別する.
演算を確認すると次の通り.
また, 加法は冪等性 \(x \oplus x = x\) を満たす. というわけで \((\Re, \max, +)\) は確かに(冪等)半環.
\(r\) を自然数として, \(r\) 個の \(x \in \R\) の(\(\otimes\) に関する)積を次のように表す. \[x^{\otimes r} = x \otimes x \otimes \cdots \otimes x\] これを \(x \in \Re, r \in \R\) に拡張すると次のように定まる.
普通に \(\Re\) を環のつもりで行列を定義すれば, 演算も定まる. 行列同士の積だけ確認しておくと次の通り.
\(A \in \Re^{m \times p}\), \(B \in \Re^{p \times n}\) について, \[(A \otimes B)_{ij} = \bigoplus a_{ik} \otimes b_{kj} = \max \{ a_{ik} + b_{kj} \mid j = 1,2,\ldots,p \}\]
特に単位行列は \[\left[ \begin{array}{ccc}0 & \epsilon & \epsilon \\ \epsilon & 0 & \epsilon \\ \epsilon & \epsilon & 0 \end{array}\right]\] ゼロ行列は \[\left[ \begin{array}{ccc}\epsilon & \epsilon & \epsilon \\ \epsilon & \epsilon & \epsilon \\ \epsilon & \epsilon & \epsilon \end{array}\right]\]
半環 \(\Re\) には \(\oplus\) についてマイナスの概念が定義されてないのは不便なので, これを定めるために対称化と呼ばれる操作を行う.
\[\Re^2 = \Re \times \Re\] として, これに次の演算を定める.
とするとやはりこれは(冪等)半環になっている.
\(\Re \to \Re^2\); \(x \mapsto (x, \epsilon)\) は準同型の包含射.
またいくつか追加で演算を導入する.
次のような性質がある:
そしてバランス関係を使って \(\Re^2\) の上の同値関係を次で定める.
\(u = (u_1,u_2), v = (v_1,v_2) \in \Re^2\) について, \[u \equiv v \iff u = v \lor ( u \triangledown v \land u_1 \ne u_2 \land v_1 \ne v_2 )\]
これで商集合をとった \[\S := \Re^2 /\!\! \equiv\] を対称化 max-plus 代数という.
この商集合 \(\S\) には大きく三種類の値しかなくて,
これをそれぞれ, 正数, 負数, バランス数と呼ぶ. 特に \([ (\epsilon, \epsilon) ]\) をゼロと呼ぶ.
標準包含射 \(x \mapsto (x,\epsilon)\) を用いて, \(\Re\) と \(\S\) の正数の部分を同一視する. \[\Re \simeq \{ (w,\epsilon) \mid w \in \R \}/\!\!\equiv ~~ (\subset \S)\] マイナス \(\ominus\) を取ることで, \((\epsilon, x)\) は \(\ominus x\) だと言える. ただし, \(\epsilon = (\epsilon, \epsilon) = \ominus \epsilon\) である.
整理すると, \(\S\) にある値は
という3つに区分される. そして引き算の結果はこれと対応していて,
バランス関係 \(\triangledown\) には遷移律こそないが, 良さげな性質がある.
この2つの方程式の解集合は一致する.
ここまで \(\max\) だったものを \(\min\) に置き換えて min-plus 代数 \(\Re\) を考える. \(\epsilon\) の扱いは形式上は変わらない(が気持ちは負の無限大だったものを正の無限大に置き換えている).
エッジに重みのついた有向グラフとは次のようなものである.
この2つ組 \((V,E)\) をグラフという. このグラフの隣接行列とは次のようなものである.
自然数 \(m\) について, \(A^{\otimes m}\) は \(m-1\) 回, エッジを辿っていけるパスの重みの和の最小値を表す. \[(A^{\otimes m})_{ij} = \left( \text{ $i$ から $j$ まで $m-1$ 回エッジを辿って到達できるならその重みの和の最小値 } \right)\] 到達できないとき, 値には \(\epsilon\) が入っている.