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?
7
Respostas:
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:
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:
Não receber de volta a rainha é um erro grave e deve ser evitado sempre que possível. Quando aplicado ao algoritmo:
Cálculo
A melhor pontuação é 0,00. Como este é o primeiro passo, não há nada a fazer.
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.
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
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.
fonte
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
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.
fonte