Hello all,
I just finished the PSO object and put it in CVS. You can also download the source at: www.ekran.org/ben/research/pso
A PSO is an evolutionary algorithm similar to a genetic algorithm. Quoted from: "Hybird Particle Swarm Optimizer with Mass Extinction" by Xiao-Feng Xie, Wen-Jun Zhang, Zhi-Lian Yang:
"The fundament to the development of PSO is a hypothesis that social sharing of information among conspeciates offers an evolutionary advantage. PSO is similar to the other evolutionary algorithms in that the system is initialized with a population of random solutions. However, each potential solution is also assigned a randomized velocity, and the potential solutions, call particles, corresponding to individuals. Each particle in PSO flies in the D-dimensional problem space with a velocity which is dynamically adjusted according to the flying experiences of its own and its colleagues."
The implimentation is very general and can be scaled to many different uses. The PSO minimizes around an n-dimentional target specified by the user. I've been experimenting with very high-dimentional systems (64, 128 +) so that an image can be represented by each particle.
I've only included makefiles for linux and OSX (borrowed from prepend and pool) and I plan on releasing MAX OSX and PD OSX binaries. If you're inclined to compile for win32 please contact me!
Let me know if you find it useful/interesting and what you do with it!
Ben