Manopt.jl icon indicating copy to clipboard operation
Manopt.jl copied to clipboard

Change default stopping criterion in particle swarm

Open mateuszbaran opened this issue 1 year ago • 7 comments

Currently it is distance between old and new swarm but IMO norm of velocities would make more sense. Ref #345 .

mateuszbaran avatar Jan 19 '24 13:01 mateuszbaran

That does sounds reasonable, but it would be great to back that up with (Riemannian or Euclidean) literature on that.

kellertuer avatar Jan 19 '24 13:01 kellertuer

The closest thing I could find is move forcing: https://arxiv.org/pdf/1906.08867.pdf . Do you have any literature that uses the current stopping criterion?

mateuszbaran avatar Jan 19 '24 13:01 mateuszbaran

No, sadly I do not, I think that came up as a spontaneous idea during the bachelor thesis, this code was part of.

kellertuer avatar Jan 19 '24 13:01 kellertuer

OK, then it's not any better in this regard :wink:

mateuszbaran avatar Jan 19 '24 13:01 mateuszbaran

That is exactly where my careful request about the citation comes from. If we improve it then with a reasonable source for that

kellertuer avatar Jan 19 '24 13:01 kellertuer

It's effectively very similar in the idea, very easy to implement and much faster, I don't see any drawbacks. Standard stopping criteria for PSO are usually more simple, see https://web2.qatar.cmu.edu/~gdicaro/15382/additional/CompIntelligence-Engelbrecht-ch16.pdf . Here is a practical example: https://www.mathworks.com/help/gads/particleswarm.html .

mateuszbaran avatar Jan 19 '24 13:01 mateuszbaran

I see, then sure, let's go for the one that's easier to compute :)

Compared to your idea of the change of the iterate / global best, Matlab at least has something like “if it has not changed for the last X iterations”, which for me also sounds reasonable.

kellertuer avatar Jan 19 '24 14:01 kellertuer