Um dos marcos que o xadrez revolucionou nos últimos 20 anos é a aparência dos conhecidos como “motores” ou módulos de análise. Hoje no dia, praticamente todos os jogadores revisam Sua partida com o “amigo desumano”, procurando os erros que foram feitos no jogo. Tal é assim, que a avaliação de um módulo é tomada, atualmente, como a mais próxima de “a verdade” que sabemos; na verdade, não é estranho ouvir os fãs, e profissionais, fazer comentários do tipo: “Aqui Tenho 0,5 de vantagem “.
No entanto, eu me vejo constantemente que esta ferramenta é ruim, ou muito ruim, usada pela maioria dos jogadores; E isso implica que o trabalho feito na frente do computador pode ser usado para pouco ou melhor nada. Eu constantemente vejo que nem as análises realizadas têm valor (porque contêm erros de volume, como eu vou te ensinar), nem as conclusões que são tiradas deles servem para melhorar nosso jogo e, o que é pior, que o módulo prejudica nossa maneira de Pensando no conselho, perdendo por exemplo toda a noção estratégica. Portanto, escrevo esta série de artigos sobre motores de análise com algumas idéias e conselhos que podem nos ajudar a melhorar.
Fundamentos
Eu sou uma daquelas pessoas que, para usar Algo bem, preciso entender o que é. É por isso que, primeiro, explicarei, em um esquemático e telegráfico, o que um motor está dentro para nos oferecer essas variantes e avaliações.
Primeiro, devemos entender que uma análise de módulos consiste, basicamente, em Dois sub-programas (tecnicamente falamos sobre sub-rotinas, mas o termo subprograma eu acho que é melhor compreendido). O primeiro deles calcula todas as jogadas legais da posição atual. O segundo, leva cada posição e avalia-a através de uma função de avaliação. Isso converte a posição acima da placa em um número que será a avaliação. Finalmente, o programa ordena a todas as avaliações do maior para menores e nos dá o melhor lugar localizado nessa lista, que será o jogo que o computador propõe.
no jargão, cada posição é chamada de nó e Portanto, se você olhar para as informações que o módulo oferece durante seu cálculo, você pode ver em KN (nós quilos, ou seja, 1000 nós), quantas posições avaliam seu computador por segundo. Você pode fazer uma ideia de quão rápido o seu computador é (tecnicamente seu processador, que é aquele que calcula).
A função de avaliação é uma das “fórmulas mágicas” de cada motor e é O que caracteriza, essencialmente, cada módulo. Então, quando você escolhe um motor, você está basicamente comprando essa função de avaliação. Normalmente consiste em um cálculo do material no conselho, dê um número para mobilidade ou ameaças, e até muitos deles Incluir padrões para avaliar numericamente. Por exemplo, azul profundo adicionou um numérico “plus” no caso de um peão de torre chegou em sexto perto do broto rival (peão em H6 com o rei preto enocused em G8); o O módulo crafty tem um padrão para reconhecer um bispo fechado em H2 quando o adversário joga G3 (como no famoso jogo Spassky-Fischer). Portanto, trabalhar com diferentes módulos oferece diversas peças para a mesma posição, porque cada um avalia à sua maneira.
Os números que atribuem a função de avaliação são totalmente arbitrários, porque a única coisa que importa é o que Nó tem a maior avaliação. No entanto, os programadores mudaram a escala desses números para que eles tenham um certo relacionamento com o que os humanos entendem (peão = 1 ponto). Mas o olho, cada função de avaliação é diferente, e não podemos comparar o “cabelo” os números de um e outro módulo. Este é um dos primeiros erros que detectei entre os jogadores, e que devemos evitar. Nem podemos tomar a avaliação Como um número absoluto, “ter 0,25” não significa nada, em vez de, pela mobilidade das peças, é provável que nossa posição seja mais confortável; Mas essa não é a informação que um jogador de torneio precisa: se tiver uma vantagem, como corra, se é suficiente para ganhar, que tipo de posição espera por você, etc.
profundidade, ply e cálculo bruto
Os programadores são perguntados a mesma pergunta que os jogadores se tornam, ao parar para calcular e simplesmente avaliar a posição? Assim como acontece conosco, a resposta não é fácil. Portanto, o computador está calculando em “níveis de profundidade”; à medida que deixamos o tempo para calcular uma posição, ele está chegando ainda mais em seu cálculo.
Os níveis de profundidade são medidos em “Ply”, que é o que no xadrez consideramos “meio jogo” (que joga branco ou brincando preto); Isto é, se eu tiver uma posição (nó) e através de uma movimentação branca, eu alcanço outra posição (nó), ambas as posições são de 1 ply away. Portanto, uma profundidade de 2 métrica implica que o computador calculou todas as posições possíveis que ocorram após um branco e um jogo.
O computador está progredindo nesta profundidade. Em primeiro lugar, gera todos os avanços legais possíveis e, portanto, gera todos os nós possíveis que podemos alcançar a partir da posição atual. Em seguida, avalia todos esses nós e ordena melhor a melhor avaliação. Quando tudo isso é feito, o computador terminou de calcular a profundidade 1. Em seguida, pegue todas as posições geradas para uma camada e calcule todos os possíveis avanços jurídicos, gerando todos os nós possíveis que chegaremos após 2 camadas e a avaliação; Então teremos alcançado a profundidade 2; e assim por diante.
Para este processo que descrevi é chamado de cálculo bruto.
Cálculo seletivo
O cálculo bruto é formalmente correto, o que acontece que é que nosso computador é forçado a calcular todas as posições possíveis que surgem de cada peça, por isso, muitas vezes estará perdendo tempo em posições absolutamente perdidas (com senhora e duas torres de menos, por exemplo).
uma ideia Melhorar o desempenho dos motores é usar o que foi chamado de cálculo seletivo. Nele, o computador calcula todas as jogadas possíveis e avalia-as; Mas só seleciona alguns, o melhor, para realizar o próximo nível de profundidade. Digamos, por exemplo, que o “nível de seletivo” é três; então o computador leva as três posições que levaram às três melhores avaliações e geram todas as jogadas possíveis dessas três posições (nós). Agora, avalia as peças e retornos Para escolher os três primeiros para calcular todas as posições do próximo nível de profundidade, e assim por diante.
O cálculo seletivo é muito mais rápido que o cálculo bruto. Além disso, é baseado na maneira como os humanos calculam quando Eles escolhem as jogadas candidatas. No entanto, corre o risco de serem variantes interessantes no tinteiro. Se uma peça entregar a senhora para dar cinco movimentos mais tarde, você dificilmente pode ser entre os três melhores no nível de profundidade.. Além disso, O computador teria que atingir um nível de profundidade 9 (bruto) para ver o mate.
Como você ajusta o número de peças que queremos no seletivo?, a maioria dos computadores que eles têm um Parâmetro que é “número de linhas de cálculo”. Bem, toda vez que você coloca 1, 3 ou 10 você está ajustando o número de reproduções candidatas que usam seu computador no seletivo.
Cálculo bruto / seletivo
para aproveitar o O melhor dos dois mundos, os programadores optaram por um cálculo misto, o que combina o bruto e o seletivo. O computador primeiro calcula raramente a um nível de profundidade e, antes de passar para o próximo, realiza um cálculo seletivo a uma profundidade maior. Isto é, o computador calcula cru a profundidade 20 e, em seguida, leva os três primeiros e continua a aprofundar até 33 com a técnica seletiva de cálculo; Então ele faz o cálculo bruto a uma profundidade 21 e retorna para fazer o seletivo; E assim por diante.
Para isso, quando você olha para as informações do módulo na profundidade da seção, você vai ver uma fração 20/33, o que significa Nível 20 profundidade no cálculo bruto, nível 33 em seletivo.
Alguns motores de análise confiam pouco no seletivo (por exemplo, bufish), enquanto outros acreditam que é o mais importante (Houdini). No momento eu só vou te dizer que é muito importante que, em cada cálculo que você faça, você tem esses números presentes, porque vamos nos dizer o quanto o computador aprofundou e como o seguro podemos ser do resultado Isso nos oferece.
tabela de CPU e tabela de hash
Finalmente, comentaremos em dois aspectos “físicos” do nosso computador: a velocidade da CPU e da tabela de hash. O computador Tem um processador, que é aquele que calcula (ou seja, aquele que realiza operações nos “números” entrando e oferece alguns números em sua saída). Esta velocidade é, agora, o famoso GHz que aparece. Por exemplo, um Pentium 4 a 3 GHz significa que o computador tem uma “velocidade” de 3GHz. Se você tiver um computador mais rápido, na função de cálculo dos nós e avaliação, seu computador tornará-o mais rápido e, portanto, você alcançará Mais níveis de profundidade em menos tempo.
Eu quero enfatizar que, de forma alguma, um melhor processador (mais rápido) implica que o seu computador encontrará melhores jogadas.Qualquer computador antigo, se lhe darmos tempo suficiente, você encontrará a mesma peça pelo mesmo nível de profundidade, que o computador mais rápido do mundo (com o mesmo motor de análise).
Todos esses cálculos e avaliações Isso faz com que o computador armazene-os na memória, porque no próximo nível de profundidade, em vez de começar a partir de 0 os cálculos, o computador usa o que é calculado no nível anterior para adicionar “mais um jogo” (é muito mais rápido, obviamente). O problema é que o computador tem três níveis de memória (em termos básicos): cache, ram e disco rígido. O cache é aquele que é “mais próximo” do processador, é geralmente pequeno e serve para que o computador saia Há resultados intermediários armazenados enquanto os cálculos fazem. É o acesso mais rápido. A RAM é uma etapa intermediária, é bastante rápido acesso, e é onde a maioria dos programas é executada em nosso computador. O disco rígido é, com muita diferença, mais lento, mas é onde mantemos as coisas permanentemente.
Durante o cálculo das posições de xadrez, o computador gera uma quantidade íntima de informação (nós, avaliações) Você tem que ser armazenado em algum lugar. O cache está cheio muito rapidamente, então a próxima memória a ser usada é a RAM, que tem uma capacidade finita e que, à medida que avançamos, também é preenchida. Finalmente temos o disco rígido, o que é muito lento para os nossos objetivos.
A tabela do hash é uma tabela que funciona como um índice da memória que usamos e que organiza todos os cálculos que já fizemos , tal como se o computador quiser encontrar onde a avaliação de uma posição é, a primeira coisa que você pergunta é para a mesa de hash se você tiver no índice; E se não, calcula novamente.
A maioria dos motores permite-nos tamanho (dar tamanho) a esta tabela de hash; Ou seja, nos permite dizer o quão grande é o notebook que nosso motor de xadrez pode usar para salvar suas posições e avaliações. Se este notebook for muito grande, o computador gastará muito tempo executando o índice que procura se você tiver a posição que deseja calcular agora. Se for muito pequeno, o computador deverá constantemente calcular posições que podem ter sido calculadas no passado. Portanto, não é tão simples quanto dar o maior valor possível para a tabela de hash.
A regra geral diz que, se o nosso processador é muito rápido, melhor que a memória não é muito grande (porque custa menos Calcule que você olha na memória), enquanto se for lento, devemos fazê-lo pelo contrário. Alguns motores publicaram cúl é o valor ideal de memória com o qual eles devem funcionar. Minha experiência é que é melhor ajustar esses valores para otimizar o desempenho.
Há muitos outros fatores que temos que ajustar quando vamos trabalhar xadrez com um computador: use Os compiladores apropriados, escolha a maneira correta de compilar o motor, etc. Um motor bem otimizado pode supor uma melhora de 40% em termos de velocidade de processamento (Kilonodos por segundo).
no seguinte artigo; uma vez Temos o básico, e entendemos basicamente como funciona, vamos falar sobre como melhorar nosso trabalho com um computador.