深さ(層数)は、十分に高くなった後でも重要ですか?


10

これは本当のことではありません。これが起こっていることを想像してみてください。

Computer Aスーパーコンピュータです。20秒以内に30プライの深さを計算できます。

Computer Bスーパーコンピュータです。20秒以内に15プライの深さを計算できます。

彼らはお互いのチェスと対戦します。

これらの15の深さは本当に重要ですか?これらの15の深さの範囲内で、チェックメイトから逃れるために、または重要なピースをキャプチャするために何兆もの方法があると思います。確かに、Computer Aもっと知っています。しかしComputer B、私の意見では、自分自身を本当にうまく守るのに十分遠い将来もかなり遠くまで予測することができます。


この場合、「深さ」とは層の数を意味しますか?乾杯。
Rauan Sagit 2014

はい、私は層を意味します。
RikTelner 2014

回答:


13

はい、それらの15の深さは非常に重要です。

カスパロフの不滅のゲーム対トパロフで発生したこのポジションを考えてみましょう。

カスパロフ-トパロフ

私はいくつかのエンジンでこの位置をテストしました。深さ15の一部のエンジンは、24 ... cxd4負けの動きであることを検出できず、勝つと考えていました。これらの同じエンジンは、より深いところで、正しい動き24 ... Kb6を果たしました!

たとえば、当初深さ21のStockfish 4と同じくらい強力なエンジンでさえ、負けの動き24 ... cxd4は正しいと考えています。

Stockfish DD 64 SSE4.2: 24...cxd4 25. Re7+ Kb6 26. Qxd4+ Kxa5 27. Qc3+ Kb6 
28. Qd4+ Qc5 29. Qxf6+ Bc6 30.Qxc6+ Qxc6 31. dxc6 Rd1+ 32. Ka2 f5 33. c7 Rc8 
34. Rxh7 Rxc7 35. Rh6 Rc6 36. g4 f4 37. g5 Rd2 38. c3 Rxc3 39. Rxg6+ Kc5 
40. Bg4 Rcc2 41. Rxa6 Rxb2+ 42. Ka1 Rbc2 43. Kb1 
(-1.45/21)

同じエンジンを少し深めに続けると、正しい動きに24 ... Kb6を示します。

Stockfish DD 64 SSE4.2: 24...Kb6 25. b4 Qxf4 26. Rxf4 Nxd5 27. Rxf7 cxb4 
28. axb4 Rhe8 29. Rxe8 Rxe8 30. Nb3 Re1+ 31. Kb2 Re2 32. Rxh7 Nxb4 
33. Kc3 Nd5+ 34. Kd3 Rxh2 35. Rh4 Ne7 36. Nd4 Nc6 37. Nxc6 Bxc6 38. f4 Kc5 
39. Be6 Rxh4 40. gxh4 Bd5 41. f5 gxf5 42. Bxf5 a5
(-0.78/26)

深さ15のフリッツ11 SEも失敗しました。しかし、それは深さ16で正しい動きを見つけました!

Fritz 11 SE: 24... cxd4 25. Qxd4+ Qb6 26. Re7+ Nd7 27. Qe5 f6 28. Qc3 Qg1+ 
29. Ka2 Bxd5+ 30. Nb3 f5 31. Qc7+ Ka8 32. Rxd7 Rxd7 33. Qxd7 Bxf3 34. Qd6 Qa7  
(-1.44/15) 

Fritz 11 SE: 24... Kb6 25. b4 Qxf4 26. Rxf4 Nxd5 27. Rxf7 cxb4 28. axb4 Nxb4 
29. Nb3 Bd5 30. Rf6+ Nc6 31. Nd4 Rdf8 32. Rd6 Kc5 33. Rxc6+ Bxc6 34. Ne6+ Kd6 
35. Nxf8 
(-0.59/16)

私がここで見つけこのようなポジションのような信じられないほどの問題も考慮してください

干し魚は優勝ライン1を見つけることができませんでした。Be2+!深さ31まで、それまでは悪い動きだと思いました。ここで勝利を示します。ポイントは、メイトの脅威のためにブラックはツークスワンであり、クイーンを放棄するか、ポーンを移動する必要があるということです。

NN-NN、1-0
1. Be2 +! Kf5 2. Nd5! Qxe6 3. Bd3 + Kg4 4. Be4 !! Qh6
4 ... Qxe4 5. Nf6 +
5. Nf4 Qg7 6. Nd3! Qxd4 7. c6! a5
7 ... Qxe4 8. Nf2 + Kf3 9. Nxe4 Kxe4 10. Kg2 Kd4 11. g4 hxg4 12. h5 Ke5 13. h6 Kf6 14. Kg3 Kg6 15. Kxg4 Kxh6 16. Kf5 Kg7 17. Ke6 Kf8 18. Kd7 Kf7 19. Kxc7
8. b5! a4 9. b6 cxb6 10. c7 Qxe4
10 ... Qc3 11. Nf2#
11. Nf2 + Kf3 12. Nxe4 1-0

これがStockfish 4のエンジンログです。ご覧のとおり、1。Be2 +が勝利していることが検出されました。深度31でのみです!

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2.Bc4 c6 3. Ne2 Qf6 4. Kg2 Kg4 5. Nf4 Qxd4 
6. Bd3 Qe3 7. Be2+ Kf5 8. Bf3 Qd2+ 9. Kh3 Qxb4 10. e7 Qe1 11. Ne2 Qf1+ 12. Kh2 Qf2+
13. Kh3 Qe3 (-1.05/22) 

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2. Bc4 Qf6 3. Ne2 c6 4. Bxa6 Qxe6 5. Bd3+ Kf6 
6. Nf4 Qe1 7. d5 Qxb4 8. dxc6 Qxc5 9. Be4 Ke7 10. c7 Kd7 11. Nd5 Kd6 12. Kh3 Qc4 
13. Bg2 Qg4+ 14. Kh2 Qc8 15. Be4 (-1.15/26) 

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2. Bc4 Qf6 3. Ne2 c6 4. d5 cxd5 5. Bxd5 Qb2 
6. Bc4 Kf6 (-1.01/28) 

Stockfish DD 64 SSE4.2:  1. Be2+ Kf5 2. Nd5 Qxe6 3. Bd3+ Kg4 4. Be4 Qh6 5. Nf4 Qf6 
6. Nd3 Qxd4 7. c6 Qxe4 8. Nf2+ Kf3 9. Nxe4 Kxe4 10. Kg2 Ke5 11. Kf3 Kf5 12. g4+ Kf6
13. gxh5 Kg7 14. Kf4 Kf6 15. h6 Kg6 16. h5+ Kh7 17. Kg5 Kg8 18. h7+ Kxh7 19. Kf5 Kg7
20. Ke6 Kh6 21. Kd7 Kxh5 22. Kxc7 Kg5 23. Kd7 (6.06/31) 

しかし、私は一手ごとに15手ということです。最初だけでなく。
RikTelner 2014

4
はい、すべての動きで。最初の移動で深さ15で計算して誤解した場合、その後の移動ごとに15の深さを計算しても保存されません。
2014年

4

コンピュータチェスプログラミングコミュニティでは、パフォーマンスの向上と検索の深さの関係は、かなり長い間、活発に研究されてきました。検索深度の増加は強度のリターンの減少をもたらすという理論がありました...これは実験結果で検証されたようです。

私の見解では、これには直感的な基盤があります。エンドゲームテーブルベースの位置から始めて、2台のスーパーコンピューター間で架空の対戦を想像してください。テーブルベースのほとんどの強制勝利は、(たとえば)50プライ未満の地平線で発生します。残りのポジションの大部分が引き出され、ほんのわずかな部分だけがより高い深度での勝ちとなります。100プライで検​​索するコンピューターは、50プライコンピューターに比べて利点が限られています。これは、(お伝えしたように)弱いプログラムは失われた線のほとんどすべてをナビゲートできるため、すべてより限定された深度で発生します。50プライのプログラムは、実際には25プライのプログラムよりもはるかに大きな利点があります。4プライのプログラムは、2プライのプログラムよりもはるかに優れています。

私はこの概念に最初に出会ったのは、約15年前、Dark Thoughtに関する一連の論文で、ディープサーチを実験してみました。あなたがコンピュータチェスに興味があるなら、これらは素晴らしい読み物です。

オンラインの参考文献は見つかりませんでしたが、このトピックに関する昨年の論文があります...

ディオゴR.フェレイラ(2013)。チェスのプレイ強度に対する検索深度の影響。ICGA Journal、Vol。36、2番


1

問題は、15/30層の徹底的な探索を意味しますか、それとも、ストックフィッシュのような現代のチェスエンジンの名目上の深さ/反復の15/30を意味しますか?

後者を意味する場合、15プライは必ずしも多くの意味ではありません。現代のチェスエンジンは、おそらく悪い動きを大幅に削減して削減するため、一見すると悪いと思われる犠牲が、名目上の深さ/反復が15の場合、実際には、たとえば5-10の深さまでしか検索されない可能性があります。深さ/反復30で、移動はおそらく減らされた深さまでしか検索されませんが、15から20の有効な深さである可能性があります。これは、犠牲が実際に良好であることを見つけるのに十分であり、エンジン動きが有望であることを発見すると、減少が減少するため、動きは30プライに近い深さ(または拡張と静止探索によりさらに深い深さ)まで探索されます。ですから、その組み合わせが15プライの名目上の範囲内であっても、違いが出ると思います。

徹底的な検索を参照している場合、深度15のエンジンは、良い評価関数とある種の静止検索(深度15のLeaveノードの後)があれば非常に強力だと思います。リターンが減少するため、深度を2倍にした場合の利益は、深度15と深度30の2つの最新のエンジンを比較した場合よりもはるかに小さくなると思います。深さ15は、エンジンが通常深さ/反復15に到達するのにかかるよりも数桁長くかかるため、このような実験はより低い深さでのみ実行可能です。


0

FWIW ARMが新しいとき、プライ1の後の材料のみの位置評価を使用して、最適化されたARM網羅的検索プログラムを作成しました。

私は、最適化されたマシンコード、反復深化、ソートされた移動でのアルファベータウィンドウ処理(ほとんどすべての位置の値が0だったため、最適に近いアルファベータプルーニングを得た)と、分岐係数をアルファ-ベータの理論上の平方根。通常、ゲームの最悪の部分では約4です。

当時の標準プログラムとの競争で、私のE6Pプログラムはひどい位置になりましたが、当時のプロソフトウェアと比較して、追加の1つまたは2つの徹底的な検索が行われました(つまり、通常、最悪の段階で6プライの徹底+静止検索、ゲームが単純化されたため、最大12プライ)、対戦相手の信頼にも関わらず、実際に負けることなく揺れ続けました。反対のプログラムが実際に勝つことができなかったので、ほとんどすべてのゲームは何時間も後に裁決に行きました。

その後、StrongARM用に最適化し、10プライに移動しました。このバージョンはチェス以外のすべてのプレイヤーを簡単に倒すことができましたが、明らかに戦略認識が欠けていたため、有名なコメントが適用されました:はい、彼らはチェスの動きですが、チェスではありません!

これはかなり数年前のことですが、プライ1でより戦略的な位置評価を行い、Intel XEONを使用すると、4MIPSよりも理論上10,000〜100,000倍高速(および30k倍のハッシュテーブルメモリ)で、もう一度徹底的に試してみたくなります。 ARM2ドングリアルキメデス。

確かに主流ではありませんが、プレイするのは楽しいです。


-2

+1プライは+ 55..70 ELOゲインと推定されます(このトピックに関する多くの研究)

これら15の深さの範囲内で、チェックメイトや重要なアイテムのキャプチャから逃れるには、数兆の方法があると思います。

問題は、この「兆」はすべてA @ D = 30によって計算されたということです。Aが勝利評価で移動を選択した場合、それはすべての「兆」を計算し、どの「兆」が敵の移動に関係なく応答することを意味します-移動まだ勝っています


ディスカッションへようこそ。あなたの声明を証明する何かがありますか?具体的な関係はないと思います。
SmallChess 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.