AI Application Programming, Second Edition, by M. Tim Jones, ISBN: 1-58450-421-8

Reviewed by: Yanick Dufresne, December 2005
Published by: Charles River Media
Requires: N/A
MSRP: $59.95

Evil robots, trying to take over the world. To many, that's what comes to mind when they hear the words "Artificial Intelligence". Sure, the scientists who started this bold new field of research in the 1950s set out to create a thinking machine. They have so far failed to produce such machines, but what they didn't expect was that they'd open the door to better rice cookers and toasters, and to little boxes sitting on top of your television set that learn what you like to watch and make suggestions on what else you might like. I bet they didn't anticipate the heavy use of artificial intelligence (AI) in video games either, or web sites that make purchasing suggestions.

AI is so pervasive in technology today that most people don't even know it's there. Strangely, despite AI being so present in our daily lives, few programmers and engineers have any real experience with it. It is still considered today to be one of the curious black arts of software development.

AI Application Programming, by M. Tim Jones, aims to change that. The book begins with a short but insightful chapter on the history of AI, followed by a series of chapters, each covering a specific AI technique. The last chapter covers the state of AI today. Each chapter begins with a short description of the technique covered, sometimes including natural motivations, or parallels to the real world, if you like, behind the algorithmic choices of the technique. Then, the algorithm is described, and a sample implementation is given and discussed. Last, the author presents examples of problems that can be solved by the given technique.

Some of the algorithms covered are A-Star, simulated annealing, particle swarms, ant algorithm, learning neural networks, genetic algorithms, and fuzzy logic.

This is probably purely a matter of preference, but I thought it irksome that the discussion on problems solvable by a given approach occurred after that of the algorithm and the implementation details. My brain simply wants to know what I'm trying to solve, before it can absorb the how. I found myself flipping pages, looking for the right order in which to read the sections in order to help the the text make more sense. That said, the book does a laudable job of introducing a large number of techniques and algorithms, covering them in sufficient detail to allow a competent programmer to take the basic ideas and develop his or her own twist on them. For several of the techniques, variations and tuning opportunities are presented, allowing the astute reader and programmer to quickly adapt the technique to a different problem of a similar type. There are plenty of illustrations and diagrams, making the material easier to absorb.

I did find the implementation discussions a little long winded. After all, a book on the subject of artificial intelligence should assume that the reader has some basic level of programming expertise. Perhaps choosing a language other than ANSI C for the samples would have made the code more concise, and would have removed the need to tend to such details as memory allocation, linked list and such. Also, a more modern language would have allowed an object-oriented approach, or even a generic programming approach to some of these algorithms. Lisp is a traditional language used for AI research, but few programmers are familiar with it. Perhaps Ruby or Python would have been a better choice. Despite this, the book is an invaluable source of information. It shines as an introduction to AI. Its wide coverage of AI techniques, and the flexibility presented alongside each, make for a useful reference afterward.

Whether you're looking at implementing a relatively simple fuzzy logic system, or you're planning on designing intricate game characters, this book will provide you with a good starting point.

Comments? Questions? Qualms? Technical problems? Send an e-mail!





© Copyright 2000-2006 All rights reserved. legal notice
home | previous reviews | hot news | about us | search | store | subscribe


Forums Search Home Previous Reviews About Us Store Subscribe