熱帯半環, max-plus 代数

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

max-plus 代数の対称化

半環 \(\Re\) には \(\oplus\) についてマイナスの概念が定義されてないのは不便なので, これを定めるために対称化と呼ばれる操作を行う.

\[\Re^2 = \Re \times \Re\] として, これに次の演算を定める.

とするとやはりこれは(冪等)半環になっている.

\(\Re \to \Re^2\); \(x \mapsto (x, \epsilon)\) は準同型の包含射.

またいくつか追加で演算を導入する.

次のような性質がある:

  1. \(u^\bullet = (\ominus v)^\bullet\)
  2. \(u^\bullet = (u^\bullet)^\bullet\)
  3. \(u (v^\bullet) = (uv)^\bullet\)
  4. \(\ominus (\ominus u) = u\)
  5. \(\ominus (u \oplus v) = (\ominus u) \oplus (\ominus v)\)
  6. \(\ominus (u \otimes v) = (\ominus u) \otimes v\)

そしてバランス関係を使って \(\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\) が入っている.