Artificial Intelligence: A Modern Approach [3rd edition]

Without a doubt, this book should be on the short list of indispensable computer science textbooks, along with other classics such as “the dragon book” [1] and Hennessy and Patterson’s computer architecture textbook [2]. Having been let down by the poor Spanish translation of a previous edition that I used in my undergraduate student years, I approached this new edition with the hope of rediscovering a beautifully crafted textbook. I was not disappointed.

This hefty volume contains more than 1,100 pages of information. It is divided into 27 manageable chapters, “each requiring about a week’s worth of lectures.” Detailed bibliographical and historical notes complement its clear explanations and lucid discussions. There are literally thousands of references to virtually every relevant work that has been published in the artificial intelligence (AI) field since the term was coined in 1956.

Like most good stories, this textbook exhibits a circular plot structure. It starts and ends with general issues that surround AI. The first chapters introduce some definitions that have been proposed for AI, as well as its foundations and its historical roots, while the final chapters address ethical and philosophical issues, the state of the art, and future prospects. Russell and Norvig describe AI as the science of agent design--a wide definition that easily accommodates the myriad of techniques that enable computers to mimic humans. Apart from the introductory and final chapters (Parts 1 and 7), the core of the book is divided into five main parts that provide a thorough overview of the current state of the AI field.

Part 2 is devoted to problem solving as a search activity, from blind uninformed search and heuristic informed search to adversarial search and constraint satisfaction problems, with specific sections on local search, online search, and search on partially observable environments.

Part 3 deals with knowledge representation, reasoning (both propositional and first-order logic), and planning. Part 4 expands on the previous section and addresses uncertain knowledge and reasoning. It includes over 100 pages on probabilistic reasoning and scarcely six pages surveying alternative approaches, such as certainty factors, Dempster-Shafer theory, and fuzzy logic. This part also includes a couple of chapters on decision making that takes into account both beliefs (probability theory) and desires (utility theory).

Part 5, on learning, starts with a general overview of well-known machine learning techniques. It continues with learning methods that take advantage of prior knowledge in order to learn logical theories (“a logical formulation of learning”), learning as a form of uncertain reasoning from observation (that is, learning probabilistic models), and learning what to do in the absence of labeled examples of what to do (that is, reinforcement learning using reward and punishment).

Part 6 addresses what we might call the input/output (I/O) subsystem of intelligent agents, which includes natural language processing, perception (in the form of computer vision), and action (that is, robotics).

Taking into account the vast territory that this textbook explores, it should come as no surprise that most of the techniques are described only at a very high level, without delving into too many technicalities. While the authors seem to have an inclination for probabilistic techniques, most existing techniques are given their fair share of attention. Some readers might miss a favorite pet peeve or a more detailed treatment of the most recent advances in a particular field, but they will probably be able to find the most relevant references for these in the endnotes. Despite some minor disagreements on the topics chosen for a given AI course, nobody can deny the book’s incommensurable value or the praiseworthy effort by the authors to keep it up to date. In addition to these praises, it is finally a comprehensible text for advanced undergraduate students.

As is now common practice with leading textbooks, there is an accompanying Web site (http://aima.cs.berkeley.edu/) that includes many relevant links, reusable slides, and an interesting online code repository.