Jump to content

Artificial intelligence for bridge bidding


Recommended Posts

I think seven bananas and 6-9 hcp would do. Of course most pairs have more complex criteria but for opps bidding it doesn't have to be 100% realistic. If you were to optimize responses to the preempt it would be different.

 

Good idea! I can use some rough criteria (like HCP and length) to quickly filter which deals start with a preemptive bid. Because generating random deals is fast and filtering by simple criteria too (the "slow" part is getting the DD results, which I don't need for the rest of deals), I may develop a fast way to learn something that's difficult for human players.

Link to comment
Share on other sites

DD results do not represent true bridge scores and are already an overfit with too little variance that do not represent real bridge bidding and play

One simple way to (partially) address this is to use the DD result given the most "natural" lead, or given a random choice between all natural leads, instead of (as one would normally do) use DD given the "best" (i.e. most successful) lead.

 

For low-level contracts, this would probably give results closer to real bridge, as declarer's advantage is mostly due to defenders not finding the best lead. It will also give an award to bidding systems that avoid leaking info to opps and thereby make it more difficult to find the best lead.

 

For slam hands, it is different because here declarer in practice tend to make fewer tricks than he should according to DD. So using blind leads would make the bias worse and cause the AI to bid too many slams.

 

So maybe the way forward is to use calibrated DD results. You can probably find all the calibration factors you need on Richard Pavlicek's website, but otherwise it would be relatively easy to construct them using either BrBr, the Vugraph archive, or Phil King's database.

Link to comment
Share on other sites

I have an idea which I didn't explore in the other thread.

 

Thinning of a random bidding system:

Start by clustering the two hands the two partners can have. For example, in the follow up to (3)-3NT problem, overcaller could have eight different hand types: with 3-4 hearts or less, with 19 HCPs or less, and balanced vs a long minor. Similarly, advancer's hands could be divided into some 20 clusters.

Then you decide that auction terminations are only in three categories: 3NT, 4 and 4NT+. You assign a score (expected IMP loss) to each combination of hands/contracts, i.e. 8*20*3=480 different scores.

Now you start by a random bidding system: as response to 3NT, advancer will for each of the 8 clusters select each of the five possible actions (pass, 4, 4, 4, bypass) with 20% probability.

And finally you iteratively remove calls from the system. For example, while the initial system would let an opener who holds a balanced maximum respond to a 4 advance as 33% pass, 33% 4 and 33% bypass, you could remove the pass, thus changing it to 50% 4 and 50% bypass. Which call to remove would be chosen on the basis of the improvement in total expected IMPs of the system.

Repeat until the system has become deterministic.

Link to comment
Share on other sites

Hello!

 

I am a student of Computer Science at the Charles University in Prague. I am also an enthusiastic bridge player. You can probably guess where this combination of interests leads to ...

 

My master thesis deals with an artificial intelligence for bridge. Specifically, my goal is to let my computer design its own bidding system without any prior knowledge. I perform experiments with evolutionary algorithms (involving genetic programming and learning classifier systems) for this purpose.

 

Would you be interested in watching my progress? I think that posting information about my research could increase my motivation to progress faster.

I would love to see your progress!

Link to comment
Share on other sites

Hello!

 

I am a student of Computer Science at the Charles University in Prague. I am also an enthusiastic bridge player. You can probably guess where this combination of interests leads to ...

 

My master thesis deals with an artificial intelligence for bridge. Specifically, my goal is to let my computer design its own bidding system without any prior knowledge. I perform experiments with evolutionary algorithms (involving genetic programming and learning classifier systems) for this purpose.

 

Would you be interested in watching my progress? I think that posting information about my research could increase my motivation to progress faster.

 

 

I think you have a very interesting project and I'd love to be kept informed of your progress.

 

Good luck!

Link to comment
Share on other sites

I had a few thoughts about this. What are you doing about position and vulnerability? It seems to me there can be 16 systems depending on these. You surely want to have different agreements based on seat and vul to be optimal.

 

Is the plan to make a system your bot can only play with itself? Is the plan to make the best system you can play with another bot? Or is the plan to make the best system you can with a human with a decent but not infinite memory? If the latter you would need to describe the system bids in some form a human can understand which would be very different from the others.

Link to comment
Share on other sites

I had a few thoughts about this. What are you doing about position and vulnerability? It seems to me there can be 16 systems depending on these. You surely want to have different agreements based on seat and vul to be optimal.

Once the algorithm is in place for a particular setting (say 1st seat red/red), it would be easy to run it again under other settings.

 

As for position, there are really only two: first and second seat. This is because a 3rd seat opening should not be seen as an opening but rather as a response to the first seat pass.

 

But maybe the objective is, for simplicity, to make a single system that applies in all seats and vulnerabilities. In that case, one could optimize it for average vulnerability, i.e. a 500 points game bonus and 75 points for an undoubled undertrick.

 

A system that is optimized to both 1st and 2nd seat is slightly more complicated. One could include both 1st and 2nd seat positions in the training set but obviously a response to a 1st seat pass is very different from a response to a 2nd seat pass so this isn't really good.

 

I think I would just optimize it to 1st seat. There are a lot of complexities in bridge (legality of the system, vulnerability, risk willingness, opps' style etc) which are not very interesting from an AI research point of view. And the problem is still hugely complex even if it is simplified a little bit :)

Link to comment
Share on other sites

I would start with something like uncontested 2NT auctions, i.e. fixing the 2NT opening bid to some standard-ish agreement.

 

So you would choose opening bid rules manually and then let the AI develop responses and rebids after each one individually?

 

Pro: opening bids could be made disjoint.

Cons: my selection of opening bids may be unsuitable for AI (moreover, having disjoint openings isn't a big deal, because the system will develop responses and other bids that cannot be disjoint, since such a test would be NP-hard; therefore, the system will have to deal with "bid ambiguity" anyways).

Link to comment
Share on other sites

Once the algorithm is in place for a particular setting (say 1st seat red/red), it would be easy to run it again under other settings.

 

As for position, there are really only two: first and second seat. This is because a 3rd seat opening should not be seen as an opening but rather as a response to the first seat pass.

 

But maybe the objective is, for simplicity, to make a single system that applies in all seats and vulnerabilities. In that case, one could optimize it for average vulnerability, i.e. a 500 points game bonus and 75 points for an undoubled undertrick.

 

A system that is optimized to both 1st and 2nd seat is slightly more complicated. One could include both 1st and 2nd seat positions in the training set but obviously a response to a 1st seat pass is very different from a response to a 2nd seat pass so this isn't really good.

 

I think I would just optimize it to 1st seat. There are a lot of complexities in bridge (legality of the system, vulnerability, risk willingness, opps' style etc) which are not very interesting from an AI research point of view. And the problem is still hugely complex even if it is simplified a little bit :)

 

Good ideas! I agree with everything you say.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...