適合度関数は、与えられた候補解が設定された目標にどれだけ近いかを単一の評価指標として要約するために使用される、特定のタイプの目的関数またはコスト関数です。これは、遺伝的プログラミング、進化戦略、遺伝的アルゴリズムなどの進化アルゴリズム(EA)の重要な構成要素です。EAは、少なくとも近似的に、困難な最適化または計画タスクを解決するために、生物学的進化の基本原理をコンピュータアルゴリズムとして再現するメタヒューリスティックです。この目的のために、多くの候補解が生成され、適合度関数を使用して評価され、進化の発展を望ましい目標に導きます。[ 1 ]同様の品質関数は、アリコロニー最適化や粒子群最適化などの他のメタヒューリスティックでも使用されます。
EAの分野では、個体とも呼ばれる各候補解は、一般的に数値の列(染色体と呼ばれる)として表されます。テストまたはシミュレーションの各ラウンドの後、最悪のn個体を削除し、最良の解からn個の新しい個体を生成する ことが目的です。したがって、各個体には、全体的な仕様にどれだけ近いかを示す品質番号を割り当てる必要があり、これは、その候補解から得られたテストまたはシミュレーション結果に適応度関数を適用することによって生成されます。[ 2 ]
適応度関数には大きく分けて 2 つのクラスがあります。1 つは、固定関数の最適化や固定されたテスト ケースのセットでのテストのように、適応度関数が変化しない場合です。もう 1 つは、ニッチ分化やテスト ケースのセットの共進化のように、適応度関数が変化する場合です。 [ 3 ] [ 4 ]適応度関数を別の視点から見る方法として、各可能な染色体の適応度を示す適応度ランドスケープがあります。以下では、適応度は最適化実行中に変化しない評価に基づいて決定されると仮定します。
適合度関数は必ずしも絶対値を計算できる必要はなく、より良い候補を選択するために候補を比較するだけで十分な場合もあります。トーナメント選択やパレート最適化などの場合、適合度の相対的な指標(候補 a は b より優れている)で十分な場合もあります[ 5 ]。
適応度関数の評価と計算の質は、EA最適化の成功に不可欠です。これは、ダーウィンの「適者生存」の原理を実装するものです。配偶者選択と子孫の受け入れのための適応度に基づく選択メカニズムがなければ、EA探索は盲目的になり、モンテカルロ法とほとんど区別がつかなくなります。適応度関数を設定する際には、それが単に望ましい目標状態を記述する以上の意味を持つことを常に意識する必要があります。むしろ、適応度関数単独で既に実現されていない限り、最適解への進化的探索も可能な限りサポートする必要があります(補助目標に関するセクションも参照)。適応度関数の設計が不適切であれば、アルゴリズムは不適切な解に収束するか、あるいは全く収束しない可能性があります。
適応度関数の定義は多くの場合単純ではなく、進化アルゴリズムによって生成された最適解が望ましいものでない場合は、反復的に行われることが多い。対話型遺伝的アルゴリズムは、評価を外部エージェント(通常は人間)に委ねることで、この困難に対処する。
適合度関数は、設計者の目標に合致するだけでなく、計算効率も高くなければならない。実行速度は極めて重要であり、複雑な問題に対して実用的な結果を得るためには、一般的な進化アルゴリズムは何度も反復する必要がある。
適合度近似[ 6 ] [ 7 ]は、特に以下のケースにおいて適切である可能性がある。
あるいは、適応度近似に加えて、実行時間を短縮するために適応度計算を並列コンピュータに分散させることもできます。使用するEAの個体群モデルによっては、EA自体と1世代のすべての子孫の適応度計算の両方を並列で実行できます。[ 9 ] [ 10 ] [ 11 ]
実際の応用では、複数の、少なくとも部分的に相反する目的を最適化することが目標となることが多い。この目的のために、パレート最適化と加重和を用いて計算された適合度に基づく最適化という、根本的に異なる2つのアプローチがよく用いられる。[ 12 ]
加重和で最適化する場合、目標はまず正規化され、比較可能になります。これは、コストを利用するか、目標値を指定して現在の値を達成度として決定することによって行うことができます。コストまたは達成度は互いに比較でき、必要に応じて統一された適合度スケールにマッピングすることもできます。一般性を失うことなく、適合度は最大化すべき値を表すものと仮定します。各目標重みが割り当てられるパーセンテージ値として、全体的な生のフィットネス加重和として計算できます。
違反制限このように決定された適合度には、ペナルティ関数の形で含めることができる。この目的のために、関数値を返す各制限に対して定義できます。そして違反の程度に応じて、結果は違反がない場合、以前に決定された生の適応度にペナルティ関数を乗算し、その結果が最終的な適応度となります。: [ 13 ]
このアプローチはシンプルで、任意の数の目的と制約を組み合わせることができるという利点があります。欠点は、異なる目的が互いに相殺し合う可能性があり、最適化の前に重みを定義する必要があることです。つまり、最適化の前に妥協線を定義する必要があるため、加重和による最適化は事前法とも呼ばれます。[ 12 ]さらに、特定の解が得られない場合もあります。両方のタイプの最適化の比較に関するセクションを参照してください。
ある目的の改善が、少なくとも他の1つの目的の悪化を伴う場合にのみ可能な場合、その解はパレート最適であると呼ばれます。すべてのパレート最適解の集合(パレート集合とも呼ばれる)は、目的間のすべての最適な妥協点の集合を表します。右下の図は、2つの目的のパレート集合の例を示しています。そして最大化すべきもの。集合の要素はパレートフロンティア(緑線)を形成する。この集合から、人間の意思決定者は望ましい妥協解を選択しなければならない。[ 12 ]制約はパレート最適化に含まれており、制約違反のない解は、違反のある解よりも本質的に優れている。比較する2つの解がそれぞれ制約違反を持っている場合、それぞれの違反の程度によって決まる。[ 14 ]
EA は、同時に考慮される解集合により、パレート フロンティアを十分にカバーする解を 1 回の実行で見つけるのに適していることが早い段階で認識されました。[ 14 ] [ 15 ]したがって、EA は、最適化とパレート フロンティアの決定後に人間の意思決定者が最終的な決定を行う多目的最適化の事後的方法に適しています。 [ 12 ] SPEA2 に加えて、[ 16 ] NSGA-II [ 17 ]と NSGA-III [ 18 ] [ 19 ]が標準的な方法として確立されています。
パレート最適化の利点は、加重和とは対照的に、目的に関して同等のすべての代替案を全体的な解決策として提供することです。欠点は、目的が4つ以上になると、代替案の視覚化が困難または不可能になることです。さらに、労力は目的の数とともに指数関数的に増加します。[ 13 ]目的が3つまたは4つを超える場合は、加重和またはその他の集約方法を使用して、いくつかを組み合わせる必要があります。[ 12 ]


重み付き和を用いることで、適切な重みを選択することにより、凸である限り、全体のパレートフロンティアを得ることができる。[ 20 ]これは、左側の隣の図に示されている。緑色のパレート最適解は、重みによって到達されます。そしてただし、EAが最適解に収束することを前提とする。解集合の中で適合度の増加が最大となる方向。描かれた矢印で示されています。
しかし、非凸面の場合、非凸面部分は加重和では到達できません。右側の隣の画像では、これは点間の部分です。そしてこれは、加重和の拡張であるカスケード加重和を使用することで、ある程度改善できます。[ 13 ]
両方の評価アプローチを比較すると、タスクの可能な解決策についてほとんど知られておらず、最適化目標の数を最大でも 3 つ、多くても 4 つに絞り込める場合は、パレート最適化の使用が確かに有利です。しかし、同じタスクのバリエーションを繰り返し最適化する場合、望ましい妥協線は通常わかっており、パレートフロンティア全体を決定する努力はもはや正当化されません。これは、自動化された意思決定プロセスのように、最適化後に人間の決定が望まれない、または不可能な場合にも当てはまります。[ 13 ]

タスク自体から生じる主要目標に加えて、1つまたは複数の主要目標の達成を支援するために、評価に補助目標を含める必要がある場合があります。ここでは、スケジューリングタスクを例として説明します。最適化目標には、すべての注文を迅速に処理することだけでなく、完了予定時刻の遵守も含まれます。後者は、特に緊急注文のスケジューリングにおいて重要です。隣の図に示すように、最初のスケジュール例では、2番目の目標は達成されていません。次の変更ではこの点は変わりませんが、作業ステップdが前倒しでスケジュールされます。これは、注文の最後の作業ステップeを早く開始するために必要な中間ステップです。しかし、完了予定時刻のみが評価される限り、変更後のスケジュールの適合性は変わりません。これは、注文の適時完了という目標に向けた重要なステップであるにもかかわらずです。これは、例えば、作業ステップの遅延を追加で評価することで改善できます。新しい目標は、実際の最適化目標の達成を支援するために導入された補助目標です。このアプローチのより詳細な説明と別の例は、[ 21 ]に記載されています。