I had a real shock today, on a par with the shock of England losing 0-0 to Algeria the other day.
I'd always though playouts, even heavy ones, have a random element. But in fact they are a sequence of deterministic if/else statements, at least in Fuego [1] and Mogo [2]. I'd always thought patterns and atari moves and the like were just weights. So if there was a chain in atari then e.g. saving it might get played 60% of the time, but 25% of the time a pattern move would be played, and 15% of the time a pure random move. But actually it is 100% of the time the save move will be played. The other surprise to me was that pattern moves are only played if they apply next to the last move played. (Fuego uses the last two moves.) Q1. Are all the other strong programs doing the same thing? Q2. Are there any published experiments showing that the if/else chain is stronger than introducing some noise? Q3. Like Q2, but has anyone measured the strength difference for allowing the patterns to apply to the whole board. (I realize this is going to be slower, but I'm wondering how much stronger/weaker it is if making playout count constant and ignoring CPU time; with the talk of using FPGAs/GPUs, other approaches may be just as quick.) TIA for any other interesting thoughts, Darren [1]: From "Fuego Go: the missing manual" by Grace Lin (http://users.soe.ucsc.edu/~glin/go.html), and also confirmed with the source code (gouct/GoUctPlayoutPolicy.h, GeneratePatternMove()): Generates a move in the following order: Nakade Heuristic Move Atari Capture Atari Defense Low Liberty Move Pattern Move Capture Move Random Move Pass Move NULL Move (NB. I think the nakade heuristic is off by default, but I need to confirm that.) [2]: From Algorithm 1 in http://hal.inria.fr/inria-00386477/en/ 1. if the last move is an atari, then: Save the stones which are in atari if possible (this is checked by liberty count). 2. if there is an empty location among the 8 locations around the last move which matches a pattern then: Play randomly uniformly in one of these locations. 3. if there is a move which captures stones then: Capture stones. 4. if there is a legal move then: Play randomly a legal move 5. Return pass. -- Darren Cook, Software Researcher/Developer http://dcook.org/gobet/ (Shodan Go Bet - who will win?) http://dcook.org/work/ (About me and my work) http://dcook.org/blogs.html (My blogs and articles) _______________________________________________ Computer-go mailing list [email protected] http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
