Yes, this is the hash table idea I mentioned, although most people don't
view this as a hash table - it is.

The enhanced version has actually improved it's result over the past
couple of hours:

Rank Name              Elo    +    - games score oppo. draws 
   1 mwRefbot-004096  2691   22   21  1642   78%  2158    0% 
   2 refbot-008192    2675   20   20  1642   73%  2277    0% 
   3 refbot-004096    2650   20   20  1642   71%  2257    0% 
   4 refbot-002048    2564   20   20  1642   63%  2242    0% 
   5 refbot-001024    2440   22   22  1642   55%  2177    0% 
   6 refbot-000512    2265   26   26  1642   48%  2067    0% 
   7 refbot-000256    2006   33   34  1644   42%  1938    0% 
   8 refbot-000128    1651   40   41  1643   45%  1657    0% 
   9 refbot-000064    1293   39   39  1644   51%  1321    0% 
  10 refbot-000032     975   38   38  1643   52%  1052    0% 
  11 refbot-000016     630   32   31  1642   55%   786    0% 
  12 refbot-000008     375   24   24  1642   47%   654    0% 
  13 refbot-000004     256   22   22  1643   43%   561    0% 
  14 refbot-000002     148   21   21  1642   35%   500    0% 
  15 refbot-000001       6   22   22  1644   21%   487    0% 
  16 refbot-000000       0   21   22  1643   21%   489    0% 

- Don



On Tue, 2008-10-28 at 11:41 -0400, Michael Williams wrote:
> You can add the check back in and be more efficient than Don's nested loop by 
> doing something like this (warning: untested code)...
> 
> 
> 
>          for (int mv = 0; mv < NNN; mv++)
>          {
>              credit[mv] = true; // initial assumption is that credit is 
> awarded for any move
>          }
>          double weight = 1.0;
>          double weightDelta = 2.0 / (ctm - savctm + 1);
>          for (int i = savctm; i < ctm; i += 2)
>          {
>              int mv = mvs[i] & MASK;
> 
>              if (credit[mv])
>              {
>                  wins[mv] += weight * sc;
>                  hits[mv] += weight;
>                  credit[mv] = false;  // do not award credit for this move 
> again
>              }
>              weight -= weightDelta;
> 
>              credit[mvs[i+1] & MASK] = false;  // do not award credit for the 
> opponent's move
>          }
> 
> 
> 
> 
> Mark Boon wrote:
> > Hehe, this reminds me of the title of a CNN program: 'Keeping them 
> > honest' ;-)
> > 
> > OK, let me add that check back in to see if I get better results.
> > 
> > Mark
> > 
> > On 28-okt-08, at 13:18, Michael Williams wrote:
> > 
> >> My original chart of numbers was created before it occurred to me that 
> >> maybe the check whether the move has been played before is not 
> >> needed.  It is of course possible that the check IS needed.  I ran a 
> >> new test after removing that check and the numbers don't look as good:
> >>
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > _______________________________________________
> > 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/

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