この件,そういえば二年前電王トーナメントで立ち話をした記憶がある。これもリアクションが薄くて,あまり気にしたことのある人がいないって感じだった。
我々が二年前に通過した場所だ!!!(ってほど力説する気もないが)
自分のところをの実装を確認したら,読み込み時にgameply読み飛ばしていた。
同一局面はどうなるかと言うと読み込み時にmergeされるわけだ。実に単純。
尚,一意性は保証されているらしい。
sfen文字列は本来は一意に定まる件 | やねうら王 公式サイト
適当な実装なので一手損角換わり等の先後入れ換え型はマッチしていない。
対応してもよかったんだが手抜き感が持ち味だろう。今から対応してもよさそう。
盤面180度回すのも,さほど難しくもないな。
まぁ,定跡生成のルーチンとして利用していたのでファイル形式まで変更するのが手間だったのが一番の理由。読み捨てるのはもっとも楽な対応だったんだろうなぁと当時を振り返る。実装は辞書形式,PythonでもGo言語でも習作レベルで特に問題なかった。
特にGo言語ではgoroutineで呼ぶと読み込み時間中にクライアントノードの初期化等も並行して行っていたので実のところオリジナルより初期化が早かった。
ということで,個人的なコメントとしては生成時には気にしなくていいんじゃないかなぁって感じです。OnTheFlyでなければ読み込み時に混ぜるのは何の苦もないので。
あと,個人的に定跡のテストは部分変更で多パターンを繰り返すので部分変更可能な方がいい。ってことでうちは複数ファイルに分割してる。今のところ3ファイルで並行探索で優先採用がデフォルトかな。もちろん最優先が実験定跡。
この辺は比較的簡単に色々遊べるので試してみるのが一番と思っている。