1 điểm bởi GN⁺ 2024-11-04 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

LAN party

  • Trong 16 năm qua, tác giả đã tổ chức LAN party hằng năm cùng bạn bè.
  • Buổi tiệc kéo dài 4-5 ngày, với tối đa 12 người tham gia.
  • Chủ yếu chơi Dota 2, nhưng cũng tận hưởng nhiều game khác như Counter-Strike, Warcraft 3.
  • Việc chọn đội quá khó, nên đã phát triển một hệ thống tự động hóa.

Dota 2

  • Dota 2 là game 5v5, và đội hình mất cân bằng sẽ làm giảm sự thú vị của trận đấu.
  • Chênh lệch kỹ năng giữa những người tham gia khá lớn nên rất khó chia đội.

Cách chọn đội

  • Sử dụng cách để hai đội trưởng lần lượt chọn thành viên.
  • Tuy nhiên, cách này mất nhiều thời gian và thường tạo ra các đội tương tự nhau, gây nhàm chán.

Vấn đề của việc chọn đội thủ công

  • Mất nhiều thời gian và trở nên nhàm chán.
  • Các đội tương tự nhau thường xuyên được tạo ra.
  • Không ai muốn nhận vai trò đội trưởng.
  • Các đội mất cân bằng thường xuyên xuất hiện.

Giải quyết bằng code

  • Sau khi thu thập dữ liệu, tác giả dùng hệ thống xếp hạng Elo trên Colab để tự động tạo đội.
  • Mỗi người chơi bắt đầu với 1000 điểm Elo, thắng được cộng 20 điểm và thua bị trừ 20 điểm.

Cải tiến 1: chạy qua dữ liệu nhiều lần

  • Trong hệ thống Elo, khi đánh bại người chơi có Elo cao hơn thì sẽ nhận được nhiều điểm hơn.
  • Tính Elo bằng cách chạy qua dữ liệu nhiều lần.

Cải tiến 2: biến nó thành một mô hình ML

  • Dùng Elo như một mô hình để dự đoán xác suất chiến thắng của đội.
  • Định nghĩa hàm mất mát L2 và tối ưu mô hình thông qua backpropagation.

Cải tiến 3: biến kết quả lịch sử thành xác suất

  • Để tránh overfitting, xác suất chiến thắng của các trận đấu lịch sử được đặt thành 75% hoặc 95%.
  • Nhờ đó, mô hình có thể khái quát thay vì ghi nhớ toàn bộ các trận đấu.

Kết quả

  • Hệ thống mới có thể dự đoán xác suất chiến thắng ngay cả khi kích thước đội không cân bằng.
  • Đội hình đầu tiên cho LAN party tiếp theo đã sẵn sàng.

Chưa có bình luận nào.

Chưa có bình luận nào.