Existe um mecanismo que encontre a melhor jogada "prática"?

25

Um mecanismo de xadrez padrão encontrará a jogada que considerar melhor, assumindo a melhor jogada de ambos os lados. Mas esse movimento pode levar a uma vantagem insignificante ou a uma linha complicada que pode facilmente resultar em erros para um jogador humano de uma habilidade específica. Existe um programa que encontre a melhor jogada "prática" para, por exemplo, jogadores intermediários? Por exemplo, ele pode escolher uma jogada que leve a uma posição de ataque muito forte, na qual o oponente provavelmente cometerá um erro, mesmo que possa ser defendido com um jogo perfeito.

Ari
fonte
5
Pergunta muito interessante, mas acho que implementar algo assim poderia ser difícil porque "prático", poderia ser muito diferente dependendo da situação. Por exemplo, o mesmo movimento seria igualmente prático contra um oponente 200 pontos acima e 200 pontos abaixo? E o jogo clássico vs. jogo de blitz?
Akavall 03/10
Parece que você quer algo mais próximo do expectimax do que o minimax?
Mehrdad 04/10
Isso me lembra de poker. Eu acho que a maioria dos robôs de pôquer sempre joga jogadas práticas, em vez de assumir um equilíbrio de Nash e tentar jogar as melhores jogadas teóricas.
Paul
Uma maneira de pensar sobre isso é que você está procurando quantificar uma função objetivo diferente. Quando você está perdendo, não quer apenas minimizar o quanto está perdendo (quem se importa se você perder por uma centopéia ou uma rainha). Em vez disso, você quer minimizar o quanto está perdendo, sujeito a que ainda exista uma linha na qual seu oponente possa razoavelmente cair. Você pode quantificar "razoavelmente apaixonada por" contando "apenas" movimentos ou situações em que apenas os movimentos superiores (ou dois) continuam com sua vantagem, mas outros movimentos levam a que você tenha a vantagem.
ddunn801 4/10
Como analogia, no futebol americano, você chuta de lado porque lhe dá uma (magra) oportunidade de marcar rapidamente, mesmo que o resultado esperado o prejudique.
ddunn801 4/10

Respostas:

22

Você está descrevendo algo muito semelhante ao desprezo . A idéia com desprezo é que, se você mantiver mais dinamismo na posição, é mais provável que um oponente mais fraco cometa erros que poderá explorar. Portanto, dados dois movimentos que produzem avaliações semelhantes, um mecanismo com alta pontuação de desprezo escolherá aquele que mantém mais dinamismo na posição. Todos os motores tradicionais mais fortes atualmente foram desprezados (exemplo para o Komodo ).

O perigo do desprezo é que, contra um oponente forte, o alto desprezo pode matá-lo - afinal você está forçando o motor a jogar um movimento mais fraco apenas para manter o jogo vivo.

Allure
fonte
11
Obrigado, é semelhante ao que estou procurando, mas minha pergunta é mesmo para jogadores com a mesma habilidade. Por exemplo, um movimento pode levar a uma vitória 9/10 vezes, considerando os movimentos prováveis ​​que o oponente fará.
Ari
3
@ Ari é semelhante embora. Faça duas jogadas, uma das quais levará a um empate e a outra poderá levar a uma vitória 90% das vezes e a uma perda nos 10% restantes. Um motor com um nível de desprezo muito alto pode escolher o último (e perder contra uma defesa perfeita).
Allure
11
Sem desprezo, os motores provavelmente empatariam a maioria dos jogos contra oponentes inferiores por não excluir repetições forçadas a qualquer momento.
Ignorância inercial
11
Pode ser muito bom se o outro jogador estiver ficando sem tempo no relógio.
Ian Ringrose em
@Ari Se o seu oponente está no mesmo nível que você, se você pode fazer uma metanálise de uma linha (ou seja, não apenas decidir se está ganhando, mas também estimar a probabilidade do seu oponente ver que está ganhando), então eles provavelmente será capaz de analisá-lo.
Acumulação
6

Percebi que essa pergunta se aplica principalmente a mecanismos de xadrez padrão que usam funções minimax para avaliar movimentos. No entanto, mecanismos de xadrez como o alphazero usam a pesquisa na árvore monte carlo para simular muitos jogos diferentes, para que eles não estejam apenas olhando para as melhores jogadas possíveis. É possível que eles já possam ser usados ​​para encontrar a melhor jogada "prática" ou que possam ser adaptados para esse fim. Por exemplo, o algoritmo de pesquisa monte carlo pode ser atualizado para analisar movimentos "razoáveis" e simular o que acontece.

Ari
fonte
Mas então você tem que programar "razoável" no algoritmo.
Ignorância inercial
1

Na verdade não.

Os bancos de dados são úteis porque podem dizer com freqüência que uma jogada é executada e qual é o resultado, no entanto, eles não são perfeitos por várias razões.

O Fritz 12 (que não tem certeza das versões posteriores) possui um medidor de "gostosura", que mostra a complexidade da variação.

Linha de fundo. é uma combinação de coisas. Você está procurando movimentos em que os movimentos mais baseados em princípios acabam sendo ruins. Nenhum mecanismo pode lhe dizer isso.

Savage47
fonte