Stockfish の深さを理解する
探索深さと時間配分、そして深く読ませることが本当に効いてくる場面についての実践ガイド
Stockfish が解析中に「深さ24」と表示するとき、それは実際に何を意味しているのか。深さが大きいほど良い解析だ、という感覚は多くのプレイヤーが持っているが、その数字が何を表し、どう動き、どんなときに本当に効いてくるのかを理解している人は少ない。これは机上の話ではなく、エンジン解析をどれだけ上達に結びつけられるかに直結する。
本記事では、Stockfish が局面をどう探索するのか、深さの数値が何を伝えているのか、そして自分の学習のなかで解析深さをどう決めればよいのかを順に見ていく。
探索深さとは何か
探索深さとは、突き詰めればエンジンが主要変化の上で何手先(正確には何プライ先)まで読んでいるかを示す数値だ。深さ20とは、Stockfish が少なくとも20プライ、つまり互いにおよそ10手ずつの手順を調べていることを意味する。この説明は技術的には正しいが、重要な一点で誤解を招く。
現代のエンジンは、すべての変化を同じ深さまで読むわけではない。Stockfish はアルファベータ枝刈りに、さまざまな探索延長と短縮を組み合わせて使う。有望な変化は公称の深さをはるかに超えて読み進められ、明らかに劣る変化は早い段階で切り捨てられる。「深さ24」と表示された局面でも、ある変化は深さ40以上まで調べられ、別の変化は深さ10で打ち切られている、ということが起こる。
この選択的な探索こそがエンジンを強くしている。明らかな悪手に時間を費やす代わりに、最も重要な変化へ計算資源を集中させるからだ。表示される深さは最低保証にすぎない。主要変化に沿って少なくともそこまでは読んだ、という意味であって、実際の探索はもっと複雑で、深さも一様ではない。
深さが評価の質をどう変えるか
深さと評価精度の関係は直線的ではない。深さ10から15へ進めば、解析の質は劇的に上がる。深さ20から25でもまだ効果はあるが、変化の度合いは小さくなる。深さ30から35になると、たいていの局面では細かな調整しか生まれない。
この収穫逓減には実際的な理由がある。浅い深さでは、エンジンは戦術手順をしばしば見落とし、局面の判断を誤る。深さが一段増えるたびに、新しい戦術の可能性と戦略的な機微が姿を現す。しかし深くなるにつれ、その局面の重要な着想はすでに出尽くしている。それ以上の深さは、根本的に新しい概念を掘り当てるというより、際どいケースの評価を磨く働きが中心になる。
この傾向には見過ごせない例外がある。深い戦術的もつれを抱えた局面——長い強制手順、駒を捨てて迫る攻め、あるいは静かな一手が何手も先で突破につながる局面——では、高い深さでも評価が安定しないことがある。深さ30を超えてなお数字が揺れ動くのは、まさにこの種の局面だ。そしてそれは、チェスで最も面白い局面でもある。
終盤はもうひとつの例外である。勝ちの筋が長手数にわたる精密な駒繰りに支えられているため、正しく評価するには極端に深い探索を要する終盤がある。駒数の少ないすべての局面をあらかじめ計算したデータベース、いわゆるテーブルベースがあれば、勝ちか引き分けか負けかは即座にわかる。だがテーブルベースなしでは、終盤によってはエンジンが勝ち筋を見通すのに深さ40以上を必要とすることもある。
選択的深さと公称深さ
Stockfish の出力を見ると、深さの数字が二つ並んでいることが多い。公称深さと、選択的深さ(「seldepth」と表記されることもある)だ。公称深さは基本となる探索の深さ、選択的深さは探索の過程でエンジンが到達した最も深い変化を示す。
たとえば「深さ 25/48」と出ていれば、基本の探索は25プライだが、ある重要な変化は48プライまで読まれた、という意味になる。この二つの差は局面について何かを語っている。差が大きければ、深い計算を要する強制手順をエンジンが見つけたということだ。差が小さければ、たいていの変化を似た深さで評価できる静かな局面だと考えられる。
この区別を知っておくと、エンジンの解析をより正確に読める。選択的深さが公称深さを大きく上回るとき、エンジンは重要な変化についての評価には自信を持っているが、いくつかの脇の変化は表面的にしか扱っていない可能性がある。二つの数字が近いときは、局面をより均等に調べたということになる。
Multi-PV——複数の変化を同時に読む
初期設定の Stockfish は、最善手を一つだけ探す。しかし設定を変えれば、複数の主要変化を同時に解析させられる。これが Multi-PV だ。たとえば Multi-PV を3にすると、エンジンは上位3手を並行して求める。
ここには無視できない代償がある。Multi-PV 解析は遅い。一手が最善だと示すことに全力を注ぐ代わりに、複数の有力な候補を並行して追わねばならず、枝刈りを思い切って行えないからだ。ざっと言えば、Multi-PV 3 は同じ深さに達するのに単一変化の解析の1.5倍から2倍の時間を要する。
それでも棋譜の振り返りにおいて Multi-PV はきわめて有用だ。最善手が何だったかだけでなく、ほかにどんな選択肢があり、それらがどう比較されるのかまで見せてくれる。自分の指した手が二番手や三番手で、エンジンの第一候補とほとんど差がない、ということは実によくある。Multi-PV がなければそれを知る術はない。自分の手が「最善」でなかったという事実だけを見て、ミスを犯したと誤って結論づけてしまう。
ChessOnyx では全体像が見えるように Multi-PV 解析を提供している。三つの手が互いに0.1以内に収まっていると知ることは、エンジンの唯一の最善手を指さなかったという事実だけを知るのとはまったく別のことだ。
深さの実践的な目安
解析の目的が違えば、必要な深さも違う。何をしたいかに応じた実践的な目安を挙げる。
手早い棋譜の見直し(明らかなミスを拾う)——深さ18から20で足りる。この深さなら Stockfish は戦術的な見落としをすべて捉え、位置的な誤りもおおむね拾い上げる。自分の棋譜にひととおり目を通す最初の段階にはこれで十分だ。
本格的な検討(戦略的判断を理解する)——深さ22から26がちょうどよい。この範囲になるとエンジンの位置判断は信頼できるものになり、静かな局面の評価も任せられる。検討作業の大半はこの深さで行うのがよい。
重要局面の検討(序盤研究、判断の難しい犠牲)——深さ28から32、あるいはそれ以上。最大限の信頼性が要る場面、たとえば定跡の新手を評価する、駒の犠牲を見極める、勝敗を分ける終盤を調べるといった場合は、深くまで走らせたい。この深さならたいていの局面で評価はかなり安定する。
通信チェスや定跡研究——深さ35以上、あるいはクラウド解析。1ポーンの10分の1が意味を持つ最も重い解析では、可能なかぎり深く読ませる必要がある。実際には、強力なハードウェアで Stockfish を長時間走らせることになる。
これらは目安であって規則ではない。適切な深さは局面と目的、そして使える時間で決まる。込み入った戦術局面は単純な終盤より深さを要する。大事な大会の一局は、気軽な早指しよりも深い検討に値する。
時間で区切るか、深さで区切るか
局面を調べるとき、深さを固定する(深さ25まで読ませる)か、時間を固定する(30秒読ませる)かを選べる。どちらにも利点があるが、違いを押さえておきたい。
深さ固定は、局面の複雑さにかかわらず解析の質の下限を保証する。どの局面も同じ深さまで読まれる。難点は、単純な局面は目標の深さにすぐ届いてそこで止まる一方、複雑な局面は相当な時間を要しうることだ。
時間固定は複雑さに自然と合わせてくれる。単純な局面では短時間で深くまで到達し、複雑な局面では届く深さが浅くなる。これは強い人間の持ち時間の使い方に近い。勝負どころに多く割き、平凡な局面には割かないという配分である。
棋譜の見直しには、一手あたりの時間を固定するほうがたいてい実用的だ。最近のパソコンで一手10秒から15秒に設定すれば、ほとんどの局面で申し分のない質が得られる。単純な局面では自然と深くなり、複雑な局面ではその分だけ粘ってくれる。
特定の局面を掘り下げたいなら、評価が落ち着くまで走らせ続けるとよい。深さが増すにつれて評価値がどう動くかを見る。意味のある変動がなくなったとき(深さ1段あたりの振れ幅が0.05未満になったとき)、エンジンは信頼できる判断に達している。局面によって、それは10秒で訪れることも10分かかることもある。
まとめ
探索深さはエンジン解析の土台だが、「数字が大きいほど良い」という理解よりはるかに奥行きがある。選択的探索の仕組み、深さが最も効いてくる場面、そして目的に応じた深さの選び方を知っておけば、エンジンをずっと有効に使えるようになる。
肝心なのは、深さは信頼できる局面評価という目的のための手段であって、それ自体が目的ではないということだ。特定の深さに到達することではなく、評価が安定したかどうかに目を向けたい。そして、たとえ中程度の深さであっても、今日の Stockfish はほんの数年前には考えられなかった質の解析を返してくれる。賢く使えば、この道具はあなたのチェス観を変える。