44 | | Like many other metheuristics, the PSO algorithm frequently faces the problems of being trapped in local optima. Balancing the global exploration and local exploitation abilities of PSO is therefore very important. |
| 44 | Like many other metheuristics, the PSO algorithm frequently faces the problems of being trapped in local optima. Balancing the global exploration and local exploitation abilities of PSO is therefore very important. Important PSO parameters that should be tweaked for every problem (or even instance): |
| 45 | |
| 46 | '''Inertia Weight''' |
| 47 | The inertia weight parameter was introduced in 1998 by Shi and Eberhart. The idea was to use a maximum velocity and set the velocity bounds to the dynamic range of the solution space. One can further improve results by adjusting the inertia weight dynamically during the optimization run (via fuzzy optimization, by linear decreasing or increasing or randomizing the parameter). |
| 48 | |
| 49 | '''Velocity Bounds''' |
| 50 | Another important parameter is the minimum/maximum velocity bounds vector. Particle velocities on each dimension are clamped to a certain velocity range by the parameter `VelocityBounds`. Therefore `VelocityBounds` affects the maximum global exploration ability of PSO, since |
| 51 | * large velocity --> global exploration and |
| 52 | * small velocity --> local exploitation. |
48 | | A recent paper by [#References (Pedersen 2010)] provides a most helpful table of PSO parameters that have been tuned for different optimization scenarios. We recommend them as a first starting point when optimizing new problems. Some of the settings (like using a negative inertia weight) may seem quirky, but we also got some very good results with those settings. |
49 | | |
50 | | '''Velocity Bounds''' |
51 | | Another is to adjust the minimum/maximum velocity bounds vector. Particle velocities on each dimension are clamped to a certain velocity range. The parameter `VelocityBounds` controls the maximum global exploration ability of PSO. |
52 | | * large velocity --> global exploration |
53 | | * small velocity --> local exploitation |
54 | | |
55 | | '''Inertia Weight''' |
56 | | The inertia weight parameter was introduced in 1998 by Shi and Eberhart. The idea was to use a maximum velocity ad set the velocity bounds to One common strategy is to adjust the inertia weight dynamically during the optimization run (via fuzzy optimization, by linear decreasing or increasing or randomizing the parameter). |
| 56 | A recent paper by [#References (Pedersen 2010)] provides a most helpful table of PSO parameters that have been tuned via meta/optimization for different optimization scenarios. We recommend them as a first starting point when optimizing new problems. Some of the settings (like using a negative inertia weight) may seem quirky, but we also got some very good results with those settings. |