这不是真实的,只需想象发生这种情况。
Computer A
是超级计算机。它可以在20秒内计算出30层深。
Computer B
是超级计算机。它可以在20秒内计算出15层深。
他们互相下棋。
这15个深度真的重要吗?我猜想在这15个深度之内,可能有数万亿种方法可以逃脱将死或捕获重要碎片。当然,Computer A
了解更多。但Computer B
在我看来,我也能够预测未来,足以捍卫自己。
这不是真实的,只需想象发生这种情况。
Computer A
是超级计算机。它可以在20秒内计算出30层深。
Computer B
是超级计算机。它可以在20秒内计算出15层深。
他们互相下棋。
这15个深度真的重要吗?我猜想在这15个深度之内,可能有数万亿种方法可以逃脱将死或捕获重要碎片。当然,Computer A
了解更多。但Computer B
在我看来,我也能够预测未来,足以捍卫自己。
Answers:
是的,这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的Fritz 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)
还要考虑这个令人难以置信的问题,例如我在这里发现的职位。
Stockfish无法找到获胜线1. Be2 +!直到深度31为止,直到那时它才认为这是一个错误的举动。我在这里展示胜利。关键是黑方由于同伴的威胁而进入楚格旺,因此必须放弃女王或移动一个棋子,这将使白方创建一个经过的棋子并获胜。
这是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)
实际上,在计算机国际象棋编程社区中,性能提升与搜索深度之间的关系实际上一直是研究的活跃领域。有一种理论认为,搜索深度的增加会导致强度回报的减少 ……这似乎在实验结果中得到了证实。
在我看来,这有一个直观的基础。想象一下,从终端游戏桌面位置开始,假设您在两台超级计算机之间进行了匹配。在表层中,大多数强制性获胜发生在少于(例如)50层的地平线上。剩下的大多数位置都是平局,只有一小部分决心赢得更高深度的胜利。一台以100层搜索的计算机比50层计算机具有有限的优势,因为(如您所提到的)较弱的程序能够浏览几乎所有丢失的行,所有行都出现在更有限的深度。实际上,50层程序比25层程序具有更大的优势... 4层程序比2层程序具有更大的优势。
大约15年前,我在有关“ 黑暗思想”的系列文章中首次尝试了这种概念,并进行了深入搜索。如果您对计算机国际象棋感兴趣,那么这是一本很好的读物。
尽管我找不到在线参考,但去年有一篇有关该主题的论文...
Diogo R.Ferreira(2013年)。搜索深度对下棋实力的影响。ICGA Journal,第一卷 36号2号
问题是:您指的是详尽搜索的15/30层,还是像Stockfish这样的现代国际象棋引擎的标称深度/迭代为15/30?
如果您指的是后者,那么15层不一定意味着太多。现代国际象棋引擎会大量修剪并减少本来很差的动作,因此可能是乍一看似乎是不好的牺牲,名义深度/迭代次数为15,实际上仅搜索到5-10的深度。在深度/迭代次数30处,可能仍仅搜索到减小的深度,但随后可能是有效深度15-20,这足以发现牺牲确实是好的,并且在引擎一发现发现移动是有希望的,它将减少减少,因此移动被搜索到更接近30层的深度(由于扩展和静态搜索,甚至更深)。因此,是的,即使组合在15层的标称范围内,我也可以有所作为。
如果您指的是穷举搜索,那么我认为深度为15的引擎将非常强大,只要它具有良好的评估功能和某种静态搜索(在深度为15的离开节点之后)。由于收益递减,我认为将深度增加一倍所获得的收益将远小于将两个深度为15的现代引擎与深度为30的现代引擎进行匹配所获得的收益。但这当然仅是理论上的,因为对深度15所花费的时间要比引擎通常达到深度/迭代15所花费的时间长几个数量级,因此,这样的实验仅在较低的深度才可行。
FWIW当ARM是新的时,我编写了一个经过优化的ARM穷举搜索程序,该程序在第1层之后仅进行了实质性的位置评估。
我使用了技巧,包括优化的机器代码,迭代加深,排序移动上的alpha-beta窗口化(几乎所有位置的值为0,因此得到了接近最优的alpha-beta修剪)和哈希表,这些分支表将分支因子减小到小于alpha-beta的理论平方根,在游戏最糟糕的部分通常约为4。
在当时与标准程序的竞争中,我的E6P程序陷入了可怕的境地,但与当时的Pro软件相比,额外搜索了一层或两遍详尽的搜索(例如,最糟糕的阶段通常是六层详尽+静态搜索,比赛简化后最多可达到12层),尽管对手对其抱有信心,但它仍然避免了实际的失败。经过数小时的努力,几乎所有游戏都进入了裁定阶段,因为相反的程序实际上无法获胜。
后来,我针对StrongARM进行了优化,将其移动到10层。这个版本很容易击败所有非国际象棋玩家,尽管显然它缺乏任何战略意识,所以著名的评论适用:是的,它们是国际象棋棋子,但不是国际象棋!
这是几年前的事,但是我很想再次尝试穷举起来,在第1层进行更具战略意义的位置评估-理论上,Intel XEON比4MIPS快10,000-100,000x(并且哈希表内存增加30k倍) ARM2橡子阿基米德。
公认不是主流,而是玩的开心。
+1层估计+ 55..70 ELO增益(有关此主题的很多研究)
我猜想在这15个深度之内,可能有数万亿种方法可以逃脱将死或捕获重要的碎片。
事实是,所有这些“万亿美元”都是由A @ D = 30计算得出的,如果A选择获胜的选举获胜,则意味着它计算了所有这些“万亿美元”,无论哪个“万亿美元”都移动了对手的回复-移动仍在赢