Чи має значення глибина (кількість шарів), коли вона досить висока?


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)

Також розгляньте цю неймовірну проблему, як позицію, яку я знайшов тут .

Запаси не змогли знайти виграшну лінію 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

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 000x швидше (і з 30-кратною кількістю більше хеш-пам’яті таблиці), ніж 4MIPS ARM2 Жолудь Архімед.

Справді, це не мейнстрім, але грати весело.


-2

Оцінюється +1 рівень + прибуток від ELO 55..70 (багато досліджень на цю тему)

Я здогадуюсь, що в межах цих 15 глибин може бути трильйони способів уникнути магістра чи захоплення важливої ​​частини.

Вся справа в тому, що всі ці "трильйони" були обчислені A @ D = 30, і якщо A вибрати хід з виграшним eval, це означає, що він обчислив усі ці "трильйони" і незалежно від того, який з "трильйонів" рухається, опонент відповість - перемісти все ще виграє


Ласкаво просимо до дискусії. Чи є у вас щось, щоб довести свою заяву? Я не думаю, що конкретних стосунків немає.
SmallChess
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.