ゲームの進行具合を表す指標として「進行度」という量が用いられることがあります。この量は、通常、ゲーム開始時には0、終了時には1になるように規格化され、また、ゲームの進行に合わせて増加するように定義されます。例えば、サッカー等のように時間によって終了するゲームであれば、時間が進行度に対応しますし、野球等のようにターン回数によって終了するゲームであれば、回数が進行度に対応することになります。同様に、バレーボールであれば点数が、マラソンであれば走行距離が進行度に対応します。
一般的に、進行度は重要な情報であり、選手は進行度によって戦略を変えますし、観衆も進行度を参照しながら観戦を楽しみます。テレビやラジオ等の中継においても、まずは進行度(に対応する情報)、次に形勢という流れで実況されることが多いかと思います。
将棋の場合には、手数が進行度に対応すると考えられます。例えば、100手で終了する対局においては、1手進むごとに進行度が1%ずつ進むと考えるわけです。この「1手進むごとに終了手数分の1だけ進行する」という進行度の定義はシンプルかつ明瞭であり、終局手数さえ分かれば、誰でも簡単に計算することができます。
ただし、この定義には明らかな問題点があります。それは、将棋はいつ終局するか分からないため、対局中は終局手数が分からないということです。つまり、この定義によれば、進行度が確定するのは終局後であり、対局中の進行度は推測するしかないということになります。
実はこの問題は、延長や早期終了がありうる野球やサッカー等でも同じように存在していたのですが、その際には延長等はあくまでも特殊条件下における例外であるということで、あまり気にする必要はありませんでした。その点、将棋は、規定の終局手数が存在しないため、対局中に進行度を推測するのが難しいタイプのゲームになっているわけです。
「対局中に進行度を推測する」というのは、言い換えると、「対局中に残り手数を予測する」というのと同じことになります。局面等の情報から「これは長くなりそうだ」等と予測することは、人間なら誰しも意識的、もしくは無意識的にやっていることだと思われます。進行度や残り手数を精度よく推測することは、それがどれくらい勝率に寄与するかはさておき、将棋の技術の一つだとは言えるでしょう。
コンピュータ将棋においても、評価関数の精度向上や持ち時間の管理等のために、進行度の推測が行われることがあります。実際、過去には、序盤・中盤・終盤で評価関数を推移させる手法が注目された時期もあり、その頃には進行度に関する研究もよく行われていました。筆者はその辺の研究に詳しくないのですが、主に、成り駒や持ち駒、玉周辺の駒や利きの数などから“進行度”を算出していたようです。ただし、その時の“進行度”というのは、必ずしもゲームの進行具合を表す指標量ではなく、あくまでも複数の評価関数を推移させるための変数量(全体で一つの評価関数と考えれば、評価項目の一つ)にすぎず、様々な定義が乱立していました。純粋に終局手数を予測しようとする研究はほとんどなかったのではないかというのが筆者の印象です。
さて、前置きが長くなりましたが、今回は、局面の情報は抜きにして、「手数分布のみから進行度を推定するとどうなるか」ということを調べてみたいと思います。
使用する手数分布は、棋士棋譜集(2015年11月版)とfloodgate棋譜集(2012~2015年版)から、レート差200以内で256手までの投了棋譜に限定し、先手勝利と後手勝利に分けて規格化を行って得られたものです。それぞれの棋譜集については、以下の記事をご覧ください。
- 棋士の棋譜整理とレート算出:棋士棋譜集(2015年11月版)
- floodgateの棋譜整理とレート算出:floodgate棋譜集(2012年版)
- floodgateの棋譜整理とレート算出:floodgate棋譜集(2013年版)
- floodgateの棋譜整理とレート算出:floodgate棋譜集(2014年版)
- floodgateの棋譜整理とレート算出:floodgate棋譜集(2015年版)
また、それぞれの棋譜集に対応する手数分布については、「手数分布はガンマ分布で近似できるか?」の記事に記載してあります。
各手数における進行度の平均値を以下に示します。各手数において平均を取る際に、すでに投了済みの棋譜はデータから取り除かれています。また、256手までの棋譜に限定しているため、256手においては進行度は全て1になっています。
どちらの棋譜集においても、グラフの概形は似たような形になっています。これは元々の手数分布が似ているためです。ただ、詳細に見ていくと違いもあり、例えば、floodgate棋譜集の方が棋士棋譜集よりも全体的に進行度が低めに出ています。これは、floodgate棋譜集の方が棋士棋譜集よりも平均手数が大きいことに由来します。
仮に、進行度を機械的に3分割して、“序盤”/“中盤”/“終盤”を区別したとすると、平均値で見た場合、棋士棋譜集では、36手までが“序盤”、75手までが“中盤”ということになり、また、floodgate棋譜集では、41手までが“序盤”、85手までが“中盤”ということになります。平均手数が約16手ほど違うため、それぞれの区分の長さも約5手ほど変わるようです。平均手数の違いが主に投了のスタイルに由来すると考えるとすると、この結果は余り納得いくものではないかもしれませんが、仮に機械的に定義した場合にはそうなるという結果です。
続いて、各手数における進行度の標準偏差を示します。これは、上図の平均値を推定値だと考えた時に推定の誤差の目安となる量です。標準偏差についての詳細は、「平均と標準偏差:それって不偏推定値?」の記事をご参照ください。
結果を見ると、やはりデータのばらつきが大きく、手数の情報からだけでは精度よく推定することができないということが確認できます。この結果は、将棋において「対局中に進行度を推測する」ことの難しさを示すものだと言えるでしょう。
これ以上の精度で進行度を推測するには、局面の情報が必要になります。上述の先行研究で行われているように、手数に加えて、持ち駒の数等の適当な変数群を用意して、機械学習の手法で最適化を行えば、それなりに高精度な推測も可能になるものと思われます。ただ、詳しいことは実際にやってみないと何とも言えません。
以上、今回は「手数分布のみから進行度を推定するとどうなるか」という結果を示しました。やはり高精度の推測を行うには、局面情報を活用する必要があるようです。
また、今回の手法は、精度には疑問符が付くものの、局面情報に依らずに手軽に推測値が得られるという点では優れた面も有しています。特に、「手数分布はガンマ分布で近似できるか?」の記事で提示したガンマ分布近似を併用すると、直接的に手数分布を使わなくても、手数分布の平均と標準偏差の値のみから進行度の近似推定値を簡単に算出することもできるようになります。進行度推定の第零近似(様々な補正を加える前の最も荒削りな近似値)として、何かの役に立つこともあるかもしれません。
コメント