私は遺伝的プログラミング(GP)システムを書いています(C言語ですが、それは些細なことです)。多くの文献 (Koza、Poli、Langdon、Banzhaf、Brameier など) を読みましたが、説明されていない実装の詳細がいくつかあります。例えば:
私は世代別のアプローチではなく定常状態の人口を使用しています。これは主に、暫定的な人口のために半分を予約するのではなく、コンピューターのメモリのすべてを使用するためです。
Q1. GP では GA とは異なり、クロスオーバーを実行するときに 2 つの親を選択しますが、1 つまたは 2 つの子を作成するか、それとも自由に選択できますか?
Q2. 定常状態の GP では、世代システムとは対照的に、クロスオーバーによって作成された子供たちは人口のどのメンバーに取って代わりますか? これは私が議論したのを見たことがないものです。2 人の親ですか、それとも他の 2 人のランダムに選択されたメンバーですか? 後者の場合は理解できますし、代わりのメンバーを選ぶためにネガティブ トーナメント セレクションを使用するかもしれませんが、それは時期尚早の収束を生み出しませんか? (クロスオーバー イベントの後、母集団には 2 つの元の親とそれらの親の 2 つの子が含まれ、他の 2 つのランダムなメンバーが削除されます。エリート主義は固有のものです。)
Q3. GP に焦点を当てた Web フォーラムまたはメーリング リストはありますか? 奇妙なことに、私はそれを見つけていません。Yahoo の GP グループはほぼアナウンスのみに使用され、Poli/Langdon フィールド ガイド フォーラムはほとんど沈黙しており、gamedev.net のような一般/ゲーム プログラミング サイトでの GP ディスカッションは非常に基本的なものです。
ご協力いただきありがとうございます。