I recently revisited an idea I’ve been playing with for some time - the wedding seating optimizer. The idea is that everyone spends an inordinate amount of time planning the seating chart for their wedding - Aunt Bea and Uncle Joe are divorced and can’t sit together, we want our best college friends to meet, etc. - and couldn’t a computer do this for you instead? At the core of the wedding seating optimizer is an equation that calculates how good or bad a particular seating arrangement is, which I’ll call the cost function. Like golf scores, lower cost function scores are better. The program implements an algorithm that seeks to minimize the cost function with an optimum arrangement of guests.
To test the wedding seating optimizer, I created a fake wedding with 100 guests, added the aforementioned Aunt Bea and Uncle Joe to the mix, and started the thing running. I set out 10 tables, and I got the following results:
Table Number of Guests
1 99
2 1
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
Oops.
What happened here? Quite simply, I neglected to incorporate any information about the optimum number of guests per table into my cost function. And since everyone at the wedding (save for Aunt Bea and Uncle Joe) gets along, we ended up with one big table (and Uncle Joe crying alone over his wedding cake). More generally, the problem was a case of “Too Much of a Good Thing.” When I first wrote an equation for the cost function, it never occurred to my limited human brain that one could try and seat so many people around a single table. I was limited by my mental image of a wedding table with 8-10 people around it, and I assumed from that vantage point, that adding one more friend to a table of college buddies would be a good thing. Clearly, the computer is not so mentally limited (or, if you prefer, is too stupid to know that 99 people can’t sit at a single table), and so it found the best possible solution to the seating problem I laid out.
“Too Much of a Good Thing” is a common and insidious problem in any numerical optimization scheme, and arises simply because the cost functions we propose are frequently too simplistic. It’s so prevalant in fact, that I would propose the following law:
If you fail to account for “Too Much of a Good Thing”, you will inevitably receive “Too Much of a Good Thing”.
More importantly, “Too Much of a Good Thing” is also the cause of many real life problems, frequently in the form of bubbles. Economists are fond of calling this “The Law of Unintended Consequences”. Take for example, the recent housing boom and bust. It’s tough to spell out society’s housing cost function, since the cost function would incorporate our collective opinions on housing. But, a simple version of our cost function might be described by the conventional wisdom “Home Ownership is a sound investment promotes positive social effects”. The U.S. Government promotes home ownership though tax breaks. Social norms promote home ownership as a positive good. And in the down stock market of 2000-2002, a real asset such as a home seemed like a good idea. The state of the U.S. in 2001-2005 conspired to create a situation in which “Too Much of a Good Thing” (in this case, home ownership) was ignored, and a bubble was the result.