有向グラフ碁

普通の囲碁で可能な操作を定めている原理を述べる。盤面を無向グラフとみなす。頂点の状態とは、空点であるか 黒石がおかれているか 白石がおかれているか ということである(他にも色があってよいが、色の種類は先に決めておく必要がある)。盤面は、いつも下記の原理を満たしていなくてはならない。

任意の頂点pについて、ある頂点qがあって、下記の性質すべてを満たすqからpへの歩道が存在する。
1. 点qは空点である。
2. 歩道のすべての点は、空点であるか、点pと同じ状態である。

あ、頂点p_{0}から頂点p_{n}への歩道というのは、点の列p_{0}, ... , p_{n} (n \ge 0) で、0\le i < n なる任意のiについて、p_{i}p_{i+1}が隣接しているようなものだと思ってください。

この原理に反する石は、打つことを許されなかったり、盤面から排除されたりする。そういうふうに囲碁のルールはできている。どんな無向グラフでも囲碁ができることは、なんとなくわかる。(ただし、頂点集合が有限でない場合には、終わらないこともある(終わることもある)。)



ぴらぴらの提唱する有向グラフ碁の原理は下記の通りである。

任意の頂点pについて、ある頂点qがあって、下記の性質すべてを満たすqからpへの有向歩道が存在する。
1. 点qは空点である。
2. 有向歩道のすべての点は、空点であるか、点pと同じ状態である。

原理に反する石を排除するように、ルールを構成することは容易である(普通の囲碁と変わらない)。すなわち

  • 石が置かれた直後に、原理に反する石はすべて盤面から取り除かれる
  • 置いた直後に取り除かれるような石は置けない
    • ただし、自分が石を置くことによって相手の石と自分の石が同時に原理に反する場合、原理に反した自分以外の石を取り除くことによって自分の石すべてが原理を満たすようになるならば、置いてよい。


ゲームのルールというのは、許される操作がわかったら、あとは勝ち負けの決めかたがあればよい。普通の囲碁のルールを有向グラフに拡張しようとするとわけがわからなくなりそうであるけれども、世の中にはすぐれた人がいるもので、純碁という囲碁の定式化がある。これによれば、

  • 終局: 両パス終局
  • 勝負確認: 終局時点の盤上の石を数え、多い方の勝ち

ということである。


あとは、参加人数と石を打つ順番と盤面の形と石の初期配置だけ決めれば、ゲームになっている。お試しあれ。なお、好みによっては下記のルールを追加してもいいと思う。

  • 盤面を以前とまったく同じ状態にしてはならない。


念のために言っておくが、普通の碁は、この有向グラフ碁の特殊な場合に、ちょっと慣習的な補正を加えたものである。普通の碁盤の線を\leftrightarrowだと思えばよい。囲碁を打つプログラムを考えるならば、有向グラフ碁について最初に考えると、他の人達とはひとあじ違うプログラムができるかも知れない。


謝辞: 「有向グラフには拡張できないの?」というツッコミをくれたこんさまであった。