Hi all,

I'm not really familiar with all the theory and even less with gnubg 
internal code, hence
I may well be wrong, but there's something that looks wrong to me.

In gnubg.pdf, paragraph 11.5.5.2 "Live cube equities", there's the 
following:

        For match play there is no simple formula, since redoubles can 
only occur a limited number of times.
        The live cube take point is generally calculated as

          TP(live, n Cube)=TP(dead, n cube) * (1 - TP(live, 2n cube)

(missing closed bracket on last line, minor).

I was wondering how this relation is deduced, since I can't obtain it from 
Janowski paper
(which seems to be the basis for cubeful evaluation).

Looking at Janowski's paper, in paragraph 2 of appendix 5 (Finite Model ? 
Constant gammon
and backgammon-rates), it seems he gets a different recursive expression 
for the take point
in the finite model.

>From my understanding, gnubg does this:

        Live_CP_playerB(n Cube) = 1 - Live_CP_playerA(2n Cube) * 
Dead_TP_playerA(n Cube)

This is in GetPoints (matchequity.c), lines 598- ... :

        /* Doubled cube is alive */

        /* redouble, pass */
        rRDP =
                  aarMETResults[k][DTL];

        /* double, pass */
        rDP = 
                  aarMETResults[k][DP];

        /* double, take win */

        rDTW = 
          ( 1.0f - arG[ k ] - arBG[ k ] ) * 
                  aarMETResults[k][DTW]
                  + arG[ k ] * aarMETResults[k][DTWG]
                  + arBG[ k ] * aarMETResults[k][DTWB];

        arCPLive[ k ][ n ] = 
          1.0f - arCPLive[ ! k ][ n + 1] * ( rDP - rDTW ) / ( rRDP - rDTW 
);

I think that the code does exactly what is written in gnubg.doc.
(Note: why rRDP, commented ad "redouble pass", is associated to the tag 
DTL,
which is for Double/Take and Lose ? rRDP should probably be rDTL and the 
comment
should be /* double, take and lose */).


In Janowski's paper however, the relation is (pages 27-28):

        Live_CP_playerB(n Cube) = 1 - Live_CP_playerA(2n Cube) * 
Effective_TP_playerA(n Cube)

The difference in the recursive relation is between multiplying by the 
dead take point
(as gunbg does) and the effective take point (as Janowski does). In 
Janowski formula,
only the last term of the recursive relation has the dead take point, all 
the intermediate
ones have the effective take points. I think Janowski formula is the right 
one.


The dead take point is:

        TP_dead = (Eq(Pass) - Eq(Take and Lose)) / (Eq(Take and Win) - Eq 
(Take and Lose))

This is the term in gnubg code ( rDP - rDTW ) / ( rRDP - rDTW ), once you 
realise that
in gnubg code the equities are seen from player k point of view.

For money, this is the well known (L-1/2)/(W+L)

The effective take point is:

        TP_eff  = (Eq(Pass) - Eq(Take and Lose)) / (Eq(Take and Cash) - Eq 
(Take and Lose))

For money this is (L-1/2)/(L+1).

In the dead take point, you can't cash. In the effective one you can.


Can a more knowledgeable one have a look and let me know ?


MaX.
_______________________________________________
Bug-gnubg mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnubg

Reply via email to