2

それで、これに対する答えは基本的に私が自分の生き物*の遺伝子をコード化することを本当に調べなければならないと言ったので、私はそれをしました!

そこで、次の小さな(byte []-)構造を作成しました。

遺伝子={X、X、X、X、Y、Y、Y、Y、Z、Z、Z、Z}

どこ

  • X=クリーチャーの特定の特性を表します。

  • Y =これらのブロックは、クロスオーバーとミューテーションが発生する方法、発生する場合、発生するタイミングを制御します(16の可能な値、それで十分だと思います!)

  • Z =ストランドの長さ(基本的に、これは将来のビルド用であり、進化によってストランド全体の長ささえも制御できるようにします)。

(したがって、ZとYはMETA情報と考えることができます)

(尋ねる前に、はい、それは12バイトです:))

あなたへの私の質問は次のとおりです。

これらの各「生き物」の特徴をどのように結び付けるのでしょうか?

基本的に、私はそれをこのように見ています(そしてこれはおそらく私がそれを実装する方法になるでしょう):それぞれの「生き物」は走り回って、食べて繁殖することができます、基本的なもの。私はそうは思いません(少なくともそうは望んでいません!)私は適応度関数自体が必要になると思いますが、食物、パートナー、宇宙の競争のように、進化が生き物を進化に駆り立てることを願っています。

この見方は間違っていますか?それを1つの大きなグラフとして見て、そこから「単純に」取得する方が簡単でしょうか(私はプログラマーであり、数学者ではありません!)。

または、tl; dr:記事、研究、および/またはこれの実装例を正しい方向に向けてください。

(さらに多くのtl; dr;遺伝子を、たとえば脚の長さに変換するにはどうすればよいですか?)

*質問を読んでください、私は一種のシミュレーターを構築しています。

4

2 に答える 2

1

あなたの Y や Z のようなメタ情報は、遺伝的アルゴリズムの遺伝子配列で見たことがありません (技術への私の限られた露出で)。あなたの遺伝的アルゴリズムは非伝統的なものですか?

生き物にはいくつの特徴がありますか? X が特性の値を表し、遺伝子配列が可変長 (Z) を持つことができる場合、すべての特性に対して十分な X が定義されていないとどうなりますか? クリーチャーの特性よりも X の数が多い場合はどうなりますか?

  • Z は固定値でなければなりません。
  • Y は、遺伝的進化ルーチンのパラメーターである必要があります
  • クリーチャーのすべての特性に X (または X のセット) が必要です (それ以上でも以下でもありません)。

X の数が固定されている場合は、特性ごとに、その特性を表す特定のインデックス (またはインデックスのセット) を割り当てます。

編集:

Xが表す特性のエンコーディングを決定する必要があります。脚の長さについては、たとえば、数バイトで脚の長さを表すことができます。バイト 3 ~ 5 が脚の長さである場合、次のようにXベクトルで長さを表すことができます。

[...101......]

ドットは他の特性表現です。上記のスニペットは、脚の長さが 5 であることを表しています (それが何を意味するかに関係なく)。以下のゲノムでは、脚の長さは 5 のままですが、他の形質も同様に埋められています。

[001101011011]

于 2011-09-21T15:44:15.240 に答える
1

ミッチェルを見て、1998年、遺伝的アルゴリズムの紹介、チャップ。3.3 で、Forrest と Jones による 1994 年の「Modeling Complex Adaptive Systems with Echo」への参照を見つけました。 それは、あなたが探していることをするように見えるソフトウェア Echo を指します (世界で進化する生き物)。現時点ではリンクが見つかりませんが、ブライアン・マッキンドーによる jEcho の実装に関する論文があります。

于 2011-09-16T16:49:13.703 に答える