Computational Intelligence: A Logical Approach
D**N
Serves well as an introduction
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.
T**S
Cretenous.
The text is cretenous. Videlicet:- Many critical concepts have their wording arranged in a rather obscure fashions. So many things could have been explained using a far simpler description.- Almost all of the examples given use the exact same retarded office delivery robot context.- There are no solutions provided to any of the problems at the end of each chapter. Thus, the problems serve absolutely no functional value whatsoever as training aids because they are unable to advise when the student errs.- As the title suggests, the text only covers the logical approach to computational intelligence using Prolog and its various flavours. There are no examples of imperative implementations using, say, a genetic algorithm. While I have heard some say that having the theory will allow you to implement in any manner, I dismiss this as nonsense. If that was the case, it would be more rational to learn the material via languages like C and C++ that most are already familiar with, and then, if necessary, implement in Prolog or some other obscure language.- This text would be fine if it were used only in survey courses where an intimate understanding of every detail was unnecessary. Sadly, it is used in upper level university AI courses.- There is typically but one example provided for each concept. If the example doesn't make sense, the concept won't either unless you search in other books or on the internet for other examples using the same concepts.- This book is far too expensive for what it is worth. I would suggest picking up a copy of "AI Techniques for Game Programmers". It doesn't waste any time with Prolog or any other purely academic radical development paradigms, but remains mindful of the real world.
B**B
Buy A Better Book
This is by far the worst book I've ever read in my college career. Throughout the entire book only two to three main examples are used. Many times the examples are not carried along through the text appropriately and the reader is referred back to previous pages with information that doesn't really help. And, I've found at least one instance where the reader is referred back to an example and then referred back yet again to a different page. Not good.I would give this book less than one star if I could.
M**A
shame on the Mackworth and Poole
I was a student of Dr. Poole's ( one of the co-authors ) at the University of British Columbia and was forced to use this textbook for two semesters. It is without doubt the worst textbook on any subject in Computer Science that I have ever read. The book is extremely vague and confusing on many important subjects. The book also uses unnecessarily complex wording to describe simple concepts .. at some times it is much like reading code.
Trustpilot
2 weeks ago
2 weeks ago