Open kaorahi opened 10 months ago
どちらも非常に興味深い機能だと思います。
探索部や学習部の可読性が著しく低下したり、破壊的変更になるようなものでなければ基本的にPRは受け付けているので、本機能郡についてPRを出していただけるのであればマージして、次バージョンとしようと考えています。
コードについても細かい体裁やコメント等はこちらで理解しながら追記するので、気軽にPRを出していただければ幸いです。
ありがとうございます. 理解・改造しやすいことが TamaGo の魅力だと思いますから, 機能を欲ばってコードを肥大化させないようにと気にかけています.
アニメーションのほうがやっつけ度が高いので後回しにして, ツリー表示について, まずは実装の方針をご相談願えないでしょうか. 以下の方針に何かコメントがあればお聞かせください.
tamago-dump_tree
というコマンドを受けたら, 現在のツリーの状態を標準出力へ書き出す.また, ツリー表示を作っていたら下記がほしくなりました. こちらは別 PR にします. 本体の PR が形になるまで採否保留でも結構です.
tamago-read_sgf
: load_sgf
の変種で, SGF 文字列自体を引数として受けとる. echo '…' | main.py | …
のような作業がしやすくなります.--strict-visits
: 「1000 visits のツリー」などを描きたいときに, 最善手が確定しても探索を打ち切らないように.実装方針確認しました。ツリー表示についてはその方針で良いと思います。 ツリーのダンプ機能についてはmcts/tree.pyに挿入して、ダンプからのグラフ表示機能は適当なディレクトリ(graphあたり?)を切って、その中に対応するスクリプトを入れるイメージですかね。
指定した回数探索するオプションについては、探索打ち切り機能を入れたタイミングで--visitsオプションの機能が微妙に変わってしまっているので確かにそのようなオプションは必要ですね。
もしかしたら既に実装済みかもしれませんが、まだコマンドラインオプションの追加対応に着手されていないのであれば、こちらで実装してdevelopブランチにpushしようと思います。
tamago-read_sgfコマンドについても特別探索部やNN部に影響はありませんし、純粋に機能が拡張されるだけなのでPRが来たらマージする方向で考えています。
置碁のサポートは多分そんなに難しくないですが、分岐のあるSGFを扱うとなると結構大変かもしれません。分岐のサポートの有無含め、どのように実装するかはタイミングを見て議論しましょう。
あと1点お手数をお掛けしますが、下記機能それぞれでissueを分けて作成していただけないでしょうか。
複数機能に絡むディスカッションは本issueで行いますが、個別機能の議論は各issueで行いたいという狙いがあります。
またPRの際にどの機能かをマッピングできるようにしたいというものあります。
issueの作成、確認しました。 ありがとうございます。
TamaGo を少し改造して MCTS の可視化を試しています. 現状のやっつけ実装からいくらか体裁を整えたら, マージの可能性はございますでしょうか?
教育やデモには良さそうに思われますが, プロジェクトの趣旨に合わなければご遠慮なく却下ください. 概念図ではない「現物」は見たことがなかったので, 個人的にはおもしろいです.
アニメーション
https://github.com/kaorahi/TamaGo/tree/mcts_step
https://github.com/kobanium/TamaGo/assets/38910552/cef351d2-1bdb-4ab5-9967-48cb1927e234
(kaorahi/lizgoban#100 を参考にしました)
ツリー表示
https://github.com/kaorahi/TamaGo/tree/treeviz
100visits
1000 visits
10000 visits (principal variation 周辺のみ)