Particle swarm optimization: surfing the waves | Synapse