Book Summary: Algorithms to Live By
In this book, the writers argue that computer science, often viewed as a specialized field, actually holds valuable practical knowledge that can enhance our lives. Computers can perform some tasks very efficiently, and by using similar methods, we can also achieve this efficiency.
The authors believe this is true because both humans and computers face comparable challenges. Namely, both aim to use their limited resources (memory, attention, and time) in the best possible way. As a result, many computer algorithms, or sets of rules, can be useful if applied to our daily lives.
In this summary, I will cover all eleven of Christian and Griffith's "life algorithms," which I've grouped into four categories:
- Algorithms to aid in making better choices
- Algorithms to help arrange your life
- Algorithms to assist in tackling tough problems
- Algorithms that don't fit into the first three groups
Algorithm 1: When to stop looking for something better
Explore without committing during the first 37% of your options, then choose the next best option you find
This algorithm helps solve a challenge in math called the "optimal stopping problem." It asks: when should you commit to an option in front of you if you're unsure about future possibilities?
For instance, when searching for a new home, this algorithm recommends checking 37% of available options to increase the chance of finding the best place. After that, make an offer on the next place better than what you've seen so far. In practice, if you have a month to find a home, use 37% of the time (11 days) to explore and set a standard. After 11 days, purchase the next home better than the ones in your "standard" (the homes seen in the first 11 days).
This is known because finding a place to live is an example of an optimal stopping problem, which mathematicians and computer scientists have studied extensively. From choosing a restaurant to deciding on a life partner, our lives are full of complex problems that can't be solved just by putting in more effort.
Algorithm 2: How to optimize your life
To optimize your life, follow any opportunity with the potential to be the greatest
The authors depict life as a complex "multi-armed bandit" problem, a model used in machine learning by computer scientists. This classic problem in probability theory and decision-making involves an agent choosing between multiple actions or "arms" with different and uncertain reward outcomes. Each arm represents a decision or action, and the agent receives a reward based on that arm's distribution. The agent's challenge is to maximize its total reward over time, balancing the exploration of unknown arms to learn their reward distribution and exploiting known high-reward arms for the maximum possible reward.
The authors explain that the multi-armed bandit problem's optimal solutions are called "Upper Confidence Bound" algorithms, which suggest making decisions based on the best-case scenarios of your options. In practice, this means pursuing any opportunity in life that you think could offer the highest reward, even if it seems highly unlikely. This is because the only way to accurately evaluate the probability of a payout is to test it yourself and decide if it's worthwhile as you gather more information and insight. If you've tried something and found it's not worth your time, adjust accordingly and aim high elsewhere.
Algorithm 3: Making better predictions
To enhance your predictions, start by using your previous understanding of the situation to estimate the likelihood of an event, and then adjust based on the observed data
This approach, which involves using your prior knowledge to examine the evidence you have, is known as "Bayes's Rule."
For instance, if you want to estimate when you'll get a raise at work, you could start by asking a colleague how long it took them to receive a raise and then adjust the estimate considering your boss's perception of your performance.
Algorithm 4: The case for less-informed decisions
For better decision-making, take into account fewer details
Overfitting is a phenomenon in statistics and machine learning where a model becomes excessively trained on a specific dataset, capturing noise or irrelevant patterns in the data rather than the actual relationships between the features and target variable. Christian and Griffiths argue that, similarly, if you consider too many factors when making a decision, you'll "overfit," overvaluing the impact of unimportant information and undervaluing the aspects that truly matter. The authors suggest that the key to overcoming overfitting is to deliberately limit the amount of information you take into account when making decisions. Focus on one or two crucial factors and disregard everything else. For instance, you could choose a job based solely on how much you expect to enjoy the work.
Algorithm 5: How to schedule your time effectively
Your ideal scheduling algorithm depends on your objectives and priorities
Instead of providing a single algorithm for scheduling, the authors emphasize that computers use algorithms tailored to their specific needs to determine which tasks to prioritize. Similarly, they argue that the best way to schedule your time is closely tied to your goals and priorities.
Most of the time, your top priority is to finish tasks that yield the most value. The authors suggest assigning a "weight," a numerical measure of value, to each item on your to-do list. By dividing this weight by the time required to complete the task, you can easily calculate the value generated per hour of work. Then, you should focus on whatever task offers the most value per hour at any given time.
Another scheduling algorithm the authors recommend is "Shortest Processing Time," which advises you to work on the task that takes the least time to finish. The authors argue that you might choose this algorithm if you need motivation or if you feel stressed and overwhelmed by a large number of tasks.
Algorithm 6: Organizing your belongings
To access any collection effectively, categorize it based on usage frequency.
Computers efficiently search their extensive data stores by organizing frequently accessed items and checking these "caches" first. Similarly, Christian and Griffiths suggest "caching" your personal belongings by creating small stacks of your most frequently used clothes, books, and files within easy reach of where you'll need them.
Algorithm 7: Sorting like a computer
Use a "Bucket Sort" algorithm to efficiently arrange a set of items in a specific order
The authors suggest that we should apply the same sorting algorithms computers use for organizing files to effectively sort physical collections in our lives. The most efficient sorting strategy Christian and Griffiths recommend is dividing the collection into smaller categories first, then reordering individual items - a computer algorithm known as "Bucket Sort." This algorithm is based on the principle that sorting becomes more challenging with scale. Sorting a larger group takes considerably more time than sorting four smaller groups each one-fourth its size.
For instance, if your boss asked you to organize twenty years' worth of old archived meeting VHS tapes by date, you would use a Bucket Sort as follows: First, separate them into piles by year, then arrange the smaller piles by hand.
Algorithm 8: Tackling seemingly impossible problems
Strategically embracing imperfection is often the best way to solve problems that appear impossible to solve precisely
The world is incredibly complex, and many problems are virtually impossible to solve with exact precision. Even when experts utilize computers for precise calculations, they frequently sacrifice accuracy to save time. From this observation, the authors deduce that sometimes lowering your standard for success is necessary to keep making progress. In certain situations where finding the perfect solution is impossible, getting close to it is just as valuable. In other instances, the authors suggest employing the mathematical problem-solving technique of "constraint relaxation." By eliminating some constraints and solving a simpler version of the problem, you can spark new ideas to help tackle the original problem.
Algorithm 9: Using randomness to solve problems
To move past dead ends, act randomly
The authors describe how computers use the "hill-climbing" algorithm to solve problems. They compute a solution and then incrementally improve it by testing small adjustments. Humans naturally follow a similar process when developing problem-solving strategies. However, both computers and humans encounter the same issue with hill climbing: they eventually reach a "local maximum"—a solution that can't be improved by minor adjustments but is far from the best solution available.
Christian and Griffiths contend that the key to escaping local maxima is introducing a dose of irrational randomness. By making a few random, intentionally suboptimal decisions, you can uncover new solutions that were previously invisible, allowing you to break free from being stuck. Feeling stagnant and lacking direction in life? Try taking up a random new hobby or relocating to a random new town.
Algorithm 10: Using Game Theory
To prevent collective harm, design the rules of the game to create win-win scenarios
To avoid collective harm, design the rules of the game to establish win-win scenarios Christian and Griffiths elucidate that numerous systems in our society can be viewed as competitive games and can be analyzed using game theory. In game theory, a "Nash equilibrium" arises when every player adopts the best possible strategy available to them, stabilizing the outcome. According to the authors, it is the responsibility of policymakers to ensure that the system's Nash equilibrium results in a mutually beneficial outcome – a process known as "mechanism design."
For instance, laws regulating overfishing are intended to adjust the Nash equilibrium of the "game" of commercial fishing. Without regulation, the optimal strategy for each fisher is to catch and sell as many fish as possible. Regrettably, this Nash equilibrium could drive a fish population to extinction, harming all players. By penalizing overfishing, the laws make sustainable fishing the new optimal strategy, establishing a new Nash equilibrium.
Algorithm 11: Communicating effectively
To communicate effectively, listeners need to signal that they've received the message
To communicate effectively, listeners must signal that they have received the message The authors explain that when a computer connects to a server, both sides exchange "acknowledge packets," or "ACKs," to ensure a stable connection. These brief messages inform the other computer that its message has been received. ACKs are a vital component of the communication process and constitute a significant portion of all uploaded data. Similarly, the authors assert that acknowledgement is an essential aspect of human communication, which is often overlooked. Recent research in linguistics has placed renewed emphasis on "backchannels," a listener's brief interjections that acknowledge a speaker's message without interrupting their turn to speak. Being a good listener requires more than just silence and politeness – if you don't provide active feedback, communication breaks down.