Глубина (количество слоев) все еще имеет значение, когда она достаточно высока?


10

Это не реально, просто представьте, что это происходит.

Computer Aэто суперкомпьютер. Он может рассчитать 30 слоев в течение 20 секунд.

Computer Bэто суперкомпьютер. Он может рассчитать 15 слоев в течение 20 секунд.

Они играют друг против друга в шахматы.

Эти 15 глубин действительно имеют значение? Я предполагаю, что в пределах этих 15 глубин может быть триллион способов избежать поражения или захвата важной части. Конечно, Computer Aзнает больше. Но Computer B, на мой взгляд, способен предсказать будущее достаточно далеко, чтобы достаточно хорошо защищаться.


В данном случае под «глубиной» вы подразумеваете количество сгибов? Приветствия.
Рауан Сагит

Да, я имею в виду курсирует.
RikTelner

Ответы:


13

Да, эти 15 глубин очень важны.

Рассмотрим эту позицию, которая произошла в « Бессмертной игре» Каспарова против Топалова.

Каспаров - Топалов

Я проверил эту позицию с несколькими двигателями. Некоторые двигатели на глубине 15 не смогли обнаружить, что 24 ... cxd4 - проигрышный ход, и думали, что они выигрывают. Те же двигатели, на большей глубине, сыграли правильный ход 24 ... Kb6!

Например, даже такой мощный двигатель, как Stockfish 4, изначально на глубине 21, считает, что проигрышный ход 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)

Fritz 11 SE, на глубине 15, тоже провалился. Но он нашел правильный ход на глубине 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 и до тех пор он думал, что это плохой ход. Я демонстрирую победу здесь. Дело в том, что черные находятся в цугсванге из-за угроз спаривания и должны либо отказаться от ферзя, либо переместить пешку, которая позволит белым создать проходную пешку и выиграть.

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! а4 9. б6 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

4
Да, на каждом шаге. Если при первом движении он вычисляет на глубине 15 и делает ошибку, то вычисление 15 глубин при каждом последующем движении не спасет его.
Вес

5

Взаимосвязь между повышением производительности и глубиной поиска в течение довольно долгого времени была активной областью исследований в сообществах компьютерных шахматных программистов. Была теория, что увеличение глубины поиска приводило к уменьшению отдачи в силе ... это, казалось, было подтверждено экспериментальными результатами.

С моей точки зрения, для этого есть интуитивная основа. Представьте себе ваше гипотетическое совпадение между двумя суперкомпьютерами, начиная с позиций в таблице конечных игр. Большинство принудительных побед в настольных базах происходят на горизонте менее (например) 50 слоев. Большинство оставшихся позиций разыгрывается, только небольшая часть решает выиграть на более высокой глубине. Компьютер, выполняющий поиск на 100 слоев, имел бы ограниченное преимущество перед компьютером с 50 слоями, потому что (как вы упоминаете) более слабая программа способна перемещаться практически по всем проигрышным линиям, причем все они происходят на более ограниченной глубине. Программа с 50 слоями фактически имела бы намного большее преимущество перед программой с 25 слоями ... как и программа с 4 слоями имеет еще большее преимущество перед программой с двумя слоями.

Впервые я столкнулся с этой концепцией около 15 лет назад, в серии статей о Темной Мысли , экспериментируя в глубоких поисках. Это отличное чтиво, если вы заинтересованы в компьютерных шахматах.

Хотя я не смог найти онлайн-ссылку, есть статья прошлого года на эту тему ...

Диого Р. Феррейра (2013). Влияние глубины поиска на силу игры в шахматы. ICGA Journal, Vol. 36, № 2


2

Вопрос в следующем: вы имеете в виду 15/30 сгибов исчерпывающего поиска или номинальную глубину / итерацию 15/30 современного шахматного движка, такого как Stockfish?

Если вы имели в виду последнее, 15 слой не обязательно много значит. Современные шахматные движки сильно сокращают и уменьшают ходы, которые якобы плохие, поэтому может случиться так, что жертва, которая кажется плохой на первый взгляд, на номинальной глубине / итерации 15, фактически ищется только до глубины, например, 5-10. На глубине / итерации 30 движение, вероятно, все еще ищется только на уменьшенную глубину, но тогда это может быть эффективная глубина 15-20, которая может быть достаточной для определения того, что жертва действительно хороша, и как только двигатель обнаруживает, что перемещение является многообещающим, оно уменьшит уменьшение, так что перемещение ищется на глубину ближе к 30 слоям (или даже глубже из-за расширений и поиска покоя). Так что да, я думаю, что это может иметь значение, даже если комбинация находится в пределах номинального горизонта 15 слоев.

Если бы вы имели в виду исчерпывающий поиск, то я думаю, что механизм с глубиной 15 будет очень сильным, если у него будет хорошая функция оценки и какой-то поиск покоя (после оставленных узлов на глубине 15). Из-за уменьшения отдачи, я думаю, что выигрыш от удвоения глубины будет намного меньше, чем тот, который вы получили бы за матч между двумя современными двигателями с глубиной 15 и глубиной 30. Но это, конечно, только теоретический, поскольку исчерпывающий поиск Глубина 15 будет занимать на несколько порядков больше, чем обычно используют двигатели для достижения глубины / итерации 15, поэтому такой эксперимент будет возможен только на более низких глубинах.


0

FWIW Когда ARM был новым, я написал оптимизированную программу исчерпывающего поиска ARM с оценкой позиции только материала после сгиба 1.

Я использовал приемы с оптимизированным машинным кодом, итеративным углублением, альфа-бета-окном на отсортированных ходах (почти все позиции имели значение 0, поэтому получили почти оптимальное альфа-бета-сокращение) и хэш-таблицы, которые уменьшали коэффициент ветвления до гораздо меньшего, чем теоретический квадратный корень для альфа-беты, обычно около 4 в худшей части игры.

В то время, когда я боролся со стандартными программами, моя E6P-программа оказалась в ужасных позициях, но с дополнительным или двукратным полным поиском по сравнению с профессиональным программным обеспечением того времени (то есть, как правило, 6-слойным исчерпывающим + бездействующим поиском в худшей стадии, с до 12 сгибов по мере упрощения игры), она продолжала извиваться из фактической потери, несмотря на доверие своих противников. Почти все игры прошли через несколько часов, потому что противоборствующие программы не смогли победить.

Позже я оптимизировал его для StrongARM, где он перешел на 10 сгибов. Эта версия могла легко победить всех игроков, не являющихся шахматами, хотя, очевидно, ей не хватало какой-либо осведомленности о стратегии, поэтому известный комментарий применялся: да, это шахматные ходы, но это не шахматы!

Это было несколько лет назад, но я испытываю соблазн попробовать еще раз с более стратегической оценкой позиции на уровне 1 - и с Intel XEON теоретически в 10 000-100 000 раз быстрее (и с памятью хеш-таблицы в 30 раз больше), чем 4MIPS ARM2 Желудь Архимед.

По общему признанию не главное, но забавно играть.


-2

+1 слой оценивается + 55..70 ELO усиление (много исследований на эту тему)

Я предполагаю, что в пределах этих 15 глубин может быть триллион способов избежать поражения или захвата важной части.

Дело в том, что все эти «триллионы» были вычислены как A @ D = 30, и если A выбирает ход с выигрышным eval, это означает, что он вычислил все эти «триллионы», и независимо от того, какой из «триллионов» перемещает оппонент, ответьте - переместите все еще выигрывает


Добро пожаловать в дискуссию. У вас есть что-нибудь, чтобы доказать свое утверждение? Я не думаю, что есть какие-то конкретные отношения.
SmallChess
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.