Apakah kedalaman (jumlah lapisan) masih penting setelah cukup tinggi?

10

Ini tidak nyata, bayangkan saja ini terjadi.

Computer Aadalah superkomputer. Ini dapat menghitung kedalaman 30 ply dalam 20 detik.

Computer Badalah superkomputer. Ini dapat menghitung 15 lapis dalam 20 detik.

Mereka bermain melawan catur lainnya.

Apakah 15 kedalaman ini benar-benar penting? Saya kira dalam 15 kedalaman ini mungkin ada triliunan cara untuk melarikan diri dari skakmat atau menangkap bagian penting. Tentu, Computer Atahu lebih banyak. Tetapi Computer Bmampu memprediksi masa depan juga cukup, menurut saya, cukup jauh untuk mempertahankan dirinya dengan sangat baik.

RikTelner
sumber
Dalam hal ini, dengan "kedalaman" yang Anda maksud jumlah lapisan? Bersulang.
Rauan Sagit
Ya, yang saya maksud adalah lapisan.
RikTelner

Jawaban:

13

Ya, 15 kedalaman itu sangat penting.

Pertimbangkan posisi ini yang terjadi di Immortal Game Kasparov vs Topalov.

Kasparov - Topalov

Saya menguji posisi ini dengan beberapa mesin. Beberapa mesin, pada kedalaman 15, gagal mendeteksi bahwa 24 ... cxd4 adalah langkah yang hilang dan berpikir itu menang. Mesin-mesin yang sama, pada kedalaman yang lebih besar, memainkan langkah yang benar 24 ... Kb6!

Sebagai contoh, bahkan sebuah mesin sekuat Stockfish 4 awalnya pada kedalaman 21 berpikir langkah yang hilang 24 ... cxd4 benar.

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)

Mesin yang sama, ketika dipertahankan untuk sedikit lebih dalam, menunjukkan 24 ... Kb6 ke langkah yang benar.

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, pada kedalaman 15, juga gagal. Tetapi ia menemukan langkah yang benar di kedalaman 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)

Juga pertimbangkan masalah luar biasa ini seperti posisi yang saya temukan di sini .

Stockfish tidak dapat menemukan garis pemenang 1. Be2 +! sampai kedalaman 31 dan sampai saat itu ia berpikir itu adalah langkah yang buruk. Saya menunjukkan kemenangan di sini. Intinya adalah bahwa Black berada di zugswang karena ancaman pasangan dan harus menyerahkan ratu atau memindahkan pion yang akan memungkinkan Putih untuk membuat pion yang lolos dan menang.

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

Berikut log mesin dari Stockfish 4. Seperti yang Anda lihat, mendeteksi bahwa 1. Be2 + menang, hanya di kedalaman 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) 
Wes
sumber
Tapi maksud saya 15 gerakan setiap gerakan. Bukan hanya di awal.
RikTelner
4
Ya, di setiap gerakan. Jika, pada langkah pertama, ia menghitung pada kedalaman 15 dan membuat kesalahan, maka menghitung 15 kedalaman pada setiap langkah selanjutnya tidak akan menyimpannya.
Wes
5

Hubungan antara peningkatan kinerja dan kedalaman pencarian sebenarnya telah menjadi bidang penelitian aktif untuk waktu yang cukup lama di komunitas pemrograman catur komputer. Ada sebuah teori yang meningkatkan kedalaman pencarian menghasilkan berkurangnya kekuatan ... ini tampaknya diverifikasi dalam hasil percobaan.

Dari sudut pandang saya, ada dasar intuitif untuk ini. Bayangkan kecocokan hipotesis Anda antara dua superkomputer, mulai dari posisi tablebase endgame. Sebagian besar kemenangan yang dipaksakan di tablebase terjadi di cakrawala kurang dari (misalnya) 50 ply. Mayoritas posisi yang tersisa diambil, hanya sebagian kecil yang memutuskan untuk menang di kedalaman yang lebih tinggi. Sebuah komputer yang mencari pada 100 ply akan memiliki keunggulan terbatas di atas komputer 50 ply, karena (seperti yang Anda sebutkan) program yang lebih lemah dapat menavigasi melalui hampir semua garis yang hilang, semua terjadi pada kedalaman yang lebih terbatas. Program 50 ply sebenarnya akan memiliki keuntungan yang jauh lebih besar daripada program 25 ply ... seperti halnya program 4 ply memiliki keuntungan yang lebih besar daripada program 2 ply.

Saya pertama kali menemukan konsep ini sekitar 15 tahun yang lalu, dalam serangkaian makalah tentang Pemikiran Gelap , bereksperimen dalam pencarian mendalam. Ini adalah bacaan yang bagus jika Anda tertarik dengan catur komputer.

Meskipun saya tidak dapat menemukan referensi online, ada makalah dari tahun lalu tentang topik ini ...

Diogo R. Ferreira (2013). Dampak Kedalaman Pencarian pada Kekuatan Bermain Catur. Jurnal ICGA, Vol. 36, No. 2

tbischel
sumber
2

Pertanyaannya adalah: Apakah maksud Anda pencarian 15/30 lapis penuh, atau kedalaman nominal / iterasi 15/30 dari mesin catur modern seperti Stockfish?

Jika Anda maksud yang terakhir, 15 lapis tidak berarti banyak. Mesin catur modern sangat memangkas dan mengurangi gerakan yang dianggap buruk, sehingga mungkin pengorbanan yang tampaknya buruk pada pandangan pertama, pada kedalaman nominal / iterasi 15 sebenarnya hanya dicari hingga kedalaman misalnya 5-10. Pada kedalaman / iterasi 30, gerakan mungkin masih dicari hanya untuk kedalaman yang dikurangi, tetapi kemudian mungkin kedalaman efektif 15-20, yang mungkin cukup untuk menemukan bahwa pengorbanan sebenarnya baik, dan segera setelah mesin menemukan bahwa langkah itu menjanjikan, itu akan mengurangi pengurangan, sehingga langkah tersebut dicari ke kedalaman lebih dekat ke 30 ply (atau bahkan lebih dalam karena ekstensi dan pencarian diam). Jadi ya, saya pikir itu bisa membuat perbedaan, bahkan jika kombinasi berada dalam cakrawala nominal 15 ply.

Jika Anda mengacu pada pencarian yang lengkap, maka saya pikir mesin dengan kedalaman 15 akan sangat kuat asalkan memiliki fungsi evaluasi yang baik dan semacam pencarian ketenangan (setelah meninggalkan node pada kedalaman 15). Karena hasil yang berkurang, saya pikir keuntungan dengan menggandakan kedalaman akan jauh lebih sedikit daripada apa yang akan Anda dapatkan untuk pertandingan antara dua mesin modern dengan kedalaman 15 vs kedalaman 30. Tapi itu tentu saja hanya teoretis, karena pencarian lengkap untuk kedalaman 15 akan membutuhkan beberapa kali lipat lebih lama dari yang biasanya dilakukan mesin untuk mencapai kedalaman / iterasi 15, jadi percobaan semacam itu hanya akan layak pada kedalaman yang lebih rendah.

Fabian Fichter
sumber
0

FWIW Ketika ARM masih baru, saya menulis sebuah program pencarian lengkap ARM yang dioptimalkan dengan bahan evaluasi posisi hanya setelah ply 1.

Saya menggunakan trik dengan kode mesin yang dioptimalkan, pendalaman iteratif, jendela alpha-beta pada gerakan yang diurutkan (hampir semua posisi memiliki nilai 0, jadi dapatkan pemangkasan alpha-beta yang hampir optimal) - dan tabel hash yang mengurangi faktor cabang menjadi jauh lebih sedikit daripada akar kuadrat teoretis untuk alpha-beta, biasanya sekitar 4 di bagian terburuk permainan.

Dalam sebuah kompetisi melawan program standar pada saat itu, program E6P saya masuk ke posisi yang buruk, tetapi dengan satu atau dua pencarian lengkap dibandingkan dengan perangkat lunak pro pada saat itu (yaitu biasanya 6 pencarian lengkap + pencarian diam di tahap terburuk, dengan hingga 12 ply saat permainan disederhanakan), ia terus menggeliat karena benar-benar kalah, meskipun kepercayaan dari lawan-lawannya. Hampir semua pertandingan menjadi ajudikasi setelah berjam-jam karena program yang berlawanan tidak bisa benar-benar menang.

Kemudian saya mengoptimalkannya untuk StrongARM, di mana ia pindah ke 10 ply. Versi ini dapat dengan mudah mengalahkan semua pemain non-catur, meskipun jelas tidak memiliki kesadaran strategi, jadi komentar terkenal diterapkan: ya, mereka adalah gerakan catur - tetapi itu bukan catur!

Ini cukup beberapa tahun yang lalu, tetapi saya tergoda untuk mencoba lagi dengan evaluasi posisi yang lebih strategis di ply 1 - dan dengan Intel XEON secara teoritis 10.000-100.000x lebih cepat (dan dengan 30k kali lebih banyak memori tabel hash) daripada 4MIPS ARM2 Acorn Archimedes.

Diakuinya tidak mainstream, tetapi menyenangkan untuk dimainkan.

Stephen Streater
sumber
-2

+1 ply diperkirakan mendapatkan + 55..70 ELO (banyak penelitian tentang topik ini)

Saya kira dalam 15 kedalaman ini mungkin ada triliunan cara untuk melarikan diri dari skakmat atau menangkap bagian penting.

Masalahnya adalah bahwa semua "triliunan" ini dihitung oleh A @ D = 30, dan jika A memilih bergerak dengan eval pemenang, itu berarti bahwa ia menghitung semua "triliunan" ini dan tidak peduli mana dari "triliunan" bergerak lawan menjawab - pindah masih menang

Yuriy Pylypenko
sumber
Selamat datang di diskusi. Apakah Anda punya sesuatu untuk membuktikan pernyataan Anda? Saya tidak berpikir ada hubungan yang konkret.
SmallChess