Book Excerpts:
Artificial intelligence is a hard subject to learn. This book was written to make it easier. It explains difficult concepts in a simple, concrete way. The author has organized the material in a clearer way, a way in which the chapters are in a logical sequence and not just unrelated topics. Hopefully with this book, readers can learn the key concepts of artificial intelligence faster and better than with other books. This book is intended for all first courses in artificial intelligence at the undergraduate or graduate level, requiring background of only a few computer science courses. It can also be used on one's own.
Students often complain that while they understand the terminology of artificial intelligence, they don't have a gut feeling for what's going on or how they apply the concepts to a situation. One cause is the complexity of artificial intelligence. Another is the unnecessary baggage, like overly formal logical calculi, that some books and teachers saddle students with. But an equally important cause is the often
poor connection made between abstract concepts and their use. It is essential to integrate practical programming examples into this book, in the style of programming language and data structures books. This book has about 500 chunks of code.
Clear, concrete formalization of artificial intelligence ideas by programs and program fragments is all the more critical today with commercialization and media discovery of the field, which has caused a good deal of throwing around of artificial intelligence terms by people who don't understand them.
Why Prolog?
But artificial intelligence is a tool for complex problems, and its program examples can easily be forbiddingly complicated. Fortunately, there is
Prolog. Prolog has three positive features that give it key advantages over
Lisp.
First, Prolog syntax and semantics are much closer to formal logic, the most common way of representing facts and reasoning methods used in the artificial intelligence literature.
Second, Prolog provides automatic backtracking, a feature making for considerably easier "search", the most central of all artificial intelligence techniques.
Third, Prolog supports multidirectional (or multiuse) reasoning, in which arguments to a procedure can freely be designated inputs and outputs in different ways in different procedure calls, so that the same procedure definition can be used for many different kinds of reasoning.
Prolog also makes it easier:
Prolog also, makes teaching artificial intelligence easier. This book is a demonstration. This book is an organic whole, not a random collection of chapters on random topics. The chapters form a steady, logical progression, from knowledge representation to inferences on the representation, to rule-based systems codifying classes of inferences, to search as an abstraction of rule-based systems, to extensions of the methodology, and finally to evaluation of systems. Topics hard to understand like search, the
cut predicate,
relaxation, and
resolution are introduced late and only with careful preparation. In each chapter, details of Prolog are integrated with major concepts of artificial intelligence. For instance,
Chapter 2 discusses the kinds of facts about the world that one can put into computers as well as the syntax of Prolog's way;
Chapter 3 discusses automatic backtracking as well as Prolog querying;
Chapter 4 discusses inference and inheritance as well as the definition of procedures in Prolog;
Chapter 5 discusses multidirectional reasoning as well as the syntax of Prolog arithmetic; and so on. This constant tying of theory to practice makes artificial intelligence a lot more concrete. Learning is better motivated since one doesn't need to master a lot of sophisticated stuffs to get to the good stuff.