Algorithms To Live By – Brian Christian & Tom Griffiths

Optimal Stopping – trying to decide you should look, and evaluate options before choosing to make a decision. Finding a balance between impulsivity and overthinking. 

37% Rule – spend 37% of your time looking, then focus on making a choice if you find something better than all previous options. Can be applied to the number of candidates or the total amount of available time. Even though this is optimal from the standpoint of look v leap time allocation, it still only gives you a 63% failure rate (not hiring the best candidate)! In a scenario where you have full information, the failure rate is still 42%!

Real life application – Looking for apartments, filling a job, dating. 

Human Algorithm Design – Searching for better solutions to the challenges that people encounter everyday.

Science is a way of thinking much more than it is a body of knowledge – Carl Sagan

Threshold Rule – immediately select a candidate if they are above a certain percentile. Depends on how may candidates are remaining. Keep rejecting if there are lots of good applicants remaining. 

Do people intuitively follow the 37% Rule? Generally not – we tend to stop too early and leave better applicants unseen. People leap too early about 80% of the time. 

Explore / Exploit (Computer Science View) – Explore – collect information. Exploit – use the information collected to generate a favorable result. 

The value of exploration can only go down over time since the remaining time to savor the finding goes down hand-in-hand. The flip side is that the value of exploitation can only go up. Explore when you have time to use the resulting knowledge, exploit when it’s time to cash in. 

Exploration in itself has value because trying new things increases our chances of finding the best one. Taking the future into account, rather than focusing just on the present, drives us towards novelty. 

Do people intuitively know when to stop exploring and exploit? Generally not – we tend to explore too much and value the new more than the best. 

Childhood is the ultimate time for exploration since you don’t have to worry at all about payoffs – those are handled by your care-givers. 

Old age reflects the flip side – much easier to leverage your lifetime of experience and focus on the things that work for you (exploit). 

Sorting – at the heart of what computers do. One of the main reasons things are sorted is to be shown in useful form to human eyes. Search results, email, FB news feed, etc, etc. 

There are various methods to sort, but the key point to note is that sorting does not scale. The larger the set of items to sort, the longer it will take. The opposite of economies of scale. To combat this, you need to break down the large pile into smaller piles, sort and then combine. This is called a mergesort. And go from there.

Before you even start sorting though, need to ask yourself if a sort is even necessary given the amount of effort it will entail versus a much simpler direct search. 

Sorting something you will never search is a complete waste of time, however searching something that you never sorted is merely inefficient. Example is organizing your email – probably unecessary now since it is so easy to search on keywords, sender, subject, etc. 

Caching – the idea of keeping around information that is frequently requested close-by for easy access. Applies directly to memory in computers. In the context of servers, proximity is key, so pages that are frequently referenced will load faster if they are closer to the location of the machine requesting them. 

Memory – the fundamental challenge of memory is one of organization rather than storage. When we get older, we have agragatted so many memories and information, we have to go through a lot of more stuff to find what we’re looking for. That is why it can seem like people are losing their memory as they age. 

Scheduling – the first and most important item to focus on when looking to solve a scheduling problem is the metric or criteria for success.  

Responsiveness vs Throughput – you have to sacrifice some of one to maximize the other. Example – working on a paper, not checking your email maximizes throughput at the expense of responsiveness. Finding the optimal balance is what is needed in reality, and the balance will be unique to your own situation. You need to set a minimum acceptable level for both factors. 

Page 128 (1 Hour 1/29) – Have to return the book to the library today, so the rest of these notes will be brief!

Copernican Principle – if we want to predict how long something will last, and we have no other knowledge about it whatsoever, the best guess we can make is that it will continue just as long as it’s gone on so far. 

Bayes’s Rule – builds off the copernican principle by factoring in real data on prior results. Makes a more educated, probability based guess. The best ways to make good predictions is to be accurately informed about the things you are predicting. 

If you can’t explain it simply you don’t understand it well enough – anonymous 

Giving yourself more time to decide on something doesn’t necessarily mean that you’ll end up making a better decision. But it does guarantee that you will consider more factors – this creates risk of overfitting. 

When truly in the dark, the best laid plans are the simplest. 

Perfect is the enemy of good – Voltaire 

Before spinning your wheels, ask yourself how good a solution is when compared to the actual best solution we could have come up with by exhaustively checking everything. Need to perform a cost-benefit analysis to see if the exhaustive search is worth it. 

There is no such thing as absolute certainty, but there is assurance sufficient for the purpose of human life. 

Breaking up routine – being randomly jittered, thrown out of frame and focused on a larger scale, provides a way to leave what might be locally good and get back to the pursuit of what might be globally optimal. 

Game theory – if everyone does the rational thing (from the perspective of the individual), you will not get the best outcome as an individual, since self interest goes against self interest.

Dutch Auction – prices descend until they reach a level where a buyer emerges. 

English Auction – traditional. Prices keep going up until you reach the highest bidder

Sealed Bid Auction – everyone bids in isolation, the winner is the second highest bidder. Removes the incentive to bid at a level that you don’t really believe in. 

Problem with auctions is you see someone’s actions, but don’t really know what they believe. 

Computational kindness – wherever possible try to reduce the load on the other person by not leaving questions / requests completely open ended. Assert your own preference, or reduce the number of options for the other person. Suggest a time for a meeting, give your idea / thoughts when prompting someone else for their own, etc. 

This also should be applied towards design – the goal for ux is protect people from unecessary tension, friction, or mental labor. 

Hard cases – effective algorithms make assumptions, show a bias towards simpler solutions, trade off the costs of error against the costs of delay, and take chances. 

Leave a Comment

Your email address will not be published. Required fields are marked *