[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: 5x5 Go is solved?
> (here's my understand of the problem, for what it's worth, and then a
> possible solution)
>
> ...
I think your understanding is correct.
However, I think it's possible to store a Ko-less table. Tell me what
you think:
To build a ko-less database, the first pass of the database builder
will simply traverse every position and score it statically using
Tromp/Taylor or Chinese scores. For each position there are 2
entries, one for white to move and one for black to move. A pass is
always a legitimate move.
Subsequent passes, will perform 1 ply searches from each position,
using the scores in other entries as it's leaf node evaluator (*).
Each pass of the build procedure will propogate correct values to some
of the table entries. The positions nearest the end of the game of
course will propogate first. When "enough" passes have been
completed, the full table will emerge.
Here is the interesting part. There will be a few positions in the
table that will never get to a stable value, they will fluctuate from
pass to pass or perhaps in cycles. These few positions are
interesting, and I believe what they all have in common is that they
are dependent on KO cycles where BOTH players prefer that the other
player breaks the ko cycle.
The interesting question is how many stable positions will emerge? For
instance, it may be that very few positions are stable, or that most
positions are stable. If the opening position is stable, then we have
a proof for the opening position and know we can navigate around any
ko situations that exist.
The main point is that all unstable positions have to be marked as
invalid in the database and the solver that uses the database will do
a very shallow search using whatever KO rules it wants to, it only has
to get to leaf nodes that are stable.
Don
Date: Thu, 31 Oct 2002 12:13:58 +0900
From: Darren Cook <darren@xxxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset="US-ASCII"
Sender: owner-computer-go@xxxxxxxxxxxxxxxxx
Precedence: bulk
Reply-To: computer-go@xxxxxxxxxxxxxxxxx
> why do you need to take account of all this awfully complicated
> ko - stuff in your tablebases?
(here's my understand of the problem, for what it's worth, and then a
possible solution)
Imagine you've a position ('A') that you've explored exhaustively and
found it to be a 3pt win for black. Imagine there is a position B
somewhere in the follow-up. There were no super-ko problems
based on the game moves up to position A (i.e. B hadn't already appeared).
So you store A=3 in your table.
Now you come to A via another sequence of moves. You want to use value 3
for this position and not have to search the follow-ups.
But position B has already appeared prior to reaching A this time. So
that value of '3' is invalid, and you need to search.
So the problem is knowing when you're allowed to use the value in your
table, and when you can't.
One idea would be to store the list of optimum moves, along with the value.
So when you want to use a match from the table, you quickly play out the
unbranching sequence to make sure no super ko complaints, and if none
then you accept the value.
However I'm not sure that is reasonable - white might have played a
different branch to exploit the fact that black can't move into position
B.
I'm sure you can exploit the nature of ko somehow here - e.g. as a first
step store the maximum and minimum number of stones on the board in all
positions that were looked at to justify the value of position A.
If the minimum number is greater than the number of stones in any of the
positions leading up to A, then the table value can be used. If not, you
have to search.
I suspect tracking and storing min/max number of stones will not have
that great an impact on performance.
Darren