Life’s Decisions as Computational Problems

I recently finished my most recent non-fiction read, the excellent Algorithms to Live By – The Computer Science of Human Decisions, by Brian Christian and Tom Griffiths.

The overall idea of the book is clever: take a series of human decisions, map them to computational problems, investigate the historic and current computer science on those problems, and then discuss the findings. Extrapolate the findings onto other related problems, and hopefully learn something.

For example, the book opens by discussing apartment hunting, and maps the process of finding an apartment in San Francisco to a series of problems known as “Optimal Stopping.” After discussing (in tones which should be comfortable to most of my readers) the computational science of this family of problems, the authors discuss other optimal stopping problems like serial monogamy and finding a parking spot.

What can the start of the art as relates to optimal stopping teach us about those problems? How should we think about those problems with this in mind?

Don’t get me wrong — this is not a book about how to approach your decisions like a robot, or even Mr. Spock. The goal isn’t to take humanity out of the equation, it’s to provide some information to factor into the process, some formality into how to think about some of the problems so we understand what we’re actually doing when we pick a parking spot, for example.

The same sort of treatment is given to other families of problems, including scheduling, sorting, and caching. Problem-solving strategies like relaxation (in the computational sense), randomness, and game theory are also given attention, again, looking at real-world examples.

When I set out to read this book, I knew all of the above, and it was already enough to get me interested. What I didn’t expect was the emotional depth of some of the discussions. How does a discussion of the explore-exploit tradeoff as relates to picking a new restaurant versus visiting an old favorite relate to our own mortality and sense of it? How does the way we frame questions and present decisions represent cognitive selfishness or generosity? When is “good enough,” in fact, good enough?

Math and science junkies should be warned that this isn’t a book that breaks down the equations and proofs. The authors will tell you that computer science has proven specific things, but doesn’t explain the proofs. This makes the book much more readable, and honestly if you’re the audience who could understand the proofs it’s probably worth your while to review the bibliography and dive into the sources yourself.

As far as brain candy goes, I highly recommend this one. It’ll get you thinking in a few new directions. It might even rekindle your love of computer science.