Abordagens alternativas à programação de mecanismos de xadrez

14

Até onde eu entendo, grosso modo, os mecanismos de xadrez funcionam da seguinte maneira:

  1. calcular todas as variações possíveis (árvore de jogo) até um pouco de profundidade
  2. avaliar a posição final com base em alguns critérios (material, atividade da peça ...)
  3. com base nessa avaliação, decida a melhor jogada

Entendo perfeitamente que, para ter um mecanismo eficiente, existem maneiras de podar certas linhas, limitando a profundidade, etc; mas essa não é minha pergunta.

A pergunta é: existem tentativas alternativas de programar um (não necessariamente forte, mas também não aleatório) mecanismo de xadrez, que não segue esse esquema?

user1583209
fonte
Botvinnik tentou podar a mudança de raiz, fazendo com que o computador procure apenas a melhor candidata. Não houve uma tentativa bem-sucedida disso, e o xadrez é melhor para isso.
9788 Fred Cavaleiro

Respostas:

13

Nos anos iniciais do xadrez por computador, as pessoas realmente tentaram ensinar xadrez a computadores da mesma maneira que fazem com os seres humanos, explicando conceitos estratégicos como uma estrutura de peões saudável ou a iniciativa. Essas tentativas foram logo abandonadas porque o método que você descreveu teve muito mais sucesso.

Recentemente, houve outra tentativa de permitir que um mecanismo se ensine a xadrez por meio do Deep Learning (provavelmente incentivado pelo sucesso da Go AI do Google ). De acordo com o artigo ao qual vinculei, eles tiveram bastante sucesso e conseguiram atingir a força do IM.

Glorfindel
fonte
1
De acordo com o meu entendimento, o Alpha Go funciona exatamente como o OP descrito e apenas a função eval de (2.) é baseada / criada através do Deep Learning. A outra resposta parece concordar.
Hermann Döppes 4/17/17
According to the article I linked to, they were quite successful and managed to reach IM strengthmas se você ler o artigo original, verá que o artigo exagerou bastante o sucesso.
Salvador Dali
1
@ HermannDöppes Não, o AlphaGo é baseado na pesquisa de árvores em Monte-Carlo.
HelloWorld 5/17
3

@Glorfindel não está errado, mas a abordagem de aprendizado profundo do xadrez é realmente um termo sofisticado para o ajuste de parâmetros na programação de xadrez.

O aprendizado profundo permite que um mecanismo de xadrez aprenda uma função de avaliação, algo geralmente escrito à mão por um programador. Durante um jogo, funciona como um mecanismo de xadrez normal.

Outras possibilidades:

  • Programação de xadrez GPU
  • Pesquisa em árvore Monte-Carlo
Olá Mundo
fonte
A maior parte da sua resposta deve ser um comentário em [Resposta de Glorfindel] ( chess.stackexchange.com/a/16293/2789 . A parte que realmente aborda a pergunta consiste em apenas sete palavras, o que não é suficiente para uma resposta. , "Programação de xadrez da GPU" é apenas uma maneira de paralelizar qualquer algoritmo que você possa estar usando, então eu não acho que seja realmente uma "abordagem" no sentido em que a pergunta está procurando; é apenas um método de implementação.
David Richerby
-2

Certamente! Se você realmente quer dizer .... "em teoria, existem outros métodos para codificar um mecanismo de xadrez?" ... Então sim!

Por exemplo ... pode-se armazenar uma cópia de todas as posições possíveis no xadrez (um grande número, eu sei) e fazer uma avaliação para cada uma. Então, a resposta para qualquer pergunta (ou seja, "melhor jogada para as brancas na posição X") será conhecida imediatamente apenas olhando para o quadro. O estado atual do hardware do computador é tal que isso faria algum sentido? Nah. Mas você não perguntou isso.

Nick Lopez
fonte