1

最初に個体に定数をシードし、遺伝的演算子を介してそれらを変異させるのとは対照的に、メモリレジスタ内で定数を明示的に定義することの利点と欠点は何ですか?

具体的には、私が持っている線形遺伝的プログラミングに関する本からこれを読んでください。

私たちの実装では、すべてのレジスタが浮動小数点値を保持しています。内部的には、定数は書き込み保護されたレジスタに格納されます。つまり、宛先レジスタになることはありません。結果として、可能な定数のセットは固定されたままになります。

私が疑問に思っているのは、これは、最初に定数をランダムに生成してプログラムに統合し、トレーニングプロセスを通じてそれらを改善するよりも優れたアプローチであるということです。

ありがとう

4

1 に答える 1

1

メモリレジスタという用語の使用から、メモリ強化された遺伝的プログラミング手法について言及していると思います。

メモリ レジスタであっても、定数を使用するのは通常ではありません。代わりに、遺伝的プログラミングのメモリを使用したメモリのような手法を使用すると、メモリを無関係にする急激な変更を行う代わりに、メモリレジスタをゆっくりと変更できます。それでも、ランダムな初期化で値を導入することは一般的であるため、ランダムな再起動を行って局所最適を回避しようとすることができます。

おそらく、すべてのメモリレジスタをゼロまたは人間の推定値に設定することを考えていますか?

編集:

彼らは何世代にもわたって変わらずに受け継いでいきたい価値観を持っているようです。個人的には、すべてのインスタンスで共有されていると仮定すると、そのような値は、GA が住んでいる環境によってよりよく表されると考えられます。

それらがインスタンス間で共有されていない場合、これは、(少なくとも、特定の実行中には) 進化することを許可されるべきではないセットアップでいくつかのランダムな値で母集団をシードする意図を反映している可能性があります。

最初のタイプの定数 (環境定数) は、複雑な背景に対して進化する必要があり、可変環境のより複雑なケースにうまく適合させる前に、最初に固定環境にうまく適合させたい場合に役立ちます。

2 番目の種類の定数 (DNA インスタンスごと) は私が使用したものではありませんが、アナリストがカオスすぎて継続的な進化を許可しない「揮発性」変数を特定した場合、それらを定数として「保護」するのに役立つ可能性があると思います。実行します。

于 2012-05-03T18:53:40.963 に答える