差分進化 (DE) と遺伝的アルゴリズム (GA) の違いの 1 つは、DE は派生元の古い候補より適合しない限り新しい候補を破棄するのに対し、GA は「適合性の低い」候補がある程度の確率で生き残ることを許可することです。最初は DE のアプローチは良いアイデアのように思えますが、これが次のカテゴリの問題を解決するのを妨げていると私は信じています。
次のフィットネス スコアを最大化しようとしているとします。
A - [max(0, A - 50) * B] + [max(0, A - 75) * 2 * B]
パラメータの範囲は0
~100
です。
A
最初は、 に達するまで増やすのが有益50
です。- 次に、
B
ゼロに設定すると効果的です。 A
次に、 75に増やすことが有益です。- 次に、 と を同時に増やす
B
と効果的A
です。
この最後の点は重要です。A
またはB
が互いに独立して増加すると、フィットネス スコアが低下します。
差分進化アルゴリズムに戻ると、最初は世代ごとに1つのパラメーターのみを変更したいが、最終的には世代ごとに複数のパラメーターを変更したいため、上記の問題をどのように解決できるかわかりません。世代ごとに複数のパラメーターを早期に変異させると、生存の確率が低下し、進化の速度が低下します。しかし、一度に 1 つのパラメーターを変更すると、グローバルな最大値を見つけることはできません。
私の質問は次のとおりです。
- これは差分進化アルゴリズムの既知の問題ですか?
- 既知の解決策はありますか?
- 汎用アルゴリズムは同じ問題に悩まされていますか?
上記の特定の機能に対する解決策を求めているわけではありません。特定の時点でいくつのパラメーターを変更する必要があるかを前もって知らず、可能な限りグローバルな最大値に近づけたいという問題を差分進化で解決できるかどうかを尋ねています。