I'll add some detail. I have 10 features which give me 1024 possible context 
codes, not all of which are realizable. I keep a CAMAF table of approximate 
size 1024*(number of spaces)*colors (1024*81*2 for a 9x9 board). This table 
persists throughout the entire game, with suitable decays of the weights 
between turns. 

After each playout, I update the average score for each move made in the CAMAF 
table. For internal nodes, including the root, I only update the CRAVE values 
for moves that matched the context code of that space at that node. (Internal 
nodes don't need to store any more information than they would with RAVE-though 
storing the context codes can save time).

For an internal node, I have 4 pieces of information for every move considered:
1. win rate
2. Prior value (the humble equivalent of?the domain knowledge in Many Faces)
3. CRAVE
4. CAMAF
The relative usefulness of each piece of information will vary as more playouts 
go through?the node.

For an external node, I have 2 pieces of information for every move considered.
1. The normal move value I was using in my heavy playouts.
2. The CAMAF value
I can make the playouts adaptively learn sekis and other things that otherwise 
tend to get pushed over the horizon.

So, if I ever manage to get this all tuned up so that it actually makes my 
engine stronger instead of weaker, I hope to start playing my bot in 
tournaments again some day.

- Dave Hillis

-----Original Message-----
From: [email protected]
To: [email protected]
Sent: Fri, Aug 7, 2009 11:49 am
Subject: Re: [computer-go] RAVE problems



> -----Original Message-----
> From: terry mcintyre <[email protected]>
> To: computer-go <[email protected]>
> Sent: Fri, Aug 7, 2009 10:35 am
> Subject: Re: [computer-go] RAVE problems
> 


> Perhaps the "context" attached to RAVE needs to be more subtle than a static 
> 3x3 pattern - tactical and efficiency > considerations may apply - a move may 
> be good when it defends or kills a group, but bad if it has no effect upon 
> the > status - it may be wasted in such cases.

These are the context codes that I am currently testing. I'm using the terms 
context-AMAF (CAMAF) and context RAVE (CRAVE). 
10 bits:

case 0: printf("context %d: eye creating \n", k); break;
 0: printf("context %d: eye creating \n", k); break;
case 1: printf("context %d: pat \n", k); break;
 1: printf("context %d: pat \n", k); break;
case 2: printf("context %d: self_atari \n", k); break;
 2: printf("context %d: self_atari \n", k); break;
case 3: printf("context %d: capture \n", k); break;
 3: printf("context %d: capture \n", k); break;
case 4: printf("context %d: enemy-atari \n", k); break;
 4: printf("context %d: enemy-atari \n", k); break;
case 5: printf("context %d: ladder-like attack \n", k); break;
 5: printf("context %d: ladder-like attack \n", k); break;
case 6: printf("context %d: rescue \n", k); break;
 6: printf("context %d: rescue \n", k); break;
case 7: printf("context %d: liberties_for_move == 2 \n", k); break;
 7: printf("context %d: liberties_for_move == 2 \n", k); break;
case 8: printf("context %d: running \n", k); break;
 8: printf("context %d: running \n", k); break;
case 9: printf("context %d: squeeze \n", k); break;
 9: printf("context %d: squeeze \n", k); break;
default: printf("context %d: NO CONTEXT \n", k); break;

: printf("context %d: NO CONTEXT \n", k); break;

case 1, matching a pattern, is a binary flag indicating that the move makes any 
"good" 3x3 pattern.
case 4, ladder-like attack, means that it puts a foe group into atari, that 
group couldn't gain a liberty by capturing, and couldn't gain > 2 liberties by 
moving onto its single liberty.
case 8, running, means it gives a friendly group >= 3 liberties where it had 2 
liberties before.
case 9, squeeze, means it reduces a foe group to 2 liberties (but they might be 
eyes...).

If ladder testing is enabled, there is an 11th bit for that result.

I'm certain that this is not the ideal set of features. I'd be very interested 
in what the group thinks they should be.

- Dave Hillis









_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
[email protected]
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to