Saya telah mengembangkan program catur yang memanfaatkan algoritma pemangkasan alpha-beta dan fungsi evaluasi yang mengevaluasi posisi menggunakan fitur-fitur berikut yaitu bahan, keamanan, mobilitas, struktur gadai dan potongan terperangkap dll ..... Fungsi evaluasi saya adalah berasal dari
di mana adalah bobot yang ditetapkan untuk setiap fitur. Pada titik ini saya ingin menyesuaikan bobot fungsi evaluasi saya menggunakan perbedaan temporal, di mana agen bermain melawan dirinya sendiri dan dalam proses mengumpulkan data pelatihan dari lingkungannya (yang merupakan bentuk pembelajaran penguatan). Saya telah membaca beberapa buku dan artikel untuk memiliki wawasan tentang bagaimana menerapkan ini di Jawa tetapi tampaknya lebih bersifat teori daripada praktis. Saya membutuhkan penjelasan terperinci dan kode pseudo tentang cara mengatur bobot bobot fungsi evaluasi saya secara otomatis berdasarkan permainan sebelumnya.
sumber
Komentar pertama, Anda harus menonton 'Wargames' untuk mengetahui apa yang Anda hadapi.
Yang Anda inginkan adalah f (p) sedemikian rupa sehingga f (p) sedekat mungkin dengan kekuatan posisi.
Solusi yang sangat sederhana menggunakan algo genetik adalah menyiapkan 10.000 pemain dengan bobot berbeda dan melihat mana yang menang. Kemudian pertahankan bobot 1000 pemenang teratas, salin 10 kali, ubah sedikit untuk menjelajahi ruang bobot, dan jalankan simulasi lagi. Itu standar GA, diberi bentuk fungsional, apa koefisien terbaik untuk itu.
Solusi lain adalah mengekstraksi posisi, sehingga Anda memiliki tabel '(bahan, keselamatan raja, mobilitas, struktur gadai, barang terperangkap) -> kebaikan posisi' di mana kebaikan posisi adalah beberapa faktor objektif (hasil menang / kalah dihitung dengan menggunakan simulasi di atas) atau kecocokan yang diketahui, kedalaman pohon yang tersedia, jumlah gerakan di bawah pohon di mana salah satu dari 5 faktor menjadi lebih baik. Anda kemudian dapat mencoba berbagai bentuk fungsional untuk f (p), regresi, svm Anda.
sumber