Monthly Archives: February 2017

Algorithms to Live By

 This book, published in 2016, was written by a science journalist, BrianChristian, and by a specialist of Cognitive Psychology, TomGriffith; its subtitleis: The Computer Science of Human Decisions. AI researchers have always been very interested by human behavior: when we are developing a system that solves problems also solved by human beings, we try to find what methods we are using, and we include them in our programs. Here, the authors have a goal that is quite the opposite: they show that we, humans, can learn from the way computer systems solve problems, even for problems of our everyday life. They are not at all focused on AI: for them, every computer system may be interesting.

Sofar, I did not particularly think on this issue, but this is indeed an interesting idea. They are using many real-life examples of situations from everyday life, such as getting the best apartment, searching for a parking place, finding a restaurant, and so on. Some come from the authorspersonal experience.

I enjoyed their practical approach, but some academics may not like it, preferring to be abstracted from the real world. In the October 2016 issue of the AI Journal, ErnestDavis published an interesting review of this book; however, he does not like that way of presenting their views: «After reading about how Michael Trick used an algorithm to choose a wife, and how Albert McLay organizes breakfast for her children, and….., I started to have a craving for impersonal technical papers written in the passive voice.» For my part, I like this way of choosing situations easy to understand, without the need of a cryptic formalism.


I cannot consider all the topics examined in this book: when to stop looking, forget about it, when to think less, when to leave it to chance, the minds of others, and so on. The authors show that we could be more efficient if we borrow some of the methods used in computer systems.

For instance, in the chapter “Sorting-Making order”, they consider a problem that concerns all sports persons: how to order the best athletes. For tennis, the loser of a game is eliminated from the tournament. This provides the best player at the end, but produces little information about the strength of the others: the second best one was perhaps eliminated by the winner in the opening round. On grounds of efficiency, a race is much better than a fight: this gives a measure on the performance for all the participants. It is no longer necessary to fight again many players: at the end of a marathon, every runner knows his position compared to all the others.

Unfortunately, it is not always possible to eliminate fights everywhere. However, the solution chosen by the mammals for determine the alpha male is not very satisfactory because it often leads to too many fights. For their part, fish use a simpler method: the dominant is the biggest. With computers, sorting and ordering is made more quickly that fifty years ago, there are no longer unnecessary operations.

Tennis is not a perfect example: we are not so much interested in knowing who are the best players, we want many beautiful contests. If the ordering method is inefficient, we will watch more tennis matches! 150 years ago, Lewis Caroll showed that it was necessary to improve this method. Since that, there was some progress, particularly with the introduction of seeding; however, improvements are still possible. Personally, I think that one could use the difference in playing strength between the players during a match: the result was tight, one player was severely beaten, etc. A computer scientist knows that one can improve a result when an important information is not used.

Apart providing advices on how to organize ourselves better, this book also explains our behavior from understanding how computers work. For instance, it is well known that our memory deteriorates when we grow older. Wagging tongues discreetly hint to Alzheimer but, in the caching chapter, the authors explain that we have the same difficulties as computers to handle a lot of information. The more elements are in the memory, the more it takes time to retrieve what one is looking for: they call it “the tyranny of experience”. A ten years old child knows a few dozen friends; twenty years later, we know hundreds of people: in the towns where we spent some time, in the corporations where we have worked, the friends of our spouse, not to mention Facebook. Finding something can take more time if we stored it in an almost non-accessible area; we may even have decided to forget it in order to make room. When they have accumulated a substantial amount of information, old people and computers have the same problem: how to store it so that what will probably be useful will be quickly and easily accessible. Unfortunately, for everything remaining, one has to wait or to fail.

The authors essentially refer to Computer Science, although they mention several times “machine learning”, an AI subdomain. In my view, chapters inspired by AI could be added. Certainly, some AI methods cannot be used by human beings, mainly because our brain does not work fast enough: we cannot consider billions of Chess positions! However, in some domains, AI may be a source of inspiration, especially problem solvers that use heuristics.

Too often, teachers do not explain their students how they could solve a problem, and many students believe that there exist a special math skill (which they do not have) which is a prerequisite for solving mathematical problems. Let us take an example from Gelertner‘s Geometry Theorem Proving Machine: it must prove that an isosceles triangle (two equal sides) has two equal angles. Here is a machine proof:

It is assumed that triangle ABC has two equal sides: AB=AC. Triangles ABC and ACB are equal because their three sides are equal: AB=AC, AC=AB and they share BC. Therefore, the angle ABC of the first is equal to the corresponding angle ACB of the second.

If I had to write a Geometry program, I would have introduced a rule such as: if one must prove that two angles are equal, consider two triangles, each one containing one of these angles, then prove that these triangles are equal. It does not always succeed, in the present situation five triangles containing the angle ACB can be compared to triangle ABC: ACB, BAC, BCA, CAB, et CBA. The last four are not working, but the first one leads to the solution given before. With this rule, the student can understand how this solution has been found, and he can use it for other problems.

When an AI system makes many trials for finding the solution, it can indicate why it has to consider them. Even when they fail, it is interesting to show them because, in other situations, they may be successful. If the students could see how an AI system has found a solution, including its unsuccessful attempts, this would certainly allow them to perform more effectively afterwards.

This book is a most enjoyable read, but it could be completed by chapters adding Artificial Intelligence to Computer Science as a source of inspiration.