ジェネティックアルゴリズムの定義
「cBotsの最適化方法について」の議論の中で、cBotsは「ジェネリックアルゴリズム」の方法を使って洗練されることができると述べました。このガイドでは、それが具体的に何であり、どのように機能するかを説明します。
ジェネリックアルゴリズムの方法は、自然選択理論に基づいています。この理論は、最も適した個体のみが次の繁殖のために生き残ると述べています。
cBotの最適化では、各最適化パスは「個体」と見なされます。遺伝的アルゴリズムは、各パスに対して特定の適応度スコアを計算し、このスコアをすべての他のパスと比較します。
ジェネリックアルゴリズムが機能するには、初期集団が必要です。これを生成するために、最適化者はランダムなパラメータを持ついくつかの異なるパスを実行します。初期集団を作成した後、アルゴリズムは最適化パスを見つけるプロセスを開始します。このプロセスは、「子」パスの適応度スコアが停滞し、収束し始めるまで続けられます。この時点で、アルゴリズムは停止されます。
ジェネティックアルゴリズムの段階
どんな遺伝的アルゴリズムも以下の段階を経ます。
段階は次のように説明されます。
ジェネティックアルゴリズムの選択
この段階では、アルゴリズムはそれぞれの適応度スコアを使用して、2つの最も適応度の高い最適化パスを見つけます。
交差
2つの最も適応度の高い最適化パスを見つけた後、アルゴリズムはこれらを使用して新しい「子」(または「子孫」)パスを作成します。これは、2つの「親」パスのパラメータ値の組み合わせを使用して行われます。
例
あなたのcBotには4つの異なる最適化パラメータがある場合、アルゴリズムは「子孫」パスの最初の2つのパラメータの値を1つの「親」から取得し、残りの2つのパラメータの値を2番目の「親」から取得します。
突然変異
この段階では、アルゴリズムは「子孫」パスをランダムに変異させ、1つ以上のパラメータ値を変更します。
突然変異の段階後、最適化者は新しい「子孫」最適化パスを実行します。その後、すべての段階を繰り返しますが、適応度スコアが最後の最も適応度の高い最適化パスよりも高かった場合にのみ行います。そのような結果は、改善の余地があることを意味し、最適化を継続する必要があることを示します。
そうでない場合、アルゴリズムは停滞カウンターを増やします。停滞カウンターがアルゴリズムの「停滞期間」パラメータの値に達すると、最適化プロセスは自動的に停止します。
ジェネティックアルゴリズムのパラメータ
遺伝的アルゴリズムには、その生涯にわたって使用されるいくつかのパラメータがあります。これらのパラメータは変更できません。
パラメータ | 定義 |
---|---|
集団のサイズ | 各最適化イテレーションで行われる通過の最大数または最大サイズ。 |
最大イテレーション回数 | アルゴリズムによって実行される最大の最適化イテレーション数。 |
停滞期間 | 停滞カウンターの最大値。この値に達すると、アルゴリズムは停止します。 |
エリート率 | 現在のアルゴリズムイテレーションから最高の適応度スコアを持つX%の個体を選択するために使用されます。これらのパスは次のイテレーションに「生き残ります」。 |
トーナメントサイズ率 | イテレーションから「親」パスを見つけるためにX%の個体を選択するために使用されます。 |
移住率 | 新しいイテレーションまたは集団生成ごとに、ランダムに作成された通過のX%を追加するために使用されます。 |
突然変異率 | 「子孫」パスのパラメータのパーセンテージを変異させます。 |
突然変異確率率 | 突然変異の段階を通過する「子孫」パスのパーセンテージ。このパーセンテージに含まれないパスは、突然変異の段階を通過しません。 |