sakurapyon’s blog

sakurapyon’s blog

将棋プログラムを理解するために1

書籍を読むとなんとなくわかった気になるんだけど、実際に実装しようとするとさっぱりわからなくなる過去の私へ。

わかりやすい・短いソースコードを読もう

bonanzaのソースは膨大なマクロや背景の考え方が理解できてしまえば簡単なんだろうけど、そこまで到達していない人が読むと挫折すること請け合い。短くて・シンプル・そこそこ強いソースを読むことがお勧め。
(歳月を経て長くなったプログラムよりも 比較的新しいプログラムが狙い目?)

  • suzumer.web.fc2.com/simk.htm
    • 駒得だけ・非Bitboard版のクマ将棋バージョン1がわかりやすい。基本となる探索はBonanzaを元にしているため、これが理解できればBonanzaも理解しやすくなる。
    • 前もって膨大なテーブルを作成することで、探索時の作業を減らして高速化している

「入門者」に支持されるような使いやすさと、「ズブの素人」に支持される使い勝手は全く異なる。入門者は見通しの良さを好むけれど、素人は試行錯誤がやりやすい環境を好む。見通しの良さは、どこに何があるのかが分かっている程度の理解があって、はじめて役に立つ。そもそもそこに到達していない初心者にとっては、全部見せてくれることのほうが、よほど大切なことになる。

ところで、将棋+機械学習の短いソースってどこかにないかなあ…