Como os motores de xadrez avaliam uma posição se ela está no meio de uma troca?

7

No algoritmo minimax, os mecanismos de xadrez fazem uma pesquisa profunda até o ponto em que podem calcular adiante e depois avaliam todas essas posições finais. Em seguida, usando essas avaliações, eles trabalham para trás, um movimento de cada vez, e atribuem valores às posições anteriores. Eventualmente, eles alcançam a posição atual e inicial e atribuem um valor de avaliação.

No entanto, como os motores de xadrez minimax avaliariam uma posição final se ela estivesse no meio de alguma troca? Por exemplo, tome o seguinte:

  1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Bxc6

Digamos que a capacidade de profundidade de um motor era de 7 dobras (um movimento de qualquer um dos jogadores), e atingiu essa posição como uma das posições finais em seus cálculos desde o início do jogo. Não seria capaz de calcular mais (e ver que as pretas poderiam jogar 4 ... dxc6) e teria que avaliar essa posição agora. Para mim, parece que teria que atribuir a esta posição final uma vantagem de +3 para as brancas, mas eu sei que os mecanismos de xadrez têm uma maneira de contornar isso.

Minha pergunta é: como os mecanismos de xadrez contornam esse cenário?

Ignorância inercial
fonte

Respostas:

12

Um bom mecanismo de xadrez não para após um número predeterminado de movimentos, mas continua olhando até que a posição esteja "quieta", o que, grosso modo, significa que não há capturas ou verificações pendentes. Consulte Pesquisa de quietude nos espaços de wiki da programação de xadrez para obter uma explicação mais detalhada.

itub
fonte
4

@itub está absolutamente certo. Geralmente, o mecanismo de xadrez do computador não para até que a posição esteja clara, pelo menos em termos de captura de material. Quando você solicita a um mecanismo que procure profundidade = 10, isso não significa que ele procure variações até a profundidade = 10.

A pesquisa por quiescência é importante para minimizar o efeito do horizonte.

SmallChess
fonte
Vale a pena notar que, na maioria das posições, o número de capturas e testes possíveis será bastante limitado, e o número de movimentos disponíveis será bastante limitado na maioria dos casos em que o rei está sob controle. Um mecanismo que deve trabalhar até a profundidade 6 pode procurar enquanto um contador de profundidade é menor que 96 e aumentar esse contador em 16 após uma não captura de não captura, em 1 após uma captura e em N se um movimento envolve uma verificação e houve N tais movimentos na linha atual. Bem simples, e acho que é assim que muitos programas de xadrez dos anos 80 funcionam.
Supercat