Binky Points: Optimal Evaluation
Introduction
In the crudest forms of bidding, the goal is to add the value of your hand to the value of partner's hand and determine what you can make. You make these evaluations independently, sum them together, and that directs you to the appropriate level.
That is, we seek to find a valuation, v, such that:
corresponds to the number of tricks north and south can take.v(south)+v(north)
Evaluations
As with my prior evaluation article, we can seperate out notrump and suit evaluations, as they are quite different. We can also examine offense and defense, (which is fine, but offense is the most interesting, from a bidding point of view.)
Now, let's say we have a valuation v which satisfies the property that
v(south)+v(north) is a good estimate of the number of
tricks available to the north and south pair. What more can we say
about this?
Well, if Tr(south) is the number of tricks south expects to take, total, on average, just looking at his hand, then we'd expect:
Tr(south)=Average(north,v(south)+v(north)) =
v(south) + Average(v(north))
where the average is taken over all north hands which are disjoint
from the south hand.
But Tr is just the values from my prior article.
Let's say we restrict ourselves to valuations v
which have the following form:
v(hand)=vp(pattern(hand)) +
vh(spades(hand)) + vh(hearts(hand)) +
vh(diamonds(hand)) + vh(clubs(hand))
So we assign a value vp() for each pattern from "13-0-0-0" to
"4-3-3-3."
We also assign values vh() to each suit holding, from void to AKQJT to 13-card suits.
If v is of this form - what I called in my previous article a shape-adjusted holding evaluators - then we get that the Tr() function also satisfies the rule:
Tr(hand)=Trp(pattern(hand)) +
Trh(spades(hand)) + Trh(hearts(hand)) +
Trh(diamonds(hand)) + Trh(clubs(hand))
where
Trp(pattern(hand))= vp(pattern(hand))+Average(vp(pattern(pard))) Trh(holding) = vh(holding) + Average(vh(pardHolding))
Determining v from Tr
The data from the original article is just these Trp and Trh
values - that is, we have already values for these functions. Can we
then work backwards and construct vp() and vh()?
Yes, we can.
Think of the values of vp() and Trp() as vectors:
Then the Avg(vp(partner)) can be expressed as:VP = [ vp(4-3-3-3), vp(4-4-3-2), vp(4-4-4-1), ... , vp(13-0-0-0)] TRP = [ Trp(4-3-3-3), Trp(4-4-3-2), Trp(4-4-4-1), ... , Trp(13-0-0-0)]
whereVP * A
A is a relatively simple-to-determine 39x39
probability array (since there are 39 hand patterns.)
Then TRP = VP + VP*A = VP * (I+A) and determining VP
amounts to inverting (I+A). If we invert this matrix,
we get:
For holdings, we can do a similar computation. If we have 8192 holdings, we have to invert an 8192x8192 matrix, which we don't want to do. But if, instead, we treat cards smaller than 9 as "spots," then we get vectors of size 512, and the Perl package I used to invert matrices was able to invert the 512x512 matrix in a few hours.VP = TRP * (I+A)^(-1).
[Note: That was on a 2000 model computer. A 2008 recompute of this inverse took under four minutes.]
The resulting values for v(), for offense, defense,
notrump and suit, can be found in:
patterns.new.txt and
holdings.new.txt.
Those are new values calculated in 2008 from a larger double-dummy dataset. The original data can be seen in patterns.txt and holdings.txt. There are tiny differences - a couple hundredths of a trick here and there, but big differences in the value of wild shapes and very long holdings (9+ card suits.)
Notes on the values
You'll notice that the suit offense value given for the 13-0-0-0 shape is only about 7.68, although you are certain of 13 tricks. Why is that? Because partner always has a void in your suit, so his (shape) value is going to be 5.116, minimum. So the 7.68 automatically takes into account partner's known void, avoiding "double-counting."
Similarly for any long suits, this evaluator takes into account that partner might be holding shortness in the suit and be counting that shortness as a value.
Someone emailed me a pair of hands and asked for an evaluation of the notrump prospects of the two hands:
My evaluator comes up with slightly more than 13(!) But, since the data driving this evaluator is double-dummy data, that's not too surprising, because double-dummy, I can finesse both black queens, so I can take four spades, four clubs, three diamonds and two hearts. That's the risk of using double-dummy data. Even without the nice nines and tens, my evaluator says these two hands are worth 12.5 tricks. That seems a bit rich - how often can I make 12 tricks, even double dummy?KJT Axx KQx AJTx A9xx Kxx Axx K9x
Still, Binky Points are surprisingly accurate at guessing the appropriate level for a deal.
Suit Values: Losing Tricks, Sort Of
In suit contracts, the maximum and minimum values for any suit length give us a sense of the total value of cards:
Worst Best Difference
x A 1.33 Tricks
xx AK 2.42 Tricks
xxx AKQ 3.06 Tricks
xxxx AKQJ 3.30 Tricks
xxxxx AKQJT 3.39 Tricks
xxxxxx AKQJT9 3.38 Tricks
xxxxxxx AKQJT9x 3.17 Tricks
This table is interesting, but I'm not sure what to make of it. It looks somewhat like losers, but the difference in tricks is a bit more than you'd expect.
Another table for suit contracts:
Worst Ace Difference
x A 1.33 Tricks
xx Ax 1.53 Tricks
xxx Axx 1.61 Tricks
xxxx Axxx 1.61 Tricks
xxxxx Axxxx 1.59 Tricks
xxxxxx Axxxxx 1.51 Tricks
Ace with other honors:
Lower Higher Difference
Qx AQ 1.64 Tricks
Qxx AQx 1.70 Tricks
Qxxx AQxx 1.69 Tricks
Qxxxx AQxxx 1.68 Tricks
Qxxxxx AQxxxx 1.63 Tricks
Kx AK 1.47 Tricks
Kxx AKx 1.57 Tricks
Kxxx AKxx 1.59 Tricks
Kxxxx AKxxx 1.60 Tricks
Kxxxxx AKxxxx 1.58 Tricks
KQx AKQ 1.44 Tricks
KQxx AKQx 1.51 Tricks
KQxxx AKQxx 1.55 Tricks
KQxxxx AKQxxx 1.53 Tricks
KJx AKJ 1.48 Tricks
KJxx AKJx 1.52 Tricks
KJxxx AKJxx 1.56 Tricks
KJxxxx AKJxxx 1.55 Tricks
QJx AQJ 1.66 Tricks
QJxx AQJx 1.70 Tricks
QJxxx AQJxx 1.67 Tricks
QJxxxx AQJxxx 1.60 Tricks
KTx AKT 1.50 Tricks
KTxx AKTx 1.56 Tricks
KTxxx AKTxx 1.58 Tricks
KTxxxx AKTxxx 1.57 Tricks
So, we see the value of an ace is highly variable, anywhere from 1.33 (in the case of a stiff) to 1.7 tricks. If we look above at teh difference between xxxx and AKQJ, we see that ten points is roughly 10/3 a trick, or in other words, one standard Work Point (Ace=4, King=3, Queen=2, Jack=1) is roughly a third of a trick.
Corresponding to Work Point
As noted above, a standard Work Point is worth about a third of a trick in suit contract.
In notrump, the value of a standard Work Point is worth very close to a half a trick.
This correspondence is actually quite nice - it can be used to come up with a different definition of 'point' that is close to Work Point Count, but more discriminating.