PSOの基本
手順#
- 粒子の位置を探索範囲に無作為に配置し、速度も無作為に初期化する
- 各粒子で目的関数を評価する
- 自分の最良 (pBest)と 群れの最良 (gBest)を更新する
- 速度と位置を更新する
- 2〜4 を繰り返す
粒子が持つもの#
| 記号 | 中身 |
|---|---|
| 現在の位置。解の候補そのもの | |
| 速度。次にどちらへどれだけ動くか | |
| その粒子がこれまでに見つけた最良の位置 |
速度を持つことが PSO の特徴。局所探索は 現在地からの移動しか考えないが、PSO は慣性があるので 一度良い方向に乗ると通り過ぎる。この行き過ぎが探索の役に立つ場面と、 収束を妨げる場面の両方がある。
パラメータ#
| 記号 | 名前 | 典型値 |
|---|---|---|
| 慣性重み | 0.7 前後、あるいは 0.9 → 0.4 と減らす | |
| 自分の最良への引力 | 1.5〜2.0 | |
| 群れの最良への引力 | 1.5〜2.0 |
が大きいと各粒子が自分の経験に固執し(探索寄り)、 が大きいと全員が同じ場所へ集まる(活用寄り)。
参考文献#
- James Kennedy, Russell Eberhart. Particle Swarm Optimization. Proceedings of ICNN'95, 1995.(原論文) https://doi.org/10.1109/ICNN.1995.488968
- Riccardo Poli, James Kennedy, Tim Blackwell. Particle swarm optimization: An overview. Swarm Intelligence 1(1), 2007.(総説) https://doi.org/10.1007/s11721-007-0002-0