Ini tidak nyata, bayangkan saja ini terjadi.
Computer A
adalah superkomputer. Ini dapat menghitung kedalaman 30 ply dalam 20 detik.
Computer B
adalah 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 A
tahu lebih banyak. Tetapi Computer B
mampu memprediksi masa depan juga cukup, menurut saya, cukup jauh untuk mempertahankan dirinya dengan sangat baik.
engines
calculation
ply
RikTelner
sumber
sumber
Jawaban:
Ya, 15 kedalaman itu sangat penting.
Pertimbangkan posisi ini yang terjadi di Immortal Game Kasparov vs 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.
Mesin yang sama, ketika dipertahankan untuk sedikit lebih dalam, menunjukkan 24 ... Kb6 ke langkah yang benar.
Fritz 11 SE, pada kedalaman 15, juga gagal. Tetapi ia menemukan langkah yang benar di kedalaman 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.
( 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!
sumber
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
sumber
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.
sumber
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.
sumber
+1 ply diperkirakan mendapatkan + 55..70 ELO (banyak penelitian tentang topik ini)
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
sumber