LAN party
- Selama 16 tahun, saya mengadakan LAN party setiap tahun bersama teman-teman.
- Pesta ini berlangsung selama 4–5 hari dan diikuti hingga 12 orang.
- Kami terutama bermain Dota 2, tetapi juga menikmati berbagai game lain seperti Counter-Strike dan Warcraft 3.
- Karena sulit memilih tim, saya pun mengembangkan sistem otomatis.
Dota 2
- Dota 2 dimainkan dalam format 5v5, dan tim yang tidak seimbang mengurangi keseruan permainan.
- Perbedaan kemampuan antar peserta cukup besar sehingga sulit memilih tim.
Cara memilih tim
- Menggunakan cara dua pemimpin yang bergantian memilih anggota tim.
- Namun, cara ini memakan banyak waktu, dan tim yang mirip sering terbentuk sehingga terasa membosankan.
Masalah pemilihan tim secara manual
- Memakan banyak waktu dan menjadi membosankan.
- Tim yang mirip sering terbentuk.
- Tidak ada yang ingin mengambil peran sebagai pemimpin.
- Tim yang tidak seimbang sering terbentuk.
Menyelesaikannya dengan kode
- Setelah mengumpulkan data, tim dibuat secara otomatis di Colab menggunakan sistem rating Elo.
- Setiap pemain mulai dengan 1000 poin Elo, lalu mendapat 20 poin saat menang dan kehilangan 20 poin saat kalah.
Peningkatan 1: melewati data beberapa kali
- Dalam sistem Elo, pemain yang mengalahkan pemain dengan Elo lebih tinggi akan mendapatkan lebih banyak poin.
- Elo dihitung dengan melewati data beberapa kali.
Peningkatan 2: membuatnya seperti model ML
- Elo digunakan sebagai model untuk memprediksi probabilitas kemenangan tim.
- Fungsi loss L2 didefinisikan, lalu model dioptimalkan melalui backpropagation.
Peningkatan 3: membuat hasil historis menjadi probabilistik
- Untuk mencegah overfitting, probabilitas kemenangan game historis ditetapkan ke 75% atau 95%.
- Dengan begitu, model dapat melakukan generalisasi tanpa menghafal semua game.
Hasil
- Sistem baru ini dapat memprediksi probabilitas kemenangan bahkan pada ukuran tim yang tidak seimbang.
- Susunan pemain pertama untuk LAN party berikutnya telah siap.
Belum ada komentar.