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

グラフによる碁の表現

390
1

グラフ理論

グラフ理論の基本

集合Sn元からなる部分集合全体を[S]nと書く。

形式的に書けば[S]n={XS|X|=n}となる。
グラフとは図1のように「頂点」と「辺」からなる図形である。グラフを考えるうえでは頂点の位置や辺の長さや形は考えず、頂点と辺の接続関係に着目する。具体的な例としては路線図などを考えるとよいだろう。路線図は駅のつながりに注目した図であり、駅がどの路線でつながっているかは正確に表すが、線は現実の線路の形通りではないし駅の位置も現実通りではない。

頂点は辺によってほかの頂点とつながっている。辺は二つないし一つの頂点に接続している。二頂点間に複数の辺があるとき、これを多重辺という。ある辺の両端点が等しいとき、これをループという。図1のe5e6が多重辺であり、e2がループである。多重辺もループもないグラフを単純グラフといい、多重辺やループを含むグラフを多重グラフという。

グラフの例 グラフの例

形式的には、グラフは以下のように定義される。

頂点集合V、辺集合E、接続写像ψ:E[V]1[V]2の組G=(V,E,ψ)をグラフという。

例えば図1で考えると、V={v1,v2,v3,v4,v5}E={e1,e2,e3,e4,e5,e6,e7,e8}であり、接続写像ψψ(e1)={v1,v2}ψ(e2)={v2}ψ(e3)={v2,v3}ψ(e4)={v2,v4}ψ(e5)={v3,v4}ψ(e6)={v3,v4}ψ(e7)={v3,v5}ψ(e8)={v4,v5}
となっている。このとき、辺eEに対してψ(e)={u,v}の元をeの端点と呼び、辺eは頂点u,vに接続する、頂点u,veによって結ばれる、頂点u,vは互いに隣接している、などという。ψ(e)={u,v}であるとき、e=uvと書く。

グラフG=(V,E,ψ)において、相異なるe,eEψ(e)=ψ(e)を満たすとき、e,eを多重辺と呼ぶ。また、eEに対しψ(e)がただ一つの頂点からなるとき、これをループと呼ぶ。多重辺またはループを含むグラフを多重グラフといい、どちらも含まないものを単純グラフという。

単純グラフG=(V,E,ψ)に関して、接続写像ψは単射であり、値域は[V]2となる。よってE[V]2としてしまっても構わない。ここで、e={u,v}Eは頂点uvを結ぶとする。このとき接続写像は辺集合Eから自然に定まるので、単純グラフは頂点集合と辺集合の組G=(V,E)で表す。

グラフGの頂点集合をV(G)、辺集合をE(G)、接続写像をψGで表す。グラフと頂点集合や辺集合を厳密に区別しない場合も多くある。すなわち、vV(G)と書くべきところをvGと書いたりする。

図2の二つのグラフは頂点と辺のつながり方が一緒である。このようなグラフを同型なグラフという。

グラフG=(V,E,ψ)H=(V,E,ψ)に対し、全単射f:VVg:EEが存在し、ψ(e)={u,v}ψ(g(e))={f(u),f(v)}であるとき、GHは同型であるといいGHと書く。

同型なグラフ 同型なグラフ

グラフ{,,ψ}を空グラフという。

集合A,BVに対し、辺e=uvuAvBを満たすとき、これをA-B辺という。

A-B辺全体の集合をE(A,B)と表す。E({u},B)E(A,{v})を単にE(u,B)E(A,v)と書き、u-B辺などという。頂点vに接続する辺全体の集合をE(v)で表す。

頂点vVの隣接点全体の集合をNei(v)と書く。さらに、UVに対して、U内の頂点の隣接点でVUに属するもの全体の集合をNei(U)と書く。

グラフG=(V,E,ψ)G=(V,E,ψ)についてVVかつEEであって、任意のeEに対しψ(e)=ψ(e)となるとき、GGの部分グラフであるといい、GGと書く。

グラフの辺に向きを考えたものを有向グラフという。これに対し、向きのないグラフを無向グラフという。有向グラフでは辺が集合ではなく組で表される。例えば、e1=(v2,v1)である。有向グラフもまた(V,E,ψ)という組で表されるが、接続写像はψ:EV2となる。

有向グラフの例 有向グラフの例

頂点と辺を交互に並べた空でない有限列W=v0e1v1e2ekvkで各ikに対しei=vi1viとなるものを歩道という。またv0vkを端点と呼び、特にv0を始点、vkを終点と呼ぶ。

歩道W=v0e1v1e2ekvkが相異なるi,ikに対しeieiであるとき、これを小径という。さらに相異なるj,jkに対しvjvjであるとき、これを道という。

歩道(小径、道)の辺の本数をその長さという。始点と終点は本質的には違いがないが、これを決めておくことで歩道内の要素に順番が与えられるので便利なことがある。小径は頂点の重複を許す道、歩道は辺の重複を許す道、というとらえ方もできる。

道の例 道の例

道はその頂点の集合V(P)と辺の集合E(P)からなる単純グラフP=(V(P),E(P))ととらえることもできる。道を表すために、その頂点だけを並べることも多い。そのようなときはP=v0vkと書く。

0ijkとする。道P=v0vkの一部を切り取ったものを以下のように表す。

viP=vivkPvj=v0vjviPvj=vivjP˚=v1vk1vi˚P=vi+1vkPvj˚=v0vj1

Pが長さ1の道であるとき、P˚は空グラフである。これはもはや道ではない。

さらに、いくつかの道をつないで新たな道を作るとき、たとえば三本の道の和PxxQyyRが道になるならば、これを単にPxQyRというように表す。

P=v0vkと頂点の集合ABについてV(P)A={v0}かつV(P)B={vk}となるとき、PAB道という。

A-B道全体の集合をPath(A,B)で表す。以前と同様に波括弧を省略しPath(v0,B)などと書いたりする。

グラフG=(V,E,ψ)について、任意のu,vVに対しPath(u,v)となるとき、Gは連結であるという。

直観的に言えばすべてつながっているグラフが連結なグラフである。

極大な連結部分グラフを連結成分という。

縮約

グラフのある辺を縮めて一つの頂点にすることを考えよう。

図5のようにグラフG=(V,E)の辺e=xyEを選ぶ。この辺を新しい頂点veに置き換える。このとき、xまたはyと隣接していた頂点はveと隣接するようにし、どちらとも隣接していない頂点はveとも隣接しないようにする。

縮約 縮約

こうして得られたグラフを、Gから、その辺e=xyを1つの頂点veに縮約して得られたグラフといい、G/eで表す。G/eの頂点集合と辺集合は、形式的には以下のように表される。
V(G/e)=(V{x,y}){ve}E(G/e)={vwE{v,w}{x,y}=}{vewxwE{e}またはywE{e}}
この縮約の操作を何度か繰り返し、Gから新たにグラフXを作ることを考える。各xV(X)に対し、xに縮約されたGの頂点全体の集合をVxとすると、各Vxは連結であり、任意のx,yV(X)に対し、GVxVy辺があることと、xyE(X)となることが同値である。集合VxGの分岐集合という。

グラフ碁とは

いよいよグラフを用いて碁について考える。終局がわかりやすい純碁を基に考える。純碁について詳しくはこちら https://note.com/kurosen0000/n/nb2db700f9b95

まず、碁盤について考えてみよう。碁盤は交点を頂点とみなせばグラフととらえられる。碁盤が多重辺やループを持っていたとしても、碁を打つうえでは特に意味を持たない。これは、石の存在にはどの交点が隣接しているのかさえわかればよいからである。例えば、図6は九路盤に三本の辺を加えているが、それが在ろうとなかろうと黒石は取られている。したがって碁盤は単純グラフとしてしまってよい。

多重辺と石の存在 多重辺と石の存在

さらに、碁盤は連結グラフとしてしまってよい。というのも、ある連結成分に打たれた
石がほかの連結成分に在る石の存在にかかわることはないので、それぞれの連結成分の中だけで考えれば十分だからである。

連結な単純グラフを碁グラフと呼ぶ。

以下、特に断らない限りG=(V,E)は碁グラフであるとする。

碁盤を用意したので、次は石について考えよう。交点は「黒が置かれている」「白が置かれている」「空点である」の三つのうちいづれかの状態にある。よって、例えば黒を-1、白を1、空点を0とすれば、写像f:V{1,0,1}と盤面が同一視できることとなる。つまりf(v)=1のとき交点vには黒石が置かれていると考えるのである。

c:V{1,0,1}を配置}と呼ぶ。配置全体の集合をCで表す。配置cに対し、B:=c1({1})W:=c1({1})N:=c1({0})とし、これを頂点集合Vの分割とみてc=(B,W,N)と表すこともある。

BWNcにより定められることを強調したいときはBcWcNcなどと書いたりする。

例えば図7ではB={v2,v4,v6}, W={v5,v8}, N={v1,v3,v7,v8}となる。

配置の例 配置の例

V=BWNであるから、BWが定まればおのずとNも定まる。そのため、C=(B,W)と略すことがある。

碁盤上で「つながっている」石のかたまりを連という。碁盤と配置の同一視の方法から、ある二つの石が碁盤上でつながっていることと、その二つの頂点が分割集合の同じ連結成分に属していることが同じ意味になる。

v,wVcCとする。vcwであるとはPPath(v,w)s.t.V(P)c1({c(v)})を満たすことである。

c(v)vの石の色を表す。なのでc1({c(v)})vと同じ色の分割集合となる。たとえばvBのときはc1({c(v)})=c1({1})=Bとなる。さらにvwPの頂点V(P)が黒の部分集合であるから、当然wBでありv,wが黒石だけからなる道で結べることを表している。この同値関係による同値類(のうち黒か白に含まれるもの)が連となる。

cを配置とする。cは同値関係である。

任意のvBWに対して、道P=vV(P)c1({c(v)})を満たす。
任意のv,wVをとる。vcwならば、ある道PPath(v,w)=Path(w,v)が存在してV(P)c1({c(v)})を満たす。このときc1({c(v)})=c1({c(w)})であるからwcv
任意のu,v,wVをとる。ucvかつvcwであるならばある道P1Path(u,v)P2Path(v,w)が存在して、V(P1)1({c(u)})V(P2)1({c(v)})を満たす。このときc1({c(u)})=c1({c(v)})であるから、道P=P1vP2V(P)c1({c(u)})を満たす。よってucw

cCvVとする。[v]c:={wVvcw}
V/c:={[v]cvV}E/c:={{[v]c,[w]c}[V/c]2vwE}
とし、G/c:=(V/c,E/c)と定める。

G/cGの縮約となっている。さらに隣接する頂点は違う色からなる交点の集合になっていて、その作り方からG/cは三部グラフになっている。

さて、配置は碁盤に石を置いただけであり、碁の局面としては適しないものも含まれている。具体的に言えば、取られた状態にある石が存在してはいけない。石が存在するための条件はその石のかたまりが空点に隣接していることで、例えば日本囲碁規約の第四条がそれにあたる。

まずは、いわゆる呼吸点を定義する。

配置c=(B,W,N)とする。\ruby[g]{呼吸点集合}{liverty}l:BW2Nを以下のように定める。
l(v)={wNu[v]c s.t. uwE}

式中のu[v]c内の点なので、vと同じ色の石だけでつながっている(もちろんu=vでもよい)。そのuが空点wと隣接しているのでvは盤上に存在できる。l(v)=のときはそのような空点がないのでvは存在できない。

定義より明らかにl(v)Nei([v]c)である。

配置cにおける呼吸点集合であることを強調するときはlcなどと書く。

配置cCが盤面であるとは、任意のvBWに対し、l(v)となることである。盤面全体の集合をCと書く。

例えば、図8は盤面でない配置の例である。白□は呼吸点集合が空になっている。

盤面でない例 盤面でない例

c=(B,W,N)を配置, vNとする. c+v,cvを以下で定める.
Bcv=Bc{v}Wcv=Wclc1({v})Ncv=(Nc{v})(lc1({v})Wc)
Bc+v=Bclc1({v})Wc+v=Wc{v}Nc+v=(Nc{v})(lc1({v})Bc)

cvは配置cにおいてvに黒石を打った場合、c+vは配置cにおいてvに白石を打った場合に対応している。

lc1({v})WcWcの頂点のうち, vのみを呼吸点に持つものの集合である. vを呼吸点に持つ頂点の集合ではない. つまり、lc1({v})Wcは黒がvに打ったときに取りあげられる白石全体の集合である。

図9においてvl1({u})であるが、vl1({u1})である。これはl(v)={u1,u2,u3,u4}{u1}であるからだ。

呼吸点集合 呼吸点集合

定義18ではccvc+vは配置ではあるものの盤面とは限らない。正規の着手では、着手前も着手後も盤面となっている必要がある。

Mを以下で定め, Mの元m=(c,d)を着手という.
M:={(c,d)C×Cv s.t. d=cv}M+:={(c,d)C×Cv s.t. d=c+v}M:=MM+

石を打つ直前の盤面と直後の盤面の組により着手を定義している. Mが黒による着手全体の集合, M+が白による着手全体の集合である. (C,M)は有向グラフになっている。

MM+=である。

MM+とする。このとき、ある(c,d)C×Cが存在して(c,d)Mかつ(c,d)M+を満たす。すると、あるv,wNが存在して、d=cv=c+wを満たす。しかし、明らかにvBcvかつvBc+wであるからこれは矛盾。

(c,d)Mとする。d=cvを満たすvはただ一つ存在する。(c,d)M+のときも同様である。

(c,d)Mとする。このときあるvNが存在してd=cvを満たす。任意のwN{v}に対してBcv=Bc{v}Bc{w}=Bcwであるから、d=cvを満たすvNはただ一つである。

cCvVとする。cvCとなるとき、vcにおいて黒の着手禁止点であるという。また、c+vCとなるとき、vcにおいて白の着手禁止点であるという。

cvc+v)は黒石(白石)を一つ打ち、取れるなら白石(黒石)を取り上げる、という操作である。もしこの結果が盤面にならないとするなら、cにおいて黒(白)はvに打つことができない。

盤面と着手の交互列r=c0m1c1cn1mncnで, 任意のi=1,,nに対してmi=(ci1,ci)となるものを着手列という. 着手列全体の集合をRとする.
このときc0を初期盤面、cnを最終盤面という。

少しもったいぶった言い方になっているが、「普通に」着手を並べれば着手列となる。

ただし、この定義では黒と白の着手が交互に並んでいる必要はない点に注意されたい。もし黒の着手が連続している場合、その間白はパスをしているものと考える。

r=c0m1c1cn1mncnを着手列とする. 任意のi,jに対してcicjならば, rを正規着手列と言う.

これは同一局面の反復を禁ずるもので、いわゆる超劫ルールに相当する。

(C,M)をグラフとしてみたとき、着手列は歩道に、正規着手列は道にあたる。着手列はその盤面だけ、あるいは着手だけを取り出して並べても一意に定まる。

着手列r=c1cn、頂点vに対してr(v):=c(v)と定める。

これに限らず、着手列rをその最終盤面そのものであるかのように記号を濫用する。

着手列rに対して, 得点s:RRs(r)=vVr(v)で定める.

着手列rの最終盤面において、vVが黒石のときr(v)=1であるからvBr(v)=|B|となる。同様に考えてvWr(v)=|W|であり、vNr(v)=0である。したがってs(r)=vVr(v)=|W||B|であり、黒石と白石の個数の差を考えていることがわかる。

rを正規着手列, hRとする. s(r)hのとき純碁的白勝ち, s(r)<hのとき純碁的黒勝ちという.

hはコミといい, 事前に定められる数である. 日本では-6.5になっている.

以上により、(純碁を基にした)囲碁の数学的なルールが完成した。

次回

次回は グラフ碁の死活 です。

参考文献

[1]
R.ディースティル, グラフ理論
投稿日:202232
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

三星聯
三星聯
35
5574
主にフィボナッチ数列とパスカルの三角形の関係について書いていくと思います。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. グラフ理論
  2. グラフ理論の基本
  3. 縮約
  4. グラフ碁とは
  5. 次回
  6. 参考文献