Thanks for running this case, this was another good check. I have committed and released a fix to my code that fixed some base case recursion issues that made these "small" shoes tricky for me. The update is at
https://sites.google.com/site/erfarmer/downloads.
For reference if you are wanting to use it, following is an example snapshot of my clunky console strategy calculator that reproduces the above results for SPL3:
Code:
Blackjack Basic Strategy Calculator version 6.3
Copyright (C) 2011 Eric Farmer
Thanks to London Colin for many improvements and bug fixes.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to
redistribute it under certain conditions; see
gpl.txt for details.
Enter number of decks, or 0 to enter shoe: 0
Enter number of cards of each rank (1-10): 0 4 4 2 0 0 2 0 0 7
Enter 'Y' or 'y' if dealer hits soft 17: n
Enter 'Y' or 'y' if doubling down is allowed on any total: y
Enter 'Y' or 'y' if doubling down is allowed on soft hands: y
Enter 'Y' or 'y' if doubling down is allowed on any number of cards: n
Enter 'Y' or 'y' if doubling down is allowed after splitting pairs: y
Enter 'Y' or 'y' if resplitting pairs is allowed: y
Enter 'Y' or 'y' if resplitting aces is allowed: n
Enter 'Y' or 'y' if CDZ- (vs. CDP) post-split strategy is used: y
Enter 'Y' or 'y' if late surrender is allowed: n
Enter blackjack payoff (normally 1.5): 1.5
100% complete...
Enter output filename: strategy.txt
Enter dealer up card and player hand (Ctrl-C to exit): 7 2 2 2
Stand E(X) = -61.639194139%
Hit E(X) = -13.266733267%
Double E(X) = -123.278388278%
Split E(X) = -76.210220335%
This has been a pretty fun and interesting problem. I actually went looking for small shoes for the opposite reason: to find a shoe that was (1) "well-behaved" enough to have
no post-split strategy variations, so that we could all agree on results with our different options for what we compute; and (2) "small" enough that we could work out a lot of the EVs by hand if necessary as a sanity check.
I think I found one, and it created some very interesting behavior. Following is a tabulation of our various CA results for split hands for the following game (note that k_c and I seem to agree across the board here, using his console executable; k_c, please correct me if I am wrong):
Shoe(2,0,0,0,0,2,0,0,0,48), S17, DAS, SPL3, CDZ-
Code:
Overall EV:
Eric ICNT MGP
-------------------------------------------------------------------
40.933665774% --- 41.0631329454859%
A-A vs. 6:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = 100.000000000% 1.0 Unavail
Hit E(X) = 100.000000000% 1.0 Unavail
Double E(X) = 200.000000000% 2.0 Unavail
Split E(X) = 200.000000000% 4.0 2.0
A-A vs. 10:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = -91.836734694% -0.918367346939 -0.9183673469388
Hit E(X) = -91.836734694% -0.918367346939 -0.9183673469388
Double E(X) = -183.673469388% -1.83673469388 -1.8367346938776
Split E(X) = 184.013605442% 3.44557823129 1.8401360544218
6-6 vs. A:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = 100.000000000% -0.959183673469 1.0
Hit E(X) = -100.000000000% -1.0 -1.0
Double E(X) = -200.000000000% -2.0 -2.0
Split E(X) = 200.000000000% -1.91836734694 NaN
6-6 vs. 10:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = -100.000000000% -1.0 -1.0
Hit E(X) = -100.000000000% -1.0 -1.0
Double E(X) = -200.000000000% -2.0 -2.0
Split E(X) = -200.000000000% -2.0 -2.0
10-10 vs. A:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = 100.000000000% -0.877551020408 1.0
Hit E(X) = -97.222222222% -0.998299319728 -0.9722222222222
Double E(X) = -194.444444444% -1.99659863946 -1.9444444444444
Split E(X) = 390.425531915% -1.94326241135 3.9042553191489
10-10 vs. 6:
Eric ICNT MGP
-------------------------------------------------------------------
Stand E(X) = 100.000000000% 1.0 1.0
Hit E(X) = -91.836734694% -0.918367346939 -0.9183673469388
Double E(X) = -183.673469388% -1.83673469388 -1.8367346938776
Split E(X) = 421.891735418% 4.66190614981 4.2189173541757
There is a lot going on here. First, I suspect that MGP's difference in overall EV is due to the missing EVs for some hands, but I'm not sure. Also, my hope/guess is that there really are no post-split strategy variations here, but ICNT's split value for 10-10 vs. 6 makes me wonder. Can you shed any light on what lies under the hood of this value?
Finally, there is one other funky property of this shoe, that I think in some situations could make CDZ- potentially ambiguous! Consider the hand A-6 vs. dealer 10. In this shoe, E(stand) and E(hit) are both equal to -2209/2304 or approximately -0.958767361. (I verified this exact value in Mathematica.) This hand actually popped up in my analysis as the
single potential post-split strategy variation, on the first half of splitting 6s. My CA thought pre-split strategy was to hit-- when in reality it is a toss-up and either is optimal-- but post-split was to stand. (The difference was an ulp, to be expected since the stand and hit values are computed in very different ways. FWIW, MGP's CA reverses this pre-split strategy, opting to stand instead of hit.)
Fortunately, in this particular case, post-split strategy was also a toss-up, since E(stand) and E(hit) are both -1, so it didn't matter. But it seems very possible that there exists some other shoe like this one, where pre-split EVs are the same (so pre-split strategy is not unique)... but post-split EVs
differ depending on the arbitrary choice of pre-split strategy to use! I'll have to think about this some more...