ENGINE TOURNAMENTS IN FRITZ
by Steve Lopez
A few weeks ago in ETN
(June 9, 2002) we examined how to set up and run engine matches in Fritz
(as well as the other playing programs like Junior and Hiarcs).
This week, we'll set up and run engine tournaments in Fritz.
Of course the initial question is
"What's the difference between a match and a tournament?" A chess match
is a series of games between just two players (in this case, two different chess
programs). A chess tournament is a competition involving more than two
players (or engines).
The first step in setting up a tourney
is to create the file where the event's information will be stored. Go to the
File menu, select "New", and then choose "Tournament" from the submenu. The
standard Windows file select dialogue will be displayed which will allow you
to name the tournament file (which ends in the extension .trn) and select
the folder in which you want it to be stored. You can name this file whatever
you want. I tend to use a "month, year, letter designation" format -- for example,
my first tournament this month would have a filename of 0702a.trn. If
I run another tournament this month, I'd call it 0702b.trn, and so on.
But you can name your tournament files in any way you choose. Name the file
and click "Save".
Once you've done this, the following
dialogue will appear:
You'll set the various
parameters for your tournament here. Let's have a look at these numerous options.
"Title" defaults to your
filename from the previous step, but you can change this to whatever you want.
When you run an engine tournament, the games are saved automatically into a
database (more on this later) and whatever you type into this box will appear
in the "Tournament" field of the game headers. "Publish" allows you to send
the games to an Internet web page on your web site, updating the games as they're
played. This procedure is explained pretty well in the Help files; it would
take a separate article to explain it in ETN, so we'll skip that for
now. "Link Elo list" lets you use ratings from an Elo list you've already generated
(see last week's ETN) and these ratings will be included as part of the
game headers when the games are automatically saved into a database.
The biggest step in this
process is to "invite" engines to play in the tournament. Clicking the "Invite"
button brings up the standard engine selection dialogue (similar to the one
in ChessBase 8; see ETN for November 12, 2000). In this dialogue
you can choose an engine, set any engine parameters, set the hash table size,
designate the opening book the engine will use, and select any special opening
book parameters. You can also set an Elo rating which will be used in the game
headers (if you've not linked the tournament to an existing Elo list -- see
above). After you've set these options and clicked "OK" you'll see the engine's
name appear in the large white box to the left of the "Invite" button.
If you later decide to
change any of these options, click on the engine's name (to highlight it) and
then click the "Edit" button to redisplay the engine selection dialogue, then
change any of the options. If you change your mind about an engine's participation
and want to drop it from the tournament, highlight the engine's name and click
the "Delete" button. This doesn't delete the engine from your hard drive, it
just removes the engine from the list of tournament participants.
For the truly masochistic
among us, you also have the option of participating in the tournament as a player
yourself. You'll see your last name appear in the list (assuming, of course,
that you've previously entered it under "User Info" in the Tools menu). If you
lose your nerve and decide not to play after all, just highlight your name and
click "Delete"; you won't be deleted (I tried this and I failed to vanish
from the face of the earth), but your name will disappear from the list
of players in the tournament.
"Unify book" and "Unify
hash" are useful shortcut buttons. You can click these to set a single opening
book and a single hash table size that will be used by all of the engines
playing in the event.
Next you'll set the time
control for the tournament. Click on "Blitz game" or "Long game" to display
dialogues that let you set the time controls for the games (January 9, 2000's
ETN provides my long rambling screed on the various time controls).
"Tournament type" lets
you set a number of formats for the event. "Round robin" is an all-play-all
format; every competitor will play a game against every other competitor. "Knockout"
is the same format as the last few rounds of the World Cup -- winners advance
to play another game, losers go home. When a competitor loses a game it (or
he/she if it's a human player) says adios and gets to sit and watch the
rest of the event. "Run the gauntlet" lets you add new engines to a tournament
already in progress -- the new engine will play "catch up", playing games until
it reaches the same stage of the tournament as the competitors who have already
been playing. "Swiss" is the standard "weekend chess tournament" format. A complete
description would require more space than we have here (have a look at the USCF
rulebook for complete details) but basically prior winners are paired with winners
each round while prior losers are paired with other losers. In general, round
robin events are good for tournaments of less than eight participants, while
swiss tournaments work best with eight players or more (though, as always, your
mileage may vary).
The box for "Cycles" works
hand in glove with the tournament type. "Cycles" determines how many rounds
the tourney will last which, in turn, will determine the total number of games
in the event (displayed next to the Cycles box). For example, let's say that
you've set up a four engine round robin. One cycle means that the event will
have three games -- each engine will play every other engine once. If you set
the same tournament for two cycles (allowing each engine to play every other
engine twice), you'll end up with a total of six games. For another example,
let's say that you've created an eight engine swiss tournament. This is pretty
easy to figure out -- every round will have four games (eight engines divided
by two since they're paired off), so you can just multiply the number of rounds
by four to get the total number of games. An eight engine knockout will run
seven games (four in the first round, two in the second, and then the last two
surviving engines will play the "Cup" game to determine the winner).
So keep an eye on the number
of games as you set the number of cycles. An eight engine four cycle round robin
(112 games) at 40 moves in two hours will potentially take nearly three weeks
to complete (assuming that your computer is running continuously around the
clock), so keep in mind the amount of time you want to keep your computer devoted
to a chess tournament. I run a two-cycle six engine round robin (thirty games)
at 10 minute controls from time to time, start it when I go to bed, and usually
find that it's finished when I get up in the morning (since most games don't
go right down to the wire, timewise).
The "Permanent brain" check
box allows an engine to think on its opponent's time. As described in the June
9, 2002 ETN, this feature is best left switched off for engine
vs. engine games; otherwise the two programs end up fighting over processor
time. "Book learning" enables the interface to alter the weighting of moves
in the opening book according to the results of the games (see the February
27, 2000 ETN for more on book learning and weighting). The "Openings
DB" button gets an extensive treatment in the June 9, 2002 ETN.
Once you've set these parameters,
you're ready to throw out the first pawn and start the event rolling. Click
the "Run/continue" button to get things going. You'll see the screen display
change to show a chessboard on the left and a pair of panes on the right; these
let you watch what both engines are "thinking" as they play the game. You can
right click in an engine pane to change the display options (I'm fond of "Scoll
main line" which shows you ply-by-ply the best move that the engine has found
in its search).
You also have buttons at
the top of the screen that let you stop a tournament in progess or see a crosstable
of the results so far. If you do choose to stop a tournament and later want
to resume it, go to the File menu, choose "Open", and then pick "Tournament"
from the submenu. A file select dialogue will appear; go to the folder where
you stored your .trn file (which you created as the first step in this whole
process, way back at the beginning of this article) and double-click it. This
will again display the tournament options dialogue, and you can click "Run/continue"
to start the action back up.
If you're playing in one
of these tournaments, you can "jump ahead" to one of your games whenever you
want by clicking the "Next human game" button, which will load your next engine
opponent for the start of your next scheduled game. You could even play all
of your games back-to-back, become severely embittered when you end up with
a score of 0.5, realize that you now have no chance to win the event, and take
a sledgehammer to your computer. Note that I'm not saying that you should
do this -- only that you could.
Finally, if you've stopped
a tournament and are about to restart it, you can click the "Crosstable" button
to get a review of the action so far.
After each game is played,
it's saved automatically in a database called engtourn.cbh which (unless
you changed the default parameters when you installed Fritz) will be
found in the folder C:\My Documents\ChessBase\Compbase; you can access
this database quickly by selecting it from the pulldown window in the upper
right of your database (game list) window in Fritz. The games from a
particular event will be easily identifiable by looking at the "Tournament"
column; this will display the name of the event as you set it up in the Tournament
dialogue (described earlier in this article). And, as always, this database
is also able to be loaded and viewed in ChessBase.
OK, now that you know how
to do it, fire 'em up and let 'em rip! Until next week, have fun!
©
2002, Steven A. Lopez. All rights reserved.
Back issues of Electronic T-Notes from 1997 and 1998 are available
on the ChessBase USA web page
|