LARSCH の読んだので解説記事を書こうと思ったが、説明が難しくてなかなか書けない…
Monge を理解していきたいので Monge の記事を書きます。
完全に理解しているわけではないのでご了承ください。
もんげ〜 と読みます。嘘です。
実数からなる 行列について考えます。
行列 が Monge であるとは、以下の条件が成り立つことをいう。
上三角 / 下三角 バージョンもよくでてきますね。
行列 は 上三角 ( ならば無効値) であるものとする。このとき、上の条件は以下のように言い換えられる。
これは、無効値の部分を Monge になるように適当な値で埋め、さらに十分大きな定数 を用いて、無効値だった部分 の各要素に を加算すれば、通常の Monge として解釈できます。
つまり、右上や左下の一部分を無効値にしても Monge 性には問題がないということです。
(右下や左上だとうまくいかないことに注意しましょう。)
私なりの理解です。
ちょっと式変形してみましょう。
ここで、 とは、「区間 の左端を固定し、右端を と広げたときのコストの増分」と解釈できます。
も同様に、「区間 の左端を固定し、右端を と広げたときのコストの増分」と解釈できます。
したがってこの式は、「右端を と広げたときのコストの増分」は、元々の区間 が長いほど大きい ことを表しています。
つまり、こうです。
左端を広げる場合も同様です。
とすれば、「左端を と広げたときのコストの増分」は、元々の区間 が長いほど大きい ことも表しています。
つまり、こうです。
これをふまえると、以下の同値な条件がわかります。
行列 が Monge であるとは、以下の条件が成り立つことをいう。
証明
の方を (A) 、 の方を (B) とします。
(A)(B) は明らかなので、(B)(A) を示せばよいです。
(B) を と変形すると、
より です。
また、これを と変形すると、
より が示せました。
定義の が対称な形なので、 を入れ替えれば転置しても Monge であることがわかります。
Monge 行列 から、任意に行を 本以上削除し、任意に列を 本以上削除した行列 を考えると、これも Monge です。
定義が、 から任意の 行 列を取り出すと である という形なので、 から取り出しても成り立ちます。
まずは monotone から定義していきましょう。
行ベクトル に対して、 を なる と定義する。ただし、同じ値が複数ある場合は適切に tie-break し、同じ値が存在しないようにする。これにより なる は一意に定まる。
行列 が monotone であるとは、以下の条件が成り立つことをいう。
行列 が totally monotone であるとは、以下の条件が成り立つことをいう。
部分行列にはいろいろな定義があるみたいなので、明示しておきます。
行列 が行列 の部分行列であるとは、以下の条件が成り立つことをいう。
行を削除しても monotone の条件が緩くなるだけなので、行の削除は考えなくて良いです。
ある列番号の集合 が存在して、 から 以外の列を削除した行列 が monotone でないと仮定します。
すなわち、ある が存在して ということです。
このとき、 と の 列のみを取ってきても、 かつ なので monotone になっていません。
したがって、以下の同値な条件がわかります。
行列 が totally monotone であるとは、以下の条件が成り立つことをいう。
と を比較し、
であった場合 :
であった場合 :
と、連鎖的に大小が定まります。
が Monge 行列のとき、Monge monotone を示します。
Monge なので です。このとき がどうなるかを見ると、
条件 | ||
---|---|---|
なので は monotone です。
が一般の行列のとき、
Monge 任意の 部分行列が Monge 任意の 部分行列が monotone totally monotone
なので、Monge ならば totally monotone です。
の各要素に列番号を付加 :
をして、これの辞書順で大小を比較するようにすると、行の中で tie-break ができます。
が Monge ならば、
より列番号を付加した状態でも Monge で、totally monotone であることがわかります。
totally monotone だけど Monge でないという問題を見たことがないので、totally monotone と Monge は同じものだと思ってしまって良いです。(本当に?)
Monge の条件式 において、行 に定数 を加算しても、
両辺に が足されるだけなので変わりません。同様に、列 に定数 を加算しても、
両辺に が足されるだけなので変わりません。
Monge 行列 に対し、 で定義される行列 は Monge です。
任意の に対して
を示したいです。これは、任意の に対しある が存在して、
と同値です。
のとき、Monge 性より なので、 を選ぶと不等式が成立します。
のとき、Monge 性より なので、 を選ぶと不等式が成立します。
は下に凸なので であり、
より Monge です。
の累積和を とすると、 です。
と は 行 / 列 に加算しているので関係なく、 は の凸関数なので、Monge です。
より Monge です。
同様に でも Monge です。
つの bit で Monge であれば、bitwise AND はその線型結合なので Monge になります。
以下 とします。
より Monge です。
こんな計算をしなくても、「右端を と広げたときのコストの減少分」は、元々の区間 が長いほど小さい を確認すれば