Como atualizar a classificação Elo?

7

Estou construindo um aplicativo de xadrez que terá um sistema de classificação Elo.

Seria mais apropriado atualizar a classificação do jogador com base na classificação no início do jogo ou no final do jogo?

Por exemplo, o jogador A (1600) joga contra o jogador B (1700) e levou uma semana para concluir o jogo (xadrez por correspondência). Durante esta semana, o Jogador A venceu alguns outros jogos e sua classificação se tornou 1650. O Jogador B perdeu alguns jogos e sua classificação se tornou 1680. Agora, o jogo entre o Jogador A e o Jogador B termina.

Devo atualizar as classificações como se:

  1. 1600 jogou contra 1700 ou
  2. 1650 pago contra 1680, ou
  3. algo mais

O que seria mais apropriado e por quê?

Misha Moroshko
fonte

Respostas:

6

Lembre-se do que é uma classificação: é uma estimativa dos pontos fortes relativos dos jogadores. Quanto mais informações você incluir em seu cálculo de classificação, mais precisa será e mais rápida será a convergência. No final de um jogo OTB, a única informação nova que você tem é o resultado desse jogo. No entanto, em um site de correspondência, você também tem as informações dos resultados de ambos os jogadores enquanto o jogo estava em andamento. Por que você não gostaria de usar essa informação?

Atualizar as classificações dos jogadores com base nas classificações no início do jogo significa dizer que você acha que as classificações no início do jogo são uma estimativa melhor de sua força relativa do que as classificações no final do jogo. Em outras palavras, está dizendo que você acredita que as classificações estão se tornando menos precisas com o tempo. Se é nisso que você acredita, não deve atualizá-los!

David Richerby
fonte
Por outro lado, é possível que um jogador melhore significativamente após a parte crítica do jogo. Se eu sou classificado em 1300 e cometi alguns peões na abertura de um jogo que fica muito prolongado, talvez 8 meses depois eu esteja legitimamente 200 pontos mais forte e minha classificação reflete isso (devido a alguns jogos que foram resolvidos mais rapidamente).
DM
@ DM Isso não é "por outro lado" - é exatamente o que estou dizendo. Em correspondência, você deve atualizar com base na classificação dos jogadores no momento em que o jogo terminou.
David Richerby
Não, meu ponto de vista foi que, do ponto de vista do meu oponente, ele está recebendo crédito por vencer 1500, quando tudo o que ele realmente fez foi tirar proveito dos erros de um 1300. (Não que eu esteja dizendo que o sistema de classificação precisa fazer uma correção para isso; qualquer correção provavelmente adicionaria mais erros.) #
11/02 DM
@ DM Ah, entendo o que você está dizendo agora. Ponto justo.
David Richerby
4

Eu usaria a opção 2 por vários motivos. Talvez o mais importante seja o potencial de abuso da opção 1.

Dois jogadores começam no mesmo nível no sistema USCF ou FIDE. Eles jogam uma partida longa com um jogador marcando a grande maioria dos pontos. Eventualmente, as classificações estabilizarão em torno do perdedor (início-400) e do vencedor (início + 400).

Na opção 1, um jogador de 2000 pode iniciar 100 jogos contra um amigo com classificação semelhante, vencer todos eles e, de repente, ser a pessoa com a classificação mais alta no site, com mais de 3000. Entre outras coisas, isso fará com que seu site fique ruim. O jogador que perdeu cairá abaixo de 1000, mas esses pontos são facilmente recuperados, principalmente se ele iniciar 100 jogos contra 1200 jogadores.

A opção 2 é muito mais estável. É usado por todos os principais sites de correspondência que eu conheço (chess.com, redhotpawn etc.)

Editar: Mais cenários. Um jogador de 1800 aceita o desafio de 800. Um mês depois, o antigo 800 está em 1700 e vence o 1800. Quando o 1800 renuncia, ele perde o máximo, em vez do que teria perdido com a verdadeira força de seu oponente.

Um jogador com força de 2000, através de alguma magia negra, adquire uma classificação de 1200. Eles iniciam um monte de jogos contra 1400 e vencem perto de todos eles. A década de 1400 será universalmente desencantada por ter que perder mais de 20 pontos para esse canalha.

Cleveland
fonte
Se esse comportamento fosse permitido em um site, não seria um site de xadrez real. Se eu visse esse comportamento no meu site, limitaria a capacidade dele de jogar com o mesmo jogador para 2 ou menos. Isso é trapaça. Não é um jogo real.
precisa saber é o seguinte
Se o site se tornar grande o suficiente, esse tipo de coisa começará a acontecer todos os dias - se não com mais frequência. O policiamento manual não é uma solução viável.
Cleveland
Limitação total. Não vejo como um site pode permitir que as pessoas joguem 100 jogos para o mesmo jogador em primeiro lugar.
precisa saber é o seguinte
11
Eu ficaria bastante irritado em um site que não me permitia jogar uma partida contra um amigo porque eles escolheram um algoritmo de classificação ruim.
Cleveland
Eu ficaria bastante irritado com esse site também, mas 100 jogos ao mesmo tempo?
precisa saber é o seguinte
4

Nem é "correto". Você precisa considerar os efeitos de qualquer estratégia e determinar o que é certo para seu aplicativo . Pessoalmente, eu acho que você deve sempre planejar para o seu aplicativo a ser popular - e uma vez que é popular, as pessoas vão tentar jogo qualquer sistema que você colocar no lugar. Portanto, é necessário considerar os casos de abuso em cada cenário, além de como o sistema atende usuários novos e estabelecidos e decidir quais fatores do sistema são mais importantes para você.

É claro que em cada sistema, você tem uma ampla gama de opções para a implementação real, o que pode ajudar a aprimorar ou atenuar os fatores descritos abaixo, mas vou pular tudo isso, pois não é o que você perguntou.

Eu acho que a pergunta como está é um pouco baseada em opinião para ser respondida definitivamente, então tudo o que vou fazer aqui é apresentar alguns dos principais pontos de cada sistema. Como eu disse, você decide o que é importante para você e sua base de usuários.


Cálculo usando classificações iniciais

Nesse sistema, o principal caso de abuso que você precisa observar é alguém iniciando uma centena de jogos ao mesmo tempo contra uma conta falsa (ou várias), para vencer todos eles e aumentar sua classificação. Isso é razoavelmente detectável e fácil de projetar (na verdade, o sistema Elo já contém algumas restrições a essa manipulação), mas você precisa ficar atento.

A desvantagem desse sistema é que os novos jogadores terão classificações muito instáveis ​​por um tempo e levarão algum tempo para atingir sua verdadeira classificação. Muitos sistemas já lidam com isso aumentando enormemente o fator K para novos jogadores, de modo que suas classificações mudam muito rapidamente nos primeiros 20 a 50 jogos.

Por outro lado, digamos que você tenha um jogador estabelecido com uma classificação alta (por exemplo, 1900), contra um novo jogador com uma classificação provisória mais baixa (por exemplo, 1200). Se a verdadeira força do novo jogador for realmente de mais de 2000, o jogador estabelecido poderá perder muito mais pontos por uma perda (1900 x 1200) do que teria se a pontuação fosse calculada usando as pontuações mais recentes. Obviamente, se o novo jogador estiver jogando apenas contra jogadores de alto nível, alguém terá que pagar a conta, independentemente do sistema que você estiver usando.

  • Fácil de identificar possíveis abusos
  • Convergência lenta da classificação

Cálculo usando classificações atuais

No sistema de classificações mais recentes, é provável que o principal caso de abuso seja o fato de as pessoas arrastarem jogos ou renunciarem prematuramente a eles, a fim de tirar proveito de quedas ou picos nas classificações de seus oponentes. Por exemplo, se eu estiver em uma sequência de derrotas, para que eu esteja abaixo da minha média de classificação, esse sistema realmente me incentivará a renunciar imediatamente a todos os outros jogos em que não estou ganhando , porque perderei menos agora, renunciando a todos de uma só vez enquanto minha classificação já está baixa, do que faria se esperasse até que minha classificação se recuperasse. Como alternativa, se a classificação do meu oponente cair enquanto o jogo progride, tenho um forte incentivo para que o jogo dure o maior tempo possívelem tempo real, não importa se estou ganhando ou perdendo - porque, de qualquer maneira, quando a classificação do meu oponente se recuperar, vou sair melhor. Esse tipo de jogo do sistema é muito mais difícil de detectar de forma conclusiva.

No entanto, como outros salientaram, os resultados individuais são mais precisos e, portanto, as classificações das pessoas convergem mais rapidamente. Você também diminuirá o efeito do jogo jogado por um 1200 provisório contra um 1900 estabelecido, embora pessoalmente eu ache que isso não seja um grande negócio - jogadores estabelecidos, na minha experiência, não se importam tanto com classificações temporárias perdas como os jogadores mais novos.

  • Difícil de identificar possíveis abusos
  • Convergência de classificação mais rápida
Henry Keiter
fonte
"Por exemplo, quando um jogo termina, calcule novas classificações em vez de calcular uma alteração de classificação a aplicar" isso soa bem. Como você propõe calcular as novas classificações?
Cleveland
@cleveland Claro que você não pode implementar classificações brutas diretamente; esse é o problema: caso contrário, você poderá perder pessoas quando vencerem. Então, em vez disso, você pode usar o elo "bruto" para limitar o valor ganho ou perdido, ou até mesmo usá-lo como um indicador de possível abuso. Expandirei a resposta um pouco quando não estiver no meu celular.
Henry Keiter 13/08/14
11
Esta é a abordagem errada. Por que um novo usuário não pode iniciar um grande número de jogos? Se um novo usuário legítimo inicia, digamos, 20 jogos simultâneos, por que a classificação no final do dia 20 desses jogos deve se basear na suposição falsa de que está no nível padrão, e não nas informações valiosas que ganhou X e empatou Y dos primeiros 19 jogos? A execução de um sistema de classificação dessa maneira significa que as classificações convergem muito lentamente porque as informações são deliberadamente omitidas no cálculo.
David Richerby
E sua priorização não faz sentido. Você está recomendando um esquema que torna imprecisas as classificações dos novos jogadores (em dezenas ou centenas de pontos), porque a alternativa é permitir que jogadores estabelecidos joguem o sistema por alguns pontos aqui e ali. Além disso, observe que, com Elo, você não pode perder pontos ao ganhar um jogo.
David Richerby
@ David Você parece ter entendido mal a intenção da minha resposta, que provavelmente é minha culpa por postar em um celular e por não fornecer tantos detalhes quanto eu deveria. Vou tentar esclarecer esta resposta esta noite.
Henry Keiter
2

Se você estivesse modelando após o sistema da USCF, estaria olhando para o cenário 2. 1650 jogou contra 1680. Eu mesmo experimentei isso no sistema de classificação da USCF em que participei de um torneio da liga de 10 semanas com a classificação de 1953. E joguei na quarta-feira jogo noturno na minha área por volta da semana 6 e perdi o jogo e minha classificação se tornou 1929. Após a 10ª semana, minha classificação da USCF mostrou meu aumento entre 1929 => 1995 e não 1953 => xex => y.

RingMaster
fonte
0

A maneira mais correta seria usar a classificação inicial. Por quê? Porque essa foi a classificação que eles concordaram em iniciar a partida e, sabendo o que ganhariam ou perderiam, decidiram iniciá-la, depois de avaliados o risco versus recompensa. Então eu acho que a classificação inicial dos dois jogadores é a melhor solução.

MikhailTal
fonte
2
OTOH, para desencorajar a caça às classificações e incentivar o xadrez, o mesmo argumento pode ser aplicado de maneira oposta. ;)
Jik
4
As classificações não são moedas que são negociadas entre jogadores: são tentativas de medir os pontos fortes relativos dos jogadores.
David Richerby