Monday, 12 March 2018

Opções de linha de comando do stockfish


GUI do Arena Chess para Linux e Windows.
15 de maio de 2017 17:55:38.
Configurando a Arena.
Espero que você tenha instalado o Arena na sua máquina Windows. Se não, por favor visite o site da Arena. Inicie o Arena como você costuma fazer. No menu superior, selecione Mecanismos - & gt; Gerencie e pressione o botão Novo. Você receberá uma caixa de diálogo de arquivo onde você deve selecionar um mecanismo nativo. Em vez disso, você seleciona plink. exe em C: \ putty. Na próxima caixa de diálogo, você deve informar se esse é um mecanismo de xadrez da UCI ou Winboard. Selecione a opção adequada. Para o bacalhau, deve ser UCI. Eu recebo um mecanismo de PLINK listado na lista de mecanismos. Na aba Geral, você pode mudar o nome para algo mais apropriado do que o PLINK, vamos chamá-lo de & quot; Stockfish (Linux 64bit) & quot ;. Coloque os nomes dos autores na próxima caixa de entrada, mas deixe o & quot; C: \ putty \ plink. exe & quot; na caixa de entrada da linha de comando.
Adição por Martin em 2013: Os seguintes parâmetros funcionaram aqui:
O diálogo de gerenciamento do engine deve ficar assim:
Para usar o livro de abertura, você pode carregá-lo através da caixa de diálogo UCI. No menu Arenas Engine, selecione o menu específico do mecanismo, como & quot; Motor 1 / Stockfish Linux 64bit? e selecione a opção Configurar neste submenu.
Como você pode ver, você também pode definir qualquer outra opção UCI nessa caixa de diálogo.

Opções de linha de comando do Stockfish
no win 7 eu posso me comunicar com um motor de xadrez via linha de comando. Sessão de pequenos exemplos com o Stockfish no Win 7:
A primeira linha foi produzida pelo mecanismo e o 'quit' foi o que eu digitei para sair do motor (há outras coisas que eu posso fazer, mas isso é claro para mim).
Agora eu quero me comunicar com esse mecanismo do python:
mas ele não sai do motor (sem prompt C: \ run \ Stockfish>), ele continua aguardando a entrada. Eu tenho que fechar a janela com a mão. Parece não receber minha mensagem de saída (última linha do script python) escrita para stdin.
Em outras palavras, eu posso ler de stdout, mas quando eu escrevo para stdin nada acontece.
O que estou fazendo de errado e como fazer certo?
Edit: ok, graças à ajuda do larsmans eu resolvi isso:
Exemplo de script Python:
Você tem um impasse: o subprocesso está aguardando a entrada, enquanto o seu programa está aguardando a saída de mais linhas.
Esse loop só pára quando o subprocesso fecha sua stdout.

Parâmetros do motor.
Esta é uma lista dos parâmetros do motor do Stockfish e suas explicações.
Gravar Log de Depuração Booleano, Padrão: Falso.
Se deve ou não escrever um log de depuração.
Contempt Integer, Padrão: 0, Mín: -100, Máx: 100.
Aproximadamente equivalente a "otimismo". Valores positivos de desprezo favorecem mais jogos "arriscados", enquanto valores negativos favorecem os sorteios. Zero é neutro.
Min Split Depth Integer, Padrão: 0, Mín: 0, Máx: 12.
Threads Inteiro, Padrão: 1, Mín: 1, Máx: 128.
O número de encadeamentos a serem usados ​​durante a pesquisa. Esse número deve ser definido para o número de núcleos em sua CPU.
Hash Integer, Padrão: 16, Min: 1, Max: 1048576.
A quantidade de memória a ser usada para o hash durante a pesquisa, especificada em MB (megabytes). Esse número deve ser menor que a quantidade de memória física do seu sistema.
Pondere Booleano, Padrão: Verdadeiro.
Se o motor deve ou não analisar quando é a vez do oponente.
MultiPV Integer, Padrão: 1, Min: 1, Max: 500.
O número de linhas alternativas de análise a serem exibidas. Especifique 1 para obter apenas a melhor linha. Pedir mais linhas desacelera a pesquisa.
Nível de Habilidade Inteiro, Padrão: 20, Mín: 0, Máx .: 20.
Quão bem você quer que o Stockfish jogue. No nível 0, o Stockfish fará movimentos estúpidos. O nível 20 é o melhor / mais forte jogo.
Mover Integral de Sobrecarga, Padrão: 30, Mín: 0, Máx: 5000.
Minimum Thinking Time Integer, Padrão: 20, Min: 0, Max: 5000.
A quantidade mínima de tempo para analisar, em milissegundos.
Slow Mover Integer, Default: 70, Min: 10, Max: 1000.
UCI_Chess960 Booleano, padrão: falso.
Se o Stockfish deve ou não jogar usando o modo Chess 960. O xadrez 960 é uma variante de xadrez em que as fileiras de trás estão embaralhadas.
SyzygyPath String, padrão: vazio.
O caminho para os tablebases de final de jogo do Syzygy.
SyzygyProbeDepth Inteiro, Padrão: 1, Mín: 1, Máx: 100.
Syzygy50MoveRule Boolean, Padrão: true.
SyzygyProbeLimit Integer, Padrão: 6, Mín: 0, Máx .: 6.

Protocolo UCI.
O Stockfish usa o protocolo UCI para se comunicar com uma GUI. Uma boa visão geral deste protocolo está disponível na Wikipedia.
Um resumo abreviado dos notáveis ​​comandos UCI segue. Isso é útil se você estiver executando o Stockfish na linha de comando.
Definindo a posição.
Isso define a posição com uma string FEN. Como sempre, a Wikipedia tem uma visão geral dessa notação.
Isso define a posição com movimentos a partir da posição inicial. Essa notação é preferida porque o mecanismo pode levar em conta coisas como a regra de 50 movimentos ou a repetição tripla.
Alterando configurações.
Isso produz a lista de configurações.
Isso define o tamanho do hash como 1 GB.
Isso pede ao Stockfish para usar 4 threads ao analisar.
Pede ao mecanismo para analisar para sempre. Envie o comando stop para parar a análise ou pressione CTRL + C para sair.

Opções de linha de comando do Stockfish
Existe uma maneira de perguntar ao peixe na linha de comando se a posição é "silenciosa"? Estou executando um script como o stockfish_fen. sh para retornar a análise, mas gostaria de saber também se o stockfish considera essa posição como sendo de natureza posicional ou tática.
Eu não acho que exista algo assim, e isso nunca será implementado.
Se você insistir, você pode querer ver como o Stockfish faz uma pesquisa de quiescência. Uma posição "tática" significaria uma dúzia de longas séries de chamadas recursivas. Uma posição "quieta" significaria o contrário. No entanto, este é um truque muito sujo que pode não funcionar muito bem, você também precisa fazer alguma programação.
Existem outras ideias, como a análise do fator de ramificação médio, o número de capturas na variação principal, a distribuição das pontuações. Nada disso é absolutamente satisfatório.
Além disso, você pode obter informações sobre o Stockfish, com esses comandos, se você estiver no Linux:
Minha tentativa de resposta está no Github. Comentários mais que bem vindos. Mais ou menos precisamente o que Ian Bush sugeriu.

Xadrez De Bacalhau.
Motor de xadrez de código aberto forte.
O bacalhau é um dos motores de xadrez mais fortes do mundo. Também é muito mais forte que os melhores mestres de xadrez humanos.
Código aberto.
Ao contrário da maioria dos motores de xadrez, o Stockfish é open source (licença GPL). Isso significa que você pode ler o código, modificá-lo, contribuir de volta e até mesmo usá-lo em seus próprios projetos.
Corra em qualquer lugar.
Você pode usar o Stockfish em seu computador com Windows, OS X ou Linux, ou em seu dispositivo iOS ou Android. Então você pode obter análises de xadrez de classe mundial, onde quer que esteja.
O Stockfish é licenciado sob a licença GPL. Website e cópia; 2010- Daylen Yang. Ícone de bacalhau por Klein Maetschke.

No comments:

Post a Comment