You are on page 1of 6

About the CD-ROM

The CD-ROM contains a number of useful applications that demonstrate the properties of AI

algorithmic techniques and methods. The methods and applications that demonstrate them are

noted in this section.

Pathfinding Algorithm

Pathfinding algorithms, specifically the A-star algorithm, explored in Chapter 2. A non-uniform

reward landscape is used to demonstrate the optimal pathfinding abilities of the A-star algorithm.

Also provided on the CD-ROM are demonstrations of the Depth-First-Search and Breadth-First-

Search algorithms. These can be found on the CD-ROM at ./software/ch2.

Simulated Annealing

Simulated annealing, or modeling of systematic cooling of a molten metal to a solid, is described

in Chapter 3. The theoretical N-Queens problem is used to demonstrate the constraint satisfaction

properties of the algorithm. The algorithm and application can be found on the CD-ROM at

./software/ch3.

Particle Swarm Optimization

Particle Swarm Optimization is a swarm intelligence algorithm that uses a population of loosely

dependent particles to solve a variety of problems. We use particle swarm optimization here to

demonstrate function optimization (finding the combination of parameters that maximize the
results of a given function). The algorithm and application to maximize the sombrero function is

provided on the CD-ROM at ./software/ch4.

Adaptive Resonance Theory

Adaptive Resonance Theory, also called ART-1, is a clustering algorithm that provides the ability

to separate (or cluster) elements in a data set into independent data sets based upon properties of

the individual data items. The algorithm does this in an unsupervised manner, allowing the

algorithm to find patterns in the data that a user may not notice. The practical problem of

personalization is used to demonstrate ART1 in the context of a recommender system in Chapter

5. The algorithm and application can be found on the CD-ROM at ./software/ch5.

Classifier Systems

In Chapter 6, we explore one of the older learning algorithms in AI, the learning classifier

system. Learning Classifier Systems (LCS) is a class of algorithms that learn condition/action

rules based upon reward received from the target environment. We demonstrate the basic LCS in

an obstacle grid world, where the agent learns sets of classifiers to avoid running into obstacles.

The sample application of LCS can be found on the CD-ROM at ./software/ch6.

Ant Algorithms

Ant algorithms are a relatively new method that can be used to identify optimal paths through a

graph. This method is described in Chapter 7. Ant algorithms model the movement of ants within

an environment and use a simulated pheromone to communicate with other ants (the process of

stigmergy). The theoretical problem of the Traveling Salesman Problem (or TSP) is used to
demonstrate the ant algorithm. The algorithm and application can be found on the CD-ROM at

./software/ch7.

Backpropagation Algorithm

The backpropagation algorithm, discussed in Chapter 8, is one of the primary methods used to

train multi-layer neural networks given a training set and a set of desired outputs.

Backpropagation propagates errors back through the nodes of a network, altering the weights of

the connections based upon the error of the actual and desired outputs. The interesting problem

of training game neurocontrollers (game AI) is used to demonstrate backpropagation. Given a

simple neural network, a set of environmental inputs and a set of allowable actions (otherwise

known as the training set), the algorithm trains the network to perform the desired action for the

current environment. It is then demonstrated that the neurocontroller is able to generalize and

perform useful behaviors for unforeseen environments. The backpropagation algorithm and

neurocontroller application can be found on the CD-ROM at ./software/ch8.

Reinforcement Learning

Reinforcement learning, the topic of Chapter 9, is an interesting state-space/action search and

optimization algorithm which learns probability transitions for a given problem. We demonstrate

the Q learning algorithm of reinforcement learning in a problem landscape that includes both

obstacles and variable rewards for getting from a start to goal position. The Q-learning example

is provided on the CD-ROM at ./software/ch9.


Genetic Algorithms / Genetic Programming

Genetic algorithms provide a novel optimization technique that can be applied to both numerical

and symbolic problems, and is described in Chapter 10. The subfield of genetic programming is

further used to illustrate the creation of instruction sequences to solve problems in code

generation. Sequences of instructions are evolved to solve mathematical functions, and it is

demonstrated how these sequences can find novel strings that are both interesting and optimal

given a simple virtual machine. The genetic programming algorithm and application can be

found on the CD-ROM at ./software/ch10.

Artificial Life / Evolving Neural Networks

Artificial life is studied here in the context of neural networks through evolution of simple

organisms in a synthetic environment and is described in Chapter 11. Organisms survive through

successfully existing within their environment, avoiding prey and foraging for food. Organisms

are permitted to reproduce, once they reach a high enough level of internal energy. Therefore,

reproduction is only permitted if organisms can survive within the environment, which should

lead to more fit organisms. The organisms are provided with multi-layer neural networks as their

neurocontrollers, and given two different types of organisms, illustrate simple food-web

organizations. The artificial life application can be found on the CD-ROM at ./software/ch11.

Expert Systems

Rules-based systems are the topic of Chapter 12, which shows the emphasis and implementation

of a forward-chaining system. Varieties of examples are provided, in the form of rules and initial

facts, with a final example of integrating the rules-based system into an embedded system and
utilizing it for sensor fault-tolerance. The forward-chaining rules-based system and application

files can be found on the CD-ROM at ./software/ch12.

Fuzzy Logic

In Chapter 13, fuzzy logic and fuzzy control are described including an implementation of a

fuzzy API for inclusion into other applications. The API provides not only the standard fuzzy

operators, but also helper functions that support the simple creation of fuzzy membership

functions. The fuzzy logic API and a simple battery charger example is provided on the CD-

ROM at ./software/ch13.

Natural Language Processing

Chapter 14 introduces the problem of natural language processing. We explore a simple

predictive parser in this chapter to parse simple English language sentences. Additionally, we

exploit the minimal example to build a knowledge frame once the sentence has been parsed. The

natural language processing source is provided on the CD-ROM at ./software/ch14.

Hidden Markov Models

Hidden Markov models are the topic of Chapter 15, which are networks that include states and

transitions with associated probabilities. The outcome, or observation, of a state is generated

based upon the associated probability distribution. The action is performed, made visible, though

the internal state is hidden, thus the hidden aspect of the Markov model. Hidden Markov models

have a variety of applications; in Chapter 10 we look at the generation of meaningful text based
upon training by a corpus. The HMM and a text generation example is provided on the CD-ROM

at ./software/ch15.

Intelligent Agents

Intelligent agents are the final topic in Chapter 16, with emphasis on search and filtering agents.

Intelligent agents are applied in a number of different ways; the application chosen for this

chapter is a filtering agent that acts as an intermediary to UseNet sites on the Internet. The

WebAgent is configured through a simple configuration file. It then autonomously gathers news

using the NNTP protocol and presents it to the user with the HTTP protocol (acting as a simple

web server). The WebAgent is provided on the CD-ROM at ./software/ch16.

System Requirements

Applications on this CD-ROM require a PC with Windows 95, 98, 2000, Me, or XP using the

Cygwin UNIX environment (freely downloadable at www.cygwin.com), or Linux (Red Hat 6.1 or

later, or comparable Linux distribution); 486 or higher CPU; 64MB RAM; 60MB disk space;

CD-ROM drive; Internet access and Web browser (for the WebAgent example).

You might also like