§C5.2不変量と単調量

最終更新

不変量とは、許された操作をしても値が変わらない量です。 不可能性を示すときは不変量、操作がいつか止まることを示すときは単調量を探します。

1 例1:市松模様の不変量

8×8の盤から左上と右下の2マスを取り除いた盤を、2マスのドミノで敷き詰めることはできません。盤を市松模様に塗ると、取り除いた2マスは同じ色です。元の盤のマスは黒が32個、白が32個ですが、2マスを取り除いた後は一方の色が30個、他方の色が32個です。各ドミノは必ず黒1マスと白1マスを覆うため、敷き詰めることができたとすると、覆われた黒マスと白マスの個数は等しくなければなりません。この結論は、残りのマスの黒と白の個数が異なることと矛盾します。

面積が同じでも、敷き詰めることができないことがあります。面積の比較だけでは足りないため、上の例では彩色という不変量を導入しています。

2 例2:偶奇不変量

整数の組(a,b)(a,b)に対し、操作(a,b)↦(a+2,b−2)(a,b)\mapsto(a+2,b-2)を繰り返します。a+ba+bは不変で、各成分の偶奇も変わりません。したがって、和が異なる組や偶奇型が異なる組へは到達できません。

操作問題では、まず「変わらない候補」を小さな法で調べます。最初に調べる候補には、mod 2、mod 3、和、積、差、彩色などがあります。

3 例3:単調量による停止性の証明

正整数の組に対する操作が、各回で正整数NNを1以上減らすとします。NNは下から0で抑えられているため、操作は無限には続きません。この議論が単調量の原理です。

無限降下は、停止性とは逆向きに「小さい同型の反例を作る」方法です。不変量・単調量・無限降下を、到達可能性、不可能性、停止性に応じて使い分けます。

4 不変量の探し方

  • 操作が足し引き:和、差、mod を調べます。
  • 交換や移動:彩色、位置の偶奇、順序を調べます。
  • 置換:符号、転倒数、巡回構造を調べます。
  • 数の因数変化:素因数の指数、最大公約数を調べます。

不変量が一つ見つからなければ、複数の不変量を組にしてもよいです。

5 演習

問題 5.1. 8×8の盤から2マスを取り除いた盤について、ドミノで敷き詰めることができるかどうかによって、取り除く2マスの位置を分類せよ。

解答.

ii行jj列のマスを(i,j)(i,j)と書き、i+ji+jが偶数のマスを黒、奇数のマスを白に塗る。上下または左右に隣り合う2マスは異なる色である。取り除く2マスが異なる色であるとき、かつそのときに限り、残りの盤を敷き詰めることができることを示す。

取り除く2マスが同じ色である場合は、本文の市松模様の議論と同じく、敷き詰めることはできない。元の盤の黒マスと白マスは32個ずつであるから、残りの盤では一方の色が30個、他方の色が32個になり、黒マス1個と白マス1個を覆うドミノでは覆うことができない。

取り除く2マスが異なる色である場合に敷き詰めることができることを示す。64個のマスを一周する次の順路を考える。1行目を(1,1)(1,1)から(1,8)(1,8)まで右へ進み、2行目を(2,8)(2,8)から(2,2)(2,2)まで左へ、3行目を(3,2)(3,2)から(3,8)(3,8)まで右へ進む。以下同様に、2行目から8行目までは2列目から8列目までを行ごとに向きを変えて進み、偶数行では左へ、奇数行では右へ進む。8行目は(8,2)(8,2)で終わるので、続けて(8,1)(8,1)へ進み、1列目を(7,1),(6,1),…,(2,1)(7,1),(6,1),\ldots,(2,1)と上へ進んで(1,1)(1,1)に戻る。この順路は、1行目の8マス、2行目から8行目までの2列目から8列目の49マス、1列目の2行目から8行目の7マスを、それぞれちょうど一度ずつ通る。8+49+7=648+49+7=64であるから、すべてのマスをちょうど一度ずつ通る。また、順路で続く2マスは上下または左右に隣り合い、最後のマス(2,1)(2,1)と最初のマス(1,1)(1,1)も隣り合う。

順路に沿ってマスをc0=(1,1),c1,…,c63=(2,1)c_0=(1,1),c_1,\ldots,c_{63}=(2,1)と番号付ける。続く2マスは異なる色であるから、ctc_tがc0c_0と同じ色であることはttが偶数であることと同値である。取り除く2マスをcp,cqc_p,c_q(0≤p<q≤630\le p<q\le63)とすると、二つは異なる色であるからq−pq-pは奇数である。残りの62マスは、次の二つの列に分かれる。

cp+1, cp+2, …, cq−1c_{p+1},\ c_{p+2},\ \ldots,\ c_{q-1}cq+1, …, c63, c0, …, cp−1c_{q+1},\ \ldots,\ c_{63},\ c_0,\ \ldots,\ c_{p-1}

一つ目の列のマスの個数はq−p−1q-p-1で偶数であり(00個のこともある)、二つ目の列のマスの個数は64−(q−p)−1=63−(q−p)64-(q-p)-1=63-(q-p)で偶数である。どちらの列でも、続く2マスは隣り合う(二つ目の列ではc63c_{63}とc0c_0も隣り合う)。各列を先頭から2マスずつの組に分けると、各組は隣り合う2マスであり、ドミノ1枚で覆うことができる。したがって、残りの盤を敷き詰めることができる。

以上より、取り除く2マスの位置は、二つのマスのi+ji+jの偶奇が異なる(異なる色である)場合が敷き詰めることができる場合、偶奇が等しい(同じ色である)場合が敷き詰めることができない場合に分類される。▨

問題 5.2. 3つの整数のうち2つを選び、両方に1を足す操作を繰り返す。3数の偶奇の組に関する不変量を調べよ。

解答.

1回の操作では、選んだ2数の偶奇がともに入れ替わり、残りの1数の偶奇は変わらない。3数のうち奇数であるものの個数をkkとすると、選んだ2数がともに奇数ならkkは22減り、ともに偶数なら22増え、一方が奇数で他方が偶数なら変わらない。したがって、kkの偶奇は操作によって変わらない。3数の和は1回の操作で22増えるので、kkの偶奇は3数の和の偶奇と言い換えることもできる。たとえば、偶奇の組が(偶, 偶, 奇)である3数からは、3数がすべて偶数である状態に到達することはできない。

偶奇の組についての不変量は、このkkの偶奇だけである。実際、偶奇の組のうちkkの偶奇が等しいものは、もとの組とちょうど00か所または22か所で偶奇が異なる組である。22か所で異なる組へは、その2か所の数を選ぶ1回の操作で移ることができる。したがって、kkの偶奇が等しい4通りの偶奇の組はすべて互いに到達することができ、これらを区別する不変量は存在しない。▨

問題 5.3. 正整数の組(a,b)(a,b)に対し、二数が異なる限り、大きい方の数を二数の差で置き換える操作を繰り返す。組の最大値が操作のたびに減ることを示して、操作が有限回で停止することを証明せよ。さらに、二数の最大公約数が操作によって変わらないことを示し、停止したときの組をaaとbbの最大公約数を用いて表せ。

解答.

ある時点の組を(x,y)(x,y)とし、x≠yx\ne yとする。二数の役割は対称であるからx>yx>yとしてよい。操作の後の組は(x−y,y)(x-y,y)である。x,yx,yは整数でx>yx>yであるからx−y≥1x-y\ge1であり、操作の後の組も正整数からなる。またy≥1y\ge1からx−y<xx-y<xであり、y<xy<xであるから、操作の後の組の最大値max⁡(x−y,y)\max(x-y,y)は、操作の前の最大値xxより小さい。

最初の組の最大値をM0M_0とし、tt回の操作の後の組の最大値をMtM_tとする。各MtM_tは正整数であり、上に示したことからMt+1<MtM_{t+1}<M_tである。どちらも整数であるからMt+1≤Mt−1M_{t+1}\le M_t-1であり、ttについての数学的帰納法によりMt≤M0−tM_t\le M_0-tが成り立つ。Mt≥1M_t\ge1であるから、tt回の操作を行うことができたなら1≤M0−t1\le M_0-t、すなわちt≤M0−1t\le M_0-1である。したがって、操作は高々M0−1M_0-1回で停止する。操作が停止するのは二数が等しくなったときであるから、停止したときの組は、ある正整数ggを用いて(g,g)(g,g)と書くことができる。

次に、最大公約数が変わらないことを示す。x>yx>yとし、ddを正の整数とする。ddがxxとyyをともに割り切るならば、x=dpx=dp、y=dqy=dq(p,qp,qは整数)と書くことができ、x−y=d(p−q)x-y=d(p-q)であるから、ddはx−yx-yとyyをともに割り切る。逆に、ddがx−yx-yとyyをともに割り切るならば、x=(x−y)+yx=(x-y)+yであるから、同様にddはxxとyyをともに割り切る。よって、(x,y)(x,y)の正の公約数の全体と(x−y,y)(x-y,y)の正の公約数の全体は一致し、その最大のものである最大公約数も一致する。操作の回数についての数学的帰納法により、どの時点の組の最大公約数も、最初の組(a,b)(a,b)の最大公約数に等しい。

停止したときの組(g,g)(g,g)の最大公約数はggである。したがって、aaとbbの最大公約数をgcd⁡(a,b)\gcd(a,b)と書くとg=gcd⁡(a,b)g=\gcd(a,b)であり、停止したときの組は(gcd⁡(a,b),gcd⁡(a,b))\bigl(\gcd(a,b),\gcd(a,b)\bigr)である。たとえば(12,18)(12,18)から始めると、(12,6)(12,6)、(6,6)(6,6)と進んで停止し、gcd⁡(12,18)=6\gcd(12,18)=6と一致する。▨

前提記事