Làm thế nào để cập nhật xếp hạng Elo?


7

Tôi đang xây dựng một ứng dụng cờ vua có hệ thống xếp hạng Elo.

Sẽ phù hợp hơn nếu cập nhật xếp hạng của người chơi dựa trên xếp hạng của họ khi bắt đầu trò chơi hoặc xếp hạng của họ vào cuối trò chơi?

Ví dụ: Người chơi A (1600) đấu với Người chơi B (1700) và phải mất một tuần để hoàn thành trò chơi (cờ tương ứng). Trong tuần này, Người chơi A đã thắng một số trò chơi khác và xếp hạng của họ trở thành 1650. Người chơi B đã thua một số trò chơi và xếp hạng của họ trở thành 1680. Bây giờ, trò chơi giữa Người chơi A và Người chơi B kết thúc.

Tôi có nên cập nhật xếp hạng như sau:

  1. 1600 chơi với 1700, hoặc
  2. 1650 trả cho 1680, hoặc
  3. thứ gì khác

Điều gì sẽ thích hợp hơn, và tại sao?

Câu trả lời:


6

Hãy nhớ đánh giá là gì: đó là ước tính về sức mạnh tương đối của người chơi. Bạn càng đưa nhiều thông tin vào tính toán xếp hạng của mình, nó sẽ càng chính xác và hội tụ càng nhanh. Vào cuối một trò chơi OTB, thông tin mới duy nhất bạn có là kết quả của trò chơi đó. Tuy nhiên, trên một trang web tương ứng, bạn cũng có thông tin từ kết quả của cả hai người chơi trong khi trò chơi đang diễn ra. Tại sao bạn không muốn sử dụng thông tin đó?

Để cập nhật xếp hạng của người chơi dựa trên xếp hạng của họ khi bắt đầu trò chơi là để nói rằng bạn nghĩ rằng xếp hạng của họ khi bắt đầu trò chơi là ước tính tốt hơn về sức mạnh tương đối của họ so với xếp hạng của họ vào cuối trò chơi. Nói cách khác, nó nói rằng bạn tin rằng xếp hạng đang trở nên kém chính xác hơn theo thời gian. Nếu đó là những gì bạn tin, bạn hoàn toàn không nên cập nhật chúng!


Mặt khác, người chơi có thể cải thiện đáng kể sau phần quan trọng của trò chơi. Nếu tôi được xếp hạng 1300 và đánh lừa một vài con tốt trong khi mở một trò chơi trở nên rất lôi cuốn, có thể 8 tháng sau tôi mạnh hơn 200 điểm và đánh giá của tôi phản ánh điều đó (do một số trò chơi giải quyết nhanh hơn).
DM

@DM Đó không phải là "mặt khác" - đó chính xác là điểm tôi đang thực hiện. Trong thư, bạn nên cập nhật dựa trên đánh giá của người chơi tại thời điểm trò chơi kết thúc.
David Richerby

Không, quan điểm của tôi là, từ quan điểm của đối thủ, anh ta nhận được tín dụng vì đã đánh bại 1500, khi tất cả những gì anh ta làm là tận dụng những sai lầm ngớ ngẩn của một 1300. (Không phải tôi đang nói rằng hệ thống xếp hạng cần phải điều chỉnh đối với điều này, bất kỳ sự điều chỉnh nào có thể sẽ chỉ thêm lỗi.)
DM

@DM Ah, tôi thấy những gì bạn đang nói, bây giờ. Điểm công bằng.
David Richerby

4

Tôi sẽ sử dụng tùy chọn 2 vì nhiều lý do. Có lẽ điều quan trọng nhất là khả năng lạm dụng tùy chọn 1.

Hai người chơi bắt đầu ở cùng cấp độ trong hệ thống USCF hoặc FIDE. Họ chơi một trận đấu dài với một cầu thủ ghi được phần lớn số điểm. Cuối cùng, xếp hạng sẽ ổn định ở mức thua cuộc (start-400) và người chiến thắng (start + 400).

Theo tùy chọn 1, một người chơi 2000 có thể bắt đầu 100 trò chơi với một người bạn được đánh giá tương tự, chiến thắng tất cả và đột nhiên là người được đánh giá cao nhất trên trang web ở mức 3000+. Điều này sẽ, trong số những thứ khác, làm cho trang web của bạn trông xấu. Người chơi bị mất sẽ giảm xuống dưới 1000, nhưng những điểm đó dễ dàng lấy lại, đặc biệt nếu anh ta bắt đầu 100 trận đấu với 1200 người chơi.

Phương án 2 ổn định hơn nhiều. Nó được sử dụng bởi tất cả các trang web tương ứng lớn mà tôi biết (Chess.com, redhotpawn, v.v.)

Chỉnh sửa: Nhiều kịch bản hơn. Một người chơi 1800 chấp nhận thử thách 800. Một tháng sau, 800 cũ ở mức 1700 và vượt qua 1800. Khi 1800 từ chức, anh ta mất tối đa thay vì những gì anh ta đã mất trước sức mạnh thực sự của đối thủ.

Một người chơi có sức mạnh 2000, thông qua một số phép thuật đen, đạt được điểm 1200. Họ bắt đầu một loạt các trò chơi chống lại 1400 và giành chiến thắng gần với tất cả bọn họ. Những năm 1400 sẽ không hài lòng khi phải mất hơn 20 điểm cho một kẻ vô lại như vậy.


Nếu hành vi này được cho phép trong một trang web, đó sẽ không phải là một trang web cờ vua thực sự. Nếu tôi thấy hành vi này trong trang web của mình, tôi sẽ giới hạn khả năng chơi trò chơi của anh ấy với cùng một người chơi xuống còn 2 hoặc ít hơn. Đó là gian lận. Không chơi game thực sự.
MikhailTal

Nếu trang web trở nên đủ lớn, loại điều này sẽ bắt đầu xảy ra mỗi ngày - nếu không thường xuyên hơn. Chính sách thủ công không phải là một giải pháp khả thi.
Cleveland

Tổng số giới hạn. Tôi không thấy cách một trang web có thể cho phép mọi người chơi 100 trò chơi cho cùng một người chơi ở vị trí đầu tiên.
MikhailTal

1
Tôi sẽ khá khó chịu tại một trang web không cho phép tôi chơi một trận đấu với một người bạn vì họ đã chọn một thuật toán xếp hạng xấu.
Cleveland

Tôi cũng sẽ khá khó chịu với trang web đó, nhưng 100 trò chơi cùng một lúc?
MikhailTal

4

Không phải là "chính xác". Bạn cần xem xét ảnh hưởng của bất kỳ chiến lược nào và xác định những gì phù hợp với ứng dụng của bạn . Cá nhân tôi nghĩ rằng bạn nên luôn lập kế hoạch cho ứng dụng của mình trở nên phổ biến - và một khi nó phổ biến, mọi người sẽ cố gắng chơi trò chơi bất kỳ hệ thống nào bạn đặt. Vì vậy, bạn cần xem xét các trường hợp lạm dụng trong từng kịch bản, cũng như cách hệ thống phục vụ cả người dùng mới và người dùng thành lập và quyết định yếu tố nào của hệ thống là quan trọng nhất đối với bạn.

Tất nhiên trong mỗi hệ thống, bạn đã có một loạt các tùy chọn để triển khai thực tế, điều này có thể giúp tăng cường hoặc giảm thiểu các yếu tố được nêu dưới đây, nhưng tôi sẽ bỏ qua tất cả những điều đó vì đó không phải là những gì bạn đã hỏi.

Tôi nghĩ rằng câu hỏi đặt ra là hơi quá dựa trên ý kiến ​​để được trả lời dứt khoát, vì vậy tất cả những gì tôi sẽ làm ở đây là đưa ra một số điểm chính của mỗi hệ thống. Như tôi đã nói, tùy bạn quyết định điều gì quan trọng với bạn và cơ sở người dùng của bạn.


Tính toán sử dụng xếp hạng bắt đầu

Trong hệ thống này, trường hợp lạm dụng chính mà bạn cần xem xét là ai đó bắt đầu một trăm trò chơi cùng một lúc với tài khoản giả (hoặc một số), để giành được tất cả và tăng xếp hạng của họ. Điều này khá dễ phát hiện và dễ dàng để thiết kế để chống lại (trên thực tế hệ thống Elo đã có một số hạn chế đối với các thao tác đó), nhưng bạn cần phải cẩn thận với nó.

Nhược điểm của hệ thống này là người chơi mới sẽ có xếp hạng rất không ổn định trong một thời gian và mất một thời gian để đạt được xếp hạng thực sự của họ. Hầu hết các hệ thống đã giải quyết vấn đề này bằng cách tăng đáng kể yếu tố K cho người chơi mới, do đó xếp hạng của họ thay đổi rất nhanh trong 20-50 trò chơi đầu tiên của họ.

Mặt khác, giả sử bạn có một người chơi đã được thiết lập có xếp hạng cao (giả sử là 1900), so với người chơi mới có xếp hạng tạm thời thấp hơn (giả sử 1200). Nếu sức mạnh thực sự của người chơi mới thực sự là hơn 2000, thì người chơi đã thành lập có thể mất nhiều điểm hơn cho một trận thua (1900 so với 1200) so với điểm số được tính bằng cách sử dụng điểm số gần đây nhất. Tất nhiên, nếu người chơi mới chỉ chơi với những người chơi được đánh giá cao, ai đó sẽ phải thanh toán hóa đơn cho dù bạn đang sử dụng hệ thống nào.

  • Dễ dàng phát hiện sự lạm dụng tiềm năng
  • Hội tụ xếp hạng chậm

Tính toán sử dụng xếp hạng hiện tại

Trong hệ thống xếp hạng gần đây nhất, trường hợp lạm dụng chính có thể là những người lôi ra các trò chơi hoặc từ chức sớm để tận dụng lợi thế của việc giảm hoặc tăng đột biến trong xếp hạng của đối thủ. Chẳng hạn, nếu tôi đang thua, vì vậy tôi ở dưới mức trung bình thực sự của mình, hệ thống này thực sự mang đến cho tôi một động lực để từ chức ngay lập tức mọi trò chơi khác mà tôi không thắng , vì tôi sẽ thua ít hơn điểm bây giờ, bằng cách từ bỏ tất cả chúng cùng một lúc trong khi xếp hạng của tôi đã thấp, hơn tôi sẽ đợi cho đến khi xếp hạng của tôi phục hồi. Thay phiên, nếu đánh giá của đối thủ của tôi giảm trong khi trò chơi tiến triển, tôi có động lực mạnh mẽ để làm cho trò chơi kéo dài càng lâu càng tốttrong thời gian thực, bất kể tôi thắng hay thua - bởi vì dù sao đi nữa, khi đánh giá của đối thủ của tôi phục hồi, tôi sẽ trở nên tốt hơn. Kiểu chơi game này của hệ thống khó phát hiện hơn nhiều.

Tuy nhiên, như những người khác đã chỉ ra, kết quả cá nhân chính xác hơn và do đó xếp hạng của mọi người sẽ hội tụ nhanh hơn. Bạn cũng sẽ giảm bớt tác dụng của trò chơi được chơi bởi 1200 tạm thời so với năm 1900 được thành lập, mặc dù cá nhân tôi nghĩ rằng đây không phải là vấn đề lớn - theo kinh nghiệm của tôi, theo kinh nghiệm của tôi, không quan tâm lắm đến đánh giá tạm thời thua lỗ khi người chơi mới làm.

  • Khó phát hiện sự lạm dụng tiềm năng
  • Hội tụ xếp hạng nhanh hơn

"Ví dụ: khi trò chơi kết thúc, hãy tính xếp hạng mới thay vì tính toán thay đổi xếp hạng để áp dụng" điều này nghe có vẻ tốt. Làm thế nào để bạn đề xuất để tính toán xếp hạng mới?
Cleveland

@cleoween Tất nhiên bạn không thể thực hiện xếp hạng thô trực tiếp; đó là toàn bộ vấn đề: nếu không bạn có thể khiến mọi người mất điểm khi họ thắng. Vì vậy, thay vào đó, bạn có thể sử dụng elo "thô" để giới hạn số tiền kiếm được hoặc mất, hoặc thậm chí chỉ sử dụng nó như một chỉ báo về sự lạm dụng có thể. Tôi sẽ mở rộng câu trả lời một chút khi tôi không sử dụng điện thoại di động.
Henry Keiter

1
Đây là phương pháp sai. Tại sao không nên một người dùng mới có thể bắt đầu một số lượng lớn các trò chơi? Nếu một người dùng mới hợp pháp bắt đầu, giả sử, 20 trò chơi đồng thời, tại sao xếp hạng thay đổi vào cuối ngày 20 của những trò chơi đó dựa trên giả định không có thật ở mức mặc định, thay vì dựa trên thông tin có giá trị mà họ thắng X và hòa Y trong 19 trận đầu tiên? Chạy một hệ thống xếp hạng theo cách này có nghĩa là xếp hạng hội tụ rất chậm vì thông tin bị bỏ qua một cách có chủ ý khỏi tính toán.
David Richerby

Và ưu tiên của bạn không có ý nghĩa. Bạn đang đề xuất một sơ đồ làm cho xếp hạng của người chơi mới cực kỳ không chính xác (bằng hàng chục hoặc hàng trăm điểm) bởi vì phương án thay thế là cho phép người chơi thành lập chơi trò chơi hệ thống cho một vài điểm ở đây và ở đó. Ngoài ra, lưu ý rằng, với Elo, bạn không thể mất điểm khi chiến thắng một trò chơi.
David Richerby

@David Dường như bạn đã hiểu sai ý định trả lời của tôi, đây có lẽ là lỗi của tôi khi đăng lên điện thoại di động và không cung cấp nhiều chi tiết như tôi nên có. Tôi sẽ cố gắng làm rõ câu trả lời này tối nay.
Henry Keiter

2

Nếu bạn đang lập mô hình sau hệ thống USCF, bạn sẽ xem xét kịch bản 2. 1650 đã chơi với 1680. Tôi đã trải nghiệm điều này trong hệ thống xếp hạng USCF trong đó tôi đã chơi một giải đấu 10 tuần với tỷ lệ vào năm 1953. Và tôi đã chơi vào thứ Tư trò chơi đêm trong khu vực của tôi vào khoảng Tuần 6 và thua trò chơi và xếp hạng của tôi trở thành 1929. Sau tuần thứ 10, xếp hạng USCF của tôi cho thấy mức tăng của tôi từ 1929 => 1995 chứ không phải 1953 => x và x => y.


0

Cách chính xác nhất sẽ là sử dụng xếp hạng bắt đầu. Tại sao? Bởi vì đó là thứ hạng mà họ đồng ý để bắt đầu trận đấu và biết họ sẽ thắng hay thua khiến họ quyết định bắt đầu nó, sau khi đánh giá rủi ro so với phần thưởng. Vì vậy, tôi nghĩ rằng đánh giá bắt đầu của cả hai người chơi là giải pháp tốt nhất.


2
OTOH, để ngăn chặn việc săn đánh giá và khuyến khích thưởng thức cờ vua, lập luận tương tự có thể được áp dụng theo cách ngược lại. ;)
JiK

4
Xếp hạng không phải là những đồng tiền được giao dịch giữa những người chơi: họ đang cố gắng đo lường sức mạnh tương đối của người chơi.
David Richerby
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.