将棋AIの王手ラッシュは本当に水平線効果なのか?

AIに興味のある将棋ファンの方なら、「水平線効果」、または「地平線効果」という言葉という言葉を聞いたことがあるかと思います。

古い将棋AIの駒のただ捨ての原因として知られていたり、AIはこれが原因で一度不利になるとジリ貧になって負けるだなんていわれていたり、AIの最後の王手ラッシュの原因だなんだといわれていたりします。

また、水平線効果の克服については、90年代の将棋ソフト*1が「水平線効果の克服」を謳ったかと思えば、現代の将棋AIですら水平線効果からは逃れられないという話もあります。

 

結論からいうと、

・AIの最後の王手ラッシュの原因が水平線効果なのかどうかはケースバイケース。

・製品のキャッチコピーとして使われた「水平線効果の克服」は、水平線効果が見えづらくなっているだけで解決はされていない。

ということがいえると思います。

 

では、詳しく見ていきましょう。

結局水平線効果ってなに?

AIが避けることができない嫌なできごとを引き伸ばして読みの範囲外まで押しやり、「なかったこと」にしてしまうことを言います。当然本当になかったことになるわけではないので、最後にはただただ損をしてしまうことになります。

例えば5手先まで読めるAIがあったとします。ちょうど4手先に飛車を取られる手が見えたとき、持ち駒を捨てて王手をかけることができれば、王手をかける手+その対応に1手使わせることで飛車を取られる手を2手引き伸ばすことができます。

しかし、そのように引き伸ばしても、次に手番が回ってきたときには飛車を取られる手は5手以内、つまり読める範囲に入ってきてしまいます。こうなるとまた引き伸ばすために持ち駒を捨てる手を繰り返し、本来なら飛車1枚の損失で済んだはずが、飛車と持ち駒すべてを失ってしまうことになります。

こうした事情から、昔のコンピュータ将棋の場合、自玉がどうやっても助からないときには無駄な王手をかけて大暴れしてくることが一種の名物になっていました。

こうした事象を、水平線や地平線の向こうまで物を移動させると見えなくなることにたとえてこのように呼ばれています。

 

よくありがちな誤解ですが、水平線効果は別に不利な局面以外でも発生します。有利な局面であろうが、例えば飛車を取られる手は嫌なので、先延ばししようとして持ち駒をすべて失ってしまうということはままあります。

現代のコンピュータ将棋の王手ラッシュの原因は本当に水平線効果か?

昔のコンピュータ将棋の王手ラッシュが水平線効果だということはわかりました。ところが、現代のコンピュータ将棋の棋譜を見ても最後は無駄に見える王手ラッシュで終わります。これは水平線効果なのでしょうか?

現代のコンピュータ将棋の王手ラッシュ時の評価値を見ると、ほとんどの場合既に読みきった値を出しています。つまり、王手ラッシュをしている間も、水平線のこちら側、読みの範囲内に詰みがあるのです。ということは、どうやら詰みを水平線の向こう側に追いやってしまっている訳ではなさそうです。

それではなぜ王手ラッシュをしているのでしょうか?「見えないところまで追いやろうとしている」のではなく、プログラム上で定義された「負けるときは最長手数にせよ」という目的に忠実に従っているだけなのです。では、なぜそんな作りになっているのでしょうか。

それは、将棋では負けが決まっている局面での最善手の定義が難しいためです。

一般に「相手がもっとも間違えやすい手」を指すのがよいのですが、それをどう定義すればいいのかははっきりしません。なんならプレイヤーによって得手不得手があるので、厳密にいえば相手の棋力や棋風を加味して手を決定する必要が生じます。

もっとも簡単に実装するなら、負けを読みきったら適当な手を指すことですが、それよりは最長にしたほうがいくぶんか相手が間違えてくれそうです。

 

当然、コンピュータに形作りや勝負手をさせる研究は行われてきました*2が、棋力に直結しないため多くの場合後回しにされがちなのです。

 

余談ですが、市販の金沢将棋は最後王手ラッシュを仕掛けてきた後諦めたような手を指します。「市販ならもうちょっと終局をきれいにしろ」といわれますが、これは経緯を見ると意図が見えてきます。一時期、金沢将棋シリーズはきれいな局面で投了するようになっていました。しかし、これらの製品のレビューを見ると、「なぜ投了されたのかがわからない」「最後まで指してほしい」というような意見が散見されます。その後、新製品では再び王手ラッシュを仕掛けるようになりました。

棋力の高いプレイヤーは美しい引き際を求めますが、単純にその声に応えても練習相手として将棋ソフトを求めている初心者には不親切になってしまうことがあるようです。

大将棋の売り文句「水平線効果の克服」とは何だったのか

これはおそらく「劣等局面枝刈り」のことです。仕組み自体はシンプルで、盤面が同一で持ち駒だけが減っている局面は劣等局面とみなしてそれ以上読まないという仕組みです。これは現代にも引き継がれる画期的な技術でした。

しかし、これで解決できるのは、「水平線効果」によって引き起こされる一部の事象、駒捨てのみです。

このコピーはさすがに誇大広告と言わざるを得ません。

他の水平線効果の緩和技術

未だにトップ層の棋力を持つソフトでは、水平線効果を完全に排除することはできません。

駒を捨ててしまうような現象であれば、静止探索という手法で緩和可能です。評価関数で評価するのが難しいような激しい変化を含む局面で探索が打ちきられた場合、評価を誤りがちです。ならば、とりあえず落ち着いた局面まで進めてから盤面の評価を行おうという手法です。

また、単純に評価関数の精度が高くなることでも緩和できます。単に嫌な事象が引き伸ばされただけで根本的な対処になっていない、むしろ悪化しているということが評価関数で表現できれば引き伸ばすだけの悪手を抑止できます。

まとめ

  • 昔よく見た水平線効果による王手ラッシュと今のソフトの王手ラッシュは意味が異なる場合が多い。
  • 水平線効果そのものは解決されていないが、様々な工夫や評価関数の精度向上により緩和されている。

*1:大将棋など

*2:Qhapaq, 習甦など