This is motivated by the recent long thread that was originally about testing CA algorithm correctness-- originally by verifying zero average EOR... but eventually we took a detour to computing optimal split EVs as an alternative "upper bound test": if a CA produces a value greater than that achieved by brute-force perfect play, then it can't possibly be correct under any assumptions about strategy complexity.
The difficulty is that computing such "perfect play" (i.e., maximum possible) expected values for splitting is generally very expensive. We managed the recent discussion by focusing on very small depleted shoes with just a couple of card ranks; k_c has provided software that can evaluate SPL1 values in just seconds to minutes, while iCountNTrack has software that supports resplits as well.
To try to further extend our space of feasible analysis, I wrote a program to compute maximum possible split EVs, still in seconds for SPL1, but also in "just" minutes for SPL2 and SPL3 as well. The C++ source code is on GitHub, along with a pre-built Windows executable blackjack_split.exe in the latest release. I've written a short article on my blog describing implementation details.
Why might we care about this? Recall the analysis from several years ago evaluating SCORE across the spectrum of sophistication of player betting and playing strategy, ranging from the simplest total-dependent fixed basic strategy player at one end, to the "optimal, bring a laptop to the table" player at the other end.
But that "optimal" player was using CDZ- strategy, since that is what is/was computationally feasible for evaluating the thousands of simulated shoes in the analysis. But that isn't truly "perfect play" in the sense of maximizing the possible expected return. How sub-optimal is it? If we're bring a hypothetical laptop to the table anyway, then how much advantage are we leaving on the table by not computing truly EV-maximizing strategy?
Following are some example split EVs (in fraction of initial wager) for 1D, S17, DOA, NDAS, SPL3. The first "OPT" table contains the newly computed optimal values, while the second, for comparison, contains CDZ- values representative of that past SCORE analysis.
Code:==================================================================================================================================================================================================================================== 1D, S17, DOA, NDAS, SPL3, OPT | Dealer up card Pair | 2 3 4 5 6 7 8 9 T A -----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2-2 | -0.12731327461240569 -0.06731019360527625 0.0087330117071888307 0.13652044928739038 0.13768798528514201 -0.049315002984689875 -0.21190454316571589 -0.38122023704989311 -0.50255734773248062 -0.61464970267534458 3-3 | -0.19318563629688118 -0.12441600311987655 0.015778629999961557 0.12791103774266827 0.12217131923338384 -0.10694234748364158 -0.26361085030654557 -0.41570182324569077 -0.54391929767942482 -0.64394112951019133 4-4 | -0.23493247667735509 -0.1206370903640397 -0.013395857124847144 0.094741846106706246 0.083444913574413221 -0.22081240332913163 -0.3418082428186367 -0.48814498547138774 -0.60495120625027488 -0.69510367184729394 5-5 | -0.22905355382249015 -0.14409121743587841 -0.038239245870428443 0.06811715183228835 0.055851329454062487 -0.29764402338584556 -0.44735853432229311 -0.60049476943714997 -0.69678845102909759 -0.76313200859584351 6-6 | -0.21157486017258931 -0.12144970378444321 -0.014073802832270575 0.085134021344917987 -0.0038992953078225644 -0.26751870968301378 -0.41251515655243737 -0.56908727506807166 -0.67703785743455092 -0.75591360816357334 7-7 | -0.14873295085672986 -0.063462123779702381 0.034107274188655778 0.055776863459996863 0.072758015082720881 -0.11030609702311869 -0.42207407649963452 -0.56381157310756069 -0.65354885304539456 -0.73518571315045211 8-8 | 0.045128998678136037 0.11096084478766208 0.13323104254871435 0.21837336041724606 0.26951283699734219 0.25159280874367501 -0.086925224939870566 -0.42615645609503905 -0.50180563227964692 -0.5453317096717446 9-9 | 0.17704885667658807 0.17580879829033808 0.2588213565968715 0.34973201289897327 0.36599920786349094 0.34057565610754925 0.19039113052141743 -0.10863147347842586 -0.32491952594157031 -0.37470891415372926 T-T | 0.31595096135271911 0.36607900821481326 0.42478479130737634 0.49830546079518145 0.52510690762664047 0.48227301277099821 0.35386413114253584 0.18381704634997303 -0.026022647269274436 -0.21532610008466624 A-A | 0.63924713264607214 0.6868416881450462 0.74246911512815439 0.80746553501633411 0.8319646426102727 0.6276495853643872 0.48637078169055392 0.3607810866349318 0.20811519238424928 -0.15070516782918142 ================================================================================================================================================================================================================================== 1D, S17, DOA, NDAS, SPL3, CDZ- | Dealer up card Pair | 2 3 4 5 6 7 8 9 T A -----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2-2 | -0.12931445970716204 -0.068618813839618528 0.0063215711015360519 0.13648927765382843 0.12681199250828923 -0.050855651039314019 -0.21834617353389765 -0.39594773644726194 -0.51775639589807398 -0.62438870325939566 3-3 | -0.20018179410829598 -0.12712943438577579 0.015778576780075281 0.12791103753057767 0.12217113576498841 -0.10823164361256125 -0.26546195865777805 -0.42462980388086446 -0.55634785696316225 -0.65071599994628226 4-4 | -0.25576241682421935 -0.13239585860670491 -0.017427876593697697 0.09080401040040674 0.076505621307971811 -0.25343883745279933 -0.36898301985560711 -0.51707499473329499 -0.63178130124554599 -0.71525578854871685 5-5 | -0.27035899308060563 -0.1772648844187503 -0.065368771196269049 0.05722109169076979 0.030293363670536821 -0.35223826141208464 -0.50869108989381506 -0.67185301199075231 -0.75703952124603435 -0.808325622036281 6-6 | -0.21236460735070015 -0.12162948975202717 -0.014073802832292792 0.085134021344917807 -0.0038992956154047177 -0.26786412855204106 -0.41861326291163969 -0.58483542757744078 -0.69838888595907922 -0.77007885965472822 7-7 | -0.15189635030306192 -0.063941323594190511 0.034107273409023989 0.055776850293461411 0.072757499209976415 -0.11031949483251607 -0.42227357145327449 -0.56885738375054895 -0.66634926728142962 -0.73857097928570969 8-8 | 0.043727194275322241 0.11072077572225238 0.13323049096070749 0.218373360417246 0.26951276688328069 0.25158364097599761 -0.08697051592264482 -0.42630090213098648 -0.50212194073579097 -0.54533343302674253 9-9 | 0.17293295230325983 0.17268715068416318 0.2587370917510543 0.34971860452960885 0.36594971593751413 0.33496879661903617 0.1902755580632351 -0.10882517875157402 -0.3364467800691287 -0.37479066525298377 T-T | 0.048114912608600457 0.12425292768197184 0.22481268990874989 0.32661782031578046 0.36357129401635141 0.25178252863011863 0.011765187564729484 -0.25583004271582221 -0.37222940139267474 -0.53910662600957027 A-A | 0.63924713264607236 0.68684168814504631 0.7424691151281545 0.80746553501633433 0.83196464261027259 0.62764958536438742 0.48637078169055409 0.3607810866349318 0.20811519238424928 -0.15070516782918114 =================================================================================================================================================================================================================================
Bookmarks