I don't think Swarm Particle optimization is right for your case ...
PSO retains the maximum value found so far and its location. Therefore, if this highest value was caused only by noise , it will depend there all the time.
You have to modify the regular PSO to consider the weighted average of the found maxima (and not the final global maximum)
I recommend you take a look at: Fuzzy Particle Blur Optimization
But this question is still under investigation, so it may be difficult for you to get to it ...
You can also go to Simulated Annealing , which is best suited to your business ...