Everything in this book used to be classified as artificial intelligence, but the authors have chosen to call it computational intelligence, arguing that it is the computational aspects of the subject that they want to emphasize. The book is very well written, and students and those interested in A.I. research and development will find it a helpful step to more involved studies.
The emphasis in the book is on intelligent agents, which the authors characterize in chapter one. Agents are viewed as black boxes that take in knowledge, past experiences, goals/values, and observations and output actions. They define what they call a representation and reasoning system consisting of a language to communicate to a computer, a methodology for giving meaning to this language, and a collection of procedures for computation. They also outline the three applications domains they will be developing in the book: an autonomous delivery robot, a diagnostic assistant, and an infobot.
The authors expand upon the representation and reasoning system in chapter 2 in terms that are familiar from mathematical logic and computer science. A formal language, a semantics, and a proof procedure are the three essentials of an RRS. All of these elements are discussed in great detail, and concrete examples are given for all the main concepts. Readers without any background in logic may find the reading difficult, but with some effort it could be read profitably. The authors do a good job of presenting material that is usually delegated to texts on formal computer science.
In chapter three, the authors show how representational knowledge can be used for domain representation, querying, and problem solving. This is done via an example of electrical house wiring and the PROLOG-astute reader will find the presentation very straightforward. But LISP programmers will also see its influence and the discussion on lists. An application is given in computational linguistics, namely that of definite clauses for context-free grammars.
A discussion of searching is given in chapter 4, in the context of potential partial solutions to a problem, with the hope that these will truly be real solutions for the problem at hand. Graph searching, blind search strategies, heuristic searching, and refinements of these are all discussed with great clarity. And, because of their importance in applications, dynamic programming and constraint classification problems are overviewed, albeit very briefly.
Chapter 5 turns to the topic of how to choose a representation langauge for knowledge. The authors detail the criteria for comparing different languages or logics in terms of expressiveness, worse-case complexity, and naturalness. Most important in this chapter is the discussion on qualitative versus quantitative representations.
This is followed in chapter 6 by a discussion of the user interactions to a knowledge-based system in terms of a meta-interpreter that produces knowledge acquistion, debugging, etc.
The next chapter shows how definite clause representation and reasoning systems can be extended to include the relation of equality and negation, and quantification of variables. This sets up naturally a discussion of first-order predicate calculus, but only a brief overview is given. A very short treatment of modal logic is given.
Chapter 8 considers agents that act and reason in time, with three representations given for reasoning about time. These are the STRIPS representation (developed at Stanford University), the situation calculus, and the event calculus. It is then shown how these can be used to reason and produce plans to achieve goals. Although brief, the discussion is very interesting, and the authors give good references for further reading.
The authors generalize their discussions to assumption-based reasoning in chapter 9, which up until this chapter has been restricted to reasoning from knowledge bases. Nonmonotonic reasoning is defined, along with abduction, which is a form of reasoning different from both deduction and induction, and which emphasizes hypothesis formation.
Chapter 10 considers the more realistic situation whre the agents have incomplete or uncertain knowledge. This naturally brings up a discussion of probability, which the authors define as the study of how knowledge affects belief. They distinguish between evidence and background knowledge, the latter which is stated in terms of conditional probabilities, the former characterized by what is true in the situation being studied. Belief networks are introduced as a graphical representation of conditional independence, these graphs being directed and also acyclic (the latter for reasons of causality). An algorithm for determining the posterior distribution of belief networks is given, and is based on the idea that a belief network specifies a factorization of the joint probability distribution. A brief overview of decision networks is also given.
The important topic of learning theory is overviewed in chapter 11. And, naturally, neural networks make their appearance here, although the discussion is very brief. PAC learning is also treated, as well as Bayesian learning. Unfortunately, the important field of inductive logic programming is not discussed, but some references are given.
The last chapter covers artificial purposive agents, otherwise known as robots. This is a vast subject, and only a general overview is given here, but the authors do a good job of showing how robots can be characterized within the concepts outlined in the book. Dynamical systems are used to represent the agent function for a robot. Readers familiar with the theory of dynamical systems will see the state transition function appear here in a more general context. The states of an agent at time t encode all of the information about its history. The state transition functions acts on the states and percepts, with the percepts playing the role of time in the usual dynamical system.
The appendices include a terminology list and a short introduction to PROLOG, along with a few examples of PROLOG code applied to some of the concepts in the book. Although very general, the inclusion of these examples are of further help in understanding the material in the book.