Xếp hạng người chơi bằng Elo với hơn hai người chơi


15

Tôi muốn sử dụng Elo để theo dõi thứ hạng người chơi giữa các trận đấu của một trò chơi nhất định, tuy nhiên trò chơi có thể được chơi với tối đa bốn người chơi trong một trận đấu. Tôi đã thấy các trò chơi như Carcassonne sử dụng Elo với hơn hai người chơi đang chơi, nhưng tôi không quen với Elo ngoài trận đấu 1-1.

Từ bài viết trên wikipedia các phương trình hai người chơi tôi muốn mở rộng là:

E a = 1 / (1 + 10 (R b - R a ) / 400 )

E b = 1 / (1 + 10 (R a - R b ) / 400 )

R x new = R x old + 32 * (W - E x ), trong đó W = 1 nếu X thắng và W = 0 nếu X thua.

Làm thế nào tính toán cho E x và W thay đổi được cung cấp nhiều hơn hai người chơi?


Tôi sẽ thận trọng khi sử dụng hệ thống kiểu Elo cho các trò chơi có nhiều hơn hai người chơi, vì nhiều yếu tố có thể âm mưu biến chúng thành trò chơi kỹ năng thuần túy - người chơi tập trung vào những người chơi mạnh nhất, v.v. Nếu bạn trộn điểm từ các trận đấu với số lượng người chơi khác nhau, tôi khuyên bạn nên giảm trọng số (Tức là '32' trong công thức cập nhật cho R) cho các trò chơi có nhiều người chơi hơn.
Steven Stadnicki

@StevenStadnicki cảm ơn bạn đã giới thiệu. Tuy nhiên tôi không rõ làm thế nào để giảm hằng số trọng lượng giải quyết các vấn đề bạn đề cập. Bạn có thể xây dựng?
fbrereto

Bằng cách giảm trọng lượng cho các trận đấu nhiều người chơi, bạn vốn đã nói rằng chúng không quan trọng đối với xếp hạng của người chơi như các trận đấu hai người chơi; về cơ bản, bạn đang nói rằng họ ít đại diện cho việc người chơi thực sự giỏi như thế nào. Phép thuật làm một cái gì đó tương tự như vậy với cấu trúc giải đấu của họ, trong đó các cấp độ giải đấu khác nhau có các giá trị K khác nhau để biểu thị trọng lượng mà họ nên được đưa ra khi xác định xếp hạng của người chơi.
Steven Stadnicki

Câu trả lời:


9

Theo đề xuất của liên kết hàng đầu trong tìm kiếm Google của tôi (đã bị xóa liên kết, trang web vẫn có sẵn trên WayBackMachine tại http://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/ ), bạn có thể tính toán các thay đổi riêng lẻ trong xếp hạng Elo của người chơi (giá trị R của bạn) và sau đó tổng hợp chúng để cung cấp tổng số thay đổi để áp dụng cho xếp hạng của từng người chơi.

tức là Nếu bạn có 4 người chơi (A, B, C, D), hãy tính toán thay đổi thành xếp hạng của A (R-sub-a-sub-new) từ điểm số của họ so với B, C và D, sau đó điều chỉnh xếp hạng của A theo tổng giá trị R được tính.


Tôi đã đi tuyến đường này và nó dường như đang hoạt động tốt cho đến nay, cảm ơn.
fbrereto

Thật không may, liên kết dường như không còn hiệu lực.
Petr Pudlák

2
Có vẻ như đây là các công thức cho ý tưởng này: sradack.blogspot.ru/2008/06/ trên
dbf

0

Tôi đã tìm thấy một bài viết với mã nguồn PHP của một phương thức tương tự như câu trả lời của fnord tại đây: http://elo-norsak.rhcloud.com/3.php Tôi đã tạo ra một triển khai php có mục đích chung hơn ở đây: https://github.com/ FigBug / Multiplayer-ELO Tôi đang sử dụng nó với nhóm trò chơi hội đồng quản trị của mình và cho đến nay nó dường như đang hoạt động tốt.

Tính toán của Ex và W sẽ giữ nguyên. Thay vì sử dụng K là 32, hãy sử dụng K là 32 / (#players - 1). Sau đó, xem xét từng hoán vị của 2 người chơi và tính toán (32 / (#players - 1) * (W - Ex)). Khi đó RxNew bằng với RxOld + Tổng của tất cả các giá trị bạn vừa tính.


2
Nói chung, nên bao gồm một bản tóm tắt về phương pháp / đề xuất của bạn trong phần chính của câu trả lời, thay vì hoàn toàn dựa vào các liên kết bên ngoài. Liên kết có thói quen phá vỡ theo thời gian, điều này có thể khiến câu trả lời của bạn bị thiếu chi tiết quan trọng khi ai đó cố gắng tìm kiếm nó trong nhiều năm kể từ bây giờ.
DMGregory
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.