メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

粒子群最適化とは何ですか?

粒子群最適化は、個体の粒子の集合が領域内を段階的に移動する集団ベースのアルゴリズムです。粒子と呼ばれる個体の集合が、領域内を段階的に移動します。各ステップで、アルゴリズムは各粒子の目的関数を評価します。この評価の後、アルゴリズムは各粒子の新しい速度を決定します。粒子が移動すると、アルゴリズムは目的関数を再評価します。

このアルゴリズムのインスピレーションは、鳥の群れや昆虫の大群です。各粒子は、これまでに発見した最適な位置に引き寄せられ、また、群れのどのメンバーが発見した最適な位置にも引き寄せられます。いくつかのステップを踏むと、母集団は1 つの場所の周囲に集まったり、いくつかの場所の周囲に集まったり、あるいは移動を続けます。

アルゴリズムは、単一の現在のポイントではなく、母集団に基づいています。この点で、particleswarm は遺伝的アルゴリズムに似ています (遺伝的アルゴリズムとは何ですか? を参照)。

アルゴリズムの反復 n では、粒子の速度は v(n) となり、次の値に依存します。

  • 遭遇した最適な目的関数値の場所、s(n)。

  • 近傍の中で最適な目的関数値の位置、g(n)。

  • 前の速度v(n – 1)。

粒子x(n)の位置は速度に応じて更新されます。

x(n+1)=x(n)+v(n),

境界内に収まるように調整されます。

粒子の速度は、おおよそ次の式に従って更新されます。

v(n+1) = W(n)v(n)+r(1)(s(n)x(n))+r(2)(g(n)x(n)).

ここで、r(1)とr(2)は0から1の間のランダムなスカラー値であり、W(n)は反復中に調整される慣性係数です。完全なアルゴリズムでは、ランダムに変化する近傍を使用し、改善点に遭遇したときに変更を加えます。粒子群最適化アルゴリズムを参照してください。

この図に示すように、粒子の初期速度はランダムであるように見えますが、数回の反復後には群れは局所的または大域解に収束する可能性があります。

Six images showing a collection of particles and their velocities converging to a single location with zero velocity.

参考

トピック