Skip to content
Pikafish: Mesin Catur Cina (Xiangqi) Terkuat

Pikafish: Mesin Catur Cina (Xiangqi) Terkuat

Apa itu Pikafish, sekuat apa sebenarnya, dan cara memasang, menyetel, serta membaca keluarannya

Matthew Leroy7 min

Apa itu Pikafish?

Pikafish adalah mesin Xiangqi yang gratis dan sumber terbuka: program yang menerima sebuah posisi lalu mengembalikan langkah yang dianggapnya terbaik, disertai penilaian berupa angka tentang siapa yang sedang lebih unggul. Ia tidak punya antarmuka sendiri. Ia adalah inti perhitungan yang berbicara dengan program grafis lewat perintah teks, seperti mesin yang bersemayam di balik kap sebuah mobil. Rancangan itu disengaja: dengan memisahkan mesin dari antarmuka, inti yang sama bisa menggerakkan papan analisis di komputer meja, aplikasi ponsel, atau sebuah situs web. Pikafish menjadi mesin rujukan di dunia Xiangqi karena alasan yang sama dengan Stockfish di catur: ia lebih kuat daripada alternatif komersial, ia tidak memungut biaya, dan kode sumbernya terbuka sehingga siapa pun bisa memverifikasi apa yang ia kerjakan. Kalau kamu ingin gambaran yang lebih luas tentang bagaimana komputer sampai mendominasi Xiangqi, ikhtisar mesin AI Xiangqi kami membahas sejarah lengkapnya; artikel ini memusatkan perhatian pada Pikafish itu sendiri.

Dari mana asal Pikafish? Garis keturunan Stockfish

Pikafish adalah turunan Stockfish, mesin catur sumber terbuka yang mendominasi catur komputer selama lebih dari satu dasawarsa. Alih-alih membangun ulang algoritme pencarian dari nol, para penulisnya mengambil pencarian Stockfish yang sudah teruji — bagian yang memutuskan cabang mana dari pohon langkah yang layak dijelajahi dan mana yang aman dipangkas — lalu menyesuaikannya dengan permainan yang punya papan 9×10, sungai, istana, dan bidak yang perilakunya sama sekali berbeda dari padanannya di catur. Bagian penilaiannya harus dibangun ulang sepenuhnya, sebab tahu bahwa benteng itu kuat di lajur terbuka tidak mengatakan apa pun tentang cara menilai meriam yang butuh tumpuan untuk memakan. Pewarisan itu menjelaskan banyak hal tentang Pikafish: bahasa perintahnya, pilihan konfigurasinya, kelaziman perilisannya, dan lisensinya semua berasal dari keluarga Stockfish. Ia disebarkan di bawah GPL v3, yang berarti bebas dipakai dan dimodifikasi, tetapi karya turunan apa pun juga wajib diterbitkan dengan syarat yang sama.

Sekuat apa Pikafish sebenarnya?

Sangat kuat — cukup kuat sehingga pertanyaan tentang mengalahkannya tak lagi punya jawaban yang serius. Pada perangkat keras modern yang biasa saja, dengan waktu beberapa detik per langkah, Pikafish bermain jauh melampaui tingkat Grandmaster manusia terkuat. Ia tidak berbuat blunder, tidak pernah lelah, menghitung rangkaian paksa lebih dalam daripada yang sanggup ditampung kepala manusia, dan menilai posisi yang tenang dengan keajekan yang tak sanggup dipertahankan pemain mana pun sepanjang partai panjang. Perbandingan yang menarik bukanlah manusia lawan mesin, melainkan untuk apa mesin itu berguna. Pemain berating 1400 tidak memperoleh apa-apa dari diberi tahu bahwa posisinya kalah dua angka; yang ia perlukan adalah memahami langkah mana yang menciptakan masalahnya. Karena itu kekuatan mentah sebuah mesin jauh kurang penting daripada cara kamu memakainya. Artikel kami tentang rating Elo dalam Xiangqi menempatkan rentang rating manusia dalam perspektif, dan memperlihatkan kenapa jarak antara pemain klub dan Grandmaster lebih kecil daripada jarak antara Grandmaster dan sebuah mesin.

Apa itu NNUE, dan kenapa Pikafish butuh berkas terpisah?

NNUE adalah singkatan dari jaringan saraf yang bisa diperbarui secara efisien, dan itulah bagian Pikafish yang menilai posisi. Mesin klasik menilai posisi dengan aturan yang ditulis tangan: benteng bernilai sekian, pion terlindungi yang sudah melewati sungai bernilai sekian, raja yang terbuka kena pinalti. NNUE menggantikan tabel tulisan tangan itu dengan jaringan saraf kecil yang dilatih atas jutaan posisi, yang menangkap seluk-beluk yang tak berhasil dirumuskan siapa pun sebagai aturan. Kata efisien adalah kuncinya: jaringannya dirancang sedemikian rupa sehingga ketika satu bidak berpindah, hanya sebagian kecil perhitungan yang perlu diulang, dan itulah yang membuatnya cukup cepat untuk dijalankan jutaan kali per detik. Dalam praktiknya, jaringan ini tinggal di berkas terpisah, biasanya bernama semacam pikafish.nnue. Berkas biner mesinnya sendiri tidak memuatnya. Inilah sumber kebingungan yang paling sering menimpa pendatang baru, dan menjadi pokok bahasan bagian berikutnya.

Bagaimana cara mengunduh dan menjalankan Pikafish?

Pikafish disebarkan sebagai berkas biner terkompilasi di repositori publiknya, github.com/official-pikafish/Pikafish, dengan versi bangunan untuk Windows, Linux, macOS, dan Android. Tiap rilis biasanya menawarkan beberapa varian dari versi yang sama, dinamai menurut set instruksi prosesor — avx2, bmi2, vnni, dan sejenisnya. Itu bukan mesin yang berbeda-beda; itu program yang sama, dikompilasi untuk memanfaatkan fitur prosesor yang lebih baru atau lebih lama. Pilih yang paling baru yang didukung mesinmu; kalau ia menolak berjalan dengan galat instruksi ilegal, turun ke versi bangunan yang lebih konservatif. Arsip rilisnya sudah memuat jaringan NNUE, jadi pengunduhan biasa tidak memerlukan langkah tambahan. Kamu baru perlu mengambil jaringannya sendiri kalau mengompilasi dari sumber; ia berada di repositori Networks dan mesti diletakkan bersebelahan dengan berkas binernya. Kegagalannya pun tidak samar: mesin yang tak bisa memuat jaringannya akan mencetak jalur yang ia coba beserta URL tempat mengunduhnya, lalu berhenti — ia tidak pernah lanjut bermain dengan langkah yang lemah. Terakhir, ingat bahwa berkas binernya tidak punya jendela dan tidak punya papan: kamu butuh antarmuka grafis yang berbicara dengan protokol yang sama untuk benar-benar memakainya.

Bagaimana menyetel Pikafish dengan benar?

Tiga setelan menyumbang nyaris seluruh perbedaan praktisnya. Threads memberi tahu mesin berapa inti prosesor yang boleh dipakai. Makin banyak utas berarti makin banyak posisi yang diperiksa per detik, tetapi menyisakan setidaknya satu inti tetap bebas menjaga perangkatmu tetap responsif; menyetelnya di atas jumlah inti yang sebenarnya justru memperlambat. Hash adalah memori yang dipakai mesin untuk mengingat posisi yang sudah ia nilai, dinyatakan dalam megabita. Terlalu sedikit dan ia menghitung ulang hal yang sama tanpa henti; terlalu banyak dan ia bersaing dengan sisa sistemmu. Beberapa ratus megabita sudah nyaman untuk analisis di komputer biasa. Setelan ketiga sebenarnya bukan setelan: yaitu berapa lama kamu membiarkannya berpikir. Kekuatan mesin tumbuh seiring waktu, tetapi dengan hasil yang makin menyusut — lompatan dari satu detik ke sepuluh detik besar, dari sepuluh detik ke seratus jauh lebih kecil. Untuk menelaah partaimu sendiri, beberapa detik per posisi sudah lebih dari cukup. Timbal balik yang sama, diterapkan pada lawan alih-alih pada analisis, adalah yang kami uraikan dalam cara kami menyeimbangkan tingkat kesulitan bot.

Bagaimana membaca apa yang disampaikan Pikafish?

Mesin ini mengeluarkan aliran baris yang tak putus, dan ada tiga angka yang penting. Penilaian dinyatakan dalam satuan setara-Pion dari sudut pandang pihak yang sedang melangkah: skor positif berarti pihak yang melangkah lebih unggul, dan skor di sekitar nol berarti berimbang. Nilai seperti plus satu kira-kira berarti keunggulan sebesar satu Pion yang sehat, bukan partai yang sudah menang. Kedalaman adalah berapa lapis langkah ke depan yang sudah ia telusuri; penilaian tinggi pada kedalaman rendah jauh kurang layak dipercaya daripada penilaian sedang pada kedalaman tinggi. Variasi utama adalah rangkaian langkah yang dianggap mesin terbaik bagi kedua pihak, dan justru inilah bagian yang paling mendidik: penilaiannya memberitahumu bahwa ada yang salah, variasinya memberitahumu kenapa. Pemula hanya membaca angkanya; pemain yang berkembang membaca variasinya. Kalau notasi dalam baris-baris itu terasa asing, panduan kami tentang notasi Xiangqi menjelaskan sistem yang dipakai.

Memakai mesin untuk berkembang — dan di mana batasnya

Mesin adalah kotak jawaban yang tanpa ampun, dan justru itulah yang membuatnya sekaligus mitra belajar terbaik dan terburuk. Metode yang produktif adalah menganalisis partaimu sendiri setelah memainkannya, dan berpikir sebelum melihat: bentuk dulu penilaianmu sendiri tentang di mana partainya berbalik, baru periksa. Ketika mesin tidak sepakat denganmu, ketidaksepakatan itulah pelajarannya. Metode yang tidak produktif adalah mengeklik satu per satu langkah sambil menonton batang penilaian bergerak, yang terasa seperti belajar padahal tidak mengajarkan apa-apa. Di bawah kira-kira 2000, sebagian besar kekalahan datang dari taktik yang sebenarnya bisa kamu temukan sendiri dengan lebih disiplin, bukan dari seluk-beluk yang diungkap mesin — panduan peningkatan Xiangqi kami memaparkan jalur kemajuan yang lebih efektif. Dan hal yang sudah jelas tetapi tetap perlu dikatakan: memakai bantuan mesin selama partai berlangsung melawan orang lain adalah kecurangan, di setiap platform yang serius dan di setiap federasi. Mesin dipakai setelah partai usai, atau untuk posisi yang tidak sedang dimainkan siapa pun.

Memakai Pikafish tanpa memasang apa pun

Kalau yang kamu inginkan cuma mesin kuat yang menganalisis posisimu, kamu sama sekali tidak perlu memasang apa pun. Xiangqi One menjalankan Pikafish secara langsung, secara asali di aplikasi ponsel dan dikompilasi ke WebAssembly di peramban, sehingga analisisnya berlangsung di perangkatmu sendiri tanpa penyiapan, tanpa berkas jaringan yang perlu diunduh, dan tanpa konfigurasi. Kamu bisa membuka papan, menelusuri sebuah partai, dan memperoleh penilaian mesin yang sama seperti diuraikan di atas pada kedalaman sejauh kesabaranmu. Bot yang kamu lawan memakai inti yang sama, sengaja ditahan agar menghasilkan lawan pada tingkat yang benar-benar berguna untuk dimainkan — penalarannya ada di cara kami menyeimbangkan tingkat kesulitan bot. Untuk menganalisis sebuah posisi atau bermain melawan lawan yang terkalibrasi sekarang juga, buka Xiangqi One. Untuk lanskap mesin yang lebih luas dan bagaimana komputer mengubah permainan ini, lanjutkan dengan ikhtisar mesin AI Xiangqi kami atau telusuri kategori mesin.

Lanjut membaca