問い合わせフォームのご連絡
この記事の内容についてのご質問や、
Ansys(Lumerical / HFSS など)の使い方相談はもちろん、
フリーソフト・OSSを使ったシミュレーションや解析の技術的なご相談も受け付けています。
「この設定で合ってる?」「この解析、どう進めるのがよい?」
「商用ソフトとフリーソフト、どう使い分けるべき?」
といったレベル感でも問題ありません。
気軽にこちらの問い合わせフォームからご連絡ください👇
はじめに
Siクロス導波路の形状最適化を検討する中で、勾配法(L-BFGS-B)だけでなく、進化的アルゴリズムも試してみたいと考えました。その際に候補として調べたのが、Python製の多目的最適化ライブラリ pymoo です。pymooは単一目的・多目的の両方に対応しており、研究用途から実務まで幅広く使われています。
本記事では、pymoo
が提供している代表的な最適化アルゴリズムを、用途別に整理して紹介します。
pymooとは?
pymooは、進化的アルゴリズムを中心とした最適化ライブラリで、特に多目的最適化(Pareto最適化)に強みがあります。目的関数がブラックボックスであっても扱いやすく、勾配が取れない問題や、評価コストが高いシミュレーション最適化とも相性が良いのが特徴です。光デバイス設計のように、「評価は重いが形状の自由度は高い」問題に対しても適用しやすい印象があります。
pymoo の代表的な最適化アルゴリズム一覧
詳細は下記を参照
● 単一目的アルゴリズム(Single Objective)
| アルゴリズム名 | 概要 |
|---|---|
|
GA (Genetic Algorithm) |
汎用的な遺伝的アルゴリズム。進化操作をカスタマイズ可能。 |
|
DE (Differential Evolution) |
差分進化法。連続空間のグローバル最適化に強い。 |
|
BRKGA (Biased Random Key GA) |
変数エンコーディング主体のGA。組合せ系にも適用可。 |
| Nelder Mead | 単純形に基づく探索法。勾配不要の局所探索。 |
| Pattern Search | パターン探索による局所的な方向探索。 |
| CMA-ES | 平均・共分散行列を更新する進化戦略。 |
|
ES (Evolutionary Strategy) |
進化戦略法。実数値最適化用。 |
| SRES / ISRES | 制約付きの確率的進化戦略(改良版あり)。 |
| NRBO | Newton-Raphson風のメタヒューリスティック。 |
● 多目的・多数目的アルゴリズム(Multi / Many Objective)
| アルゴリズム名 | 概要 |
|---|---|
| NSGA-II | 非支配ソート+クラウディング距離による定番多目的最適化。 |
| R-NSGA-II | NSGA-II に参照点(ユーザー指定)を導入可能。 |
| PI-NSGA-II | ユーザーの好みによる指向的多目的探索。 |
| NSGA-III | 多目的(≥3 目的)に対応した NSGA の拡張。 |
| U-NSGA-III | NSGA-III の一般化版。 |
| R-NSGA-III | 参照点付き NSGA-III。ユーザー好み反映型。 |
| MOEA/D | 目的分解ベースの多目的最適化。 |
| AGE-MOEA | Pareto フロント形状推定による指標最適化。 |
| C-TAEA | 制約処理が強化された多目的アルゴリズム。 |
| SMS-EMOA | ハイパーボリュームを用いた生存戦略。 |
| RVEA | 参照ベクトル誘導型の多目的探索。 |
| CMOPSO / MOPSO-CD | PSO(粒子群)ベースの多目的最適化。 |
● 補足
pymoo は 単一目的・多目的・多数目的 の幅広いアルゴリズムを標準提供しています。
これらは全て Python から統一インターフェースで呼び出し可能で、目的や評価コストに応じた使い分けができますので、Lumericalのpython apiとの併用で色々試せると思います。
pymooを利用した前回の記事はこちら
※本記事は筆者個人の見解であり、所属組織の公式見解を示すものではありません。
問い合わせ
光学シミュレーションソフトの導入や技術相談、
設計解析委託をお考えの方はサイバネットシステムにお問合せください。
光学ソリューションサイトについては以下の公式サイトを参照:
👉 [光学ソリューションサイト(サイバネット)]
光学分野のエンジニアリングサービスについては以下の公式サイトを参照:
👉 [光学エンジニアリングサービス(サイバネット)]