It's not true that MCTS only goes a few ply.  In 19x19 games on 32 CPU
cores, searching about 3 million play outs per move, Many Faces of Go
typically goes over 15 ply in the PV in the UCT tree.

I agree that it is much easier to reliably prune bad moves in go than it is
in chess.

Many Faces (pre MCTS) was a selective alpha-beta searcher.  Switching to
MCTS made it much stronger, so I think MCTS is better than alpha-beta for
go.  The reason is that to get any depth out of alpha-beta I had to
hard-prune most moves, and misses too many good moves.  MCTS is full width,
so misses nothing, and still searches twice as deep as the pruned
alpha-beta.  Perhaps a dumber but faster evaluation function could do better
than I did though.

Davdi

> -----Original Message-----
> From: computer-go-boun...@computer-go.org [mailto:computer-go-
> boun...@computer-go.org] On Behalf Of Don Dailey
> Sent: Tuesday, February 17, 2009 11:58 AM
> To: computer-go
> Subject: RE: [computer-go] static evaluators for tree search
> 
> On Tue, 2009-02-17 at 20:04 +0100, dave.de...@planet.nl wrote:
> > A simple alfabeta searcher will only get a few plies deep on 19x19, so
> > it won't be very useful (unless your static evaluation function is so
> > good that it doesn't really need an alfabeta searcher)
> 
> I have to say that I believe this is very simplistic, and a lot of
> people have said things like this so you are certainly not alone.
> 
> But how deep it goes is not particularly relevant, it's only a very
> small part of the picture.  Before MCTS programs were playing
> "reasonably well" with continuous refinements to 1 ply searches.
> 
> You can probably conceptually separate a tree searching program into 3
> parts, and in this sense alpha/beta is no different than MCTS:
> 
>    1. search
>    2. selectivity
>    3. evaluation
> 
> selectivity is a nebulous term which involves all kinds of decisions
> about what to do inside the tree.  It all boils down to 1 thing however,
> when to stop and when not to (and possibly what score to assume.)
> 
> Evaluation has always been the most important part of any tree searching
> program and alpha/beta just doesn't work without it.   Even if you
> search to the very end of a game, such as tic-tac-toe,  you must know
> whether the game is a win, loss or draw, so you are forced to evaluate
> in the non-recursive sense.    When you cannot go to the end of the
> game, which is true of any interesting game before it's played out,  you
> really must have a high quality evaluation.
> 
> The interesting part of MCTS, is not the TS part, it's the MC part.
> That's the part that does the evaluation.   I am convinced that the tree
> search part could be done in a number of ways which can be seen as more
> or less equivalent.   Even in the papers on MCTS the tree search was
> shown to be a type of mini-max search.
> 
> It's possible to structure alpha/beta to have incredibly low branching
> factors,  with modern chess programs for instance it is about 2.   That
> involves a lot of domain specific knowledge and assumptions about the
> tree.  This same thing can be done in GO and would also require a lot of
> domain specific knowledge.   That knowledge could be obtained with the
> same methods used by MCTS, statistics gathered by playout analysis.  The
> evaluation function could also be merged into the nodes in a similar way
> to MCTS.
> 
> I believe what makes go different, is that you can be a lot more
> selective than you can in chess, it's much easier to evaluate bad moves
> in GO, but it's much harder to evaluate the quality of positions.
> 
> You stated that alpha/beta can only go a few ply,  but that is also true
> of MCTS.  It only goes a few ply unless you count the Monte Carlo part -
> in which case you also do that with alpha/beta.
> 
> So in my opinion the jury is still out.  Is the "TS" in MCTS really so
> fundamentally different that alpha/beta with selectivity?   I'm not so
> sure and I don't think anyone has really tried very hard probably due to
> the wonderful success of the original bandit algorithm.
> 
> There are a bunch of things in computer science that were rejected, and
> then later found much success  due to some simple discovery or even
> research that showed people were just looking at it wrong,  or missed
> something relatively simple about it,  or it simply went out of fashion
> because something else came along that at the time appeared to better or
> simpler and became the fad.   That could easily happen here I think.
> 
> 
> - Don
> 
> 
> 
> 
> _______________________________________________
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to