bug-gnubg
[Top][All Lists]
Advanced

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

[Bug-gnubg] Strange analysis of double


From: Jim Segrave
Subject: [Bug-gnubg] Strange analysis of double
Date: Tue, 6 Aug 2002 11:32:03 +0200
User-agent: Mutt/1.2.5i

Or maybe it's just me...

(No game) load game weird.double 
 GNU Backgammon  Position ID: ZoYxAUtjt4EDAg
                 Match ID   : cARgAQAACAAA
 +13-14-15-16-17-18------19-20-21-22-23-24-+     O: gnubg
 | X     O          | O | O  X  O     O    |     0 points
 | X     O          |   | O     O     O    |     
 | X                |   |                  |     
 |                  |   |                  |     
 |                  |   |                  |    
v|                  |BAR|                  |     11 point match (Cube: 1)
 |                  |   |                  |    
 |                  |   |                  |     
 |                  |   |    X             |     
 | O              X |   | X  X  X  O     X |     On roll
 | O     O        X |   | X  X  X  O  O  X |     1 point
 +12-11-10--9--8--7-------6--5--4--3--2--1-+     X: jes

(Game over) analyze game
(Game over) eval                                                               
Evaluator:      CONTACT                                                        

Input           Value                    dE/dI
OFF1            0.000                    0.035
OFF2            0.000                   -0.182
OFF3            0.000                   -0.013
BREAK_CONTACT   0.000                   -0.288
BACK_CHEQUER    0.000                   -0.049
BACK_ANCHOR     0.000                   -0.377
FORWARD_ANCHOR  0.000                   -0.075
PIPLOSS         0.000 (0.000 avg)       -0.440
P1              0.000 (0.000/36)        -0.082
P2              0.000 (0.000/36)        -0.483
BACKESCAPES     0.000 (0.000/36)        -0.172
ACONTAIN        0.000 (0.000/36)        -0.496
CONTAIN         0.000 (0.000/36)        -0.273
MOBILITY        0.000                   -0.252
MOMENT2         0.000                   -0.048
ENTER           0.000 (0.000/12)        -0.254
ENTER2          0.000                   -0.050
TIMING          0.000                   -0.252
BACKBONE        0.000                   -0.033
BACKGAME        0.000                   -0.266
BACKGAME1       0.000                   -0.004
FREEPIP         0.000                   -0.187

        Win     W(g)    W(bg)   L(g)    L(bg)   Equity  (cubeful)
static: 0.736   0.515   0.047   0.044   0.000   (+1.020  (+1.146))


Double, pass        : +1.000
Double, take        : +1.809   (+0.809)
No double           : +1.146   (+0.146)

Correct cube action: Double, pass

Hint and eval both say that a double is called for, analysis of a match where 
a double is played here flags the double as a very bad move (which the equities
agree with, but says the correct play is double/pass. This applies with
analysize set to 'expert', 'world-class' and 'world-class++'

This is with a gnubg built from CVS taken 6 Aug, 8AM GMT. I noticed it last
night with a gnubg built from yesterday morining's CVS as well.

Looking at eval.c, in FindBestCubeDecision:
    4550   if ( ( arDouble[ OUTPUT_TAKE ] >= arDouble[ OUTPUT_NODOUBLE ] ) &&
    4551        ( arDouble[ OUTPUT_DROP ] >= arDouble[ OUTPUT_NODOUBLE ] ) ) {

This if fails because DP < ND, so we go to the else (line 4596) and following.

    4604     if ( arDouble [ OUTPUT_NODOUBLE ] > arDouble [ OUTPUT_TAKE ] ) {
This if fails, we go to the else on line 4636, since DT > ND > DP
    4636     else
    4637 
    4638       /* 3. DT >= ND > DP: Too good, pass */
    4639 
    4640       return ( pci->fCubeOwner == -1 ) ? 
    4641         DOUBLE_PASS : REDOUBLE_PASS;
    4642 

Which seems not to match the comments :-)

I've just been over the complete set of if's that are there and the rest look 
correct to me.

-- 
Jim Segrave           address@hidden



reply via email to

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