私は常に、遺伝的アルゴリズムのさまざまな段階が、単一の整数の一部のビットを単に交換するのではなく、複雑な数学演算を含む複雑なオブジェクトに対して実行されることを想像していました。
遺伝的アルゴリズムは複雑なオブジェクトを変更する必要があると思うので、おそらく複雑な数学演算が使用されていると思います。これは通常、遺伝的アルゴリズムが機能する方法ではありません。
では、何が起こりますか?さて、通常、プログラマー(または科学者)は構成内のさまざまなパラメーターを識別し、それらのパラメーターを整数/浮動小数点数にマップします。これは、アルゴリズムが探索できる方向を制限しますが、結果を得る唯一の現実的な方法です。
アンテナの進化を見てみましょう。銅分子を再配置する遺伝的アルゴリズムを使用して複雑なシミュレーションを実行することもできますが、それは非常に複雑で、永遠にかかります。代わりに、アンテナの「パラメータ」を特定します。ほとんどのアンテナは、特定の長さのワイヤで構成されており、カバレッジ領域を最大化するために特定の場所で曲げられています。したがって、開始ワイヤの数、セクションの長さ、曲げの角度など、いくつかのパラメータを特定できます。これらはすべて整数として簡単に表現できるため、遺伝的アルゴリズムで簡単に操作できます。結果として得られる操作を「アンテナシミュレーター」に入力して、信号の受信状態を確認できます。
要するに、あなたが言うとき:
単純なデータ型を操作するだけで十分だとは想像しがたいです。
単純なデータ型をはるかに複雑な構造にマッピングできることを理解する必要があります。遺伝的アルゴリズムは、これらの複雑な構造について何も知る必要はありません。知っておく必要があるのは、複雑な構造を構築するパラメーターをどのように操作できるかということだけです。つまり、結局のところ、DNAが機能する方法です。