[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: perfect players
The perfect player shouldn't be deterministic, this makes it
easier to get incrementally better results against it by experimenting
with different lines of play.
So I would simply propose that you always play the move leading to the
largest territory gain. If there is more than 1 choice, choose
randomly among them.
But if you want determinism, your idea is pretty good. I would
suggest that you still choose the biggest territory win, but have a
list of tie breaking criteria that you hit one at a time until you
have a clear choice. You don't need to do anything arbitrary, you can
probably always come up with a tie break rule that attempts to confuse
the opponent.
Here is an example:
1. Play the move gaining the most territory at end of game.
2. If more than one move qualifies, choose the one that gives
the opponent the least number of "best moves" (by the same
criteria.)
3. If there is still a tie, choose among those moves that survived
steps 1 and 2. Perhaps by playing the move that "requires"
the best response to be located farther away (the other side
of the board for example.) The assumption is that these
moves are less obvious, I don't really know if this is
true however.
4. Move on to next criteria.
5. And next.
Probably not many moves would survive the first 3 steps.
Don
From: "Fant, Chris" <chris.fant@xxxxxxxxxxxxxxxxx>
Date: Thu, 3 May 2001 22:43:39 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
Sender: owner-computer-go@xxxxxxxxxxxxxxxxx
Precedence: bulk
Reply-To: computer-go@xxxxxxxxxxxxxxxxx
Content-Type: text/plain;
charset="iso-8859-1"
Content-Length: 2009
Yes, that's a good point. If a perfect player has a choice of two moves,
each of which will lead to a loss against an opposing perfect player with
the same final score and in the same number of moves, how does he choose?
So my definition of a perfect player was not completely unambiguous. Let me
add one more attribute: He must make the move that leads to the fewest
number of tied-for-best-move choices for his opponent over the remaining
course of the game. This is a worthwhile thing to do in case he is only
playing against a near-perfect player. But, obviously, we are still not
quite there. If I were coding a perfect player (I just haven't had the
time) and wanted him to be completely deterministic, I would just take the
first move in my move list. But since that varies with architecture, and we
(or maybe just I) want an architecture independent definition of the perfect
player, I think the only thing left to do is to make the move nearest the
beginning of the board (in a row-major sense). Yes, its completely
inelegant, but how else can you define the perfect move for a situation like
that one?
-----Original Message-----
From: Allan Crossman [mailto:a.crossman@xxxxxxxxxxxxxxxxx]
Sent: Thursday, May 03, 2001 7:35 PM
To: computer-go@xxxxxxxxxxxxxxxxx
Subject: RE: computer-go: perfect players
>If you define perfect the way I define it (no mind reading or learning
about
>your opponent), you would only need to play two games, one with player A as
>Black, one with player A as white. Both games would be exactly the same
>because both players are exactly the same (perfect).
This is only true if at no point does either player have two or more moves
that lead to the same result. In fact I suspect that for Go and many other
games there are probably millions of possible "perfect games".
Allan Crossman
http://www.faldara.co.uk
------------------------------------------------------
PGP Keys: 0x497F13C8 (New) and 0xCEC9FAE1 (Compatible)