3
大学数学基礎解説
文献あり

ライツアウトパズルを使って単純無向グラフにおけるマッチングの総数の偶奇を求める方法

160
0

はじめに

ある単純無向グラフGが与えられたとき,Gのマッチングの総数の偶奇を求める方法を見つけたので紹介します.

本文

定義

本記事で用いる定義です.

単純無向グラフ

頂点集合VG, 辺集合EG{{a,b}a,bVG,ab}の組を単純無向グラフとし,G=(VG,EG)で表す.

グラフ理論におけるマッチングの定義は以下の通りです.

マッチング

グラフGにおけるマッチングとは,集合MGEGであって,MGのどの2つの元も,互いに頂点を共有していないものである.

グラフGにおけるマッチングの総数は,トポロジカル・インデックス(細矢インデックス)という名前がついています.

トポロジカル・インデックス

Gにおけるトポロジカル・インデックスZGを以下で定義する.
ZG=k=0n#MG,k
ここで,nGの頂点数であり,
MG,kGにおけるマッチングMGであって#MG=kであるもの全ての集合である.

主張

先に結論から述べてしまいます.

単純無向グラフGの隣接行列をAとする.このとき,以下が成立する.
ZGdet(A+I)(mod2)

基本的に,ZGそのものを求めるためには膨大な計算量を必要とするため,多項式時間では求めることができません(おそらく...というかそうじゃないとこの記事の意味がなくなるので困る)
しかし,この主張を用いることでZGの偶奇であればO(n3)で求めることができます.

ライツアウト

ライツアウトとは

いきなり何?となるかもしれないですが,ここで,ライツアウトパズルについて説明します.
見たことある人も多いと思います.正方形の盤面があり,各マスが白黒で着色されています.マスを1つ選んで操作を行うと,そのマスと,隣接しているマスの色が反転します,マスを上手く選び操作を施して,全てのマスの色を白色にするとクリアとなります.
ライツアウトの操作の例 ライツアウトの操作の例
このライツアウトですが,常に解くことができるわけではありません.
たとえば,3×3,7×7の盤面ではどの盤面からでもすべてのマスを白色にすることができるのですが,4×4,5×5の盤面では解けない配置が存在します.

ライツアウトの盤面を一般化する

単純無向グラフに色の情報を足したライツアウトグラフ(本記事独自の呼び方です)を以下のように定義します.

ライツアウトグラフ

頂点集合をVGL, 辺集合をEGL{{a,b}a,bVGL,ab}とする.
また,関数ColGL:VGL{0,1}によってVGLの各元が値を持っている.
このとき,ライツアウトグラフGLGL=(VGL,EGL,ColGL)で表す.
ライツアウトグラフ全体の集合をGとする.

ライツアウトグラフの各頂点に対する操作を次で定義します.

ライツアウトグラフの頂点に対する操作

また,vVGLについて定まる関数Swapv:GGを以下で定義する.

  • Swapv(GL)=Swapv((VGL,EGL,ColGL))=(VGL,EGL,ColGL)
  • ColGL(v)={0if  ColGL(v)=11otherwise
  • for each uVGL s.t. uv,{u,v}EGL:ColGL(u)={0if  ColGL(u)=11otherwise
  • for each uVGL s.t. uv,{u,v}EGL:ColGL(u)=ColGL(u)

長ったらしく書いていますが,要は1つ頂点を選んだら,その頂点自身と,頂点と隣接している頂点の0,1を入れ替えると言っているだけです.
この操作は適用させる順番は関係なく,同じ頂点へ2回操作することは操作していないことと同じです.まぁ当たり前ですね.
もう一つ,ライツアウトグラフの解も定義しておきます.

ライツアウトグラフの解

G={(V,E,Col)GvV,Col(v)=0}とする.このとき,
XGL={vi0im#VGL,Swapv1Swapv2Swapvm(GL)G}GLにおける解とする.
ただし,条件を満たすようなv1,v2,vmが存在しないときは,XGL=とし,GLは解を持たないものとする.

すべての頂点の持つ値を0にできたら勝ちってことです.
ようやくライツアウトグラフについての定義がおわりました.
ライツアウトグラフの例を1つ載せます.
GL=(VGL,EGL,ColGL)VGL={1,2,3,4}, EGL={{1,2},{2,3},{3,4},{3,1}},ColGL(1)=0, ColGL(2)=0,ColGL(3)=1, ColGL(4)=0
としてみます.
各頂点が持っているColGLの値について0を白,1を黒にして描画します.
ライツアウトグラフの例 ライツアウトグラフの例
この場合のGLにおける解は存在して,XGL={1,3,4}です.
正方形の盤面におけるライツアウトの自然な拡張となっていると思います.
グラフ版のライツアウトパズルの簡易的なエディタを作成しましたので載せておきます.興味のある人は触ってみるとちょっと楽しいかもしれないです.
グラフ版ライツアウト

ライツアウトグラフが常に解を持つかの判定

GLGについて,GL=(VGL,EGL,ColGL) とします.このとき,ColGLの値の組み合わせの違いとして考えられる 2#VGL個のライツアウトグラフの集合をGLとします.
GLの要素の中には,少なくとも1つは解をもつようなものが存在することは自明でしょうが,VGL,EGLによっては,GLの要素すべてが解を持っているような場合もあります.
与えられたライツアウトグラフが,頂点の持っている値にかかわらず常に解を持っているための条件を求めてみましょう.
ここからの演算は特に断りのない限り,F2上で行います.
また,簡単のため,GLの頂点数をn:=#VGLとします.
GLの各頂点について,ColGL(vi)の値を並べたn次ベクトルを考え,このベクトルをGLとします.
また,Swapviも同じように,色を変える頂点に対応する成分を1,それ以外を0とすれば,n次ベクトルが作れます.このベクトルをSviとします.
すると,GL+Sviによって得られるベクトルも,Swapvi(GL)の各頂点におけるColSwapvi(GL)の値を並べたn次ベクトルとなっています.
このことから,連立方程式
GL+i=1nxiSvi=0
を,未知数x1,x2,,xnについて解くことで,ライツアウトグラフの解を求めることができます.
また,この連立方程式が解を持たなければ,ライツアウトグラフの解は常に存在するとは言えないため,与えられたライツアウトグラフが,頂点の持っている値にかかわらず常に解を持っているための条件は,
det(S)=1
となります.ただし,SSv1,Sv2,,Svnを並べたn次正方行列です.
隣り合う頂点に対応する成分を1にしていたため,Sは対称行列となります.
先ほど例に挙げたグラフで考えてみます.
GL=(0010),S1=(1110),S2=(1110),S3=(1111),S4=(0011)
であるため,
S=(1110111011110011)
です.この行列はGLの隣接行列に単位行列を足したものです.
また,GLのすべての頂点に1つずつループを付加したグラフの隣接行列としてみることもできます.
ここで,det(S)の定義を思い出します.F2で考えていたので,置換の符号は無視してよく,
det(S)=perm(S)=σSi=1nS(i,σ(i))
です.ただし,Sn次対称群,S(i,j)成分をS(i,j)としました.
行列式は,Sの成分から1を選んでかけるような置換の選び方の個数として解釈できます.
さらに,Sは対称行列であり,対角成分について非対称な成分の選び方は偶数個存在します.
したがって,対角成分について対称な成分の選び方のみをカウントすればよいです.

マッチングとライツアウト

マッチングの話に戻ります.先ほど例に挙げたライツアウトグラフと同じ頂点と辺の組を持つ単純無向グラフGを例として話します.
G=(VG,EG)VG={1,2,3,4}, EG={{1,2},{2,3},{3,4},{3,1}}
ここで,GのマッチングMG
MG={{1,2},{3,4}}
とします.この辺を赤く着色して次に示します.
マッチングの一例 マッチングの一例
MGの各要素について,辺で結ばれている頂点の組を入れ替えるように置換σを定めます.
この例だと
σ=(12342143)
です.この置換によってえらばれるSの要素は
S=(1110111011110011)
であり,対角成分について対称な選び方となっています.
一般に,各MGに対して,異なるσが定まり,それらは全て対角成分について対称な選び方を与える置換となります.
逆に,対角成分について対称な選び方を与えるσそれぞれに対して,異なるMGが定まります.
したがって,
det(S)=#MG=ZG
です.
Gの隣接行列をAとすると,S=A+Iであったため,冒頭の主張である
ZGdet(A+I)(mod2)
が示せました.

おわりに

いかがでしたでしょうか.前回の記事で正方形の盤面におけるライツアウトについて書きましたが,より抽象的にして遊んでいた結果,今回の性質を発見するに至りました.これが有名事実だとしても,ZGの値を多項式時間で求める方法があったとしても,まぁ楽しかったので結果オーライということで...

(こんな記事書いてないで本当は卒業研究を進めた方が良い)

今日はもう寝ます.おやすみなさい.

参考文献

[1]
細矢治夫, トポロジカル・インデックス フィボナッチ数からピタゴラスの三角形までをつなぐ新しい数学 改訂版, 日本評論社, 2021
投稿日:2024618
更新日:27日前
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

RusK
RusK
9
1163
さくさく

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 本文
  3. 定義
  4. 主張
  5. ライツアウト
  6. マッチングとライツアウト
  7. おわりに
  8. 参考文献