Implemented PSO