Hi, I'm reading this mailing list for a while but I've never wrote something here until now.
I'm currently in a late phase of my master thesis on a move predictor for computer go. I have several working move predictors trained on a large set of 6d+ amateur games. My current goal is to use the move predictor as an extension to an existing go mcts engine. Most of all I want to use it for the opening phase of the game to produce better quality moves. I've chosen Fuego since it's written in c++ which I'm more comfortable with than c(pachi). I have extended the GoUctPlayoutPolicy::GenerateMove() function. It still tries to generate moves with heuristics first( nakade, atari, etc.) but after that the random move selection is biased. The move predictor scores all empty/valid moves and then a move is chosen based on the probabilities. This is only done for board situations with less than X stones(x is 100 right now). Also i limit the possible moves at this stage to the best Y predictions made(Y is 30 right now). To give you an impression, this is what it looks like in fuego for a well known opening position: http://www.abload.de/img/board7brdj.png So what is puzzling me right now is this: Even if I limit the possible playout moves to the best Y predictions, fuego will play different moves. For example in the linked picture it could play K11, which is not in the predictor move list. This happens too if I disable all heuristics and just do the biased playouts. So my guess is, Fuego is doing searches somewhere else too, which are independent from the GoUctPlayoutPolicy::GenerateMove() function. Does anybody have an idea what I am missing here? And how I can limit fuego to only consider some moves? Sorry for this longish text. Best regards, David Briemann
_______________________________________________ Computer-go mailing list [email protected] http://dvandva.org/cgi-bin/mailman/listinfo/computer-go
