前回の記事「将棋の局面数 1:局面数は無量大数」では、「駒の配置から将棋の局面数を見積もる」ということを考えました。今回は、「一手ごとの分岐から考えると局面数はどうなるのか」ということを考えてみたいと思います。
実は、前回の記事の冒頭で触れた「将棋の局面数は10の220乗」という説は、分岐に基づく推測に由来します。すなわち、将棋の一局面における合法手の平均は約80手であり、将棋の平均手数は約115手であるから、\[80^{115} \approx 10^{219}\]となり、約220乗だというわけです。
この計算方法はとても不可解であり、筆者にはよく理解できません。合法手の平均が約80手だというのはいいとして(参照:「ゲームとしての将棋のいくつかの性質について」)、なぜ平均手数が出てくるのでしょうか。この計算式の依って立つ仮定に基づくと、局面数はべき乗で増えていくことになるわけですから、平均手数ではなくて最大手数にしないと局面数を見積もることはできないはずです。また、最大手数ならば、平均手数とは異なり、棋譜集には依存せずに下限値も分かります。さらに、最大手数を使うと、とてつもない数字が出てきてしまうことになり、仮定の問題点が明確になるという利点もあります。
実際に、前回の記事で示した通り、駒の配置から見積もられた将棋の局面数は10の68~69乗程度であり、この分岐による見積もりは、最大手数を平均手数まで落としたとしても、明らかな過大評価になってしまっています。
それでは、どこが間違っていたのでしょうか?
この仮定の最大の問題は、合流局面の存在を考えずに、ずっと局面数がべき乗で増えていくと考えたところにあります。一度数えた局面は、次に出てきた時には、二重に数えてしまうことになるため、本来は消してしまわないとなりません。既出局面の数が局面数よりもずっと少なければ、合流局面は無視できるかもしれませんが、既出局面の数が局面数に近くなると、合流局面の割合が大きくなって、新規局面がべき乗で増えるという事はなくなるわけです。
実際、将棋の局面数を10の68乗として、一局面の合法手を80手とすると、大体35手で将棋の局面数に達して、新規局面が出なくなるという計算になります。もちろん、実際には、初期局面から35手でたどり着けない局面も沢山ありますので、手数に対する新規局面数の分布は、初期局面から最短の手数で作れる局面の数の分布になるわけです。この分布は、合法手の平均とも、最大手数とも、平均手数とも、何の関係もありません。
さて、以上のことから、分岐から局面数を見積もるのが難しいということが分かります。分岐から局面数を見積もるには、合流局面の数を考えなければならず、合流局面の数を考えることは局面数を見積もることよりもずっと大変だからです。
しかしながら、このことは逆に考えると、局面数が分かっているのならば、分岐を考えることで合流局面数についての推測ができるということを示唆しています。
実際にやってましょう。
前回の記事に記したように、10の68~69乗の局面数というのは「ありえない」ような局面を大量に含んだものでした。成り駒を禁止すると約10の54~55乗となりますが、ここでは、さらに数を絞って、10の50乗の「ありえそうな」局面を考えることにしましょう。ここで、50乗という数字に深い意味はありません。以下の議論は、局面数を変えても、数値が変わるだけで同じように進めることができます。
最初の30手は合流局面も多いので、合流局面を除いた時の平均分岐数を2に設定しておくとすると、30手終了時には約10の9乗個の局面が現れます。多くの将棋ソフトの定跡ファイルの登録局面数は10の5~6乗個程度ですが、定跡を外れた後の変化の局面まで考えると、ここでの30手目までに約10の9乗個の局面というのは特に多いとは言えないでしょう。
その後の平均分岐の数を3に設定してみます。これは、各局面で平均的に3手くらいの指し手を候補として考える時の将棋の可能性の世界に該当します。将棋ソフトの平均分岐数が3くらい(ソフトにより2~5)という話もありますので、将棋ソフトが見ている将棋の世界と考えてもいいかもしれません。
31手目以降、3の累乗で合計10の50乗の局面数に到達するには116手までかかります。途中での投了局面の影響を考慮しても、この116手というのはあまり変わりません(実際に補正計算もやってみたのですが、説明が煩雑になる割に結果があまり変わらないので省略します)。ちなみに、平均分岐数3の代わりに、2の場合には166手、4の場合には98手になります。
ここで重要なことは、116手目以降には新規局面はほとんど現れないということです。つまり、それ以降の局面は、分岐による可能性の世界のどこかにすでに存在していて、手数をかけて遠回りをして合流したという解釈になります。
この結果は、かなり意外だと感じられる方が多いのではないでしょうか。例えば、「持久戦になっても局面が複雑になるわけではなく、両者手損の遠回りをして急戦の局面に合流するだけ」と書くと、「そんなわけないだろ」という感じられる方がほとんどでしょう。実際、多くの手数をかけないとたどり着けない局面も存在するため、その点でこの話には検討の余地があるのですが(特に分岐数が多い場合)、簡易的な見積もりとしては、このような結果になるということです。
以上、今回は将棋の局面数について分岐の観点から考えてみました。
10の68~69乗という局面数は膨大に感じられますが、そんな数でも分岐の累乗は意外と簡単に食い尽くしてしまいます。将棋の“樹”は、ただ枝が広がっていくような単純な構造にはなっておらず、各枝が複雑に合流しあった迷宮のような構造になっており、その構造は、平均分岐数3といった大胆な枝狩りを行った場合でさえ、消えることはありません。今回の見積もりは、そのようなことを示唆していると言えます。
コメント
コメント一覧 (8)
正しくは「10^220は将棋のゲーム木のサイズ」、
大雑把に言うと、「10^220は将棋であり得る棋譜の数」です。
ゲームの複雑性(Game Complexity)を表す指標には、
ゲームの状態数やゲーム木のサイズなどがあり、
(参考:https://en.wikipedia.org/wiki/Game_complexity)
将棋の局面数(10^60~10^70)がゲームの状態数に
将棋の棋譜数(10^220)がゲーム木のサイズに当たります。
あり得る棋譜全てを書き出すことが出来れば将棋の結論が出ることから
ゲーム木のサイズは、そのゲームを解く大変さを示しているともいえます。
コメントありがとうございます。
記事の中では「10^220は将棋の局面数」という説を検討したのですが、最大手数ではなくて平均手数を用いている以上は「10^220は将棋のゲーム木のサイズ」と解釈しても、やはりおかしなことになります。というのは、棋譜の数にしても手数に対してべき乗で増えていきますので(投了終了分の減衰を考慮しても平均合法手の分岐の方が遥かに大きいので同じことになります)、平均手数ではなくて最大手数を用いる必要があると考えられるわけです。棋譜の数ということですと、「10^220」よりももっと遥かに巨大な数になるものと思われます。
ゲームの複雑性についてはご指摘の通りです。基本的に数理的に「ゲームを解く」こと(本文では「完全解析」に限定しましたが)を前提とした概念だと思われます。その上で、将棋のように「ゲームを解く」ことが現実的にほぼ不可能であるという場合には、もはや概念の意味がなくなるのではないか(数学的には「意味」は無価値ですが、応用上は無視できません)というのが私の考えです。現実的に無理なものは無理という事で、そこで何桁か数字が変わっても無理という以上の情報にはならないということですね。
「完全解析」に際して、局面数が効いてくるのか、棋譜数が効いてくるのかについては実装の問題(キャッシュの有効性)になりますが、本文では、最高に上手く行った場合の見積もりとして、局面数で考えて、それでも無理という結論でした。実際にやろうとしたら、今回の見積もりよりももっと時間がかかることになるでしょう。
将棋の平均手数120手,平均分岐数80とすると
相加相乗平均の関係式より
x_1* x_2* ....* x_120 ≦ {(x_1+ x_2+ ....+ x_120)/120}^120 =80^120≒10^224
120手で終わるとしたときのゲーム木の(かなり過剰に見積もった)上限値
くらいの意味なんではないでしょうか?
コメントありがとうございます。
確かに相加相乗平均を考えると上限値になりそうですね。ただ、平均分岐数の「平均」は様々な局面に対する平均であるため、多数のデータを集めた場合には手数ごとの違いはほとんど出ないのではないかという気もします。その場合には、相加相乗平均の関係式の等号成立に近い状況になるのではないでしょうか。
手数ごとの中身まで全て局面でばらした時に不等式がどうなっているのかは、少し考えてみないと、すぐには分かりません。
「220乗」説については、ここでのコメントを踏まえて、新たな記事で考察しています。もしよろしければ、そちらもご覧ください。
「将棋の棋譜数:“10の220乗”説の真相!?」
http://lfics81.techblog.jp/archives/2319578.html
よく考えたら、手数の中身を局面までばらしても何も変わりませんね。失礼しました。
と表現したのは安直でした。自分の理解が甘かったです。
より適した表現にするとしたら、
「ゲーム木のサイズに着目した、将棋のゲームとしての複雑さを表す指標」
とかになるでしょうか。
また、ご指摘の通り10^220という数字単体に意味を見出すのは無理筋です。
ですが、同様に算出された他のゲームの数字と比較する事で、
ゲーム同士の複雑さの比較ができるという点では意味があると考えます。
例えば、メジャーなゲームでコンピュータがトッププロに勝ったのは、
年代順に並べると
チェッカー<チェス<オセロ<バックギャモン<将棋<囲碁
であり、
Game-tree complexityの値の大小関係は
チェッカー<オセロ<チェス<バックギャモン<将棋<囲碁
となります。
また、オセロについては対戦内容からチェスよりも先に人間を超えていたと考えられます。
すると、二つの順序が一致する事から、
「完全解析の困難さ」に比べるとはるかに現実的な
「トッププロに勝つ困難さ」を見積もる上でも、
この指標はある程度有用だと言えるのではないでしょうか。
とても興味深いご指摘だと思います。本来は関係なさそうな「完全解析の困難さ」と「トッププロに勝つ困難さ」との間に相関がありそうだということですね。
チェッカーはすでに解かれていますので脇に置くとしても、オセロやチェスにおいて終盤の解析データベースが威力を発揮したということがありますので、やはりサイズの影響は無視できません。完全解析できなくても、解析できる部分木が全体の中で一定以上の割合ならば、計算機の“数の暴力”で有利を築けるということだと思います。
対人の能力比較においても、そのような部分木のデータベースによる影響(数理的な要素)とその他の技術による影響(技術的な要素)の両者がきいてくるのでしょう。
技術的な要素については、機械はどんどん技術が進歩していく一方で、人間は相対的に進歩が遅いため、どこかの時点で能力の逆転が起こります。
その時点がいつになるのかについては、上記の数理的な要素に加えて、機械側の進歩の速度(開発リソース等)や人間側の能力などの技術的な要素が複合して決まってきます。思いっきり単純化すると、数理的な要素をスタートラインとして、機械の技術が進歩していって、人間の能力のゴールラインを超えるのがいつかという話になっているのではないかと思います。
(続く)
さらに、「数理的な要素」と「人間の能力」との間には関係があるのではないかという事も考えられます。例えば、オセロのサイズが小さくて、囲碁のサイズが大きいのは、人間にとっては囲碁の方が得意なゲームであるために、自然と大きなサイズが選ばれたということもありうるわけです。
もし、広く普及するゲームの人間の感じる複雑さの度合いがおおよそ一定であるとするならば、自由度の多いゲームほど人間が得意なゲームということになり、機械との比較では、「数理的な要素」のスタートラインが下がり、同時に「人間の能力」のゴールラインが上がることになります。
他にも、相関自体がただの偶然の産物であったという可能性などもあって、詳細に調べてみないと何とも言えないところです。