不変量と単調量(invariants and monovariants)とは、操作をくり返す問題で、操作をしても値が変わらない量(不変量)と、操作のたびに必ず減る量(単調量)のことである。不変量があれば、その値が出発点と違う状態には、どう操作しても到達できない。ただし値が等しくても到達できるとは限らない。$0$ 以上の整数の値をとる単調量があれば、操作の回数は出発点での値以下で、操作はいつか必ず止まる。状態が有限個なら、必ず増えるか必ず減る実数の量でも止まる。値が負にもなる量、整数でない量、減らないこともある量では止まるとは限らない。板チョコを割る回数、3 色の生き物の色の変化、隣り合う 2 つの入れかえと転倒数などが例である。
前提知識: 数学的帰納法と整列性, 合同式の計算規則
同じ操作を何回もくり返す問題では、「操作の順番をどう選んでも変わらないもの」を見つけると、細かい場合分けをせずに答えが出ることがある。まず 2 つの例を見る。
縦に 3 片・横に 4 片並んだ、合わせて 12 片の板チョコを、1 片ずつばらばらにしたい。1 回の操作では、手元にある 1 つのかたまりを選び、溝に沿ったまっすぐな 1 本の線で 2 つに割る(2 つのかたまりを重ねて一度に割ることはしない)。
図 1 は、上から 1 行ずつ切り離し、切り離した行を 1 片ずつに分ける割り方である。1 行目を切り離すのに 1 回、その行を 4 片に分けるのに 3 回、2 行目を切り離すのに 1 回、分けるのに 3 回、最後に残った 3 行目を分けるのに 3 回かかるので、合計は
$$
1+3+1+3+3=11
$$
回である。図 2 は、いつもいちばん大きいかたまりを選び、長い方の辺をなるべく半分に分ける線で割る、まったく違う割り方である。数えるとこれも 11 回になる。
11 回になる理由は、割る順番ではなく、かたまりの個数にある。最初はかたまりが 1 個で、1 回割るたびに、1 個のかたまりが 2 個になるので、かたまりの個数はちょうど $1$ だけ増える。最後はかたまりが 12 個なので、何回割ったかを $k$ とすると
$$
1+k=12,\qquad k=11
$$
である。どう割っても 11 回で、10 回で済む割り方も 12 回かかる割り方もない。
1 行ずつ切り離してから各行を 1 片ずつに分ける割り方で、番号は割った順を表し、全部で 11 回かかる
いちばん大きいかたまりを長い方の辺がなるべく半分になるように割る割り方で、これも全部で 11 回かかる
黒板に $1,2,3,4$ の 4 つの数が書いてある。1 回の操作では、2 つの数 $a,b$ を選んで消し、代わりに $\lvert a-b\rvert$ を 1 つ書く。数は 1 回ごとに 1 つ減るので、3 回の操作で 1 つだけ残る。
たとえば $1,2$ を消して $1$ を書くと $1,3,4$、次に $3,4$ を消して $1$ を書くと $1,1$、最後に $1,1$ を消して $0$ を書くと $0$ が残る。別の順に、$1,4$ を消して $3$ を書くと $2,3,3$、$3,3$ を消して $0$ を書くと $2,0$、最後に $2$ が残る。
残る数は順番によって変わるが、いつも偶数である。理由は、黒板の数の和の偶奇にある。$a+b$ と $\lvert a-b\rvert$ の差は、$a\ge b$ なら $(a+b)-(a-b)=2b$、$a< b$ なら $(a+b)-(b-a)=2a$ で、どちらも偶数である。したがって 1 回の操作で和は偶数だけ変わり、和の偶奇は変わらない。最初の和は $1+2+3+4=10$ で偶数なので、最後に残る 1 つの数も偶数である。
2 つの例に共通するのは、操作をしても変わらない量(かたまりの個数と操作の回数の差、和の偶奇)に目をつけたことである。この記事では、次の問いに答える。
| 高校の言葉 | この記事の言葉 | 大学の言葉 |
|---|---|---|
| 操作をしても変わらない数 | 不変量 | 軌道の上で一定の関数 |
| 操作のたびに減る数 | 単調量 | ポテンシャル関数 |
| 無限に減り続けることはない | 単調量による停止 | 整列性 |
| 偶奇・余りで区別する | 合同式の不変量 | 剰余類への写像 |
例を一般の形にするため、言葉を決める。
集合 $S$ の元を 状態 という。各状態 $s$ に対して、1 回の操作で移れる状態が決まっているとき、その規則を 操作 といい、$s$ から 1 回の操作で $t$ に移れることを $s\to t$ と書く。1 つの状態から移れる状態は 1 つとは限らず、1 つもないこともある。1 つも移れない状態を 止まった状態 という。
状態 $s_0$ から始めて、$s_0\to s_1\to s_2\to\cdots\to s_n$ と $n$ 回($n\ge0$)の操作で $s_n$ に移れるとき、$s_n$ は $s_0$ から 到達できる という。$n=0$ のときは $s_0$ 自身である。
ex-inv-board では、状態は「黒板に書かれた数の集まり」(同じ数が何個あるかも区別する)で、$\{1,2,3,4\}\to\{1,3,4\}\to\{1,1\}\to\{0\}$ が操作の列である。数が 1 つだけの状態は止まった状態である。
状態の集合 $S$ と操作が与えられているとする。
(1) 各状態 $s$ に値 $I(s)$ を対応させる関数 $I$ が 不変量 であるとは、$s\to t$ となるすべての $s,t$ について $I(t)=I(s)$ が成り立つことをいう。値は数でも、偶奇や余りのような区別でもよい。
(2) 各状態 $s$ に実数 $f(s)$ を対応させる関数 $f$ が 単調量 であるとは、$s\to t$ となるすべての $s,t$ について $f(t)< f(s)$ が成り立つこと(操作のたびに必ず減ること)をいう。操作のたびに必ず増える量も、$-1$ 倍すれば必ず減る量になるので、同じく単調量とよぶ。
単調量を「減るか変わらない量」の意味で使う本もある。この記事では、止まることを示すのに使う「必ず減る」の意味に限る(変わらないことを許すと止まるとは限らない。ex-inv-cx-nonstrict)。
状態の集合 $S$ と操作について、$I$ が不変量であるとする。状態 $s_0$ から到達できる状態 $t$ は、すべて $I(t)=I(s_0)$ を満たす。したがって、$I(t)\ne I(s_0)$ である状態 $t$ には、$s_0$ からどのように操作しても到達できない。
方針:到達するまでの操作の回数 $n$ についての数学的帰納法で示す(数学的帰納法と整列性)。
$t$ が $s_0$ から $n$ 回の操作で到達できる、つまり $s_0\to s_1\to\cdots\to s_n=t$ となる状態の列があるとする。主張「$0\le k\le n$ のすべての $k$ で $I(s_k)=I(s_0)$」を $k$ についての帰納法で示す。
段 1($k=0$)。$I(s_0)=I(s_0)$ なので成り立つ。
段 2($k$ から $k+1$ へ)。$k< n$ で $I(s_k)=I(s_0)$ が成り立つとする。$s_k\to s_{k+1}$ であり、$I$ は不変量なので、def-inv-invariant (1) より $I(s_{k+1})=I(s_k)$ である。帰納法の仮定と合わせて $I(s_{k+1})=I(s_0)$ である。
段 1・段 2 から $k=n$ のときも成り立ち、$I(t)=I(s_n)=I(s_0)$ である。後半は前半の対偶である。$\square$
定理が言うのは「行けない」ことだけである。不変量の値が等しくても、行けるとは限らない(ex-inv-cx-converse)。行けることを示すには、実際に操作の列を作る必要がある。
赤・緑・青の 3 色の生き物が合わせて 15 匹いて、赤が $4$ 匹、緑が $5$ 匹、青が $6$ 匹である。1 回の操作では、違う色の 2 匹が出会い、2 匹とも残りの 1 色に変わる。たとえば赤と緑が出会うと、2 匹とも青になる。全部を同じ色にできるか。
赤・緑・青の数を $(r,g,b)$ で表す。3 種類の出会い方で、数は次のように変わる。
$$
(r,g,b)\to(r-1,\,g-1,\,b+2),\qquad (r,g,b)\to(r+2,\,g-1,\,b-1),\qquad (r,g,b)\to(r-1,\,g+2,\,b-1)
$$
差 $r-g$ はそれぞれ $0$、$+3$、$-3$ だけ変わる。どれも $3$ の倍数なので、$r-g$ を $3$ で割った余りは不変量である(合同式の計算規則)。同じ理由で $g-b$、$b-r$ を $3$ で割った余りも不変量である。
最初は $r-g=-1$、$g-b=-1$、$b-r=2$ で、$3$ で割った余りはどれも $2$ である($-1=3\cdot(-1)+2$ なので、$-1$ を $3$ で割った余りは $2$)。一方、全部が同じ色の状態は $(15,0,0)$、$(0,15,0)$、$(0,0,15)$ の 3 つで、どれも 2 つの数が $0$ なので、差のどれかが $0$ になり、その差を $3$ で割った余りは $0$ である。たとえば $(15,0,0)$ では $g-b=0$ である。thm-inv-invariant により、全部を同じ色にすることはできない。図 3 は、この様子を赤と緑の数の平面で見たものである。
同じ 3 色で、最初が $(4,5,7)$ の 16 匹なら、$r-g$ と $b-r$ を $3$ で割った余りは $2$ と $0$ で、余り $0$ の差がある。この場合は全部を同じ色にできる。最初に緑と青を出会わせて $(4,5,7)\to(6,4,6)$ とし、その後は赤と青を出会わせることを続ける(赤と青が $1$ 匹ずつ減り、緑が $2$ 匹増える)と
$$
(6,4,6)\to(5,6,5)\to(4,8,4)\to(3,10,3)\to(2,12,2)\to(1,14,1)\to(0,16,0)
$$
となり、全部が緑になる。「行ける」ことは、このように操作の列を実際に示して確かめる。
赤・緑・青の数が合わせて 15 の状態を点で表し、赤の数と緑の数の差を 3 で割った余りで色分けした。出発点からの 3 つの矢印はどれも同じ色の点へ向かい、1 色だけになる 3 つの状態は別の色である
図 3 の点の色は $r-g$ を $3$ で割った余りである。出発点 $(4,5,6)$ の色は「余り 2」で、1 回の操作で移れる 3 つの状態 $(3,4,8)$、$(6,4,5)$、$(3,7,5)$ も同じ色である。1 色だけの 3 つの状態(四角で囲んだ点)は「余り 0」の色で、出発点とは色が違う。操作は色を変えないので、四角の点には行き着けない。
同じ考え方は 置換の符号 の 15 パズルの例でも使われている。盤のマスを市松に 2 色で塗ると、駒を 1 回滑らせるたびに「駒の並べ方を表す置換の符号」と「空きマスの色」がどちらも入れかわるので、2 つを組み合わせた量が不変量になり、14 と 15 だけを入れかえた配置には行けないことが分かる。
不変量は「行けない」ことを示す道具だった。次は「いつか必ず止まる」ことを示す道具である。
$3,1,4,2$ と並んだ 4 枚のカードがある。1 回の操作では、隣り合う 2 枚で左の数の方が大きいものを 1 組選び、その 2 枚を入れかえる。そのような組がなくなったら止まる。
図 4 の手順 1 は、$3,1$ を入れかえて $1,3,4,2$、$4,2$ を入れかえて $1,3,2,4$、$3,2$ を入れかえて $1,2,3,4$ と進み、3 回で止まる。手順 2 は、先に $4,2$ を入れかえて $3,1,2,4$、次に $3,1$ を入れかえて $1,3,2,4$、最後に $3,2$ を入れかえて $1,2,3,4$ で、これも 3 回である。
ここで、並びの中で「左にある数の方が大きい 2 枚の組」の個数を数える。これを 転倒数 という。$3,1,4,2$ では、組 $(3,1)$、$(3,2)$、$(4,2)$ の 3 組なので転倒数は $3$ である。図 4 のどちらの手順でも、転倒数は 1 回ごとに $3,2,1,0$ と $1$ ずつ減っている。
3,1,4,2 の並びを隣り合う 2 枚の入れかえで並べ直す 2 通りの手順で、色を付けた 2 枚が次に入れかえる組である。どちらの手順でも転倒数は 1 回ごとに 1 ずつ減り、3 回で止まる
状態の集合 $S$ と操作について、各状態 $s$ に $0$ 以上の整数 $f(s)$ を対応させる単調量 $f$ があるとする。つまり、$s\to t$ ならいつでも $f(t)< f(s)$ である。このとき、状態 $s_0$ から始まる操作の列 $s_0\to s_1\to\cdots\to s_k$ の長さ $k$ は、いつでも $k\le f(s_0)$ を満たす。とくに、移れる状態があるかぎり操作を続けると、どのように操作を選んでも $f(s_0)$ 回以内に止まった状態に着く。
方針:整数の値が「必ず減る」なら「$1$ 以上減る」ことを使い、$k$ 回の操作で $k$ 以上減ることを帰納法で示す。
段 1(1 回で 1 以上減る)。$s\to t$ なら $f(t)< f(s)$ で、$f(t)$ と $f(s)$ はどちらも整数である。整数 $m,n$ について $m< n$ なら $m\le n-1$ である($n-1$ と $n$ の間に整数はない)。よって $f(t)\le f(s)-1$ である。
段 2($k$ 回で $k$ 以上減る)。操作の列 $s_0\to s_1\to\cdots\to s_k$ について、$0\le j\le k$ のすべての $j$ で
$$
f(s_j)\le f(s_0)-j
$$
であることを $j$ についての帰納法で示す。$j=0$ では等号で成り立つ。$j$ で成り立つとすると、段 1 により $f(s_{j+1})\le f(s_j)-1\le f(s_0)-j-1=f(s_0)-(j+1)$ で、$j+1$ でも成り立つ。
段 3(長さの上限)。$f$ の値は $0$ 以上なので、段 2 の $j=k$ の式から
$$
0\le f(s_k)\le f(s_0)-k
$$
である。よって $k\le f(s_0)$ である。
段 4(止まった状態に着く)。移れる状態があるかぎり操作を続けると、段 3 により操作の回数は $f(s_0)$ を超えられない。したがって、ある回数 $k\le f(s_0)$ のところで移れる状態がなくなる。そのときの状態 $s_k$ が止まった状態である。$\square$
段 3 は「$0$ 以上の整数は無限に減り続けられない」ということで、数学的帰納法と整列性 の系「無限降下の不可能性」と同じ内容である。この記事では、回数の上限 $f(s_0)$ まで分かるように、帰納法で直接示した。
ex-inv-sort の操作を、異なる $n$ 個の数の並び $p_1,p_2,\dots,p_n$ で考える。転倒数を $T$ とする。隣り合う $p_i>p_{i+1}$ を入れかえたとき、どの 2 つの数の組で左右の順が変わるかを調べる。
(1) 入れかえた 2 つの数 $p_i,p_{i+1}$ の組は、大きい方が左にある状態から右にある状態に変わる。この組は転倒数に数えられなくなる。
(2) それ以外の 2 つの数の組で、どちらの数も $i$ 番目・$i+1$ 番目にないものは、どちらの位置も変わらない。
(3) 一方の数が $i$ 番目か $i+1$ 番目にあり、もう一方が $k$ 番目($k< i$ または $k>i+1$)にある組では、前者の位置は $i$ と $i+1$ の間で動くだけである。$k< i$ なら入れかえの前も後も $k$ 番目の数が左にあり、$k>i+1$ なら前も後も右にある。左右の順は変わらない。
よって転倒数はちょうど $1$ だけ減る。転倒数は $0$ 以上の整数なので単調量であり、thm-inv-terminate により、どの順に入れかえても $T$ 回以内に止まる。止まった並びでは、隣り合うどの 2 つも左が小さいので、$p_1< p_2<\cdots< p_n$ と小さい順に並んでいる。その転倒数は $0$ である。1 回ごとにちょうど $1$ 減って $T$ から $0$ になるので、止まるまでの回数はどの順でもちょうど $T$ 回である。$4,3,2,1$ なら転倒数は $6$ で、どう入れかえても 6 回かかる。
ex-inv-sort-proof の最後の段落は、ex-inv-choco と同じく「回数がどの順でも同じ」ことを示している。単調量が 1 回ごとに「ちょうど $1$」減るなら、止まるまでの回数が決まる。単調量が「$1$ 以上」減るだけなら、回数は上から押さえられるが、決まるとは限らない。下の ex-inv-signflip がそうである。その前に、状態が有限個のときに使える形を述べておく。
状態の集合 $S$ が $N$ 個の状態からなり、実数の値をとる単調量 $f$ があるとする($f$ は必ず減る量でも、必ず増える量でもよい)。このとき、操作の列の長さは $N-1$ 以下であり、移れる状態があるかぎり操作を続けると、どのように操作を選んでも止まった状態に着く。
必ず減る場合を示す(必ず増える場合は $-f$ を考えればよい)。操作の列 $s_0\to s_1\to\cdots\to s_k$ では $f(s_0)>f(s_1)>\cdots>f(s_k)$ なので、$f$ の値はすべて異なる。値が異なる状態は異なる状態なので、$s_0,s_1,\dots,s_k$ は $k+1$ 個の異なる状態である。状態は全部で $N$ 個なので $k+1\le N$、つまり $k\le N-1$ である。後半は prf-inv-terminate の段 4 と同じである。$\square$
2 行 3 列の表
$$
\begin{array}{|r|r|r|}\hline 1&-3&2\\\hline -2&1&-4\\\hline\end{array}
$$
がある。1 回の操作では、和が負である行か列を 1 つ選び、その行(列)の数の符号をすべて変える。行の和は $0,-5$、列の和は $-1,-2,-2$ で、表の数全体の和は $-5$ である。
和が $s<0$ の行の符号を変えると、その行の和は $-s$ になり、全体の和は $-s-s=-2s>0$ だけ増える。列でも同じである。したがって全体の和は、操作のたびに必ず増える単調量である。一方、表の各数は最初の数か、その符号を変えた数なので、表は $2^6=64$ 通りしかない。cor-inv-finite により、どの順に選んでも 63 回以内に止まる。止まった表では、どの行の和もどの列の和も $0$ 以上である。
実際に進めてみる。2 行目の符号を変えると、2 行目は $2,-1,4$ になり全体の和は $5$、列の和は $3,-4,6$ になる。次に 2 列目の符号を変えると
$$
\begin{array}{|r|r|r|}\hline 1&3&2\\\hline 2&1&4\\\hline\end{array}
$$
となり、全体の和は $13$ で止まる。
最初の表で 3 列目、2 列目、1 列目の順に符号を変えると、全体の和は $-5\to-1\to3\to5$ と増え、表は 1 行目 $-1,3,-2$、2 行目 $2,-1,4$ になる。行の和は $0,5$、列の和は $1,2,2$ で、どれも $0$ 以上なので止まる。止まったときの全体の和は $5$ で、上の手順の $13$ とは違う。どの順に選んでも止まるが、止まるまでの回数(この表では 2 回、3 回、4 回のどれか)と止まった表は選び方によって変わる。
thm-inv-invariant の逆と、thm-inv-terminate の条件を 1 つずつ外すと何が崩れるかを並べる。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 「値が違う」を「値が等しい」に替える | 黒板の $1,2,3,4$ から最後に $6$ | 不変量が等しければ到達できる |
| 値が $0$ 以上 | 整数 $n$ を $n-1$ にする操作と $f(n)=n$ | 止まる |
| 値が整数 | 番号 $k$ を $k+1$ にする操作と $f(k)=2^{-k}$ | 止まる |
| 操作のたびに必ず減る | 2 つの数を入れかえる操作と和 | 止まる |
ex-inv-board の $1,2,3,4$ では、和の偶奇から最後の数は偶数である。$6$ も偶数だが、$6$ は最後に残らない。
理由は別の量にある。$a,b\ge0$ のとき $\lvert a-b\rvert\le\max(a,b)$ なので、黒板の数の最大値は操作で増えない。最初の最大値は $4$ なので、$6$ は現れない。すべての順を調べると、最後に残る数は $0,2,4$ の 3 通りである。不変量は「行けない」ことを示すだけで、値が等しいことは「行ける」ことを意味しない。
状態を整数全体とし、操作を $n\to n-1$ とする。$f(n)=n$ は操作のたびにちょうど $1$ 減るが、$0$ 以上という条件を満たさない。$0\to-1\to-2\to\cdots$ と操作はいつまでも続き、止まった状態に着かない。prf-inv-terminate の段 3 で $0\le f(s_k)$ を使ったところが成り立たない。
状態を $0$ 以上の整数 $k$ とし、操作を $k\to k+1$ とする。$f(k)=2^{-k}$ は正の値で、$2^{-(k+1)}<2^{-k}$ なので操作のたびに必ず減る。しかし操作はいつまでも続く。値が整数でないので、prf-inv-terminate の段 1 の「$1$ 以上減る」が成り立たず、減り方が $\dfrac12,\dfrac14,\dfrac18,\dots$ と小さくなっていく。図 5 の右がこの様子である。状態が無限個あるので、cor-inv-finite も使えない。
左は 0 以上の整数の値をとる量で、1 回ごとに 1 以上減るので 5 回以内に止まる。右は値 2 の -k 乗の量で、正のまま減り続けて止まらない
状態を $0$ 以上の整数 2 つの並び $(x,y)$ とし、操作を $(x,y)\to(y,x)$ とする。和 $f=x+y$ は $0$ 以上の整数で増えることはないが、操作で変わらないので「必ず減る」を満たさない。$(1,2)\to(2,1)\to(1,2)\to\cdots$ と操作は続き、止まらない。「減るか変わらない」量だけでは、同じ状態を回り続けることを防げない。
操作が「元にもどせる」場合、つまり $s\to t$ ならいつでも $t$ から何回かの操作で $s$ にもどれる場合は、「互いに到達できる」という関係で状態が組に分かれる。この組を、群が集合に作用するときの言葉で 軌道 という(群作用)。不変量とは、同じ軌道の上で一定の値をとる関数のことであり、thm-inv-invariant は「値が違えば軌道が違う」と言っている。
逆に、値が等しい 2 つの状態がいつも同じ軌道にあるとき、その不変量は 完全 であるという。完全な不変量が見つかれば、到達できるかどうかは値を比べるだけで決まる。ex-inv-cx-converse の和の偶奇は完全ではない。完全な不変量を見つけるには、不変量が等しい状態へ実際に行けることを別に示す必要があり、一般には難しい。
ex-inv-chameleon の 15 匹の場合、$r+g+b=15$ を満たす状態は $136$ 個ある。$(4,5,6)$ から到達できる状態を計算機ですべて数えると $45$ 個で、これは $r-g$ を $3$ で割った余りが $2$ である状態の個数 $45$ と一致した。この場合は、余りが同じならすべて到達できる。これは有限個の状態を調べた計算の結果で、一般の匹数についての証明ではない。
単調量は、計算の手順が必ず終わることを示すときに使われ、そのときは ポテンシャル関数 ともよばれる。整数の割り算と互除法 の互除法が有限回で終わるのは、割り算の余りが $0$ 以上の整数で必ず減るからで、thm-inv-terminate の特別な場合である。ex-inv-sort の操作は並べ替えの手順の 1 つで、転倒数がその手間を表している。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する