コンテンツにスキップ

最適化

遺伝的アルゴリズムを定義

cBot の最適化方法 について議論する際、cBot は遺伝的アルゴリズムを使用して改良できることを述べました。 このガイドでは、それが何であり、どのように機能するかを正確に説明します。

遺伝的アルゴリズムは自然選択理論に基づいています。 この理論では、最も適応した個体のみが次の世代に生き残ると述べています。

cBot の最適化では、各最適化パスは個体と見なされます。 遺伝的アルゴリズムは、各パスの適応度スコアを計算し、このスコアを他のすべてのパスと比較して個体パスを評価します。

遺伝的アルゴリズムが機能するためには、初期個体群が必要です。 これを生成するために、オプティマイザーはランダム化されたパラメータでいくつかの異なるパスを実行します。 初期個体群を作成した後、アルゴリズムは最も適応した最適化パスを見つけるプロセスを開始します。 このプロセスは、子パスの適応度スコアが停滞し収束し始めるまで続きます。 この時点で、アルゴリズムは停止します。

遺伝的アルゴリズムの段階

遺伝的アルゴリズムには以下の段階があります。

graph TB
  B([選択]) ==> C([交差]);
  C ==> D([突然変異]);
  D ==> B;

各段階は次のように説明されます。

選択

この段階では、アルゴリズムはそれぞれの適応度スコアを使用して、最も適応した2つの最適化パスを見つけます。

交叉

最も適応した2つの最適化パスを見つけた後、アルゴリズムはそれらを使用して、親パスのパラメータ値の組み合わせを使用して新しい子(または子孫)パスを作成します。

cBot に最適化のための4つの異なるパラメータがある場合、アルゴリズムは子孫パスの第1および第2パラメータの値を1つの親から、第3および第4パラメータの値を2番目の親から取得します。

突然変異

この段階では、アルゴリズムは1つ以上のパラメータ値をランダムに変更して子孫パスを突然変異させます。

突然変異段階の後、オプティマイザーは新しい子孫最適化パスを実行します。 その後、子孫パスの適応度スコアが最後の最も適応した最適化パスよりも高かった場合にのみ、すべての段階を繰り返します。 このような結果は、改善の余地があることを意味し、最適化を続けるべきであることを示します。

そうでない場合、アルゴリズムは停滞カウンタを増やします。 停滞カウンタがアルゴリズムの停滞期間パラメータの値に達すると、最適化プロセスは自動的に停止されます。

遺伝的アルゴリズムのパラメータ

遺伝的アルゴリズムには、そのライフサイクル中に使用するいくつかのパラメータがあります。 これらのパラメータは変更できません。

パラメーター 定義
母集団のサイズ 各最適化イテレーション中に行われるパスの最大数または個体群の最大サイズ。
最大イテレーション数 アルゴリズムが実行する最適化イテレーションの最大数。
停滞期間 停滞カウンタの最大値。 この値に達すると、アルゴリズムは停止します。
エリートパーセンテージ この値は、現在のアルゴリズムイテレーションから最も高い適応度スコアを持つX%の個体を選択するために使用されます。 これらのパスは次のイテレーションに生き残ります。
トーナメントサイズパーセンテージ この値は、親パスを見つけるためにイテレーションからX%の個体を選択するために使用されます。
移行パーセンテージ この値は、新しいイテレーションまたは個体群生成中にランダムに作成されたパスのX%を追加するために使用されます。
突然変異パーセンテージ 子孫パスのパラメータのうち、突然変異されるパーセンテージ。
突然変異確率パーセンテージ 突然変異される子孫パスのパーセンテージ。 このパーセンテージに含まれないパスは突然変異段階を経ません。