我正在構建一個具有Elo評分系統的國際象棋應用程序。
根據玩家在遊戲開始時的評分或在遊戲開始時的評分來更新玩家的評分會更合適嗎?例如,玩家A(1600)與玩家B(1700)進行比賽,並且花了一周的時間才能完成遊戲(對應的國際象棋)。在本週內,玩家A贏得了其他一些遊戲,其評分為1650。玩家B失去了一些遊戲,其評分為1680。現在,玩家A和玩家B之間的遊戲結束。
我應該更新評級如下:
- 1600對抗1700,或
- 1650對抗1680,或者
- 其他 ol>
什麼更合適,為什麼?
我正在構建一個具有Elo評分系統的國際象棋應用程序。
根據玩家在遊戲開始時的評分或在遊戲開始時的評分來更新玩家的評分會更合適嗎?例如,玩家A(1600)與玩家B(1700)進行比賽,並且花了一周的時間才能完成遊戲(對應的國際象棋)。在本週內,玩家A贏得了其他一些遊戲,其評分為1650。玩家B失去了一些遊戲,其評分為1680。現在,玩家A和玩家B之間的遊戲結束。
我應該更新評級如下:
什麼更合適,為什麼?
記住什麼是評分:這是對球員相對實力的估計。您在評分計算中包含的信息越多,其準確性就越高,收斂速度就越快。在OTB遊戲結束時,您擁有的唯一新信息就是該遊戲的結果。但是,在通信站點上,您還可以從遊戲進行過程中獲得兩名玩家的成績信息。您為什麼不想使用這些信息?
要根據遊戲開始時的評分更新玩家的評分,就是說您認為他們在遊戲開始時的評分更好在比賽結束時評估他們的相對實力而不是他們的等級。換句話說,就是說您相信評分隨著時間的推移變得越來越準確。如果那是您所相信的,則根本不應該更新它們!
出於各種原因,我會使用選項2。也許最重要的一個是濫用選項1的可能性。
在USCF或FIDE系統中,有兩個玩家處於同一級別。他們與一位得分最高的球員進行長時間的比賽。最終,評分會穩定在輸家(開始400)和獲勝者(開始+400)左右。
在選項1下,一個2000名玩家可以對一個評級相似的朋友開始100場比賽,贏得所有人,並突然成為網站上評分最高的人(3000+)。除其他外,這將使您的網站看起來很糟糕。輸了的玩家將跌到1000以下,但這些點很容易獲得,特別是如果他在1200個玩家下進行100場比賽時。
選項2更加穩定。我知道的所有主要通訊站點都使用了它(chess.com,redhotpawn等)。
編輯:更多場景。 1800玩家接受800的挑戰。一個月後,前800在1700並擊敗1800。當1800辭職時,他失去的是最大,而不是對抗對手的真實實力所要失去的。
一名具有2000年實力的玩家通過一些黑魔法獲得了1200分的等級。他們在1400場比賽中開始了一系列比賽,並贏得了所有人的勝利。 1400型將因必須失去這樣的無賴而失去20分以上。
都不是“正確的”。您需要考慮任何策略的影響,並確定適合您的應用的 。就我個人而言,我認為您應該始終計劃讓您的應用程序流行-一旦流行,人們將嘗試玩您安裝的任何系統。因此,您需要考慮每種情況下的濫用情況,以及系統如何為新用戶和既定用戶提供服務,並確定係統的哪些因素對您最重要。
當然,在每個系統中,對於實際的實現,您有各種各樣的選擇,它們可以幫助增強或減輕下面列出的因素,但是我將跳過所有這些,因為這不是您所要的。
在此系統中,您需要掌握的主要濫用情況看看有人用一個或多個虛擬帳戶同時開始一百場比賽,以贏得所有人並提高他們的評級。這是相當容易檢測到的,並且易於設計(事實上Elo系統已經在這種操作上有一些限制),但是您需要提防它。
該系統的缺點是新玩家一段時間內的評分會非常不穩定,要花一段時間才能達到真實的評分。大多數係統已經通過大幅增加新玩家的 K係數來解決此問題,因此在前20到50場左右的比賽中,他們的評分會迅速變化。
另一方面,假設您有一個評級較高的老玩家(例如1900),而臨時評級較低的新玩家(例如1200)。如果新玩家的真實實力實際上是2000+,則與使用最新分數計算分數相比,已建立的玩家可能損失的積分要多得多(1900與1200)。當然,如果新玩家只與高水平的玩家對戰,那麼無論您使用的是什麼系統,某人都必須負擔費用。
在最新評級系統中,主要的濫用案例可能是人們為了讓自己或對手的評分下降或上升而退出遊戲或過早辭職。例如,如果我一直處於輸家狀態,以至於我低於真實的平均評分,那麼該系統實際上會給我獎勵,讓我立即退出其他所有我不喜歡的遊戲 winning ,因為與等到評分恢復之前相比,我現在會因為在評分已經很低的情況下立即全部辭職而損失的積分減少了。或者,如果在比賽進行過程中對手的評分下降,那麼我就有強烈的動力使遊戲盡可能長時間地持續 ,無論我是贏還是輸。這樣,當我的對手的評分恢復時,我會變得更好。這種系統的遊戲很難下定論。
但是,正如其他人指出的那樣,單個結果更準確,因此人們的收視率收斂更快。您還可以減少臨時1200對已建立的1900所玩遊戲的影響,儘管就我個人而言,這並不是什麼大不了的事-以我的經驗,已建立的玩家並不在乎臨時等級像新玩家一樣損失。
如果您是按照USCF系統進行建模的,那麼您會看到場景2。1650對1680進行了比賽。我自己在USCF評分系統中遇到了這種情況,其中我參加了為期10週的聯賽,評分為1953。在第6週前後在我所在的地區玩了一個星期三晚上的比賽,輸掉了比賽,我的評分成為1929。第10週之後,我的USCF評分顯示我從1929 => 1995而不是1953 => x和x => y的增加。
最正確的方法是使用起始評級。為什麼?因為那是他們同意開始比賽的等級,並且在評估了風險與回報之後,知道了自己會贏還是輸的決定讓他們決定開始比賽。因此,我認為這兩家公司的起步等級都是最佳解決方案。