Sunday, March 4, 2012

Particle Swarm Optimization

Since a portion of my project will be dealing with evolutionary algorithms for optimization, I decided to revisit the Particle Swarm Optimizer (PSO) as a potential tool. I first became acquainted with this algorithm in my undergraduate research. In that project, we used the optimizer as a way to choreograph the movements of the robots themselves. I also engaged the optimizer in my graduate optimal control theory class as the basis of a project, creating a visual simulator for a 2 dimensional search space.

Research Double Duty


As a mini-project to incite further research into the PSO, I decided to overlap my efforts and use this extended research as material for a technical presentation as part of an interview for employment at the United Technologies Research Center. Here is the teaser for the talk.

The Particle Swarm Optimization (PSO) algorithm is a simple process for optimizing functions. Discovered by a social psychologist and an electrical engineer in the mid 1990s, it is inspired by naturally occurring social behaviors. Although much more research is necessary, it performs well with benchmarks such as the Rastrigin and Rosenbrock functions. It has seen exponential growth in adoption since its creation due to its relative ease of use and potential impact on many science and engineering fields, such as medical, electrical, financial, and control systems.

In this talk, we will explore the PSO algorithm, briefly touch its background, primarily focusing on its structure and operation. We will also visually explore its performance with benchmarks and interact with its tuning values. We will investigate the algorithm’s application to swarm robotics problems, taking time to identify implementation strategies based on the swarm's purpose and constraints.

For more information on the PSO and to explore my resulting presentation materials, check out the links below!

Individual Files (Google Docs)
Teaser and Bio
Outline
Slides
Slides (Printable)

Everything, including simulator binaries and presentation sources (Dropbox)
UTRC Tech Talk

Project Application


After reacquainting myself with the PSO for this project, I have identified how best to use the optimizer. I intend to tune the feedback gains to some reasonable values based on it's performance over a model of the robot that I derive. The optimizer will use a cost function that maps gains to settling times, the amount of time required for the robot to stay within 2% of it's stable orientation. It is important that the derived model include such non-linearities as motor maximum speeds to ensure that the gains identified by the PSO could reasonably be implemented on the hardware.

Registration


Also, Dr. Eberbach informed me he passed along my project registration to the registrar on Monday. I plan to head in there this coming week to finalize it with my signature.

No comments: