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:
where the average is taken over all north hands which are disjoint from the south hand.Tr(south)=Average(north,v(south)+v(north)) = v(south) + Average(v(north))
But Tr
is just the values from my prior article.
Let's say we restrict ourselves to valuations v
which have the following form:
So we assign a value vp() for each pattern from "13-0-0-0" to "4-3-3-3."v(hand)=vp(pattern(hand)) + vh(spades(hand)) + vh(hearts(hand)) + vh(diamonds(hand)) + vh(clubs(hand))
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:
whereTr(hand)=Trp(pattern(hand)) + Trh(spades(hand)) + Trh(hearts(hand)) + Trh(diamonds(hand)) + Trh(clubs(hand))
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.