
「 連(れん)って何だっけ?」

「 コンピューター囲碁用語だが、個人開発者の間で伝えられるのみで
べつに 用語の統一や 標準化を図る団体はない」

「 ディープラーニングの時代に フロムスクラッチの記事なんて 流行らないのよ」

「 ↑ 例えば 上図のとき」

「 石は タテ、ヨコ につながっていて ナナメ にはつながらない、
と考えたとき、1つの かたまり になっているものを
連 (れん) と呼ぶぜ」

「 英語では String とか Group と呼ぶけど、
正式名称を決める団体は存在しないので 正式名称は存在しないわよ」

「 一番よく真似されたソフトのソースが 事実上の標準になるやつだよな。
デファクトか、デジュールか、で言うと、デファクトの方」

「 連にも いくつか種類があるんだろ?」

「 ↑ 例えば 上図に 連 が何個あるかと言うと」

「 ↑ 3つだぜ。 黒石の連と、白石の連と、空点の連だぜ」

「 盤上は 石 と 空点 で埋め尽くされているとも見えるし、
連 で埋め尽くされているとも見えるな」

「 もし メモリに莫大な余裕があるのなら、
碁盤を持たずに、連のデータベースを持つ という考え方もあるわね」

「 ↑ 初期局面は
19×19の空点の連 とだけ覚えればいいのよ」

「 ↑ だから これを
第1の連 とでも覚えておけばいいでしょう」

「 矩形(Rectangle)で覚えておけば 計算は楽そうに見えるな……」

「 ↑ 初手 J8」

「 第1の連に 穴が開いたぜ」

「 ↑ J8 を 第2の連 として、
第1の連から 第2の連 を引いたところを 1手目の図 にすればいいのよ」

「 ↑ じゃあ 第3の連 って こんな形してんのかだぜ?」

「 データベースに どう格納するんだぜ?
第3の連は 『第1の連 ー 第2の連』 とでも表現するのかだぜ?」

「 そうなるんじゃないの?」

「 ↑ じゃあ こういうケースはどうだぜ?」
「 ↑ 黒石に囲まれた 第5の連 は、黒石の囲いの外側の 第4の連 とは別物だぜ。
第4の連を 引き算で どう表す?」

「 ↑ 第6の、 連とは違う何か を新たに定義すればいいのよ。
そうすれば
第4 = 第1 ー 第6
が成り立つわよ」

「 連とは違う何かを 定義してくれだぜ」

「 じゃあ 吉川竹四郎・著の『コンピュータ囲碁GREAT』 から拝借して
ファミリー(Family) と呼ぶことにしましょう」

「 ↑ 6 や 7 が ファミリー?」

「 そうよ」

「 ファミリーを言語化してくれだぜ」

「 ↑ ある空点の連Aがあり、
それを タテ・ヨコの抜け穴なく囲んでいるのが いくつかの単一色の石の連Bであるとき、
そのAとBの両方を持つ かたまり よ。
ただし、そのBに囲まれたA以外の空点の連も含むわよ」

「 その説明には まぎれ が無いかだぜ?」

「 ↑ 上図の石は 内海を囲んでいるとも言えるし、
外海を囲んでいるとも 言えるのでは?」

「 お父んの考えは正しい」

「 その両方が ファミリー なのだから まぎれはないわよ」

「 ↑ この盤上には どこにも ファミリーが無いぜ!」

「 概念を使いこなしたな」

「 しかし、盤上をスキャンして ファミリーか、ファミリーでないか調べるの
ループ回し過ぎじゃないかだぜ?」

「 初期局面だけ スキャンが必要だけど、
石を打つときは 差分更新 だけでできるんじゃないの? 知らんけど」

「 盤面スキャンが要るなら 連のデータベースのありがたみが 薄まるしな。
連のデータベースだけで できるのだろう」

「 ほんとか。 ソースが置いてあるはずの
引用先の インターネット上のサイトは消えていったし
自分の頭で その実装を考えるか」
連データベース シミュレーション
初期局面

「 ↑ 第1の連」
1手目

「 ↑ J2」

「 このとき、 第1の連 に打ち込んだから、
第1の連から 第3の連 が産まれてきて、
J2の黒石は 第3の連に囲まれているか、囲んでいるか、それともどちらでもないかの
いずれかの可能性があるのよ」

「 ↑ 第1の連が、
すでに 白石と隣接していると既知なら 第1の連とはファミリではないし、
白石とは隣接していないと既知なら 第1の連とはファミリだと 分かるのでは?」

「 なるほど」
2手目

「 E5」

「 確かに一瞬だな」

「 全てのケースで うまく行くか 調べなさい」
3手目

「 H1」

「 ↑ がんばれば いけるのでは?」

「 ファミリーは 算出できるの?」

「 空点の連が 2つに分かれた時に、
その片方が 自分の色の石にだけ隣接していたとき、
その空点の連を含めた ファミリーが誕生するんじゃないかだぜ?」

「
囲んでいるかどうか は関係なくなるのか。
隣接しているやつのそのまた隣接しているやつがどうか だけの関係になるのか」

「 空点の連が 2つに分かれたときに、
その両方が 自分の色の石にだけ隣接していたとき、
二眼 なんじゃないの?」

「 詳しく調べて イケるかどうか 調べたいところだな。
今日はもう寝る」