It's been a while since we have discussed AI-generated bidding systems. I am currently toying with a fairly simple idea: Assume that opps aren't going to interfere (ok, we will relax that assumption at some point but walk before you run blah blah. Also, for optimizing sequences that take place after both opps have passed it may be a reasonable simplification). We know that the optimal relay system allocates F(i) hand types to the i'th most expensive bid where F is the Fibonacci sequence. But then you have to think about relay breaks and captaincy appointment so I prefer to optimize the system for 2-way information exchange. So the proportion of hand types allocated to the bids are 1/2, 1/4, 1/8 etc. This is nice because we can then just organize the hand types in a balanced binary tree using hierarchical clustering. So in 1st seat, for example, it could be Pass = Left daughter 1♣ = Right daughter of right daughter 1♦ = Right daughter of left daughter of right daughter etc. We have some decisions to make: - When to branch left and when to branch right? In a non-GF situation maybe we should allocate bids so as to allow partner to pass as often as possible, especially when we are in danger of coming too high. But this is difficult to formalize in a way that can be implemented efficiently so I thought that a simple approximation would be to go low with the subtree that minimizes the expectation of PAR^p, where p might be 0.5 or thereabouts - Criteria for passing In general we should pass on some hands where the last bid may not be the optimal contract (when in a hole, stop digging). I am not sure how to formalize it. For now, I think I will just tell it to pass whenever the expected loss relative to PAR is less than say 1 IMP. Maybe the expectation of LostIMP^q where q is 2 or thereabouts? - Distance metric for clustering Here I will use the same metric that I used in my previous attempts (where I used an induction algorithm, i.e. top-down rather than the bottom-up approach of hierarchical clustering): the distance between two hands is the expected IMP loss if partner has to place the contract without being able to tell the two hands apart. - Aggregation of distances to produce subtree-distances There's mean and median and minimax etc. I always just use whatever the software gives me by default, but if there's someone here who is into machine learning maybe they can suggest something more intelligent? Extending the "partner-can't-tell-them-apart" definition to subtrees would be ideal but probably too computationally demanding. - Presentation of the system I have generated 1800 clusters of hands a priori which means that in 1st seat, pass will be defined as (either of 900 hand types), 1♣ as (either of 450 hand types) etc. It would be nice to try to find natural-language summaries of those hand type clusters, such as "unbalanced without a 6-card major, 10-16 points" or whatever. Anybody knows of a package (preferably for R or C++) that can do something like that? - Benchmarking Csaba has a script that can bid and play hands using GIB so that would be a reasonable comparator. Any thoughts?