Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-24 Thread Rémi Coulom

Gian-Carlo Pascutto wrote:

Rémi Coulom wrote:

  

Did you manage to get something to work with null move ?



When Leela runs the first simulation in a node, it plays 2 moves for the
same side, then does a playout.

If the playout loses for the not-passing side, I add x lost games to the
RAVE values.

I got maybe 10 ELO or so from this. If someone can improve upon it, I'm
all ears.

  

Thanks Gian-Carlo, that's an interesting idea. Now I see how it can be done.

Rémi
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-23 Thread Rémi Coulom

Gian-Carlo Pascutto wrote:

Rémi Coulom wrote:

  

Null-move pruning only make sense in alpha-beta. MCTS/UCT are more like
min-max. They do no alpha-beta pruning, so cannot do null-move pruning.



Null move works like this: if after passing and a small search the
position still looks good, do not do a bigger search.

There is absolutely no reason why this can't be used in MCTS/UCT. You
will have some implementation differences, of course.

  


The problem I see is that null move gives a lower bound on the value of 
a node in the tree. What value would you back-up to the parent ? If that 
node is given the value of the null move, then it means that the value 
of the move that leads to this node will be over-evaluated by the 
parent. So, it will be explored more with a MCTS algorithm. It would 
seem more effective to me to play a better real move, get a better value 
for this node, which will make it more effectively pruned at the parent 
level.


Or do you mean that you would prune the node completely after a 
null-move search ? That sounds too dangerous. I can't see how it could 
be done.


Pruning in MCTS works by estimating how better on move is than another. 
With null move, you lose much of that information. I may be wrong, but 
this makes me believe that null-move pruning is not compatible with the 
spirit of MCTS.


Did you manage to get something to work with null move ?

Rémi
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-23 Thread Don Dailey
On Tue, 2008-12-23 at 10:15 +0100, Rémi Coulom wrote:
 Gian-Carlo Pascutto wrote:
  Rémi Coulom wrote:
 

  Null-move pruning only make sense in alpha-beta. MCTS/UCT are more like
  min-max. They do no alpha-beta pruning, so cannot do null-move pruning.
  
 
  Null move works like this: if after passing and a small search the
  position still looks good, do not do a bigger search.
 
  There is absolutely no reason why this can't be used in MCTS/UCT. You
  will have some implementation differences, of course.
 

 
 The problem I see is that null move gives a lower bound on the value of 
 a node in the tree. What value would you back-up to the parent ? 

You don't back up a value to the parent, you use it as a test.  The idea
behind null move is to prune the tree early and null move is just a
device to decide that it's ok to stop searching - it could just as well
be anything else that detects threats.  It just happens that null move
is a pretty good way in some domains.  You generally apply null move in
any position where you believe the true score is greater than or
equal to beta, which is where you would get a cutoff anyway.   As
Gian-Carlo mentioned you make a null move first because you are
basically seeing if the position is so good that you can afford to do
nothing and the opponent still cannot hurt you.   

The reduced depth search you do could be a problem in Go.   Null move is
not as effective in positions where there are deep long term threats.
It's more effective in tactical situations and is ideal in Chess.  But
even in chess endings it is not quite as effective, but still works
well.   

So it has to be evaluated for GO.  Apparently, some have reported
success with it in GO.   

Gian-Carlo is right about it not being just for alpha/beta - it can be
used as a device to measure threat potential in a position.

I have this feeling that it would work better if your program already is
very good at evaluating threats and problems in the position - because
in GO, null move (and it's reduced depth test search) can lose depth.
In a chess program null move will make your program take extra depth to
solve positions where the threat is not so direct.   YMMV.


- Don





 If that 
 node is given the value of the null move, then it means that the value 
 of the move that leads to this node will be over-evaluated by the 
 parent. So, it will be explored more with a MCTS algorithm. It would 
 seem more effective to me to play a better real move, get a better value 
 for this node, which will make it more effectively pruned at the parent 
 level.
 
 Or do you mean that you would prune the node completely after a 
 null-move search ? That sounds too dangerous. I can't see how it could 
 be done.
 
 Pruning in MCTS works by estimating how better on move is than another. 
 With null move, you lose much of that information. I may be wrong, but 
 this makes me believe that null-move pruning is not compatible with the 
 spirit of MCTS.
 
 Did you manage to get something to work with null move ?
 
 Rémi
 ___
 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/


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-23 Thread Gian-Carlo Pascutto
Rémi Coulom wrote:

 Did you manage to get something to work with null move ?

When Leela runs the first simulation in a node, it plays 2 moves for the
same side, then does a playout.

If the playout loses for the not-passing side, I add x lost games to the
RAVE values.

I got maybe 10 ELO or so from this. If someone can improve upon it, I'm
all ears.

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


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-22 Thread Gian-Carlo Pascutto
Rémi Coulom wrote:

 Null-move pruning only make sense in alpha-beta. MCTS/UCT are more like
 min-max. They do no alpha-beta pruning, so cannot do null-move pruning.

Null move works like this: if after passing and a small search the
position still looks good, do not do a bigger search.

There is absolutely no reason why this can't be used in MCTS/UCT. You
will have some implementation differences, of course.

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


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-21 Thread Hiroshi Yamashita

I tested null move pruning in my classical alpha-beta Aya.

Depth first, iterative deepening.
Search depth is 6 or 7 in middle game.
3 seconds/move.
NPS is about 7000/s on CoreDuo 1.83GHz (one core).
Against GnuGo 3.7.10 on 9x9
R=2
wins   losses  winning rate 
withnull move 126 174   0.42

without null move 108 192   0.36

As far as my program, null move pruning is maybe a bit effective.

Hiroshi Yamashita


- Original Message - 
From: David Fotland fotl...@smart-games.com

To: 'computer-go' computer-go@computer-go.org
Sent: Sunday, December 21, 2008 1:35 PM
Subject: RE: [computer-go] Nullmoves in MCTS and UCT?



Many Faces of go uses alpha-beta full board search with null move for the
levels that don't use monte carlo search.  Monte carlo search is used in the
2 kyu level.  Alpha beta is used by 4 kyu to 9 kyu.  The weaker levels just
do a single ply search.

Null move helps, but I never tested how much it helps.

David



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


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-20 Thread Rémi Coulom

Ingo Althöfer wrote:

Question: Have nullmove-concepts been tried
or analysed in MCTS or UCT-settings?

Background of the question: Using alpha-beta tree
search, the (asymptotic) percentage of nullmove cutoffs
may help as an indicator for the naturality or 
interestingness of a (newly invented) game.

Unfortunately, it is nontrivial to design traditional evaluation
functions for newly invented games...

Ingo.
  


Null-move pruning only make sense in alpha-beta. MCTS/UCT are more like 
min-max. They do no alpha-beta pruning, so cannot do null-move pruning.


Still, some programmers tried null move in 9x9 alpha-beta go programs. 
As far as I remember, they got no strength improvement from it.


Rémi
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Nullmoves in MCTS and UCT?

2008-12-20 Thread Don Dailey
On Sat, 2008-12-20 at 16:04 +0100, Rémi Coulom wrote:
 Still, some programmers tried null move in 9x9 alpha-beta go
 programs. 
 As far as I remember, they got no strength improvement from it.


I tried null move once in my very weak alpha/beta go program.   The
issue with recursive deep search null move is that it is not that good
and discovering long term threats, which is way more common in GO than
in chess.However, it might work well for discovering certain classes
of immediate tactical threats that must be responded to.  

As a general pruning mechanism,  I fear it is not very workable - but I
never say never.  

- Don


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


RE: [computer-go] Nullmoves in MCTS and UCT?

2008-12-20 Thread David Fotland
Many Faces of go uses alpha-beta full board search with null move for the
levels that don’t use monte carlo search.  Monte carlo search is used in the
2 kyu level.  Alpha beta is used by 4 kyu to 9 kyu.  The weaker levels just
do a single ply search.

Null move helps, but I never tested how much it helps.

David

-Original Message-
From: computer-go-boun...@computer-go.org
[mailto:computer-go-boun...@computer-go.org] On Behalf Of Rémi Coulom
Sent: Saturday, December 20, 2008 7:04 AM
To: computer-go
Subject: Re: [computer-go] Nullmoves in MCTS and UCT?

Ingo Althöfer wrote:
 Question: Have nullmove-concepts been tried
 or analysed in MCTS or UCT-settings?

 Background of the question: Using alpha-beta tree
 search, the (asymptotic) percentage of nullmove cutoffs
 may help as an indicator for the naturality or 
 interestingness of a (newly invented) game.
 Unfortunately, it is nontrivial to design traditional evaluation
 functions for newly invented games...

 Ingo.
   

Null-move pruning only make sense in alpha-beta. MCTS/UCT are more like 
min-max. They do no alpha-beta pruning, so cannot do null-move pruning.

Still, some programmers tried null move in 9x9 alpha-beta go programs. 
As far as I remember, they got no strength improvement from it.

Rémi
___
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/