bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gnubg] Even, odd and half plies (WAS: New Contact Net Error Rat


From: Nis
Subject: Re: [Bug-gnubg] Even, odd and half plies (WAS: New Contact Net Error Rates)
Date: Fri, 28 Feb 2003 18:01:01 +0100

--On Friday, February 28, 2003 08:15 -0800 David Montgomery <address@hidden> wrote:


From: "Nis" <address@hidden>
1) Average between 12 rolls at 1-ply and 24 times the static 0-ply eval.
2) Average between 12 rolls at 2-ply and 24 at 1-ply.

Perhaps we can implement both - using 1) for reduced 1-ply, and 2) for
higher plies.

Yes.  But to me, these are the same thing.

The rest of your message clearly disagrees with this.

Well, I guess I'm still not sure I understand. Let me try again.
For 2-ply, of course, there are 1296 terminal nodes (looking at just
the selected lines of play). So my guess for the best way to
do 2) is:

2A) Do a weighted average of 432 2-ply nodes selected by striated
    sampling with the result of a full 1-ply evaluation, using
    empirically derived weights.

It appears to me you are suggesting

2B) Evaluate 12 of the 1-ply continuations at 2-ply, and 24 at 1-ply.
    Add these up and dived by 36.

Or to harmonize wordings:

2B) Do a weighted average of the 432 2-ply nodes resulting from 12 of
   the initial rolls and the 1-ply evaluations of the 24 other rolls (each
   with weight 36)

The idea is that each 2-ply leaf node will have the same weight in the average - either as part of a 1-ply or 2-ply evaluation. In your scenario, the 432 selected leaf nodes are treated as special - possibly introducing noise.

As an example, take the situation where I will win, unless I roll 2-1 and opponent rolls 6-6:

In this case, if all our evaluations are exact, we will have

1-ply = 2-ply = 1294/1296

while 2A) gives either 1292/1296 or 1295/1296 depending on whether the winning sequence is included in the 432 evaluated on 2-ply.

(Here I am using a weight of 1/3 for simplicity)

2B) doesn't have this problem.

2A) is taking the current implementation (as I understand it)
and creating a weighted average with the 1-ply evaluation.

2B) requires a different implementation, because you select the
nodes for deeper evaluation at the first ply, rather than spreading
the sampling evenly over the leafs.

Both 2A) and 2B) evaluate 432 nodes at the deepest level.  2A)
evaluates 12 nodes for each of the 36 1-ply rolls, so you get
2-ply information for every 1-ply continuation.  2B) evaluates
36 nodes for each of 12 1-ply rolls, and 0 nodes for the other
24.

In fact, 2A) is exactly the 1-ply lookahead version of

1) Average between 12 rolls at 1-ply and 24 times the static 0-ply eval.

averaging 36 of these evaluations.

2B) is not.  It's a mixture of

Average between 36 rolls at 1-ply and  0 times the static 0-ply eval.
Average between  0 rolls at 1-ply and 36 times the static 0-ply eval.

All correct - although I prefer "average" rather than "mixture" to describe the last calculation :-)

I agree with you that 2A is a lot easier to implement, while keeping a lot of the benefits from the approach. But 2B seems to me to be "the right way (TM)" - and thus I will keep working for it's implementation - even if that means I have to learn to write C :-)

Out of interest: Do we have an agreed way to compare different evaluation settings? Something like "ppg in a money session of N games"

--
Nis Jorgensen
Greenpeace
Amsterdam





reply via email to

[Prev in Thread] Current Thread [Next in Thread]