https://ieeexplore.ieee.org/document/5365309 [Enhancing Particle Swarm Optimization with Gradient Information]