Pada pemangkasan Alpha-Beta, NegaScout mengklaim bahwa ia dapat mempercepat proses dengan mengatur [Alpha, Beta] ke [Alpha, Alpha-1].
Saya tidak mengerti seluruh proses NegaScout.
Bagaimana cara kerjanya? Apa mekanisme pemulihannya ketika tebakannya gagal?
Jawaban:
Maaf atas keterlambatan balasan ( 4 tahun !)
NegaScout adalah algoritma yang sangat sederhana. Untuk memahami kita harus merevisi pendalaman iteratif .
Pendalaman berulang adalah teknik untuk mesin catur untuk mencari kedalaman i, lalu i +1, lalu i + 2 dll. Ini adalah contoh pemrograman dinamis. Selama setiap iterasi, kami memiliki tebakan terbaik kami tentang langkah terbaik yang akan diambil. Sebagian besar mesin catur akan menjaga langkah ini dalam tabel hashing.
Bayangkan kita sekarang di iterasi i +1, dan kita memiliki langkah terbaik dari iterasi terakhir i. Sekarang kita memiliki 5 node untuk dicari, apa yang harus kita lakukan?
Jika kita mengasumsikan kita telah melakukan pekerjaan yang cukup baik selama iterasi terakhir kita, langkah terbaik dari iterasi terakhir (yang kita dapatkan dari tabel hash) juga harus menjadi langkah terbaik untuk iterasi saat ini.
Jika asumsi kita benar, kita harus dapat menghemat waktu dengan mencari setiap gerakan selain langkah terbaik (empat langkah tidak dalam tabel hash) dengan a
null window
. Jendela nol adalah sesuatu seperti:score := -pvs(child, depth-1, -α-1, -α, -color)
Catatan
-α-1
dan-α
. Nilai tersebut adalah nilai alfa dan beta yang akan kami berikan untuk rekursi berikutnya. Karena lebar jendela hanya 1, pencarian akan selalu gagal:Tentu saja, kita masih akan mencari langkah terbaik (yang kita dapatkan dari tabel hash) dengan jendela alpha dan beta yang tepat. Kita perlu melakukan ini karena kita perlu tahu persis nilai node, kita tidak bisa mengabaikannya begitu saja.
Semua yang saya katakan diimplementasikan dalam pseudocode berikut. Kode pseudocode menentukan
child is not first child
tetapi ini adalah cara untuk memeriksa apakah langkah tersebut juga merupakan langkah terbaik dalam iterasi sebelumnya. Tabel hash adalah implementasi yang paling umum.sumber