Kenapa bot bisa main catur
.
.
.
A thread
Hola semuanya! Pasti kalian udah denger dong tentang partai catur yang sangat fenomenal minggu lalu yang memecahkan rekor penonton catur tertinggi di dunia!
Sekarang mimin mau bahas tentang bot catur yang kemarin sempat jadi perbincangan nih, tapi disini mimin engga ngejudge yahh 🤣
Kalau kalian sendiri pernah ngebayangin ga gimana cara kerja bot catur? Kenapa mereka bisa membedakan mana langkah yang bagus atau jelek sampai bisa mengalahkan pemain profesional?
Yuk langsung deh kita bahas biar engga ada yang bingung lagi
Singkatnya itu pertama pasti kita harus mengajari mesin terlebih dulu tentang dasar-dasar main catur itu sendiri
Misalnya terdapat bidang berukuran 8x8, diisi oleh 16 buah catur pada kedua ujung sisinya dengan buah sebagai berikut,

♔ — 1 raja
♕ — 1 menteri
♖ — 2 benteng
♗— 2 gajah
♘ — 2 kuda
♙ — 8 pion
Bidang permainan berukuran 8x8 ini dapat diinterpretasikan sebagai matriks 8x8 supaya mesin dapat memahaminya
Juga kita harus memberitahu langkah-langkah dari setiap buah, misalnya kuda hanya bisa melangkah bentuk L, gajah hanya bisa diagonal dan seterusnya
Langkah-langkah khusus seperti en passant, promosi pion, dll bisa juga diajarkan pada mesin tetapi supaya lebih simpel memahaminya kita tidak gunakan terlebih dahulu yah
Lewat instruksi-instruksi sederhana ini sebenarnya kita sudah bisa membuat bot catur loh! Hanya saja langkah yang dimainkan bot adalah masih langkah acak saja. Ilustrasinya seperti ini (hitam adalah bot)
Gimana? Masih random banget kan ya langkah dari bot kita 😂
Kalau tadi langkah yang dijalankan bot adalah langkah acak, sekarang bagaimana supaya bot bisa mengetahui mana langkah yang efektif?
Caranya adalah dengan menetapkan nilai pada setiap buah catur saat dimakan dan termakan Image
Kalau memakan pion nilai akan ditambah 10, dan jika pion kita dimakan nilai kita akan dikurang 10 dan seterusnya
Raja disini memiliki poin terbesar agar kita bisa memberi tahu mesin secara implisit bahwa sebenarnya objektif permainan ini adalah untuk “membunuh” sang raja
Jadi nantinya langkah yang akan diambil oleh bot adalah langkah yang akan menghasilkan nilai terbesar. Tapi kalau semua langkah yang mungkin menghasilkan nilai yang sama, maka tetap akan dijalankan langkah random
Nah dengan begini bot catur kita sudah lumayan memahami permainan lho~ Ini hasilnya
Tapi terlihat jelas ya kalau bot yang kita buat ini masih belum baik, karena langkah yang diambil sangat terburu-buru. Disini bot akan selalu memilih memakan perwira lawan saat diancam daripada kabur karena memakan perwira memberikan nilai lebih tinggi daripada kabur
Padahal bisa saja setelah memakan perwira, pertahanan bisa menjadi sangat terbuka dan dapat diancam lebih parah lagi seperti pada contoh sebelumnya
Nah untuk mengatasi hal ini, kita dapat menggunakan algoritma minimax supaya dapat diketahui langkah-langkah apa saja yang memberikan nilai terbaik yaitu memaksimalkan poin kita dan meminimalkan poin lawan
Jadi dalam algoritma ini, akan dibentuk beberapa tree berisikan semua kemungkinan langkah. Maximizer (pemain) akan selalu memilih nilai terbesar dan minimizer (lawan) akan selalu memilih nilai terkecil supaya meminimalkan nilai si maximizer Image
Lewat skema ini, langkah akhir yang diambil nantinya adalah langkah yang menghasilkan nilai terbesar bagi si maximizer
Misalkan pada kasus ini, sebagai putih langkah yang dapat dimainkan adalah gajah memakan kuda atau gajah. Memakan kuda akan mendapatkan nilai 30 dan memakan gajah akan mendapatkan nilai 30 juga.
Jika gajah putih memakan kuda maka minimizer akan mengambil langkah yang meminimalkan poin putih, yaitu dengan memakan gajah putih dengan benteng Image
Tetapi jika gajah putih memakan gajah maka minimizer akan mengambil langkah minimal yaitu hanya menggerakkan perwiranya tanpa mengancam gajah putih. (jika hasil poin sama maka diambil langkah random)
Disini jika putih memakan kuda, hasil akhirnya adalah 0 karena akan dimakan kembali oleh benteng, tetapi jika memakan gajah hasil akhirnya adalah 30 karena tidak dapat dimakan kembali
Berarti disini langkah terbaik putih adalah dengan memakan gajah hitam karena akan memberikan nilai 30
Langkah ini akan diulangi pada setiap giliran supaya didapatkan langkah yang paling baik. Dan semakin banyak depth level (ply) yang terbentuk akan semakin baik langkah yang dipilih karena sudah mempertimbangkan beberapa langkah setelahnya Image
Dengan menggunakan minimax depth level 2 pun bot kita sudah mampu mempelajari teknik dasar permainan catur deh~ Ini hasilnya 👇🏼👇🏼👇🏼
Selain itu, kita juga akan melakukan optimisasi algoritma minimax menggunakan algoritma alpha-beta pruning
Jadi idenya adalah kita mengeliminasi semua cabang yang udah engga mungkin dipilih maximizer dan minimizer supaya tree yang kita buat bisa lebih dalam lagi dan tidak perlu mengevaluasi semua langkah yang mungkin Image
Alpha-beta pruning ini engga mengubah output dari minimax ya tapi hanya membuat proses penemuan langkah terbaiknya menjadi lebih cepat saja
Kalau untuk kasus tadi, alpha-beta pruning akan menyeleksi cabang-cabang yang udah ga mungkin dipilih oleh minimizer karena nilainya lebih besar, yaitu pilihan engga memakan gajah putih ketika gajah putih makan kuda Image
Terakhir untuk melengkapi sistem kerja bot kita, kita dapat menambahkan fungsi evaluasi lagi pada tiap petak bidang catur kita. Misalnya jika kuda berada pada petak tengah, maka nilai valuasinya akan meningkat Image
Jika aturan ini diterapkan, maka bot kita akan mempertimbangkan prinsip-prinsip dasar catur seperti penguasaan petak tengah terlebih dahulu yang dapat mengubah momentum permainan. Jadi lebih bagus lagi deh 😎
Tadaaa~ bot catur sederhana kita sudah jadi deh! Sekarang bot catur kita sudah cukup oke dalam bermain! Berikut ilustrasi saat bot dijalankan dengan alpha-beta pruning depth level 3
Tapi tetap mimin engga menyarankan kalian bermain catur pakai bot yah!! Kalau pake bot dan dibanned mimin engga tanggung jawab hehehe
FYI pasti setiap penyedia layanan permainan catur memiliki sistem keamanannya masing-masing ya. Kalau langkah kalian sama terus dengan langkah yang diambil bot, maka bisa saja kalian akan menjadi suspect curang
Seperti yang kita lihat tadi, langkah yang diambil bot merupakan hasil evaluasi semua langkah yang mungkin kan, jadi sangat jarang manusia bisa melakukannya apalagi pada setiap langkah secara konsisten.
Jadi bot ini sebagai teman latihan dan just for fun saja ya, tidak boleh digunakan saat bertanding 😂
Kalau kamu penasaran sama algoritma-algoritma seru lainnya, kamu bisa belajar AI di Pacmann.AI lho! Di non degree program Data Scientist, kamu bakal belajar A - Z tentang apa aja yang dibutuhkan buat jadi seorang Data Scientist.
Pendaftaran batch 3 udah resmi dibuka, jangan sampai kelewatan yaa! Cek kurikulumnya di bit.ly/brosurpacmannai atau langsung daftarin diri kamu di bit.ly/PendaftaranNon… See youu! 🤩👋🏼

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Follow us on instagram: @pacmannai

Follow us on instagram: @pacmannai Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @pacmannai

4 Apr
Bintang - bintang di penelitian, apa artinya?⭐️⭐️⭐️
.
.
.
A thread
Hayo siapa yang udah familiar sama maksud ‘***’ atau ‘**’ atau bahkan ‘*’ di paper / penelitian yang kalian bacaa?
Jadi gini guys, tanda bintang yang biasa kalian liat di paper / penelitian itu menandakan p-value dari variabel yang digunakan. Image
Read 33 tweets
3 Apr
Data visualization bisa nurunin criminal rate, gimana caranya?🤔
.
.
.
A thread
Kalau minggu lalu kita bahas pelanggaran lalu lintas, minggu ini kita bahas tentang tindak kejahatan lain. Nih, kalau belum baca thread gimana AI bisa membantu polisi melihat siapa aja yang ngelanggar aturan lalu lintas, cek disini yaa:
Kejahatan memang menjadi masalah di seluruh penjuru dunia. Ga hanya mempengaruhi kualitas hidup korbannya, tingkat kejahatan juga berpengaruh ke pertumbuhan ekonomi dan reputasi dari sebuah negara. Makanya ga heran kalau berbagai negara mencoba buat nurunin angka kejahatannya
Read 40 tweets
2 Apr
Peninggalan Pabrik Gula Belanda di Jawa yang Masih Terasa di Abad 21🍭
.
.
.
A thread
*pict: Collectie Stichting Nationaal Museum van Wereldculturen Image
Ingat tweet ini? Nah, hari ini mimin mau ngulik nih tentang paper yang memadukan aspek ekonomi dan sejarah era kolonial, menarik banget nih perpaduannya!
Oh iya sebelum kita mulai, disclaimer dulu nih: paper ini bertujuan untuk memaparkan dampak kolonialisme di Indonesia dalam jangka panjang dan tidak membenarkan kolonialisme Belanda terhadap Indonesia jaman dulu yaaa. Oke tanpa mengulur lebih lama lagi, ayo kita mulai threadnya!
Read 40 tweets
2 Apr
Data Scientist di Industri Pengiriman Barang: Ngapain Aja?
(image credit: @ajplus) Image
Kamu pasti familiar dengan foto di atas, yang akhir-akhir ini berseliweran di sosial media kita. Atau mungkin meme ini:
Kapal Ever Given yang stuck dari minggu lalu di Terusan Suez ini akhirnya ‘bebas’ pada hari senin kemarin. Tapi di selang seminggu itu, kejadian ini menghasilkan puluhan meme dan juga kerugian sebesar miliaran dolar bagi berbagai pihak.
Read 30 tweets
1 Apr
Being different from the other, is it okay? 🍏🍐🍏
Intro to time series anomaly detection
.
.
.
A thread
Coba kalian perhatikan gambar dibawah ini, coba simak baik baik ya
Ada yang bisa nebak ga apa yang aneh dari gambar itu?
Read 40 tweets
31 Mar
Melihat COVID-19 vaccine efficacy secara sederhana
Implementasi dasar Bayesian inference
.
.
.
A thread
Di thread kali ini, yuk kita bahas gimana cara mengestimasi efek dari vaksin secara keseluruhan. Nah, ini baru kita bakal mulai pake Bayesian inference. Apa tuh Bayesian inference? Kok bayes ada di mana-mana, sih?
Sebelum memulai thread, disclaimer dlu nih! Data yang kita gunakan itu data yang masih belum lengkap, sehingga kesimpulan dari thread ini bisa jadi belum akurat. Kita bakal fokus ke gimana caranya mengimplementasikan Bayesian inference di kasus vaksin COVID-19 saja, ya!
Read 31 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!