粒子群最適化(PSO:Particle Swarm Optimization)は、鳥の群れや魚の群れの社会的行動を模倣した最適化アルゴリズムです。昆虫の大群や魚群において、一匹がよさそうな経路を発見すると、群れの残りはどこにいても素早くそれに倣うことができる現象をモデル化したものです。
各粒子は多次元空間において位置と速度を持ち、ハイパー空間を飛びまわりながら最善な位置を探索します。群れのメンバーは良い位置について情報交換し、それに基づいて自身の位置と速度を調整する仕組みが特徴的です。このコミュニケーションは主に二種類の方法でなされます:最も良い位置にいる粒子が全体に通知される方法と、ローカルなベストの位置にいる粒子が近傍の粒子群に通知される方法です。
PSOの数式的表現は以下のようになります:
遺伝的アルゴリズム(GA:Genetic Algorithm)は、1975年にミシガン大学のジョン・H・ホランドによって提案された、生物の進化の仕組みを利用した最適化手法です。最適化問題に対する解の集合を個体群とみなし、個体の環境への順応の度合いを適応度によって評価します。
参考)遺伝的アルゴリズムの活用法|Sky Tech Blog(スカ…
GAの基本的な手順は以下の通りです:
個体の同格性は文字列の集合である染色体によって表現され、遺伝子は最適化をしようとしている一つのパラメータの値を符号化する染色体の一部分です。遺伝子の符号化の典型的な例として、バイナリもしくは整数が挙げられます。再組合せ、突然変異、淘汰を通して、祖先よりも適応度の平均が高い新世代の検索点が見つけられる仕組みです。
粒子群最適化には以下のような利点があります。
メリット
デメリット
参考)https://www.ieice.org/publications/conference-FIT-DVDs/FIT2014/data/pdf/F-029.pdf
遺伝的アルゴリズムには以下のような特徴があります。
メリット
デメリット
特に、多くの個体を評価し、選択・交叉・突然変異を繰り返すことで解の探索を行うため、問題のサイズや解の空間が大きい場合、十分な探索を行うために多くの計算時間が必要になります。また、確率的な最適化手法であるため、実行ごとに異なる解が得られる可能性があり、最適解の保証ができない点も重要な考慮事項です。
実際の性能比較において、両アルゴリズムの特性が明確に現れています。PyGMOライブラリでの比較検証では、粒子群最適化(PSO)は実装が容易で収束が速いという特徴が確認されています。一方で、PSOは局所解に陥りやすいという懸念も指摘されています。
遺伝的アルゴリズム(Simple Genetic Algorithm)は、シンプルで実装が容易である反面、探索効率が低いという特徴が報告されています。しかし、高次元問題に対してはCMA-ES(共分散行列適応戦略)のような進化戦略系のアルゴリズムが高い性能を示すことが知られています。
最適化アルゴリズムの収束性能は、問題の性質によって大きく左右されます。粒子群最適化は連続最適化問題において特に優れた性能を発揮し、短時間での収束が期待できます。例えば、PSOは1000世代にわたって進化を行う場合でも、効率的な探索が可能です。
一方、遺伝的アルゴリズムは組み合わせ最適化問題や複雑な制約条件を持つ問題において、その真価を発揮する傾向があります。特に、トラック配送の最適化問題のような現実的な制約を持つ問題では、遺伝的アルゴリズムの柔軟性が活かされます。
ハイブリッドアプローチとして、両アルゴリズムの特徴を組み合わせた手法も提案されており、これにより各手法の弱点を補完することが可能になっています。例えば、遺伝的アルゴリズムの機能を援用した粒子群最適化や、粒子群最適化と遺伝的アルゴリズムを組み合わせたハイブリッド手法により、より効果的な最適化が実現されています。
参考)https://www.semanticscholar.org/paper/eee8fb995b9033cc47fcbb24d9e5ee2a9ce80c77