将棋プログラミング

将棋に関するソフト開発のノウハウ等。

AlphaZero の棋譜をデータベースで解析する

AlphaZero の棋譜が公開されました。
この棋譜を柿木将棋IXに付属している棋譜データベースで解析する方法を説明します。

1.AlphaZero の棋譜の入手

次のサイトの "100 AlphaZero-Elmo games (.zip file)." をダウンロードし、展開します。拡張子が .csa のCSA形式の棋譜ファイルが100局あります。
deepmind.com

2.棋譜データベース KifuBase の入手

柿木将棋IXは、Vector で1080円で販売しています。
www.vector.co.jp
また、今回の棋譜は100局なので、次で公開しているフリー版でも使えます。フリー版でも1000局の棋譜を登録できます。
将棋棋譜データベース KifuBase

3.棋譜データベース KifuBase を起動し、AlphaZero の棋譜を登録する。

(1) 棋譜データベース KifuBase を起動する。

f:id:ykakinoki:20181212071844p:plain
KifuBase の起動

(2) AlphaZero の100局の棋譜を登録する。

表操作/フォルダ指定追加のメニューを実行します。
フォルダで、AlphaZero の100局の棋譜のフォルダを指定します。
種類で、CSAを指定します。

f:id:ykakinoki:20181212072132p:plain
AlphaZero の100局の棋譜を登録する。
次のように、登録されます。
f:id:ykakinoki:20181212072432p:plain
登録後の表示

(3) データベースを保存する。

ファイル/名前を付けて保存のメニューを実行します。
例えば、"AlphaZero100"という名で、バイナリ形式で保存します。

f:id:ykakinoki:20181212072840p:plain
データベースを保存する。

4.初手を分析する。

(1) 初期配置の局面検索

柿木将棋Ⅸを起動し、ツール/棋譜データベースで局面検索のメニューを実行します。

f:id:ykakinoki:20181212073840p:plain
棋譜データベースで局面検索
KifuBase では、次のように表示されます。
f:id:ykakinoki:20181212073950p:plain
局面検索
OKを押すと、初期配置の局面検索が実行され、次の手の欄に、初手が表示されます。
なお、表示/表示項目のメニューで、棋戦等の不要な項目は表示しない設定にしています。

f:id:ykakinoki:20181212074230p:plain
初期配置の局面検索結果

(2) AlphaZero が先手

表操作/条件検索のメニューを実行します。
先手を"AlphaZero"とし、OKを押します。
ツール/次の手分析のメニューを実行します。

f:id:ykakinoki:20181212074926p:plain
AlphaZero が先手の場合の初手

AlphaZero が先手の場合、初手は▲2六歩と▲7八金だけで、49勝1敗です。

(3) AlphaZero が後手

表操作/全棋譜表示のメニューを実行し、条件検索で後手を"AlphaZero"とします。

f:id:ykakinoki:20181212075335p:plain
elmo が先手の初手
elmo が先手の50局では、初手がすべて▲7六歩で、elmoの9勝41敗です。

1局を選択し、ツールバーの"次"を押し、ツール/次の手分析のメニューを実行します。

f:id:ykakinoki:20181212075636p:plain
AlphaZero の2手目
AlphaZeroの2手目は、△8四歩が41局、△3二金が9局です。

(3) AlphaZero の成績

ツールバーの"全"を押し、ツール/対局者の統計計算のメニューを実行します。
対局者に"AlphaZero"を入力します。

f:id:ykakinoki:20181212080021p:plain
AlphaZero の成績

AlphaZero は、90勝10敗、平均手数が 204.180 とかなり長いことがわかります。

(4) その他の機能

その他、棋譜形式を一括で KIF に変換したり、戦型を自動認識し、戦型を分析したりもできます。