- Number of iterations reaches ‘MaxIterations’
- Relative change in the best objective function valueover the last‘MaxStallIterations’iterations is less than‘FunctionTolerance’.
stopping criteria for particle swarm optimization algorithm
26 views (last 30 days)
Show older comments
Hello everyone,
I am running an optimization problem using particle swarm algorithm pso). However, i have a problem related to the stopping criteria.
In fact, as i understood, pso will stop when 1) maximum iterations are reached or 2)in the last MaxStalliterations is less than function tolerance. Does my understanding seem correct ?
Indeed, in my optimization problem, the plot of the objective function shows that at iteration 11, the optimal objective function value is reached. Since, all parameters in pso are left by default, i expect that the algorithm will stop at iteration 31 following the second criteria (By defaut, MaxStalliterations is equal to 20). However, it does not stop.
Could you tell me why please ?
Here a plot of the objective function in function of number of iterations.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1645841/image.png)
Thank you in advance,
Best Regards,
0 Comments
Answers (1)
Abhinav Aravindan
on 14 Aug 2024 at 6:58
Edited: Abhinav Aravindan
on 14 Aug 2024 at 7:05
Hi @nado
The Particle Swarm Optimization stops on reaching one of the Stopping Criteria mentioned in the documentation below, which includes stopping when:
However, note that the “Relative change” here is measured by:
funChange = abs(maxBestFvalsWindow-bestFval)/max(1,abs(bestFval));
Since your objective function has a value less than 1, the “Relative Change” here is interpreted as “Absolute Change”. With the ‘FunctionalTolerance’ set at the default value, 1e-6, the change in objective function value ‘funChange’, may be still higher than 1e-6, resulting in the continuation of the optimization algorithm.
To avoid this, a possible solution is to change the ‘FunctionalTolerance’ parameter accordingly or scale up the objective function.
Please find below the relevant documentation for more information.
I hope this helps in resolving your query!
0 Comments
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!