Columns

Bringing developers up to speed on AI

Back in the 1980s and 1990s, artificial intelligence (AI) was all the rage. Expert systems and fuzzy logic were going to revolutionize the way we designed systems. More recently, intelligent agents were reported to be the next big productivity enhancer. Unfortunately, none of these technologies lived up to their hype and, in many circles, AI is a bad word.

Time moves on, however, and as M. Tim Jones, author of “AI Application Programming” notes, there are many good apps for AI techniques. In fact, many techniques and algorithms that were once considered to be part of the AI world, including natural speech processing and neural networks, are now widely used.

Since many AI techniques and algorithms can be useful and effective in today’s apps, all developers should have some familiarity with them. Bringing developers up to speed on AI is the goal of “AI Application Programming.” The book covers simulated annealing, Adaptive Resonance Theory (ART), ant algorithms, neural networks, genetic algorithms, rules-based systems, fuzzy logic, the bigram model and intelligent agents.

How well the book covers these topics is a little uneven. For example, the chapter on ant algorithms gives a very good introduction to the topic; it discusses both the natural processes that gave rise to ant algorithms and some typical apps. The chapter on ART, however, quickly jumps into a discussion of the algorithms with little background.

Each chapter discusses the theory of the technique or algorithm, and presents a practical application. On the included CD-ROM, there is some sample code implementing the technique or algorithm, and the author clearly describes how the code works.

For example, the application in the ART chapter is Web site personalization. It describes how you would use ART algorithms to suggest items to customers purchasing products on your Web site based on items that other customers purchased. This is a very powerful technique with applications found in other areas. Other chapters in the book discuss how to build a Web-based news agent, a fuzzy logic battery charger and a rules-based reasoning system.

Each chapter concludes with a list of references and resources. This is important because each chapter covers a lot of ground and, at best, can serve only as an introduction to the topic.

If you think that your particular applications might be able to use AI techniques, but you don’t have a background in the technology, “AI Application Programming” would be a good acquisition. It quickly covers a variety of algorithms and techniques using practical applications and gives pointers on how to explore them further.

AI Application Programming” by M. Tim Jones. Charles River Media, Hingham, Mass., 2003.

About the Author

Dan Romanchik is an engineering manager turned writer and Web developer. His current passion is amateur radio. You can read his amateur radio blog at www.blurty.com/~kb6nu.