藤井聡太くんってどれくらいスゴイの? - 将棋好きのM君に聞いてみた:Day 2 [3/3]

M君からのメッセージ・二日目のラストです。

(前提となる一つ前の記事 → Day 2 [2/3])

■ 将棋ソフト「ボナンザ」

将棋ソフトが強くなったのは、ボナンザと言う機械学習ソフトの功績が大きいです。

この作者は、将棋はアマ15級と強いわけではないのですが、立派な研究者で機械学習を取り入れたのです。それまでは将棋の強いプログラマーが、工夫をして強くしていたのですが、勝手に強くなってくれるので、楽ちんです。

ボナンザは無料で利用できるだけでなく、ソースまで公開されました。

オープンソース・ソフトウェアなんですね。

主にC言語で書かれているようです。性能を求めるなら、やっぱりCですかね。

これで商用の将棋ソフトは壊滅しました。私もそれまでは1万円以上する将棋ソフトをときどき買っていましたが、それも必要なくなりました。

将棋ソフトはCPUの能力が高ければ高いほど同じ時間でもたくさん手が読めるので、藤井五冠は自作でAMDのRyzen Threadripper 3990Xと言う64コアの50万円するPCを使っています。

以下の記事によると、藤井聡太くんが使っているCPUは、現時点での最速MacのCPU「M1 Ultra」と同クラスみたいです。ちなみに、そのMacのお値段も「50万円から」です。

■ 将棋ソフトが「読む」速さ

これがどのくらいのスピードで手が読めるのか、面白い記事があります。

藤井七段は棋聖戦第2局で、3一銀と打つ筋悪な受けの手を指します。この手はアマ四段の私が見ても、それはないだろ、と思ってしまう筋悪な手です。普通のプロなら考えすらしません。

この手、将棋ソフトも最初は第三候補手だったのですが、読む手数が6億手を超えると最善手と表示され、藤井七段は6億手の読みの手を指した、と評判になりました。

この「評判になった」記事例として、M君は以下の2つを挙げてくれています。

この記事の中で興味深いのが、6億手読むと言うのは28手先の局面だそうで、また3990Xだとこれだけ読むのにたったの10秒だとか。

単純計算で今のうちのPCだと5分位掛かりそう。6億の28乗根を計算すれば、1局面当たりの分岐が分かるのだけれど、2^30≒10億だから、1局面に約2手の候補手を読んでいる計算。

ただ、最初の候補ベスト10に入ってなかった手が、後から候補に入ってくることも多々あるから、単純に2手に絞っているわけでもなさそう。

このあたりを律儀に計算してくれるところが、さすがM君。

■ プロ棋士は、何手「先」まで読んでいる?

ところで、プロが実戦で何手先まで読んでいるのか?と言うと、これはコアな将棋ファンでも意外と知りません。

なぜなら、マスコミなどの一般人は「何手先まで読んでいるか?」とは質問せず「何手くらい読んでいるのか?」と聞いてしまうため、棋士も探索木の枝葉の数で数百手と答えてしまいます。

で、これまた素人がこれを勝手に「数百手先まで読んでいる」と誤解して伝わることがあります。

将棋の平均手数が120手ほどですから、数百手先が読めるわけありません。

なるほど。知りたいのが探索の「深さ」だったら、何手「先」まで読んでいるか?と聞かなければならないんですね。

実際に何手先まで読んでいるかと言えば、通常のトッププロがタイトル戦で読めるのは高々25手前後とのことで、それを藤井さんは30手ほどまで読んでいるらしいです。その差も大きいです。

確かに。他のトッププロよりも更に5手先を読むということは、上記のM君の計算例「1局面に約2手の候補手」という数字を使うと、

2*2*2*2*2 = 32(倍)

の分量を読んでいる、ということですよね。「小6から詰将棋日本一」のパワーがフルに発揮されているのでしょう。

私などは、5~7手前後で、終盤手が限定されてくると10手くらいですかねぇ。まあ桁が違いますね。

将棋ソフトの話は、また詳しく書きますが、ボナンザ以降は何と全幅検索です。そんなのすぐに計算量が莫大になって破綻しそうですが、そこに簡単な評価関数をうまく取り入れています。

AIに興味がある私としては、この評価関数についてもっと知りたいところです。

詳細はまた続きます。

続くんかい! (← 嬉しい悲鳴)

Comments