人間に勝つコンピュータ将棋の作り方


人間に勝つコンピュータ将棋の作り方


「人間に勝つコンピュータ将棋の作り方」(asin:4774153265)のほう、ようやく読み終わった。


この本は読み物の側面が強いのだが、習甦がどんな評価関数にしているか詳しく書いてあったりして、コンピューター将棋開発者にとっても他にはない貴重な資料だと思う。


…とだけ書いてもコンピューター将棋開発者以外には何のことだかわからないと思うので以下に少し捕捉する。


コンピューター将棋開発者の間では、2011年まではBonanzaの3駒の位置関係による評価関数が決定打と思われていた。極めて単純な(計算しやすく差分計算もしやすい)評価関数で、かなりうまく局面を評価でき、実際強かった。


一方、GPS将棋は評価関数を非常に凝った形にしていたが、長年、開発の手間のわりにはなかなか強くならなかった。評価関数の計算に時間がかかるようになるとその分、単位時間に探索できる局面の数が減るので単に3駒関係よりうまく評価できる評価関数を設計すれば良いというわけでもなく、難しいものがあった。


しかし、2012年5月の世界コンピュータ将棋選手権においては決勝8チームのうち6チームはBonanza型の評価関数ではなく独自のものを採用していた。2012年はコンピューター将棋開発者がBonanza型の評価関数に別れを告げた年だと言えるだろう。


では、2012年の選手権で決勝に残ったソフトのうちBonanza型の評価関数以外ではどのようなものがあるのだろうか。


GPS将棋 → オープンソースになっているのでソースコードを読めばわかる
激指 → 商用ソフトなので評価関数は秘密
YSS → 商用ソフト(AI将棋)なので評価関数は秘密
ツツカナ → 非公開(?)
習甦 → 非公開(?)
Blunder → C#版のソースコードは公開されているので推測はつく


の6ソフトのうち、激指とYSSは商用ソフトなので公開はされないとして、習甦とツツカナに大きな関心があった。なので、本書において習甦の評価関数についてベールが剥がされたことには特に大きな意義があるわけだ。