b!Gollem: User's Guide
The Gollem application is divided into two modules, the Game Module
and the Breeding Module. The Module menu is used to
change which module is active (the "checked" item is active). The menu bar and the
meaning of some menu commands change according to which module is active.
The Game Module
The game module is used to play a game of go, either against the computer or against
another person. See below for a description of the menu commands ,
windows, and dialog boxes.
Game Module Menu Commands
-
The File Menu
-
When the Game Module is active, File menu items perform the following tasks:
- New creates a new game.
- Open... opens an existing game stored in the community standard
SmartGo file
format.
- Save... saves a game as a PICT (QuickDraw) image, an ASCII text-picture, a human
readable, ASCII text record or as a SmartGo file.
- Print... prints a game as a PICT (QuickDraw) image, an ASCII text-picture, a human
readable, ASCII text record or as a SmartGo file.
- Close closes the frontmost game window, offering an opportunity to save an
unsaved game.
- Quit exits the program.
-
The Edit Menu
-
Items in the Edit menu are also implemented within the Game Module:
- Undo retracts the previous move, if any. Several "undos" can be performed in
a row, back to the beginning of the game.
- Redo repeats an "undone" move, if any. Undo/Redo can be used to step through a
game.
- Copy will copy the game onto the Clipboard as a PICT or ASCII image, human readable
ASCII text or in the SmartGo format.
- Paste will "load" a SmartGo format game or sequence of moves into an existing game.
-
The Game Menu
-
The Game menu allows users to control various aspects of the display and rules
of the game.
- The Pass option simply allows the current player to pass (give up her turn).
- The Rules... option calls up the rules dialog box.
- The Who submenu allows users choose to play against another person, with the
Gollem program, or to watch Gollem compete with itself. (The leftmost player is Black.)
Implementation of community standard modem protocols is planned for version 2.
- Sound turns the sound effects on and off. (The sound is on when this item
is checked.)
- Board Window shows/hides the
BoardWindow.
- History Window shows/hides the
HistoryWindow.
- The Status Bar submenu determines how much information is displayed in the
board window's status bar (short, long or none).
- The Symmetry submenu allows users to rotate or reflect the board in any of the 6 basic symmetries.
Back to the top of this page.
Game Module Windows
-
The Board Window
-
The board window is where the real action takes place.
The status bar, if any, and the pointer (arrow) indicate which player is to move.
Simply click on an intersection, or select Pass from the Game menu
to make your move.
-
The History Window
-
The history window indicates the moves that have been made thus far in the game.
Moves are listed as x,y (horizontal, vertical) coordinates.
Back to the top of this page.
Game Module Dialogs
-
The Rules Dialog Box
-
The rule dialog box is shown below. Many of the standard rule-sets can be selected by
simply pushing the appropriate button and users may select particular options in order to
create their own "house rules".
- Two types of handicapping are allowed: "free" moves made before the actual game begins
and "free" points (komi) added to the final score. Traditionally, Black is the weaker player
and is given several stones as a handicap. In compensation for moving second, White is given
extra points, usually including a fraction of a point to prevent ties.
- Several scoring options are allowed:
- The single universal scoring rule is that "territory"--empty intersections completely
surrounded by one color--is counted as one point per intersection.
- Similarly, stones that remain on the board may be counted as territory.
- Captured stones (prisoners) may be counted as points for the capturing player.
- Each pass may be considered a "forfeited" stone, giving one point to the other player.
- Seki is a state of "shared life", where two opposing groups are not truly "alive" but
neither can capture the other. Points in seki are granted to the "surrounding" group.
Although White cannot capture the small Black group,
when points in seki are counted, the two surrounded
intersections are considered White territory.
- Under standard Japanese rules, handicap stones must be placed on the "star points"
(the nine intersections marked with small black circles). There are traditional
positions for each handicap and these are placed automatically if "Standard placement"
is checked.
- Some rule-sets forbid a player to occupy the last liberty of her own group. This is
known as suicide. There are certain rare situations in which suicide can be advantageous.
Hence some rule-sets allow suicide for groups of more than one stone, which avoids ko restrictions.
- The strong ko rule forbids repetition of any board configuration. The weak ko rule only
forbids direct repetition, so that one may repeat a position that occurred two or more "plies" ago.
Note that "player to move" is considered an aspect of the board state--hence a pass does not
violate the ko rule.
- Several standard rule-sets can be selected by simply pressing the appropriate button:
- AGA -- Official rules of the American Go Association.
- Chinese -- Modern Chinese rules.
- Japanese -- Modern Japanese rules.
- Ing 1986 -- The Ing Foundation's 1986 rule standard. This is the rule-set used in
computer go tournaments.
- Taiwanese -- Modern Taiwanese rules.
- In addition, a default "house rule-set" can be specified and stored.
Consult one of the many on-line sources for specifics on the various
rules.
- Users can disable the "undo" command if they are unable to resist the temptation to use it.
Back to the top of this page.
The Breeding Module
The Breed Module is used "evolve" Gollem. By playing against itself, Gollem can learn
new strategies, making Gollem a dynamic opponent.
Gollem plays go by running small "programs" that help it determine where to move next.
Each program is a sequence of "genetic functions" that explore and manipulate information
about the game in progress. Gollem learns by creating new programs from old ones by
recombining the sequences of genetic functions, and then determining which programs are
more "fit" for playing the game. This technique is known as "genetic programming".
An introduction to genetic programming can be found in the next section,
and a description of b!Gollem's genetic architecture can be found in
the section after that.
See below for a description of the menu commands,
windows, and dialog boxes.
Breeding Module Menu Commands
-
The File Menu
-
When the Breeding Module is active, File menu items perform the following tasks:
- New creates a new population according to the parameters specified in the
population parameters dialog box.
- Open... opens an existing population file.
- Save... saves the current population file.
- Print... prints a summary of the size, fitness and parameters of the current
population file.
- Close closes current population file.
- Quit exits the program.
-
The Breeding Menu
-
The Breeding menu allows the user to specify how Gollem's evolution takes place.
Breeding menu items perform the following tasks:
- Population... calls up the population parameters dialog box.
- Breeding... calls up the breeding parameters dialog box.
- Rules... calls up the rules dialog box, which is described
above in the Game Module section.
- Board Window shows/hides the
BoardWindow when the Watch item is checked.
- History Window shows/hides the
HistoryWindow when the Watch item is checked.
- The Status Bar submenu determines how much information is displayed in the
board window's status bar (short, long or none).
- Start starts the breeding process, according to the parameters specified in the
breeding parameters dialog box. When breeding is already in progress,
this item changes to Pause
- Pause stops the breeding process. While paused you can save the current population or
tweak the breeding parameters. When breeding is already paused, this item changes to Start.
Back to the top of this page.
Breeding Module Windows
-
The Board Window is described in the Game Module section.
-
The History Window is described in the Game Module section.
-
A Breeding Window that displays a summary of the breeding information is planned.
Back to the top of this page.
Breeding Module Dialogs
-
The Rules Dialog Box is described in the Game Module section.
-
The Population Parameters Dialog Box
-
The population parameters dialog box is shown below. Using the population parameters
dialog box, users can specify the size of the "programs" (strategies) that
are bred, and which "genetic functions" are available to the programs. (See a
later section for more information on the Gollem genetic architecture.)
- Length determines the average length (number of functions) of the initial population.
- Deviation determines the standard deviation from the average length. Nearly all programs
will be within two standard deviations from the average (a Gaussian or "bell-curve" distribution is
used).
- Users may specify the range of genetic functions available to the population (in hexadecimal).
- Users may optionally disable ranges of genetic functions.
The size of a population is set within the breeding parameters dialog box.
-
The Breeding Parameters Dialog Box
- The breeding parameters dialog box determines how the individuals in a new population are
created.
- The Initial Size is the number of programs that are created for the initial population.
- The Final Size is the number of programs that are allowed to be in a population at the
end of a "breeding run".
- Step determines how the population size changes as it goes from the initial to the
final. The size of the population changes by the "step" value every generation until it reaches
the final size.
- # Generations determines how many generations are bred.
- Save Every determines how many often to save intermediate generations. The final
generation is always saved.
- % Kill indicates what percentage of the population is unavailable for breeding.
(The least fit individuals are always killed first).
- The remaining options determine how to create the new population from the old by
specifying which genetic operations are used. Note that
frequency is a pure value, not a percentage, so that if one breeding operation has a
frequency of 6, and another of 2, the ratio of their use will be 6:2 (6 to 2). See the
page on b!Gollem's genetic architecture for more information about these operations.
Back to the top of this page.