[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gnubg] Re: GnuBG: Fractional-ply evaluators
From: |
Tom Keith |
Subject: |
[Bug-gnubg] Re: GnuBG: Fractional-ply evaluators |
Date: |
Wed, 22 Oct 2003 21:02:33 -0400 |
Hi Nis.
Thank you for your thoughful reply.
Nis Jorgensen wrote:
> A little while ago, I suggested on the bug-gnubg list an explanation of
> why 1-ply is off the mark.
I'm not sure it is accurate to say that 1-ply is more off the mark
than 0-ply. According to the test I did, 1-ply is better at
estimating absolute equity than 0-ply. And I've heard that 1-ply
plays better than 0-ply too. At least in general.
The issue seems to be that there are certain classes of positions
where 0-ply is significantly better than 1-ply.
> Here is the important part:
>
[clip]
>
> Note that this was written in the context of someone claiming that 0-ply
> is overrating positions. I do not think this is the case. The general
> principle holds: On average, 1-ply rates positions lower than 0-ply
On the positions in my sample, 0-ply underestimates equity on average,
and 1-ply overestimates.
Average Equity
0-ply: -0.017
1-ply: +0.045
rollout: +0.012
> It would be nice to know the size of your sample.
150,000 positions
> I think I aske Joseph to make his
> benchmark available some time ago, and I would like to repeat the
> request. If possible in some semi-readable format ...
>
> The same goes for your sample of positions.
I'd be happy to make my rollouts/evaluations available.
> The pipcount is strongly related to the gwc. Could you perhaps check
> if the correlation between the 0-ply eval and BestPly is stronger or
> weaker than between pipcount and BestPly? (BestPly is 0 if 0-ply is
> best, 1 if 1-ply is).
Correlation between pipcount and BestPly = -0.190257
Correlation between 0-ply GWC and BestPly = 0.618061
> Bonus question: Find a best fit between "true equity" and
> p1 + (a * p0 + b)(p0- p1)
What is this expression?
> Just to clarify: What does the hybrid do when the pip-count is between
> -40 and 40? Is it then using 0.5-ply?
> What happens above 150 and below -160?
Outside the given ranges, use 0.5-ply:
if ( -160<rpc && rpc<-40 ) return eval1 ;
if ( 40<rpc && rpc<150 ) return eval0 ;
return 0.5*eval0 + 0.5*eval1 ;
> I have implemented fractional plies for gnubg - in a slightly different
> way than the straight average used for both your tests and Joseph's. If
> you are compiling your own gnu, I'll be happy to send you the patch (the
> one I sent to the bug-gnubg earlier was broken). Unfortunately, it only
> does fractional plies above 1-ply :-( I think will look at implementing
> 0.5-ply soon.
How is your implementation different than straight average?
> > - Would it be possible to build a hybrid evalator into GnuBG like the
> > one described above that would use a combination of zero-ply,
> > one-ply, and 0.5-ply evaluation depending on the relative pipcount?
>
> I think this is a little to specialized for what I would want to put
> into gnubg - at least until it has been more rigorously tested.
Yes, you would want to have it well tested. And, even before that,
there may be better ways that 0-ply and 1-ply can be usefully combined.
As I say, I'm willing to share my database of positions with anyone who
has ideas they'd like to try out.
Tom