Skip to content

遺伝的アルゴリズム(GA)

遺伝的アルゴリズム(GA: Genetic Algorithm)は、候補解の集団(population)を並列に探索し、選択・交叉・突然変異を繰り返して高性能解へ近づけるメタヒューリスティクスである。材料科学では、組成設計・プロセス条件探索・構造予測・多目的最適化(性能とコスト等)に広く使われる。

参考ドキュメント

1. GAが効く場面

  • 目的関数が非凸・多峰性(局所解が多い):相変態や準安定相、複雑な反応経路
  • 設計変数が混在:連続(温度・時間)+離散(元素種、工程フラグ)+順列(積層順など)
  • 制約が多い:合成可能域、組成制約(和=1)、安全制約、装置制約
  • 多目的最適化:強度–延性、活性–耐久、性能–コスト など

BO(ベイズ最適化)が「少数回で最良点」狙いに強いのに対し、GAは「大域探索と離散・組合せの扱い」に強い傾向がある。

2. GAの構成要素

GAは以下の設計で性能が決まる。

  • 染色体(個体表現): 候補解の表現方法
  • 適応度(fitness): 良さを数値化する指標(最大化/最小化)
  • 選択(selection): 良い個体を残す仕組み
  • 交叉(crossover): 2個体を組み合わせ新個体を作る
  • 突然変異(mutation): 局所探索・多様性維持のためのランダム変更
  • エリート保存(elitism): 最良個体の取りこぼし防止
  • 停止条件: 世代数、改善停止、予算枯渇(実験回数・DFT回数)など

3. 基本アルゴリズム

入力: 初期集団サイズ N、世代数 G、交叉率 pc、突然変異率 pm

  1. 初期集団 P0 を生成(ランダム、DOE、既知良条件など)
  2. g=0..G1 について繰り返す 2.1 各個体 xPg を評価し fitness f(x) を得る(実験/計算/サロゲート) 2.2 選択で親集団を作る(例: トーナメント選択) 2.3 交叉で子個体を生成(確率 pc) 2.4 突然変異で子個体を摂動(確率 pm) 2.5 制約処理(投影、修復、ペナルティ等) 2.6 次世代 Pg+1 を構成(エリート保存 + 子個体)
  3. 最良個体(またはパレート集合)を出力

4. 個体(設計変数)の表現

表現の選択は最重要である(交叉・突然変異を自然に定義できるかが鍵)。

設計対象代表的表現
連続条件(温度・時間等)実数ベクトルx=(T,t,p,...)
組成(和=1制約)実数+制約付きx=(x1..xk),Σxi=1
元素種の組合せ離散(整数/カテゴリ)元素IDの列、one-hot
結晶/原子構造原子座標+格子、グラフ交叉は「部分構造の交換」等
積層/配列順列layer順、サイト占有順

組成は Σxi=1 の単体(simplex)制約があるため、突然変異後に

xmax(x,0)imax(xi,0)

のように正規化して feasible に戻す(投影/修復)のが定番である。

5. 適応度設計

5.1 単一目的の例

最小化したいとき(エネルギー E、損失 P など)は

f(x)=E(x)

のように最大化へ変換するか、最小化GAを用いる。

5.2 制約の扱い(ペナルティ法の例)

制約 gk(x)0 があるとき

F(x)=f(x)λkmax(0,gk(x))2

のように違反量を罰する。合成不可能領域は「生成段階で除外(hard)」が安全である。

5.3 ノイズ・再現性

実験応答がばらつく場合、同一点反復で分散推定を持ち、適応度に平均と不確かさを入れる設計が有効である。

6. 多目的GA

材料設計は多目的になりやすい。 例:強度 σ を上げつつ延性 ε も落としたくない、コスト C を下げたい。

多目的では「パレート最適」を求める。

  • 支配(domination): すべての目的で同等以上、かつ少なくとも一つで優れる
  • パレート前線: 支配されない解の集合

代表的手法の一つが NSGA-II(非支配ソート + 混雑度)である。

7. 典型例

7.1 合金・触媒組成探索

  1. 個体 = 組成(+処理条件)
  2. 評価 = 実験(HTE)または計算(DFT/MD)
  3. 世代更新で高性能域に集団が寄る
  4. 最後に上位候補を高精度評価し、物理解釈(特徴量、相、局所構造)へ接続

7.2 結晶構造予測(CSP)への応用

  1. 個体 = 構造(格子+原子配置)
  2. 評価 = 構造緩和後のエネルギー
  3. 交叉 = 部分構造の交換、突然変異 = 格子・座標摂動など
  4. 低エネルギー構造群を列挙し、安定相・準安定相候補を得る

7.3 サロゲート併用(GAを高速化)

評価が高価な場合、段階評価が有効である。

  • 低忠実度(粗いDFT、短MD、経験式)でふるい分け
  • 高忠実度(精密DFT、実験)で上位のみ確定
  • 途中で機械学習サロゲートを学習し、評価回数を削減する

8. 初期設定

項目目安コメント
集団サイズ N20〜200変数次元と評価コストで調整
交叉率 pc0.6〜0.9探索を進める主力
突然変異率 pm0.01〜0.2多様性維持、上げすぎ注意
選択トーナメント/ランキングルーレットはスケール差に敏感
エリート数1〜数個体取りこぼし防止、増やしすぎ注意
終了条件改善停止 + 最大世代再現性のため乱数seed管理

9. 注意点

  • 表現が悪い:交叉・突然変異が物理的に意味のない解を大量生成する
  • 制約処理が弱い:実現不可能点の評価に計算資源を浪費する
  • 多様性が死ぬ:早期収束(premature convergence)で局所解に固着する
  • 1回実行の結果を過信:GAは確率的手法であり、複数seedでの安定性確認が必要である

まとめ

遺伝的アルゴリズムは、離散・組合せ・多峰性を含む材料設計問題に対して強い大域探索法である。成功の鍵は、材料問題に合った個体表現、制約処理、適応度設計、多目的(パレート)運用であり、評価が高価な場合はサロゲートや段階評価と組み合わせることで実用性が大きく向上する。