</COMMENT> <h4>Unfortunately, your browser does not support Java.<BR> A Java applet is the central focus of this page.<BR> You're encouraged to try again using a Java-aware browser.</h4>
A version of this applet using the native VM is available here.

Introduction to Go

Go is an ancient oriental board game with very simple rules which give rise to gameplay of a very complex strategical nature. For more details about Go, see our
Go links page.


Gozilla is our go playing program.

Gozilla is under development. In fact development has only recently commenced.

Our strategy is one involving a mixture of genetic programming techniques and relatively orthodox techniques used in other go programs.

We intend to use genetic techniques which are fed as high-level a representation of the board as we can provide it with. Currently, this involves information about group connectivity and liberties - and in the future will include influence functions, moving and undoing of moves, and other primisteves designed to support pruned search algorithms.

Most Go programs appear to use a significant quantity of knowledge. It is this which we will primarily attemt to attempt to develop genetically. We expect this knowledge will relate to joseki moves, local pattern matching techniques and "good shape".

Most other aspects of go are somewhat beyond the scope of genetic techniques on today's hardware. This will probably remain the case for some time.

A few details

Within the program, the organisms are divided into a number of populations. Programs can compete with individuals from other populations. This has been done to provide diversity, and to avoid situations where organisms consistently beat their ancestors, but still spiral downwards in overall fitness.

Organisms are rewarded in proportion to how much they win by. Losers are penalised in proportion to the size of their loss. This has been done so that even if a population of organisms is being consistently beaten, there is still a directional selection pressure acting on the population.

Unfortunately this method of rewarding or organisms will produce populations who never resign games.

We intend to evolve the population while playing mainly on small boards, with large boards employed sufficiently often for organisms to need to be able to adapt to them.

Similarly, we will play most games with strict time limits. Games with longer time limits will need to be employed often enough that organisms develop techniques for exploiting additional time, when this is available, though. The applet is written in Java.

Incremental techniques are used for storing the positions of groups and their liberties. A 32-bit Zobrist hash is used to detect situational super kos. A simple ko rule is also available. There are no plans to implement positional super ko.

Stone scoring is currently employed. Area scoring will be used at a later date. There are no plans to support teritory scoring.

This applet allows you to play against the original hand-written ancestral creature. This plays like a little baby.

When playing automatically, the Gozilla spends most of its time redrawing the screen. Turn of the display updating and it will probably go through a number of games per second.

If you want to ensure playing against a relatively well-formed offspring, either reload the applet, or allow the applet to play against itself for a while with mutation turned off.

Index | HAL | Gozilla | EoSex | Firefly | CA | Links

tim@tt1.org | http://www.alife.co.uk/