Algorithms to Live By: The Computer Science of Human Decisions

Contrary to popular belief, computers do not always grind through complex calculation to get the perfect answers. The most effective algorithms do what makes the most sense in the least amount of time: they make assumptions, show a bias toward simpler solutions, trade off the costs of error against the costs of delay, and take chances. They implement the tradeoffs that we (humans) have to make between time, capacity, and certainty.

This book examines several problems from a computer science lens:

  1. Optimal Stopping: How to balance evaluating new options against choosing the best one seen so far
  2. Explore vs. Exploit: How to balance the exploration of new things against enjoying tried and tested options
  3. Sorting: How to balance between sorting your materials and searching for them in future
  4. Caching: How to organise items for optimal retrieval
  5. Scheduling: How to prioritise your tasks by optimising task importance, duration, and deadlines
  6. Bayes’ Rule: How to make probabilistic predictions about things
  7. Overfitting: How to balance explaining what has happened against making predictions
  8. Relaxing Constraints: How to solve problems by manipulating constraints
  9. Randomness: How to use simple random tests to solve problems instead of finding closed-ended solutions

The book ends with a note on computational kindness, which is about framing issues in terms that make the underlying computational problem easier and not passing the cognitive buck. The most classic example: deciding where to eat. You can help by narrowing the number options down to a few, and let the group eliminate the unwanted ones.