Por que os mecanismos de xadrez às vezes perdem boas jogadas (ou levam uma eternidade para identificar)?

17

Não é a primeira vez que encontrei uma jogada muito superior à do mecanismo de xadrez, e leva um tempo para entender essas jogadas depois que você as faz.

Por exemplo, a mudança 15 ... Bf2no jogo abaixo:

NN - NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

A mudança permanece despercebida pelo mecanismo por um tempo, não é até eu me mexer que ele começa a ver o resto do iceberg.

Sei que tudo depende de quanto tempo você gasta para analisar, mas é inaceitável que às vezes os humanos consigam encontrar esses movimentos em menos tempo que os computadores.

  • Por que os motores de xadrez não conseguem identificar bons movimentos em algumas posições? (Uma vez eu li algo sobre um 'efeito horizonte', talvez isso esteja relacionado?)
  • Existem outros exemplos notáveis? (por exemplo, este famoso quebra-cabeça , leva um tempo para os computadores resolverem)

Essas perguntas contêm informações úteis para explicar parcialmente alguns fatores que podem estar causando essa anomalia: Quais algoritmos e heurísticas são populares no xadrez por computador? , Ao jogar com um oponente de computador, que situações devo criar para ter uma chance maior de ganhar? , Avaliações por computador: Quão confiáveis ​​são?

Notas: A armadilha é conhecida como Pólo de Pesca . Estou ciente de que perdi um companheiro em 3 (e um companheiro em 7) :(, o limite de tempo por jogada era de dias (xadrez por correspondência), mas levei 5-10 minutos para terminar de calcular tudo.

ajax333221
fonte
1
Muito interessante. O bacalhau no meu PC de força médio não foi encontrado 15... Bf2após 5 minutos.
Tony Ennis
... e demorou mais de 7 minutos para encontrar um companheiro em 7 semelhante na próxima jogada.
Tony Ennis
20 d3 é um erro. tente 20 d4.
dcaswell
1
Por que você usa a linguagem "inaceitável" para um ser humano encontrar uma mudança em menos tempo que um computador? Você pode descompactar seus pensamentos sobre isso?
Xonatron
Perdeu muitos movimentos melhores. Por que escolher esse especificamente?
yobamamama 8/01

Respostas:

33

Por que os motores de xadrez não conseguem identificar bons movimentos em algumas posições?

O motivo é chamado de técnicas de remoção avançada (consulte http://chessprogramming.wikispaces.com/Pruning ) com o ProbCut na primeira linha.

O movimento 15 ... Bf2 é podado em profundidades rasas porque inclui o sacrifício 16.Rxf1 sem recuperar algo concreto com evidências imediatamente depois. A matenet também é difícil de ver, porque inclui mais alguns movimentos 'silenciosos', como por exemplo 17 ... Ke7, e sim também motores, não apenas os seres humanos têm dificuldades para ver movimentos silenciosos distantes, pois são frequentemente podados.

Neste caso concreto, você nem pode dizer que os motores não conseguem identificar boas jogadas, porque também a continuação 15 ... Rh3h1 é uma jogada muito boa e leva a uma posição absolutamente conquistada.

Por último, mas não menos importante, você deve se lembrar que a força de um motor é sempre medida em termos de resistência e não na capacidade de encontrar o caminho mais curto e absoluto para vencer. Não importa se um mecanismo vence em 8 movimentos ou em 25 movimentos. Buscar muito pela vitória mais curta, significaria um tempo perdido, porque na maioria das vezes não existe uma jogada tão secreta. E a perda de tempo prejudicaria a classificação ELO dos motores.

user1411977
fonte
1
Boa resposta, bem-vindo ao site!
Andrew
+1 por mencionar a troca entre a pesquisa removida e a pesquisa completa. Não estou nem um pouco surpreso que uma combinação de 13+ PLY não seja encontrada rapidamente. O mecanismo tem "coisas melhores a fazer" do que calcular todas as possibilidades nessa profundidade.
Daniel B
2
Boa resposta geral. +1 para "Por último, mas não menos importante, você deve se lembrar, que a força de um motor é sempre medida em termos de resistência e não na capacidade de encontrar a maneira mais curta absoluta de vencer"
ferit 01/01/16
Excelente resposta.
Xonatron
12

Estou tentando isso com o Houdini 1.5 (a versão gratuita). Nos primeiros 15 ... Bf2 não aparece nas 5 principais jogadas; depois, quando atinge a profundidade 15, aparece como # 1. Leva cerca de 19 segundos no meu computador de quatro anos, não muito tempo.

Portanto, ele não deixa de localizá-lo, apenas o considera o melhor movimento quando a profundidade 15 é alcançada. Aparentemente, desde que pareça apenas 14 dobras, outros movimentos são melhores (como os também vencedores 15 ... f5 +).

Aparentemente 15 ... Bf2 é um companheiro em 8, que é 15 dobras (8 movimentos por preto, 7 por branco). Mas, no início, apenas considera +10 ou mais, depois +20, depois acopla em 10, depois acasala em 8.

O companheiro na linha 8 é:

NN - NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. kh2 BF1 + 14. kG3 RH3 + 15. Kg4 Bf2 16. RXF1 RH4 + 17. Kg5 Re7 18. Rh1 Rxh1 19. Cc3 Rah8 20. Cd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Claramente, quando o Houdini 1.5 mede 15 dobras, ele não considera todas as linhas possíveis com 15 dobras, ou veria o companheiro em 8 no momento em que terminasse sua pesquisa de 15 dobras.

Eu acho que isso é por causa da poda , para de olhar para algumas linhas quando acha que elas não são promissoras o suficiente. Dessa forma, ele pode gastar mais tempo nas linhas promissoras, e o programador acha que os profissionais superam os contras. Mas não tenho uma resposta agora sobre o que decide podar aqui (provavelmente toma milhões de decisões de poda separadas em profundidade 15).

Pode ter a ver com os movimentos silenciosos ... Ke7 e ... Rah8, duas capturas sem verificação em uma linha onde o preto é um pedaço para baixo. É provável que decida em algum lugar que não é útil continuar procurando nessa linha. Só mais tarde, quando continua a linha e encontra o companheiro no final, outras linhas que prolongam o jogo (com 18.Rh1 Rxh1 e assim por diante) são exibidas.

De qualquer forma, sabe-se que não funciona tão bem para deixar um computador pensar por alguns segundos apenas se você quiser chegar ao fundo de alguma coisa, alguns minutos são melhores.

RemcoGerlich
fonte
Meu palpite sobre o porquê disso poda é porque 16. Rxf1 parece "heuristicamente", não que o rei dos grandes brancos esteja em campo aberto, mas não há xeque-mate imediato e o preto é um cavaleiro por um peão em material. Somente quando uma análise mais profunda acontece (como você disse) é que o valor desse "sacrifício" se torna claro.
Joe K
Observe que "15 dobras" significa que foram observados alguns movimentos até a profundidade 15, nem todos . Isso levaria waay mais de 4 segundos, mesmo em um super-computador.
BlueRaja - Danny Pflughoeft
2

Depois de ler todas as respostas e outras fontes, agora entendo que eles não 'perdem' ou optaram por perder esses movimentos, os humanos os programaram de maneira a seguir um padrão específico na pesquisa (onde / como / quando +) e, mais importante, quando pausar a pesquisa e procurar linhas mais promissoras para economizar recursos.

Mas, com tempo suficiente, um computador encontrará todas as combinações possíveis em uma certa profundidade.

TL; DR

  • Q1: eles nunca perdem os movimentos, eles ainda não os encontraram
  • Q2: eles levam tempo porque estão programados para economizar recursos e priorizarão algumas linhas em detrimento de outras (por exemplo, aquelas que não têm movimentos passivos ou não recuperam material nos próximos movimentos).
ajax333221
fonte
-1

Acho que todo mundo está perdendo um companheiro muito mais rápido. Ao verificar a posição com Houdini 3, o preto na verdade tem companheiro em 3 no movimento 13. Em vez de Bf1 +, o preto deveria ter jogado Bf2 e continua com 14. d3 bf1 + 15. Bh6 Rxh6 #. Portanto, em uma resposta incomum à sua pergunta, talvez alguns mecanismos não tenham percebido seu movimento imediatamente, mas, no caso do Houdini 3, ele encontrou um parceiro muito mais rápido.

Randy
fonte
5
Se você ler toda a pergunta, verá que ele está ciente do companheiro em 3. Todos os motores razoavelmente novos encontrarão o companheiro em 3 imediatamente, e isso não faz parte do que é solicitado aqui.
21313 Halvard