The magazine of the Melbourne PC User Group

Computational Intelligence
Major Keary

Interest in artificial intelligence (AI) has a long history, but unrealistic expectations of its promise led to significant loss of interest. Since then a far more realistic view of AI's capabilities has developed, leaving research to proceed at a sensible pace.

Because of some residual odium there has been some avoidance of the use of Al'. Instead the term, computational intelligence (CI), is employed. However, CI is also used to describe specific areas of development, which can make searching for references in literature databases less than straightforward.

One such specific use is to mean the study of the design of intelligent agents. It is also used to mean the application of computers to the study of fuzzy logic, neural networks, and evolutionary computing (which are used in the design of intelligent agents, but also have application in other fields).

Considerable work has been done, and practical applications developed, in the field of intelligent agents. Terms such as bots, Web crawlers, and spiders may be familiar to general readers, especially those who use the Internet. They (the bots, not the readers) are members of the intelligent-agent family and lie at the heart of Web search engines.

An interesting general account of the origin of intelligent agents on the Internet is Bots: The Origin of New Species (ISBN 1-888869-05-4), written by Andrew Leonard. Published by Hardwired in 1997, it seems to be still in print. A good read and does not require any special technical knowledge.

For students of computer science, or related disciplines, there is an excellent introductory text, Computational Intelligence: a Logical Approach, which is designed for "advanced undergraduate students or graduate students", but is presented in such a way that general readers who are technically-minded and have more than a casual interest in intelligent agent technology-should find it quite interesting. As one would expect in an academic text of this kind, there is plenty of mathematical material that is essential for the target audience. However, general readers should be able to follow the narrative even if they do not have (or have forgotten) the maths.

A feature of this title is that concrete examples are used to illustrate the theory. The text should be a useful resource for program designers and developers involved in creating or deploying agents, and who want to understand the science. In particular, the authors discuss issues relevant to development of specifications, particularly as they relate to assessing the effectiveness of possible agent solutions. Explanations of many terms - such as tuple - are much clearer than one finds in most other texts of this kind. These appear occasionally and are in boxed item format so as not to interfere with the flow of the main text; it works well.

Three agent models are used: delivery, diagnostics, and information retrieval. Simple agents for static environments are introduced first, and then the authors move on through situations of increasing complexity. A selection of chapter headings indicates the scope of the book: A Representation and Reasoning System, Using Definite Knowledge, Beyond Definite Knowledge, Assumption-Based Reasoning, Using Uncertain Knowledge, Learning, and Building Situated Robots.

There are two appendices; one is a Prolog tutorial, and the other contains Prolog code for some implemented systems (including interpreters, neural network learner, and robot controller). The representation and reasoning system (RRS), and using definite knowledge chapters explain, with examples, the symbolic language used throughout the text. Familiarity with Prolog and event calculus is assumed. Each chapter is followed by a group of exercises (no answers at the back of the book), which should be of use to teachers.

Anyone who uses the text either as supplementary course material or for self study should appreciate the early exercises that provide a good introduction to the book's logical approach. A well-presented text that adds practicality to theory.

Poole, Mackworth, & Goebel: Computational Intelligence
ISBN 0-19-510270-3 
Published by Oxford, hc, 558 pp., 
RRP $75.00

AI and Java

If you are familiar with Java there is an excellent text (no esoteric maths required) on the creation of intelligent applications using Java. The author, Mark Watson, is a software engineer and has a background in Al.

In Intelligent Java Applications he presents detailed descriptions, with all the necessary source code, of real-world, working applications. His introduction is a brief, but very readable account of the history of AI that does not assume any special technical or academic background. A part of the book deals with software libraries and describes a Java user interface framework, distributed AI, neural networks, genetic algorithms, natural language processing, agents, and expert systems (including the use of CLIPS/OPS5 languages). These are illustrated by annotated source code examples.

What does one do with neural networks, genetic algorithms, etc.? Neural networks are used for pattern recognition applications and adaptive controllers. Genetic algorithms are used to search large "data spaces". Distributed AI is a fancy way of describing automated tasks using software agents.

The third part of the book presents a number of projects that include a scrolling arcade game, real-time handwriting recognition, data collection agents, and a natural language query application. A companion CD (Windows and UNIX) contains the source code used throughout the book There are appendices, one of which is; Java tutorial. The only requirement for being able to use this text is some knowledge of Java programming. If yo want to learn Java this is a good, and very interesting, resource - but you will need something more introductory as lead-in.

Mark Watson: 
Intelligent Java Application for the Internet and Intranets 
ISBN 1-55860-420-0 
Published by Morgan Kaufmann, 377 pp. + CD, 
RRP $87.95

Reprinted from the October 2000 issue of PC Update, the magazine of Melbourne PC User Group, Australia