Particle Swarm Optimization - What method is used to find local minimum?
1 view (last 30 days)
Show older comments
I'm using an app to fit parameters of the experimental data.The code utilises particle swarm optimization.
Basic synthax is the following: x = particleswarm(fun,nvars)
Function attempts to find a vector x that achieves a local minimum of fun. nvars is the dimension (number of design variables) of fun.
This was quoted directly from the Matlab directory. While this looks fair, it doesn't really explain what kind of solver particle swarm is or what math is used to find the local minimum.
Do you have any ideas?
Thank you
1 Comment
Torsten
on 30 Jul 2024
Here is the information you ask for (look at the References at the bottom of the page):
Accepted Answer
John D'Errico
on 30 Jul 2024
Particle swarm optimization,
is one of many meta-heuristics used to search for an optimum of some general function. You could add things like GA, simulated annealing, or the many various colony schemes that can be mployed. (Bees, wolves, ants, etc.) However, I would strongly suggest you avoid termite colony optimizations, as they can damage your home. ;-)
As is always the case, read the help! At the bottom of doc:particleswarm, you will find references for the tool. They will explain it. However, as is also the case, most of these meta-heuristics for optimization employ little real mathematics. Code yes. A cloud of points that attempts to move towards goodness, as defined by the objective function. A minor, subtle point is if you will do better to move away from bad-ness, as opposed to moving towards goodness. I mention that because as I recall from my reading many years ago, Nelder-Mead schemes that tried to move towards goodnesss tended to generate degenerate simplexes. Those schemes that moved away from bad places were more robust.
More Answers (0)
See Also
Categories
Find more on Particle Swarm in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!