Como um mecanismo de xadrez imita uma classificação Elo

7

Sou um jogador de xadrez bastante novo (digamos 1400) e gostaria de jogar contra o Stockfish e ganhar algumas vezes. Se eu mudar a força para 1400, o que o algoritmo realmente faz? Comete erros aleatórios ou simplesmente reduz sua profundidade e, assim, vê apenas as combinações táticas mais fáceis de movimentos. Em caso afirmativo, qual seria a profundidade para uma classificação de 1400?

Dom
fonte
4
Se o fizer, fará isso propositalmente (ou aleatoriamente) escolhendo movimentos ruins. Nenhum dos motores faz isso bem. Se você quiser ganhar alguns jogos, recomendo que você participe do seu clube de xadrez local e jogue com humanos.
Tony Ennis
O bacalhau alterna entre movimentos ultra-fortes e ultra-fracos quando definido em níveis baixos. Eu acho que Shredder ou The Chess Crazy Bishop jogam em um nível mais consistente no Elo mais baixo. Motores de baixa classificação da CCRL também podem ser mais consistentes.
Um transeunte

Respostas:

6

No modo de redução de força, o Stockfish inicia um multipv onde o mecanismo procura mais de uma melhor jogada. Quando o mecanismo precisa fazer uma jogada, ele procura todas as possibilidades nos movimentos com vários pontos de PV e escolhe uma jogada com o seguinte algoritmo:

  1. Filtre uma jogada se for um erro grave. Faz isso comparando sua pontuação com outra pontuação multi-pv.
  2. Gere um pequeno número aleatório e aplique-o a uma pontuação multi-pv
  3. Escolha a jogada se a pontuação transformada for a melhor

Pode parecer complicado, mas não é, vamos fazer um exemplo.

Diga, eu troquei minha rainha com a sua. Você poderia levar minha rainha com seu bispo ou peão. Se você fizesse isso com seu bispo, a posição teria sido igual. Se o fizesse com seu peão, sua posição teria sido arruinada e levaria a uma posição ligeiramente inferior. Se você fizesse mais alguma coisa, eu seria uma rainha à frente.

Uma possível pontuação seria:

  • BxQ -> 0,00
  • PxQ -> -0,34
  • Kh8 -> -9,99

Não receber de volta a rainha é um erro grave e deve ser evitado sempre que possível. Quando aplicado ao algoritmo:

Cálculo

    1. Motor considera BxQ

A melhor pontuação é 0,00. Como este é o primeiro passo, não há nada a fazer.

    1. Motor considera PxQ

Observe que, sem dar um pequeno impulso aleatório ao PxQ do movimento, ele nunca seria escolhido porque a melhor pontuação (0,00) é maior que a pontuação do PxQ (-0,34).

O Stockfish gera um pequeno número positivo e o adiciona ao PxQ. Agora, existem duas possibilidades. Se o número aleatório for muito pequeno, digamos, 0,10, a pontuação adicionada (-0,34 + 0,10 = -0,24) ainda será muito pequena em comparação com a melhor pontuação (0,00) e ela será descartada. Se o número aleatório gerado for suficiente para elevar a pontuação PxQ acima da melhor pontuação, por exemplo, 0,40. A nova pontuação para PxQ teria sido 0,06 e é maior que 0,00. Portanto, o Stockfish escolheria o PxQ.

    1. Motor considera Kh8

Não devolver a rainha é um erro grave. A diferença entre ele e a jogada anterior é muito grande (-9,99 - -0,34). O Stockfish não consideraria e descartaria imediatamente.

Implicação

  • O motor não jogará xadrez aleatório
  • A possibilidade de fazer um movimento inferior depende do gerador aleatório. A utilidade do gerador também depende do nível de força. Quanto mais fraco você perguntar ao Stockfish, maior a probabilidade de o gerador gerar um número maior.
  • Erros estúpidos são evitados
  • O movimento do Stockfish é imprevisível, simulando o comportamento imprevisível do ser humano.
  • O Stockfish não imita a classificação Elo. Dá apenas 20 níveis de força.

Editado

O pôster mostrava preocupação com um link para o Stockfish para iOS nos comentários. Observe que a declaração no link "Defina a força do motor em uma escala de 0 a 2500. Essa escala corresponde aproximadamente à escala ELO humana. 0 é um jogo absolutamente terrível, enquanto 2500 é a força máxima".é enganoso e simplesmente errado. Para ver por que, a página não foi escrita por um desenvolvedor de mecanismo Stockfish. O escritor interpretou mal o dimensionamento relatado no aplicativo. Na realidade, se você der o aplicativo, digamos Elo 2000, ele o mapeia para um dos 20 níveis de força. Qualquer que seja a classificação Elo que você vê no aplicativo não significa absolutamente nada, é apenas uma maneira fácil para o usuário final ajustar os níveis. Não há relação direta entre um nível de força e uma classificação Elo. Pense assim, se eu modificar o código fonte e expandir o intervalo de 0,20 a 0,40. Agora, quando você escolhe a força 30, qual é a classificação? Eu poderia dizer que é o Elo 2400, ou o Elo 2500, ou o Elo 3500.

No final do dia, o Stockfish não imita a força de Elo. Os rótulos Elo que você vê no aplicativo são simplesmente rótulos bonitos que fingem que há um relacionamento.

SmallChess
fonte
2
Obrigado. Se você olhar aqui support.stockfishchess.org/kb/ios-app/… , diz que "Defina a força do mecanismo em uma escala de 0 a 2500. Essa escala corresponde aproximadamente à escala ELO humana. 0 é um jogo absolutamente terrível, enquanto 2500 é força máxima "
Dom
Veja minha resposta editada.
SmallChess
11
Resposta simples: o que você viu no link não estava correto.
SmallChess
Além disso, você realmente acredita que o Stockfish só executa até Elo 2500? É um motor muito mais forte que isso.
SmallChess
11
Não tenho crenças sobre o Stockfish. Estou simplesmente relatando o que está escrito no site de suporte (links do site principal do stockfish).
Dom
0

Se você quer um oponente "amigável" do computador, alguns dos pacotes disponíveis oferecem a capacidade de "poupar", na qual eles avaliarão seus movimentos e gerarão uma classificação para você dessa maneira. Então, eles ajustam a jogada para ficar (aproximadamente) no seu nível.

Fritz, por exemplo, tem uma variedade desses métodos de "mancar", incluindo

  • Modo " Amigo " (que se comporta como eu descrevi),
  • Modo " sparring ", no qual o programa ocasionalmente comete erros táticos, com 3 níveis de jogo, incluindo um recurso "alerta" opcional para encorajá-lo a procurar por esse erro
  • " Handicap and fun mode ", no qual você ajusta variáveis ​​que afetam o jogo, como a força do jogo (dizem nos pontos ELO, mas veja acima), preconceitos das peças, segurança do rei, tendência para atacar, etc.

Observe que meus comentários sobre o Fritz são para a versão 9 e agora estão com 15 anos, então provavelmente é um pouco diferente.

jaxter
fonte