Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change default stopping criterion in particle swarm #347

Closed
mateuszbaran opened this issue Jan 19, 2024 · 7 comments
Closed

Change default stopping criterion in particle swarm #347

mateuszbaran opened this issue Jan 19, 2024 · 7 comments

Comments

@mateuszbaran
Copy link
Member

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

@kellertuer
Copy link
Member

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

@mateuszbaran
Copy link
Member Author

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?

@kellertuer
Copy link
Member

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

@mateuszbaran
Copy link
Member Author

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

@kellertuer
Copy link
Member

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

@mateuszbaran
Copy link
Member Author

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 .

@kellertuer
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants