Tuesday, October 23, 2012

Aquarium Book Adapter

ChessOK.com » Aquarium Book Adapter
Using Opening Books in Other Interfaces.
You can use opening books designed for Aquarium to run engine matches in any other interface by using AquariumBookAdapter. Aquarium update build 490 includes the AquariumBookAdapter file set: ABAGui.exe is used to configure the opening book parameters that are then saved in AquariumBookAdapter.ini (located in the Aquarium data folder) and the AquariumBookAdapter.exe file. The last file is the one that should be connected to the GUI you intend to use. The GUI then addresses all requests to AquariumBookAdapter.exe, which in turn forwards them to the engine itself. But before tasking the engine with the position, it checks if it can make a move by the opening book, and if so, it makes it instead of the engine.
Quick Installation Guide
Although the latest Aquarium update (build 490) also installs Aquarium Book Adapter, you can only use it when Aquarium is not running. If you want to use them simultaneously, install a separate copy of the Adapter.

To use the Adapter, follow the steps below:

     1) Run AquariumBookAdapterSetup.exe. Select the installation folder AquariumBookAdapter.exe and ABAGUI.exe will be installed to. Other essential files will also be copied to the DATA subfolder.

     2) Run ABAGUI.EXE to configure the Adapter. See below for details.

     3) Run Fritz or other GUI and add AquariumBookAdapter.exe as a new engine.

     4) When installing the Opening Book, you will be asked to specify the Aquarium installation folder. Currently, the Book Adapter’s main purpose is to make Houdini Opening Book compatible with other interfaces. So select the directory you installed Aquarium Book Adapter to as the Aquarium installation folder. Add d2m tree (d2m.hsh and d2m.elm files) to the ATrees\Satistics folder and cap tree (cap.hsh, cap.elm) to the ATrees folder, rewriting the existing ones (after installing the Book Adapter they contain only demo trees).

The system is now ready for work.

DO NOT RUN BOTH Aquarium and AquariumBookAdapter at a time, as they use the same trees. It can cause unpredictable errors, so either close Aquarium before running AquariumBookAdapter.exe or install a separate copy of the Adapter and the opening books you want to use with it (install them to the the Adapter's folder). Although it requires more free disk space, some people may prefer this solution to avoid conflicts caused by multiple access.
 
To customize an opening book, open ABAGui.exe from the Aquarium folder. If you copied the Aquarium data folder elsewhere, specify the path to it in the Data Folder field. Specify the path to an engine in the Engine field. Specify the name of the opening configuration you want the engine to use in the Opening books field. You can set up to 4 configuration names. AquariumBookAdapter will first try making moves from the ‘Book 0’ configuration, and if there are no moves there, it will go to the ‘Book 1’ configuration, and then to the ‘Book 2’ and ‘Book 3’. After setting all parameters, close the application.
 
AquariumBookAdapter.exe. The next step is connecting AquariumBookAdapter to the interface you want to use. Just choose AquariumBookAdapter.exe as a playing engine. The engine you have set in the Engine field of ABAGui.exe will do the actual playing.
Note that you should not specify the opening book’s name (choose “No book”) in the GUI you use to play fully by an Aquarium book. To get accurate results when comparing opening books strengths, you need to turn off Book Learning, a function that makes the book repeat the games it won. Book Learning does not work when using AquariumBoookAdapter. The learning feature can be implemented if requested by sufficient number of people.
Other parameters specified in ABAGui.
Latency: Here you can set latency for the communication in ms to avoid problems if the response is sent too quickly. A low value like 10 ms should be fine.
Minimal Time: This is a slightly complicated option, when the adapter receives 'go wtime X', then it sends 'go wtime MAX(min_time, X-time_buffer)' to the engine. Some engines do not work correctly with the 'go wtime 0' command. This means that setting min_time to 1 (as it is by default), you can avoid this problem. The value is in ms.
Time buffer: With this option you can set a small amount of time in ms that is used to compensate lost time because of the GUI<->engine communication. Basically the engine is told that it has x ms less than the GUI says. A good value for fast blitz games is 3000 ms = 3 s.
Priority: Sets the priority of the Engine task, usually "low" is the best choice, since it gives the GUI a higher priority and therefore avoids a slow down.
History length: If the same position was reached x or less moves before, the book is not used again. This is useful if you want to avoid repetitions, but can backfire if a line in the book is intended to be a draw by repetition. If you select 0, then this option is disabled.
Name postfix: GUI classifies engine name using its id string. You can add to the string returned by engine any postfix to differ real engine from engine working via book adapter.
Think in book: This option allows an engine to start thinking when it is in a book yet. This gives chance to engine to analyse the position on the board before it really set on the board. So you may have some advantage with the first “out of book move”. The option is very experimental. There is no data how much it can improve play.
Depth: you can see Depth after every “Use Book” field. Setting up depth allow to limit length of opening book.

1 comment:

  1. Hmm, I would like to know why it is not working for me with Arena. I can't choose the King's Indian Powerbook I've installed in the correct folder. The only option I have is the Narrow Book. This is too difficult, it seems. And I don't know who can help me out with this.

    ReplyDelete