quarta-feira, 13 de fevereiro de 2013

Entendendo o Mundo do "Computer Chess"

Fala pessoal, blz?

Como muitos leitores são iniciantes no “computer chess”, algumas dúvidas básicas normalmente surgem. Dúvidas que também já foram minhas no começo. Então eu resolvi fazer um tutorial bem básico pra quem está tentando entender os conceitos preliminares desta prática.
Existem três elementos que formam um conjunto que precisam ser identificados e entendidos: Programa (interface), Engine (motor) e o Opening Book (livro de aberturas).

O PROGRAMA: também chamado de GUI (Graphical User Interface), como a sigla já define, é a interface gráfica entre a função que o programa executa e o usuário que está usando esta função. Fazendo uma analogia, o Word é um programa utilizado basicamente para digitarmos textos, certo? Criar arquivos de textos é a função do Word e para utilizarmos esta função precisamos de um programa (interface). A função do programa de xadrez é utilizar cálculos para escolher a melhor jogada para determinada posição no jogo. O programa de xadrez pode ser Fritz, Rybka, Shredder, Arena, Aquarium. Acontece que a interface necessita de ferramentas para realizar estes cálculos. As ferramentas são o engine e o processador.

O ENGINE: o motor é o coração do programa, não é a toa que é chamado de motor. Porque assim como em um carro, é ele quem dá potência ao conjunto como um todo. Cada engine possui sua característica e sua força. Existem engines que são mais táticas, umas que são melhores no meio do jogo, outras são boas pra jogos longos, outras mais lentas, algumas mais rápidas, tudo isso é uma questão de programação. Atualmente, Houdini é o engine mais potente, mas existem muitas outras. Engine Rybka foi unanimidade por muitos anos. Essas duas estão sempre no topo da lista. Os engines, NORMALMENTE, são no formato .uci, mas existem algumas que são .exe, como é o caso do Houdini 2.0 PRO.

O BOOK: é a base de partidas que serve para iniciar o jogo. É o livro de aberturas. O engine utiliza o book para fazer a abertura. Cada book, assim como o engine, possui suas características. O autor do book (bookmaker) é quem define qual será a linha principal de abertura. Se o livro vai sair de Siciliana, Caro Kann, Ruy López, etc. Os lances principais são marcados de verde. Vocês podem notar isso na janela do book que fica do lado direito do programa. Vejam a imagem:



Alguns bookmakers marcam os lances que eles não querem que o book faça, de vermelho.
Para que o programa jogue com o book da forma que o bookmaker planejou, ou seja, usando as jogadas e as linhas principais, é preciso que vocês habilitem alguns parâmetros no “Book Options”. Para acessar essas opções, pressione F4.



Os books, GERALMENTE, são no formato .ctg, mas já usei um que era .exe. Se chamava Antimaster, mas não lembro a versão. PORÉM, MUITO CUIDADO COM BOOKS E ENGINES .EXE. Confirmem a autenticidade com alguém de confiança.

Entendido os três elementos principais de um programa de xadrez? Ok, vamos falar um pouco deste conjunto como um todo. Muitos leitores me fazem a seguinte pergunta: “que book, que engine e quais a configurações que preciso pra ser INVENCÍVEL??”. A resposta que dou a todos é a mesma: NÃO EXISTE INVENCIBILIDADE NO XADREZ. Aliás, onde há? Se pra ser invencível preciso de um Processador Xeon, outros também podem comprar. Se pra ser invencível preciso do book XXXX.ctg, outros também podem baixa-lo. Se preciso do engine Houdini, todos podem baixar, então teoricamente você não poderia ser imbatível se tudo está à disposição de todos.
Não dá pra ser imbatível, mas dá para estar entre os melhores se você tiver um bom processador, instalar o melhor engine, escolher um bom book e ir melhorando ele a cada derrota e a cada empate. Esta prática é chamada de “Tunar o Book”. Você precisa ter um bom conjunto para estar sempre bem nos jogos. Eu até me arrisco a dizer que se você tunar muito bem o seu book, seu processador nem precisa ser tão potente. Como “tunar o book” já foi discutido aqui nestapostagem e em vários comentários. Vamos escrever mais sobre isto em uma outra oportunidade.


INSTALAÇÃO DO ENGINE
Bom, você já possui o Programa (GUI), o Book e o Engine, então vamos aprender um pouco sobre algumas funções básicas.
Primeiro, vejamos como adicionar um engine ao programa: para instalar um engine no programa GUI, clique na aba Engine, depois em Create UCI Engine, na caixa que abrir, clique no botão com os três pontinhos, localize a pasta onde está o engine a ser instalado, clique em Abrir e por último em OK.



Pressionando a tecla F3, você abrirá as configurações do engine. Vamos comentar apenas os principais itens a serem entendidos.



Permanent brain: marcando esta caixa, você permite que o programa “pense” na jogada que o oponente fará em seguida. Ou seja, você joga e enquanto espera a jogada do adversário o programa já vai calculando baseado na jogada que ele acredita que será feita. Dá uma certa vantagem.

Hashtable size: Hash é um arquivo criado pra armazenar jogadas acumuladas ao longos dos jogos. Este arquivo ajuda na hora em que o engine está calculando. É usado principalmente para jogos longos. O tamanho a ser usado, geralmente não ultrapassa 128mb. Pelo menos é o que se recomenda, mas acredito que a maioria usa valores altos. Eu uso 128mb.

Use Tablebases: marcando você libera o uso das tabelas de final de jogo “endgames tablebases”. A mais conhecida é a Nalimov, seguida pela Gaviota.


ABRINDO O BOOK NO PROGRAMA
Do lado direito do tabuleiro, você verá três abas (Notation, Score Sheet e Opening Book), clique em Opening Book, caso já exista um book aberto clique com o botão direito do mouse na área varia, depois em Close Book File. Então aparecerá o botão Load Book. Clique nele e vá ate a pasta onde o book que você quer abrir está.





Agora vamos dar uma olhada nas configurações do Book (Book Options). Pressione a tecla F4 para abrir a janela. Veja na imagem que do lado esquerdo que os parâmetros Use Book e Tournament Book estão desmarcados. Deixei desmarcado propositalmente para que você notem o seguinte: clicando em Optimize, estaremos fazendo com que as configurações mudem deixando o book com um ajuste melhor.
Vamos entender:
Use Book: marcamos para que o book que está aberto seja usado pelo engine.
Tournament Book: com esta opção marcada, você evita que sejam feitas jogadas excluídas para o modo torneio. Por exemplo, aquelas jogadas que ficam marcadas em vermelho. Estas configurações de quais jogadas estão no modo torneio são feitas pelo criador do book.

As Barras
Variety of Play: aqui você configura com que variedade o programa irá jogar. Deixando a barra mais a esquerda você está fazendo com que o programa use as jogadas com maiores índices estatísticos. Por exemplo: existem dois lances marcados como verde e o programa irá escolher um deles para jogar, se a barra estiver mais pro lado direito (onde aumenta a variedade), ele vai escolher qualquer um e pode escolher um lance no primeiro jogo e outro lance no segundo jogo, ou seja, ele está variando a escolha. Se a barra estivesse toda pra esquerda, ele faria sempre a jogada que tivesse maior índice estatístico.

Influence os learn value: bom pessoal, existe uma propriedade no programa que permite que o book “aprenda” com os jogos. Esse “aprendizado” vai mudando o “peso das jogadas” (weights). Quanto mais esta barra estiver para a direita, mais esta mudança de peso irá influenciar na escolha de uma jogada.

 Learning strength: pode ser entendido como a força do aprendizado. Ou seja, aqui você configura quão forte será a modificação do valor do peso (weight).
Lembrem-se que nas três barras, movendo para esquerda você diminui e pra direita, aumenta.

Minimum games: na janela do book é mostrado o lance e logo a frente um número. Correto? Aquele número representa quantos jogos o bookmaker adicionou ao book para aquela jogada. À medida em que a abertura vai sendo feita, o número vai diminuindo até não haver mais jogos e o “programa sair do book”, como dizemos. O valor Minimum games informa quantos jogos deve haver para determinado lance para que ele possa ser escolhido pelo engine. Exemplo: você configurou com o valor 2. Então o programa chega a um lance e para ele só existe 1 jogo, então seu programa não fará este lance, pois ele tem menos do que você informou na caixinha.

Up to move: aqui você configura quanto o programa deve se manter no book. Simples.

Pessoal, acho que está de bom tamanho o nosso tutorial “basicão”. Espero que ajude. Qualquer dúvida, entrem em contato.

Abraços.

Por Thiago Ferreira, maracatuu

sábado, 9 de fevereiro de 2013

Engine Houdini 3 Pro x32 e x64



Engine Houdini 3 Pro x32 e x64. Link atualizado

Versão x32 e x64

A instalação em ambas as versões é feita ma maneira convencional, ou seja, adicionando através do programa.


Por ThiagoFerreira, maracatuu