[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: How many bits are needed to encode an N x N Go position?
Woops, while working on drafts of this email, I left out a qualifying
statement. So this:
> After 50 passes of this algorithm, you will have a
> table of all positions.
Should have been this:
After 50 passes of this algorithm, you will have a table of all
positions that are within 50 moves away from the end of the game.
Don
Date: Wed, 16 Oct 2002 08:41:18 -0400
X-Authentication-Warning: bluerobin.lcs.mit.edu: drd set sender to drd@xxxxxxxxxxxxxxxxx using -f
From: Don Dailey <drd@xxxxxxxxxxxxxxxxx>
CC: computer-go@xxxxxxxxxxxxxxxxx
Sender: owner-computer-go@xxxxxxxxxxxxxxxxx
Precedence: bulk
Reply-To: computer-go@xxxxxxxxxxxxxxxxx
No need to aplogize.
I am not aware if 5x5 has been solved or not, but I will say that it's
probably possible, certainly not easy, with todays memory and
hardware. We are talking about a perfect solution.
It's one of those problems that people start thinking about just about
when the computing power makes it feasible to dream about solving.
Even though the search space is huge (huge is a term that is redefined
every couple of years) retrograde analysis makes it within the realm
of possibility.
The numbers have been posted, about 3^25 with further reductions based
on exploiting sysmetries. This is about about 200 billion positions
depending on how you count and what reduction tricks you use. This is
already doable it terms of disk memory although it's more than most of
us have. Most businesses have this much and more though and anyone
can buy this amount of space without breaking the bank if they want to
solve the problem.
Someone posted about storing 1 bit per position. If the goal is to
prove some assertion (such as first player always wins or first player
wins by 3 stones etc.) then even 1 bit is not quite enough. You still
need another bit for workspace (it is necessary to flag positions that
have been visited or scored.) But the final table could be one bit
per position and that would give us a tidy reduction if all you needed
was 1 bit of information about each position.
Retrograd analaysis consists of "working backwards." You start with
all possible go positions, find all the legal ones that can be scored
as game complete and keep the results in this table. Then you do a
second pass, finding the remaining positions that can be scored with a
1 ply search leading to any of the already scored positions. You keep
doing this until you have seen all positions in the table. This is
much faster than starting from the beginning of the game and doing one
giant search. After 50 passes of this algorithm, you will have a
table of all positions. Once you had this table, you would have a go
program that played perfectly from ANY position with a simple 1 ply
search.
There are probably some issues with Ko that would require a little
forethought. Technically, a position consists of more than just the
exact board configuration and side to move because the game context is
somewhat game history dependent.
I also suspsect that on a fast PC with 200 gigs of disk space, the
analysis program might take many weeks to run, but it could be
checkpointed and done gradually. Early versions of the table would
still be very useful for solving endgames.
Don