NSGA-II (Non-dominated Sorting Genetic Algorithm II)による多目的最適化とその応用
はじめに
現実の意思決定問題では、複数の目標(目的関数)を同時に最適化する必要がしばしばあります。このような多目的最適化問題では、「最適解」は一意ではなく、トレードオフの集合(パレート最適解集合)が存在します。パレート最適性とは、ある解について他のいかなる解も全ての目的で優れていない場合を指し、パレート最適解の集合はパレートフロントと呼ばれます 。形式的には、最小化問題を考えると、解
多目的最適化とパレートフロントの概念
図1: 2目的最適化におけるパレートフロントの概念。 赤線で示された部分がパレートフロント(Efficient frontier)であり、点AおよびBは互いに支配関係がなくフロント上にある。灰色の点Cは、AおよびBによって支配されているためパレート最適ではない。
図1に示すように、多目的最適化では解空間に多数の解候補が存在し、それらの中から他に支配されない解(非支配解)だけがパレートフロントとして残ります。パレートフロント上の点は、ある目的をこれ以上改善しようとすると別の目的が悪化するというトレードオフの関係にあります。例えば、図1では目的
進化的手法は、このパレートフロントを効率よく探索するアプローチとして有力です。遺伝的アルゴリズム(GA)に代表される進化計算では、集団と呼ばれる複数の解(個体)を同時に扱い、世代を重ねて解を進化(改善)させます。各個体は解の符号化(遺伝子)を持ち、適合度(目的関数値)に応じた選択、解を組み合わせる交叉、ランダムな突然変異といった遺伝的操作を繰り返すことで探索を行います。多目的GA(MOEA)はこの過程で個体の非支配性(他個体に支配されていないか)を評価基準に組み込み、集団全体で多様なパレート解を得る工夫がなされています。次節では、数あるMOEAの中でも広く用いられているNSGA-IIアルゴリズムの仕組みを詳しく見ていきます。
NSGA-IIのアルゴリズムと理論的背景
NSGA-II (Non-dominated Sorting Genetic Algorithm II)は、K. Debらによって2002年に提案されたエリート主義型の多目的進化的アルゴリズムです。その前身であるNSGA(第一世代の非支配ソートGA)が抱えていた課題(非支配ソートの計算量、エリート保存の欠如、多様性維持のためのパラメータ設定)を克服するために考案されました 。NSGA-IIの特徴は以下の3点にまとめられます。
-
高速な非支配ソート: 個体を非支配ソートによりランク付けする際の計算量が改良され、従来
だった処理がO(MN^3) に高速化されています(O(MN^2) は目的数、M は集団サイズ)。これにより大規模集団でも効率よくパレートフロントを計算できます。N -
エリート保存戦略(Elitism): 現世代の優良解が次世代で失われないよう、親集団と子集団を統合した中から優れた個体を生き残らせる戦略を導入しています。具体的には各世代
において、親集団t (サイズP_t )とその交叉・突然変異によって生成された子集団N (サイズQ_t )をまず結合し、サイズN の合同集団2N を形成します。このR_t = P_t \cup Q_t に対して非支配ソートを行い、パレートランクごとのフロントR_t を得ます。次世代の親集団F_1, F_2, \dots は、まずランクの低いフロントから順に可能な限り全集団に追加していき(優先順位はP_{t+1} が最高)、容量F_1 を超過しそうになったところでストップします。最後に、入りきらない最終フロントN 内の個体については混雑距離によるソートを行い、解空間内でより疎な(周囲に他の解が少ない)個体を優先的に選抜してF_k 枠を埋めます。このようにして、パレート最良の個体群が保持・多様化されながら世代交代が行われます。N -
混雑距離に基づく多様性維持: 他の個体とどれだけ離れているかを定量化する混雑距離(crowding distance)を各個体に算出し、集団内の解の多様性を確保します 。混雑距離
は各目的関数空間で隣接する解との距離の和で定義されます。例えばフロントd_i 内の解を各目的F について昇順に並べたとき、両端の解の混雑距離を無限大に設定し(境界の解は常に残すため)、中間の解m については隣接する解j およびj+1 との目的値差分で計算します。j-1 d_j \;=\; \sum_{m=1}^{M} \frac{f_m(j+1) - f_m(j-1)}{f_m^{\max} - f_m^{\min}}\,, ここで
は解f_m(k) の目的k の評価値、m はそのフロント内での目的f_m^{\max}, f_m^{\min} の最大値・最小値です。この式から、周囲に極端な解がいない個体ほどm が大きくなり、結果的に混雑距離の大きな個体が選好されます。NSGA-IIでは混雑トーナメント選択も導入されており、親個体の選択時には2個体間でまずパレートランクを比較し、ランクが低い(優越する)方を選択します。ランクが同じ場合は混雑距離がより大きい方を選ぶことで、解の多様性を保ちながら選択圧をかけます 。この手法により、ユーザがパラメータを調整せずとも集団内の分散が維持される(前世代のNSGAで必要だったシェアリングパラメータd_j を不要化)という利点があります。\sigma
以上をまとめると、NSGA-IIのアルゴリズム手順は以下のようになります。
- 初期集団
(サイズP_0 の個体群)をランダムに生成し、世代N とする。t=0 - 各個体の目的関数を評価し、集団
内で非支配ソートを実施してパレートランクを付与する(ランク1が最良の非支配フロント)。加えて各個体の混雑距離P_t を計算する。d_i -
選択: 混雑トーナメント選択により、次世代の親候補となる個体を
から選抜する(ランク優先・距離サブ優先)。P_t -
交叉・突然変異: 選抜された個体ペアから交叉によって新たな子個体を生成し、さらに突然変異を適用して子集団
(サイズQ_t )を構成する。N -
エリート保存による世代交代: 親集団
と子集団P_t を統合したQ_t に対し非支配ソートを行い、ランクごとに次世代集団R_t = P_t \cup Q_t (サイズP_{t+1} )を埋める。途中のフロントで枠が埋まらない場合は、そのフロント内で混雑距離の大きい個体から選抜してN を完成させる。P_{t+1} - 終了条件(予め決めた最大世代数や収束指標の閾値など)を満たしていなければ
とし、ステップ2以降を繰り返す。満たした場合はt := t+1 に含まれる非支配解集合を出力する。P_t
以上のようにNSGA-IIは、適応度評価と非支配ソートに基づいて解集合全体でパレートフロントの近似解を進化的に生成します。その高速化と多様性確保の工夫により、様々な分野の多目的最適化問題で成功を収めており、現在でも最も広く用いられる手法の一つです。次節では、このNSGA-IIを金融分野のポートフォリオ最適化問題に応用する方法と、その利点について説明します。
ポートフォリオ最適化へのNSGA-IIの応用
ポートフォリオ最適化とは、複数の資産に資金を配分することでリスクとリターンのバランスを最適化する問題です。古典的にはMarkowitzの平均-分散モデル(モダンポートフォリオ理論)が広く知られており、これは期待リターン(平均)を最大化しつつリスク(分散)を最小化することを目的とします 。形式的には、資産
-
期待リターン:
\mu_p(\mathbf{w}) = \sum_{i=1}^n w_i \mu_i -
リスク(分散):
\sigma_p^2(\mathbf{w}) = \mathbf{w}^T \Sigma\, \mathbf{w}
典型的な最適化問題の定式化では、「期待リターンを最大化し、同時にリスクを最小化する」という多目的最適化となります。ただし単一目的最適化に帰着させる場合、例えば「所与の目標リターン
上記のポートフォリオ問題はまさに二目的の最適化問題であり、NSGA-IIによってEfficient frontierを直接近似することが可能です。NSGA-IIを適用するには、個体の遺伝子符号化として資産配分比率
図2: NSGA-IIによって得られたポートフォリオ集団のリスク–リターン平面上の分布(緑点:集団内のポートフォリオ、赤点:非支配の解として選抜されたEfficient frontier)。横軸はリスク(標準偏差)、縦軸は期待リターンを示す。
図2は、NSGA-IIで進化させたポートフォリオ集団をリスク–リターン空間にプロットした一例です。世代が進むにつれて集団内の点(緑色)は左上方向(低リスク・高リターン)へ引き寄せられ、やがて赤色で示したパレート最適フロントに個体が集まっていく様子が確認できます。Efficient frontier上の各ポートフォリオは、古典的なMarkowitzモデルで計算されるフロント解と一致するだけでなく、もし追加の制約(例えば資産数の上限=カーディナリティ制約や個別資産への投資比率の上下限、取引コストなど)を課した場合でも、NSGA-IIはそれら制約下のパレート最適解を近似的に求めることができます 。一方でMarkowitzの平均-分散法をそのまま適用すると、これら離散的・組合せ的な制約が入った問題は数理的に複雑になり、厳密解の計算が困難になることが知られています(NP困難な組合せ最適化に帰着します)。NSGA-IIをはじめとする進化的手法は厳密解を保証しないものの、現実的な制約条件を柔軟に扱え、近似解でも十分な解の多様性を提供できる点で実用上有用です。特にポートフォリオ問題では、Efficient frontierという全体像を一度の計算で得られるため、投資家はリスク–リターンのトレードオフを把握しながら自らの許容度に応じたポートフォリオを選択できます 。これは単一解しか得られない最適化と比べ大きな利点です。
おわりに
本記事では、NSGA-II(Non-dominated Sorting Genetic Algorithm II)の理論的背景とアルゴリズム詳細を、数式を交えて解説しました。NSGA-IIは、多目的最適化においてパレート最適解の集合を一度に効率よく探索するための強力な手法であり、その高速な非支配ソート、エリート保存戦略、混雑距離による多様性維持機構によって広く採用されています。また応用例として、金融におけるポートフォリオ最適化問題にNSGA-IIを適用し、従来のMarkowitzモデルでは逐次的に求めていたEfficient frontierを進化計算によって直接近似できることを示しました。NSGA-IIは現実の複雑な制約条件下でも適用可能であり、学術研究のみならず実務においても多目的最適化の有用なツールとなり得ます。
参考文献:
- Kalyanmoy Deb et al., “A fast and elitist multiobjective genetic algorithm: NSGA-II,” IEEE Trans. Evolutionary Computation 2002 (A fast and elitist multiobjective genetic algorithm: NSGA-II - Evolutionary Computation, IEEE Transactions on) .
- “On NSGA-II and NSGA-III in Portfolio Management,” IEEE/CAA J. of Automatica Sinica, vol. 32, no. 3, 2022 (On NSGA-II and NSGA-III in Portfolio Management).
Discussion