I am implementing a couple of PSO (particle swarm optimization) algorithms, and I got stuck on a bit of detail which I could not clearly determine from the papers I have read. In lbest PSO, for each particle, the velocity update step takes the best particle's position in that particle's neighbourhood into account. What I am not 100% clear on is how that "best particle" is defined. To my understanding, it could be
(a) the best current position of each particle in the neighbourhood,
(b) the best pbest position (in memory) of each particle in the neighbourhood, or
(c) the best lbest psoition of each such particle, which could be initially determined from (a) or (b) as above, but over time allow information about other neighbourhoods' best positions to distribute across the swarm.
I realize that each of the above may be a valid and published version of PSO. I just want to know which version is usually referred to as "lbest PSO".