## Bridge Programming

This article appeared in the 1997 ACBL Bridge Bulletin, as part of my review of bridge programs, reprinted here (slightly modified) with permission of the ACBL.

Programming a computer to play bridge is like teaching a very strange beginner. This beginner has no understanding and will never understand, but it follows your instructions very well, sometimes too well when you misspell the instructions.

The programmer defines certain bids very explicitly. He/she may define a weak two-bid as 5-11 high-card points, six-card suit, with no further clarification. The program will go down the list of possible bids and see that a weak 2H satisfies the conditions. When the program has 9 HCP and a six-card heart suit, it will open 2H.

Some programs have quite a huge list of rigidly defined bid sequences. For example, Micro Bridge's 3D bid in this auction

```  W   N   E   S
1C  1H  1S  3D```

shows 12 or more HCP, six or more diamonds headed by K-Q-10 or better, zero to two hearts, and is non-forcing. This program has many thousands of specific bid sequences.

Other programs rely more on general principles (such as rebidding a six-card suit under certain circumstances). Let's say that we bid 1H-3H; 4C (no interfering bids), and my partner, the program, has never been told what to do. The program is completely confused. Well, the programmer has instructed it to return to the agreed trump suit (if there is one) when confused. It bids 4H. So, you see, the program can handle vague situations, too.

In card play, the program may know that the 7 is the high unseen card, while I don't remember seeing the 9. I don't know that my 8 is good. The program does know. So the program has certain advantages in card play, an exact memory of every card played.

Card play, however, presents two very difficult problems for the program: (1) some situations require reasoning, and (2) many declarer situations require planning right down to the 13th trick. A program can easily plan right down to the 13th trick every time, but it takes too long. Pretend that the program is following suit in hearts, and that diamonds is an unimportant side suit. Diamonds may be unimportant, but the program is doing such busy work as, "What if West has D43 and East has the D2? Or what if West has D42 and East has the D3? Or what if West has D32 and East has the D4?" A human realizes that, in this hypothetical situation, it doesn't matter who has which low diamonds. A human uses reasoning and shortcuts naturally. A computer does so with difficulty.

It wasn't very long ago that chess programs were ridiculed for beating only some humans. Well, a lot of work and money (and faster computers) raised them to their current level, where they beat most humans. The bridge programs are getting there.