Book Review: "Algorithms to Live By" by Brian Christian & Tom Griffiths

I've recently read the book Algorithms to Live By by Brian Christian & Tom Griffiths. This book shows how many problems & heuristics in computer science can be applied to explain or improve human decision-making. Each chapter focuses on a certain class of problems or issues. Such classes include the optimal stopping problem, the multi-armed bandit problem, searching & sorting, task scheduling, Bayesian inference, overfitting data, constraint relaxation, random stimulus, communication protocols, and social interaction. Additionally, most chapters try to show how results from computer science can either improve or justify certain human behaviors.

This book was frustrating for me to read. If it had fully met my expectation that it would show, in a unified & consistent way, how these computer science problems apply to human behavior and connect to each other, I would be singing its praises. If it had completely failed, I'd be happy to rhetorically trash this book. Instead, I found that each chapter would be a great vignette on its own, and each chapter showed the great potential of what the book could have been, but the book failed to live up to that potential. First, there was very little connection among the chapters, and any acknowledgment that the authors did make of such connections was almost always superficial instead of deeply insightful. For example, the respective chapters about the optimal stopping problem, caches, and overfitting each could have been so much better with greater discussion about the connection to social pressure & game theory, yet those topics were discussed only in the last chapter, which I think was a mistake. Second, only in the concluding section did the authors make clear that they wanted to either improve or justify human behavior with each class of problems or issues. This because clear over the course of reading the book, yet there was very little guidance in each chapter about whether improvement versus justification would be the goal. Perhaps the worst offender was the chapter about constraint relaxation, as there was little connection to human behavior in a way that would be obvious to lay readers. These problems meant that reading the last numbered chapter (about game theory) and the conclusion felt simultaneously wonderful for finally seeing these concepts discussed clearly and maddening for knowing that the book could have been so much better if these ideas had been more consistently executed through the book.

There are two other minor criticisms I have of the book too. First, the chapter about overfitting seems to use the word "overfitting" to mean too many different things, which is ironic and undermines any clarity that the discussion could have provided. Second, the chapter about randomized algorithms attempts to make a tenuous connection between randomized algorithms used in computer science and the way that random mental stimuli can produce very creative responses in people, but it never makes clear whether the latter result is true at an individual level or only holds statistically for large populations.

Overall, I think the author's goals were laudable and that each chapter is interesting to read in isolation. However, other readers may be disappointed, as I was, in the way that the authors fail to synthesize many of the ideas across chapters in a smooth & unified manner. Thus, I would advise that readers who may be interested in these topics go into this book with lower expectations.


FOLLOW-UP: How to Tell Whether a Functional is Extremized

This post is a follow-up to an earlier post (link here) about how to tell whether a stationary point of a functional is a maximum, minimum, or saddle point. In particular, as I thought about it more, I realized that using the analogy to discrete vectors could help when formulating a more general expression for the second derivative of the nonrelativistic classical action for a single degree of freedom (i.e. the corresponding Hessian operator). Additionally, I thought of a few other examples of actions whose Hessian operators are positive-definite. Finally, I've thought more about how to express these equations for systems with multiple degrees of freedom (DOFs) as well as for fields and about how these ideas connect to the path integral formulation of quantum mechanics. Follow the jump to see more


How to Tell Whether a Functional is Extremized

I happened to be thinking recently about how to tell when a functional is extremized. Examples in physics include minimizing the ground state energy of an electronic system expressed as an approximate density functional \( E[\rho] \) with respect to the electron density \( \rho \) or maximizing the relativistic proper time \( \tau \) of a classical particle with respect to a path through spacetime. Additionally, finding the points of stationary action that lead to the Euler-Lagrange equations of motion is often called "minimization of the action", but I can't recall ever having seen a proof that the action is truly minimized (as opposed to reaching a saddle point). This got me to think more about the conditions under which a functional is truly maximized or minimized as opposed to reaching a saddle point. Follow the jump to see more. I will frequently refer to concepts presented in a recent post (link here), including the relationships between functionals of vectors & functionals of functions. Additionally, for simplicity, all variables and functions will be real-valued.


Google Chrome OS Flex and Broader Adoption of Linux

I recently read [Chin, The Verge (2022); Raphael, Computerworld (2022)] that Google is releasing a version of Chrome OS called Chrome OS Flex which can be copied to a USB storage drive and installed on computers that didn't come with Chrome OS. This seems very similar to how many popular Linux distributions work, so I initially wondered if Chrome OS Flex will succeed with the muscle of Google behind it where similar efforts by Linux distributions backed by smaller not-for-profit organizations have failed. At the same time, it seems clear to me that Google will not hesitate to use this as an opportunity to collect more valuable data from people who use Chrome OS Flex. This got me to think more broadly about how much ordinary people who might consider using Chrome OS Flex really care about their privacy (especially considering that such people would typically use Microsoft Windows 10/11, which are known to collect significant amounts of data from users) even after revelations about Facebook's practices, earlier revelations about government surveillance, and so on.

However, upon closer reading, I noticed that the first article makes clear that the target audience is schools & businesses which have many old computers whose Windows versions may no longer be supported. This makes more sense to me than targeting ordinary individuals, because I get the sense that the learning curve even to copy an ISO file onto a USB storage drive and install it onto a computer is steep for most ordinary individuals (despite the significant progress that distributions like Ubuntu & Linux Mint have made in making the installation process easy). By contrast, it seems more reasonable to expect specialists in schools & businesses to learn these things once and then do them for many different computers. Meanwhile, the second article makes clear that while traditional Chrome OS is capable of running many programs built for Windows, Chrome OS Flex will not have such capabilities. This suggests to me that while many schools may take up this opportunity given that few user-facing applications need to be installed on the computer and most user-facing applications can be accessed through web equivalents, this might not be the case for many businesses, so it is unclear to me which businesses will actually take this up.

Ultimately, I don't expect to see much adoption among ordinary individuals even though they aren't forbidden from installing & using Chrome OS Flex. That said, I would be interested to see how adoption evolves in schools & businesses over time.


Turning off Comments for this Blog Going Forward

This is a quick post to say that I have unfortunately had to turn off comments for this blog. Recently, I had trouble using the comment feature on various posts in this blog (despite being its sole author & maintainer). Furthermore, for the last few years, the vast majority of comments have been unwanted commercial solicitations, while I haven't really gotten much useful feedback about posts themselves. I recognize that there are very few humans who regularly read this blog and that most, if not all, of those readers probably know me personally, so I trust that they can reach out to me if they want to share their thoughts about posts. In any case, going forward, comments will no longer be available on this blog. This also necessarily means that the "Featured Comments" blog post series cannot continue.