[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: 5x5 Go is solved



Hello All,

I'm a Go & computer Go newbie so I don't know many of you, but I know a few through computer chess.

I think I can answer the question about symmetry because I asked Jos Uiterwijk about it after hearing Erik's talk in Maastricht this year.

They use a normal zobrist function, but calculate a hash key for each different symmetrical transformation of the position. This gives N+1 hash keys including the original, where N = number of transformations. Then select one of the keys, in a consistent way, for example always select the biggest one. This means you will always select the same key whenever you reach any of the symmetrical positions.

When using the 'always select the biggest one' method, it would be important to use the lower bits of the key for indexing into the hash table otherwise you wouldn't get a very even distribution over the table :-)

cheers,
Peter McKenzie

> Symmetry lookups in the Transposition table means that I check if a
> mirrored or rotated version of a position has already been examined. If
> this is the case the result can be re-used to narrow bounds, or directly
> return the score.

I would be interested to know how you check for mirror / rotation in the
transposition table. Do you use Huima's hash function (which is broken)?
Another similar function? Do you store whole board position in the TT?
Do you maintain many hash value for the same board position (one for
every possible mirroring/rotation)? Or something else?

Regards,

    Antoine

_________________________________________________________________
Unlimited Internet access for only $21.95/month.  Try MSN! http://resourcecenter.msn.com/access/plans/2monthsfree.asp