lunes, 16 de agosto de 2010

Cerebro

Cerebro is a Winboard and Uci chess engine so users will be able to run it under any GUI that supports at least one of those protocols. So far Cerebro has been tested in the ChessBase, Chessmaster, Chess Assistant, Chess Partner, Shredder Classic, Arena and Winboard interfaces without any apparent problems.

(Cerebro es un motor de ajedrez que soporta tanto los protocolos Winboard como Uci de modo tal que los usuarios podrán ejecutarlo en cualquier GUI que soporte al menos uno de aquellos protocolos. Al presente Cerebro ha sido testeado en las interfaces de ChessBase, Chessmaster, Chess Assistant, Chess Partner, Shredder Classic, Arena y Winboard sin problemas aparentes.)

As Cerebro doesn't have much knowledge about openings and endings, users will need to use opening books and endgame tablebases. Users can use a GUI book if available or you can build your own native Cerebro opening books by running Cerebro in a DOS console and typing the following command:

(Como Cerebro no tiene conocimientos sobre aperturas y finales, los usuarios necesitarán usar libros de aperturas y tablas de finales. Los usuarios podrán usar un libro nativo de una GUI si está disponible o podrán construir su propio libro nativo de aperturas para Cerebro, ejecutando al motor en una consola DOS y escribiendo el siguiente comando:)

book [source file] [target file] [maxply] [mn]

where:

       [source file] is the name of a .pgn file
       [target file] can be:
                              Blancas.obk (book in .obk format for White)
                              Negras.obk (book in .obk format for Black)
       [maxply] the depth of the book lines (default = 60)
       [mn] minimal number of games to include a move (default = 2)

Cerebro utilizes different books when it plays as White and as Black so users will have to build two books: Blancas.obk (that Cerebro employs when playing as White) and Negras.obk (that Cerebro employs when playing as Black). Regarding endgame tablebases, users will need to write the path to the EGTB in the Cerebro.cfg file; it's possible to indicate several paths separated by ";" or "," for example:

(Cerebro utiliza diferentes libros cuando juega con piezas Blancas y con piezas Negras de modo que los usuarios deberán contruir dos libros: Blancas.obk -que Cerebro emplea cuando juega con piezas Blancas- y Negras.obk -que Cerebro emplea cuando juega con piezas Negras-. Respecto a las tablas de finales, los usuarios necesitarán escribir el "path" hacia las EGTB en el archivo Cerebro.cfg; es posible indicar varios "paths" separados por "," o por ";" por ejemplo:)

TB Path= C:\TBs; C:\EGTBs; D:\TBs

The engine needs to be improved not only in openings and endings but also in positional play. In its current stage of development, I have given more importance to tactical play. In many games users will observe that the engine doesn't hesitate in keeping doubled pawns, or isolated pawns, or backward or hanging pawns without apparent reasons; Cerebro knows about pawns structure but mainly seeks to maximize piece activity to attack the opposite king. This strategy has been (and is) successful many times but in many other occasions (regrettably to me quite frequent) takes the engine to lost endgames. So, the engine needs to be improved a lot in this field too.

(El motor necesita ser mejorado no solo en las aperturas y finales sino también en el juego posicional. En su actual estado de desarrollo, he dado más importancia al juego táctico. En muchas partidas los usuarios observarán que el motor no vacila en mantener peones doblados, o peones aislados, o retrasados o "colgando" sin razones aparentes; Cerebro "sabe" acerca de la estructura pero principalmente busca maximizar la actividad de sus piezas para atacar al rey contrario. Esta estrategia ha sido (y es) muchas veces exitosa pero en muchas ocasiones -lamentablemente para mi demasido frecuentes- conduce al motor a finales perdidos. De modo que el motor necesita ser mejorado considerablemente también en este campo.)


Set-Up (Instalación)

In the same folder where the Cerebro.exe file is located, users will need to copy the folder named "diagram". The engine will use the files inside "diagram" to generate its log files (actually .html files with diagrams and figurine notation). Also users will need to copy the FigMono.ttf file to their \Windows\Fonts folder; the engine will use this font if the "Log File" option is enabled in the Cerebro.cfg file.

(En la misma carpeta donde se localiza el archivo Cerebro.exe, los usuarios necesitarán copiar la carpeta de nombre "diagram". El motor usa los archivos que se encuentran dentro de "diagram" para generar sus archivos .log que no son otra cosa que archivos .html con diagramas y notación figurin. Los usuarios necesitarán también copiar el archivo FigMono.ttf a su carpeta \Windows\Fonts; el motor usará esta fuente si la opción "Log File" dentro del archivo Cerebro.cfg está activada.)

Cerebro uses two hash tables: a main hash and a pawn hash. Regarding the ram memory assigned to the main hash, it must be a power of two, i.e. 16, 32, 64, 128, etc. but memory assigned to the pawn hash can be any number.

(Cerebro usa dos tablas hash: una principal y otra para peones. Respecto a la memoria ram que se asigna a la hash principal, debe ser una potencia de dos, p.e. 16, 32, 64, 128, etc. pero la memoria asignada a la hash de peones puede ser cualquier número.)


Commands (Comandos)

Cerebro fully supports the WB-2 and UCI protocols (it also supports analysis MultiPV under the UCI protocol). Cerebro has also support for the old and deprecated ChessBase WB protocol so it's possible to run it under old ChessBase GUIs as a winboard engine. Besides, in a DOS console users can use the commands:

(Cerebro soporta completamente los protocolos WB-2 y UCI -bajo el protocolo UCI también soporta el análisis MultiPV-. Cerebro también tiene soporte para el antiguo y obsoleto protocolo WB de ChessBase de modo que es posible ejecutarlo en las antiguas GUI de ChessBase como motor winboard. Ademas, en una consola DOS los usuarios pueden usar los comandos:)

Book     to build Cerebro's native books
perft    to test the speed of its move generator


Acknowledgments (Agradecimientos)

Many people helped me a lot with the development of Cerebro; many many thanks to (in alphabetical order):

(En el desarrollo de Cerebro me han ayudado muchas personas; muchas pero muchas gracias a:)

Federico Corigliano
David Dahlem
Matthias Gemuth
Gerd Isemberg
Pradu Kannan 
(many thanks Pradu for sharing and allowing me to use your magic moves code)
Uschi

I especially want to thank Tom Kerrigan since the first version of Cerebro was based on the TSCP source code. When I started to write my engine (Aug-2000), I didn't know much about chess algorithms and how they work. Today, ten years later, Cerebro is a bitboard engine and practically nothing of the TSCP code remains in the code of my engine, but in those times of "darkness", I learned a lot by running in my compiler the engine of Tom Kerrigan in debug mode (step by step each line of his source code).

(Quiero agradecer especialmente a Tom Kerrigan ya que la primera versión de Cerebro estuvo basada en el código fuente de TSCP. Cuando comencé a escribir mi motor -Agosto 2000-, no conocía mucho acerca de los algoritmos empleados en ajedrez y de su funcionamiento. Hoy, diez años después, Cerebro es un motor bitboard y casi nada queda del código de TSCP en el código de mi motor, pero en aquellos tiempos de "oscuridad", aprendí mucho ejecutando en mi compilador el motor de Tom Kerrigan en modo debug.)

Finally I want to thank Leo Dijksman, Olivier Deville and Heinz van Kempen who helped in testing the different versions of my engine with their tourneys (and Leo was and is a specialist in finding bugs in Cerebro).

(Finalmente quiero agradecer a Leo Dijksman, Olivier Deville y Heinz van Kempen quienes me ayudaron testeando las diferentes versiones de mi motor en los torneos que organizan -y Leo fue y es un especialista en encontrar "bugs" en Cerebro.)


Contacting the author (Contactar al autor)

For further information about Cerebro, please contact the author at arsenatore@gmail.com. Bug notification, as well as comments and suggestions are welcome.

(Para información adicional sobre Cerebro, por favor contacte al autor en arsenatore@gmail.com. Reportes sobre problemas, como comentarios y sugestiones serán bienvenidas.)