Re: [computer-go] How to properly implement RAVE?

2009-02-08 Thread Isaac Deutsch
No hurry, I will be away for a week next week. :-)


 Isaac,
 
 I haven't looked at this stuff for a while. I'm not at home so I can't
 look at it now.
 
 From the error I understand that tesuji/games/general/MoveIterator is
 missing. It is there in the Subversion source-tree however. So I don't
 know what could be wrong. Maybe it's somehow missing in the
 GoEngineGTP.jar
 
 If you can wait until Wednesday I'll fix it for you then.
 
 Mark

-- 
Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: 
http://www.gmx.net/de/go/multimessenger01
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] How to properly implement RAVE?

2009-02-08 Thread Petr Baudis
On Sat, Jan 17, 2009 at 08:29:32PM +0100, Sylvain Gelly wrote:
 A small point: in PlayoutOutTree, just after if
 (!played.AlreadyPlayed(move)) {, there should have a played.Play(move).
 I believe it does not change the final result (as the check is also done in
 the backup, and the move played in the backup), but I simply forgot that
 line (that should make moves_played_out_tree smaller).
 
 To avoid confusion, I repost the pseudo code with that correction (and
 hoping the indentation is not broken by the email editor once again).

Thank you so much for this! I have switched my RAVE implementation to
this formula and the bot has gotten noticeably stronger, though I
apparently still have some bugs to chase, since it seems to have trouble
considering strongest opponent's responses and frequently focuses on
unreasonable opponent's replies instead of the obvious (e.g. keeping a
group of stones in atari). Maybe I need better prior hinting...

I have few questions. Of course, please feel free to skip questions
about particular constants if you feel that's giving away too much. :-)

 ChooseMove(node, board) {
   bias = 0.015  // I put a random number here, to be tuned
   b = bias * bias / 0.25

Maybe it would be cleaner to define b = 1 / rave_equiv, where rave_equiv
is the number of playouts RAVE is thought to be equivalent of? Or is the
meaning of this constant actually different?

What value works best for people? I did not do much tuning yet, but I
use b=1/3000. I see Fuego uses b=1/5000. (This example b=1/.)

   best_value = -1
   best_move = PASSMOVE
   for (move in board.allmoves) {
 c = node.child(move).counts
 w = node.child(move).wins
 rc = node.rave_counts[move]
 rw = node.rave_wins[move]
 coefficient = 1 - rc / (rc + c + rc * c * b)
 value = w / c * coef + rw / rc * (1 - coef)  // please here take care of
 the c==0 and rc == 0 cases
 if (value  best_value) {
   best_value = value
   best_move = move
 }
   }
   return best_move
 }

I have two questions here:

* Is the FPU concept abandoned? Or what values are reasonable? It seems
  to me 1.0, which is usually recommended, is obviously too big here
  since that's the upper bound of the value already. So far I have tried
  0.6 and 0.7 but both just make my bot slightly weaker.

* How to accomodate prior knowledge? (I'm using grand-parent heuristics,
  atari liberties, and few patterns.) Do you use it to fill normal
  counts, RAVE values or both? What count values work best for you?
  I have settled on 50 playouts.

-- 
Petr Pasky Baudis
The average, healthy, well-adjusted adult gets up at seven-thirty
in the morning feeling just terrible. -- Jean Kerr
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] How to properly implement RAVE?

2009-02-08 Thread Mark Boon
I had a little spare time to look at it. It seems indeed I forgot to  
update the GoEngineGTP.jar file last time I made some changes. This  
was easy to fix even from here and I think it should work now.


Just as a note, if you want to change the number of playouts to 50K,  
you need to change the minimumNrNodes from 4,000 to 50,000 in the  
ReferenceMonteCarloTreeSearch definition in the TesujiRefBot.xml. But  
you may also want to increase the 'nrSimulationsBeforeExpansion' value  
to something higher like 8 or even 32. It depends on how much memory  
you have available. You may want to set it to the same value you use  
for your own program to get a good comparison anyway. Use the  
MCTSRefBot to play, which means you'll be passing the following  
command to two-gtp: java -xmx512M -jar GoEngineGTP.jar MCTSRefBot


Adjust the -xmx???M to whatever you think is suitable on your  
computer. I think if you set nrSimulationsBeforeExpansion=8 then 512M  
should be enough but you may have to experiment a little to find the  
optimal settings.


Mark


On Feb 8, 2009, at 7:06 AM, Isaac Deutsch wrote:


No hurry, I will be away for a week next week. :-)



Isaac,

I haven't looked at this stuff for a while. I'm not at home so I  
can't

look at it now.

From the error I understand that tesuji/games/general/ 
MoveIterator is
missing. It is there in the Subversion source-tree however. So I  
don't

know what could be wrong. Maybe it's somehow missing in the
GoEngineGTP.jar

If you can wait until Wednesday I'll fix it for you then.

Mark


--
Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit  
allen: http://www.gmx.net/de/go/multimessenger01

___
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] How to properly implement RAVE?

2009-02-08 Thread Isaac Deutsch
Hi,

Can you explain what minimumNrNodes and nrSimulations do? In my program I
play 50k games regardless of the number of nodes, so I would like to adjust
this accordingly.

Otherwise, it works now. :)

-ibd


 Original-Nachricht 
 Datum: Sun, 8 Feb 2009 14:47:55 -0200
 Von: Mark Boon tesujisoftw...@gmail.com
 An: computer-go computer-go@computer-go.org
 Betreff: Re: [computer-go] How to properly implement RAVE?

 I had a little spare time to look at it. It seems indeed I forgot to  
 update the GoEngineGTP.jar file last time I made some changes. This  
 was easy to fix even from here and I think it should work now.
 
 Just as a note, if you want to change the number of playouts to 50K,  
 you need to change the minimumNrNodes from 4,000 to 50,000 in the  
 ReferenceMonteCarloTreeSearch definition in the TesujiRefBot.xml. But  
 you may also want to increase the 'nrSimulationsBeforeExpansion' value  
 to something higher like 8 or even 32. It depends on how much memory  
 you have available. You may want to set it to the same value you use  
 for your own program to get a good comparison anyway. Use the  
 MCTSRefBot to play, which means you'll be passing the following  
 command to two-gtp: java -xmx512M -jar GoEngineGTP.jar MCTSRefBot
 
 Adjust the -xmx???M to whatever you think is suitable on your  
 computer. I think if you set nrSimulationsBeforeExpansion=8 then 512M  
 should be enough but you may have to experiment a little to find the  
 optimal settings.
 
 Mark
 
 
 On Feb 8, 2009, at 7:06 AM, Isaac Deutsch wrote:
 
  No hurry, I will be away for a week next week. :-)
 
 
  Isaac,
 
  I haven't looked at this stuff for a while. I'm not at home so I  
  can't
  look at it now.
 
  From the error I understand that tesuji/games/general/ 
  MoveIterator is
  missing. It is there in the Subversion source-tree however. So I  
  don't
  know what could be wrong. Maybe it's somehow missing in the
  GoEngineGTP.jar
 
  If you can wait until Wednesday I'll fix it for you then.
 
  Mark
 
  -- 
  Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit  
  allen: http://www.gmx.net/de/go/multimessenger01
  ___
  computer-go mailing list
  computer-go@computer-go.org
  http://www.computer-go.org/mailman/listinfo/computer-go/
 

-- 
Pt! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: 
http://www.gmx.net/de/go/multimessenger01
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] How to properly implement RAVE?

2009-02-08 Thread Jason House
On Fri, 2009-02-06 at 18:55 +0100, Isaac Deutsch wrote:
 The rating of the bot still seems to be drifting upwards, but I think I can
 conclude my UCT implementation is OK afterall. Many thanks to the bots
 provided. Does someone have a bot that does 50k light playouts + RAVE? I
 would be most grateful if you could put them online for a few days of
 testing. :-)
 
 By the way, I've seen 2 games when checking my bot's status where one of the
 myCtest bots lost because of an illegal ko move. Maybe there's a bug in
 handling superko?
 
 Regards,
 Isaac

hb-0.7-RAVE-50k is now online. It should be identical to hb-797-RAVE-50k
(Please disregard hb-0.7-50k-RAVE since it had a serious bug)

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


Re: [computer-go] How to properly implement RAVE?

2009-02-08 Thread Mark Boon
On Sun, Feb 8, 2009 at 3:02 PM, Isaac Deutsch i...@gmx.ch wrote:
 Hi,

 Can you explain what minimumNrNodes and nrSimulations do? In my program I
 play 50k games regardless of the number of nodes, so I would like to adjust
 this accordingly.


minimumNrNodes is the number of games played out. Originally I used to
always create a new node when a playout happened. Maybe this should be
renamed to minimumNrPlayouts. nrSimulationsBeforeExpansion is the
minimum number of visits that have to be made to a node before the
tree gets expanded any deeper. As an example, when the search begins,
the root-node is expanded with all possible legal moves. But those
children nodes are not expanded themselves until a certain number of
simulations (playouts) have been done starting from the root-node.
Until that time the children nodes are only used to store the AMAF
values. I think this may be slightly different from how most people do
it, but I figured it would be a waste to throw away the AMAF values
for the first 'n' simulations in a node.

 Otherwise, it works now. :)

Good.

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