Research Paper
AI with Particle Swarm Optimization
2007-2008
Keith Ainsworth
November 6, 2007
Abstract
Articial Intelligence has for long been an important aspect of
computer science, but unfortunately articial intelligence is usually
computed from a single agent perpective or with multiple, but highly
omniscent agents. I plan on creating an articial intelligence engine,
which works by having multiple agents, each with highly limitted per-
pective. In order to solve tasks, they need to communicate their por-
tions with each other through a network. Using that scheme, it will
much more accurately simulate crowd dynamics, using particle swarm
optimization to optimize the calculations.
Keywords: AI, PSO, C++, OOP.
1 Introduction
The AI engine I'm programming is implemented through C++'s object ori-
entation. I have programmed several classes which interact in order to make
a completed end project. As my engine is an agent based networking engine,
naturally the rst two classes are the agent, Person, and network, PNetwork
classes. The main program must include an array of Persons, which is passed
to the PNetwork class on instantiation. Then the main program only needs
to talk to the PNetwork, as its managing the list of people from instantiation
on, and will take care of the movement of the Persons.
1
The Person and PNetwork also utilize another class I've written, the
weightlist class. This class is a set of two array based, xed size, looping
lists; one for data, the other for the data's relative weighting. The important
feature of the weightlist that other prewritten container classes don't oer is
a summation function. This function eectively averages the data list, based
on the relative weightings, and a decay weighting that favors the more recent
entries in the list. This is crucial because the communication aspect of the
PNetwork has to have a way of keeping track of each Person's communica-
tions. Therefore each Person in the PNetwork is assigned a weightlist.
2 Background
Articial Intelligence programmi