This is an unusually challenging sim to automate because of the interesting superaccept criteria.
Note that cyberyeti specified returning to hearts with 4333 after 2NT-3D-3H, and superaccepting with 3433 after 2NT-3D, neither of which is everyone's cup of tea, but the sim is as requested. (And the sim was run before yeti's post below with further details.)
I can mostly confirm BillPatch's findings with a larger sample size. Given three strategies
1. Pass 2NT
2. Transfer then pass (ends in 3H or 4H)
3. Transfer then rebid 3NT (ends in 3NT or 4H),
and a sample of 1,000 hands,
Strategy 1 scored 32.9±3% of the matchpoints vs. strategy 2;
Strategy 1 scored 45.3±3% of the matchpoints vs. strategy 3;
Strategy 2 scored 51.7±3% of the matchpoints vs. strategy 3.
The difference between 2 and 3 was too small to be shown conclusively with only 1,000 hands.
Edited to add: with 10,000 hands, Strategy 2 is the winner, 51.9±1% against strategy 3.
I would not be surprised to see the winner between 2 and 3 depend on how opener chooses to bid his 4333s.
***
For those of you curious about the Andrews Deal 3.1 program, here is the script I used to do the sim:
source lib/score2.tcl
source format/none
north is {A73 98652 93 T62}
shapecond balanced5S {$s==5&&($h*$d*$c==18)}
shapecond balanced5H {$h==5&&($s*$d*$c==18)}
shapecond balanced5D {$d==5&&($s*$h*$c==18)}
shapecond balanced5C {$c==5&&($s*$h*$d==18)}
shapecond ntopener { [balanced eval $s $h $d $c] || [balanced5S eval $s $h $d $c] || [balanced5H eval $s $h $d $c] }
holdingProc hons {A K Q} {return $A + $K + $Q}
sdev 1v2
sdev 1v3
sdev 2v3
main {
set h [hcp south]
reject if {$h<20} {$h>21}
reject unless [ntopener south]
# final contracts: 2NT=1, 3H=2, 3NT=3, 4H=4
# South always continues after xfer-then-3NT with 3 hearts
set hs [hearts south]
if {$hs>=3} {set final3 4} {set final3 3}
# South superaccepts with 4 hearts, or Hxx hearts + HHxxx another
if {$hs>=4} {set final2 4} {
if {$hs==3 && [hons south hearts]>=1 && (
[balanced5S south] && [hons south spades]>=2 ||
[balanced5D south] && [hons south diamonds]>=2 ||
[balanced5C south] && [hons south clubs]>=2 )
} {set final2 4} {set final2 2} }
set th [deal::tricks south hearts]
set tn [deal::tricks south notrump]
set sc1 [score {2 notrump} nonvul $tn]
if {$final2 == 2} {set sc2 [score {3 hearts} nonvul $th]} {set sc2 [score {4 hearts} nonvul $th]}
if {$final3 == 3} {set sc3 [score {3 notrump} nonvul $tn]} {set sc3 [score {4 hearts} nonvul $th]}
if {$sc1 < $sc2} {1v2 add 0} {if {$sc1 == $sc2} {1v2 add 50} {1v2 add 100} }
if {$sc1 < $sc3} {1v3 add 0} {if {$sc1 == $sc3} {1v3 add 50} {1v3 add 100} }
if {$sc2 < $sc3} {2v3 add 0} {if {$sc2 == $sc3} {2v3 add 50} {2v3 add 100} }
{accept}
}
deal_finished {
set a1v2 [1v2 average]
set a1v3 [1v3 average]
set a2v3 [2v3 average]
puts "$a1v2; $a1v3; $a2v3"
}
This post has been edited by Siegmund: 2013-June-03, 16:06