On Mon, 2008-10-27 at 16:08 -0400, Michael Williams wrote:
> By your argument, it would seem to make sense to remove this check
> even if you don't use my decaying weight.
> 
>             boolean ok = true;                // ok to use this move?
>             // see if either side has used this move before
>             for (int j=savctm; j<i; j++) {
>                 if ( (mvs[j] & MASK) == mv ) {
>                     ok = false;
>                     break;
>                 }
>             }


I strongly considered not doing this check.   However, in most
descriptions I've seen of how AMAF works, this check was considered
important.   

Also, if you don't do the check it's possible to get a move credited
SEVERAL times per game EVEN if your opponent plays it first!  Somehow
that just seems wrong. 

There are some decisions that HAVE to be made that could be considered
arbitrary no matter which direction you go.  For instance the eye rule
is arbitrary and is not the simplest possible eye rule.   

So I tried to keep it real simple, but still gave some consideration to
tradition, correctness and reasonableness.  Tradition dictated the eye
rule (it is the one almost everyone uses), AMAF,  and this check you
mention.  Correctness seemed to indicate this check also (although it's
also easy to argue that this is not an issue of correctness because AMAF
is not correct anyway.)

I especially tried to avoid any gratuitous enhancements.  It's very easy
to do little tweaks that make it play stronger but are blatantly
recognizable as improvements that go beyond the basic implementation.
This clearly fits in that category.   

I'm not going to keep modifying the spec every time someone finds a
little helpful change.  I didn't intend for this to be a forum to
gradually evolve a stronger bot.    However, the idea of doing that is
appealing as a separate project and I would like to track these type of
things when I build the web page.    We might even have them as options
to the program and give them names so that we know what we are talking
about.  We could call this one the mw enhancement :-)    

I'm testing your enhancement now, as we speak.   It's hard to draw any
conclusions after only 184 games, but I'm testing 4096 and it seems to
be almost as strong as the reference 8092.    I may later try testing
only the 2 against each other like you did.    I took out the above
check and implemented it exactly as you specified.

I may later test the reference bot with and without the check to see if
it really makes any difference. 


Rank Name              Elo    +    - games score oppo. draws 
   1 refbot-008192    2661   25   24  1223   78%  2189    0% 
   2 mwRefbot-004096  2655   70   66   184   80%  2024    0% 
   3 refbot-004096    2631   25   24  1223   75%  2174    0% 
   4 refbot-002048    2532   24   24  1219   65%  2182    0% 
   5 refbot-001024    2410   25   25  1223   56%  2146    0% 
   6 refbot-000512    2245   29   30  1214   51%  2015    0% 
   7 refbot-000256    2003   36   37  1218   44%  1896    0% 
   8 refbot-000128    1646   45   46  1214   45%  1632    0% 
   9 refbot-000064    1301   45   45  1208   52%  1288    0% 
  10 refbot-000032     974   44   45  1214   53%  1019    0% 
  11 refbot-000016     619   37   35  1208   55%   774    0% 
  12 refbot-000008     377   29   28  1202   48%   638    0% 
  13 refbot-000004     248   26   25  1200   43%   533    0% 
  14 refbot-000002     135   24   24  1199   35%   483    0% 
  15 refbot-000000       0   25   25  1200   23%   479    0% 
  16 refbot-000001      -1   25   26  1199   22%   462    0% 

- Don

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to