棋士が、手を読む時の思考方法について「思考の枝」「枝を刈る」「枝を増やす」といった言葉で説明されることがあります。が、これが将棋を見始めたばかりの初心者や将棋を普段見ない人にとっては何のことかよくわからん、ということがあると思いますので、この記事でやさしく説明したいと思います。
ついでに、形勢判断や棋風、コンピュータ将棋でよく使われる「評価値」との関係についてもやさしく説明したいと思います。
木と枝
以下の図を御覧ください。
先手が自分、後手が相手。「お願いします」と挨拶した後、自分が初手をどう指すか(▲7六歩、▲2六歩など)、そしてその手に対して相手がどう応じるか(△3四歩、△8四歩など)、3手目をどう指すか・・・という一連の手の選択肢を、上のような図で表現することができます。
この枝分かれしてく様子が「木」に似ているので「探索木」と言ったりします。
これは何も特別な思考ではなく、私達が日常生活を送っていてもこのような思考をすることはあると思います。
分岐の数と深さ
次に、分岐の数を考えてみます。
上に掲載した図を中身の文字だけ変えて再掲します。「お願いします」が「現局面」に、具体的な指し手が書かれていたところは数字で表現しています。この方がイメージしやすいかもしれません。
この図では、1つの局面から3つの枝が出ています。この場合、自分の最初の手が3パターン、その次の相手の手がそれぞれ3パターン、その次の自分の手がまたそれぞれ3パターン・・・と続きます。
ということはこの思考パターンで5手先まですべて読んだ時は3×3×3×3×3、つまり3の5乗で、5手先には243の局面が現れることになります。
6手先まで読めば3の6乗で729局面、7手先まで読めば2187局面になります。
この「何手先か」を木の「深さ」と言うことがあります。「より深く読む」とは、「より先の手まで読む」ということになります。
分岐の数を増やす
次に、各局面から出る枝の数をそれぞれ4つに増やした時を考えてみます。
同じように、5手先まですべて読んだ時は4×4×4×4×4、つまり4の5乗で、5手先には1024局面が現れることになります。
同様に、枝の数を5つに増やしたら3125局面、7つに増やしたら16807局面になります。
ちょっと増やしただけで局面数が大変増えることがわかります。分岐の数と深さと局面数の関係を表にしてみます。
この表の数字は、あくまで「○手先の局面数」であり、「読んだ手の数」は異なります。例えば分岐が5、深さが5だと、5手先の局面数は3125ですが、それまでに通過した局面を合計すれば、3905手読んだことになります。
枝を刈る
実際、そんなに読んでられないので「枝を刈りこむ」ことをします。
枝を刈る、ということは、刈られた分岐についてはこれ以上読みませんということです。これによって読む数を減らすことができます。
でもどうやって刈る枝を選べばよいのか。重要な枝を刈ってしまえば、「読み抜け」ということになってしまいます。
形勢判断
そこで、読んだ先の局面の形勢を判断する必要があります。
それぞれの分岐後の局面について評価し、その先を更に読むか、読みを打ち切るか(枝刈り)を決定していきます。
よく言われる形勢判断の材料としては「駒の損得」「玉の固さ」「駒の効率」の組み合わせです。
駒の損得とは、駒を取れば得、駒を失えば損、相手との交換でより価値の高い駒を得られれば得、といったもので、要するに相手より価値の高い駒を多く持っていれば駒得、相手のほうが良ければ駒損、ということになります。
玉の固さは、玉周辺に金銀などの守備駒が適切に配置されていれば固いということになります。
駒の効率は、ややわかりにくいですが、例えば飛車の行き場所が少ない、角道が通る見込みが無い、攻撃に使う予定の桂馬が初期配置のまま動いていないといったときは効率の悪い駒となります。
また、このような形勢判断以外にも、相手の棋風から「こういう手は指してこないだろう」ということで枝を刈ることができるかもしれません。
とにかく何らか評価して枝を刈っていきます。そして最終的に「次の一手」を選択し、盤上に指し手として表現します。
評価値
この形勢判断をコンピュータがやると評価値になります。評価値は、コンピュータ将棋ソフトが弾き出した形勢を表す数値。それぞれのソフトが独自の評価方法(評価関数)を持っていて、この評価の正確さがソフトの強さを支えています。
また、例えば攻めが好なソフトは、攻めの手を高く評価する方法を採用していて結果的に攻めの手が選ばれやすくなっていると思われます。そういうところで、コンピュータソフトにも個性というか、棋風があります。
自分の手番では、評価値が高い局面の枝を残し、評価値が低いものは刈っていきます。
相手の手番では逆で、評価値が高くなるもの(相手にとっては不利になる)の枝を刈り(相手はその手を指さないと判断する)、評価値が低くなるものを残します。
実際は、刈る、刈らないといった単純なものではなく、評価値が高い局面を優先して読み進める(深く読む)、評価値が低い局面は読むのを後回しにするといったことをしていると思います。棋士もそうだと思います。
(多分こんな感じだと思いますが間違っていたらご指摘お願いします)
棋風改造
木の探索と評価の話は以上です。
で、なぜこのような話を書いたかというと、2015年9月25日の第1期叡王戦八段予選の18時からのメールコーナーで、解説の糸谷哲郎竜王が「棋風改造」の話をされていたため。初心者の方にとっては、上記のような前提知識がないとちょっと理解が進まないかなと思いまして、書きました。
メールで「糸谷竜王は何年か前に棋風改造をして、竜王獲得などの成果が出たと推察しますが、どのような改造をされたのか?またその副作用で早指しが弱くなったと言われているがその原因はなにか?」という質問がありました。
あえて枝を増やす
糸谷竜王によれば、その棋風改造は「思考の枝を増やすんですよね。これまであえて刈り込んでいたところを、ちょっとずつ枝を増やして」というもの。
棋士は局面を見て直感的にいくつかの手を思いつくものだと言いますが、その数をすぐに絞り込むのではなく、別の可能性を考えて増やしてみるということですね。
ただ、その副作用として早指しに弱くなったのは「早指しのときは、(枝を増やすのを)オフにすればいいじゃないかという話もあるんですけど、オフにしにくいんですよ。一回やると思考の癖がついちゃうので」とのこと。
前述のとおり、枝を増やすとどんどん読む数が増えていきますし、それだけ形勢判断しなければならない局面数も増えていきます。そのため読むのに時間がかかるようになり、早指しは弱くなっちゃったと。
しかも一度思考の癖を作ると、切り替えるのが難しくなるようです。
もちろん、これがすべての「棋風改造」事例に当てはまるわけではありません。が、局面評価の方法を変えた、優先して読む局面や枝刈りする判断基準を変えた、といったことで論理的に考えれば、「棋風」や「棋風改造」という漠然とした響きのある言葉の理解が進むと思いました。
何手先まで読む?
また、糸谷竜王によれば棋士は「枝の数を増やして読む」より「少ない枝を深く読む」方が時間がかからないそうです。これは聞いたことがありますね。コンピュータは浅く広く、棋士は狭く深くが得意、というイメージはあります。
糸谷竜王は「掘り下げる(先の手を読む)のが初めに必要な能力なんですけどね。(枝を増やすのと)どっちもあったうえで、人間、完全はできないのでどこまでやるかです」と話していました。
聞き手の竹部さゆり女流三段が、若干、竜王の話をわかっていなかったような感じ(か、竜王の前でちょっと緊張されていて適切な言葉で表現できなかったか)で、この話は噛み合いが悪く打ち切られましたが、興味深かったです。
よく、将棋を知らない人に「棋士って何手先まで読むの?」という質問をされますよね。「1000手読む」と言っても将棋は1000手もかからないし。そんな人にもこの記事をぜひシェアしてあげてください。「手を読む」ということについて理解していただけると思います。
以上、最後まで読んでいただきありがとうございました。
コメント
わかりやすすぎる!!
お役に立って良かったです。ありがとうございます!
Apery=大樹の枝の形はどうなんでしょうか?
ソフトによる樹形の違いは?
と思いました。
コメントありがとうございます。
樹形の違いはあると思いますね。それもソフトの棋風になると思います。
評価値は機械学習で正確になってきたのですが、樹形も機械学習したらもっとよくなるんでしょうかね、たぶん。