5

遺伝的アルゴリズムに Jenetics JAVA ライブラリの使用を開始しようとしていますが、GA の限られたバックグラウンドから理解できないことがあります。

私が理解しているように、GAはm要素の配列の母集団を生成します。各配列は評価される潜在的な解決策であり、評価されると、潜在的な解決策がソートされ、新しい母集団を作成するために最適なものが選択されます。 Jenetics のソリューション (遺伝子型) は配列のリストであり、各配列は潜在的な解決策として私が理解しているものであり、各配列は異なる長さを持つことができ、遺伝子のベクトルの代わりにこの構造を使用する理由がわかりません。

マニュアルの 6 ページ、セクション 3.1.3 を参照してください。

可能であれば、これがなぜなのか知りたいです。質問が十分に明確になったことを願っています。

4

2 に答える 2

2

潜在的な解決策 (Phenotpyes/Genotypes) の「配列」は、集団に収集されます。遺伝子型は、考えられる解決策の 1 つです。Genotype の 2 次元構造に惑わされないでください。より複雑な問題をモデル化するための柔軟性がさらに高まるはずです。遺伝子型は、依然として 1 つの可能な解決策と母集団の 1 つの個人を表しています。

従来のバイナリ GA の遺伝子型は簡単に作成できます。

Genotype<BitGene> gt = Genotpe.of(BitChromosome.of(15));

マニュアルの図 3.1 のドメイン モデルも参照してください。セクション 6.1 では、追加のエンコーディングの例を提供しようとしています。

于 2015-06-21T12:13:10.193 に答える
1

あなたが説明したのは、基本的な遺伝的アルゴリズムの人口です。それを改善するためのテクニックはたくさんありますが、そのうちの 1 つがアダプティブ コーディングです。

あなたが探している用語は、適応コーディング技術の下での (変更された) 遺伝子プール組換えです。

遺伝子プールの組換えは、単一のユニットではなく集団全体で機能し、集団を進化させます。同じ構造を保持する場合と保持しない場合があります。

生物学の観点からこの考えを見てください。

  • 自然界では、最初に単純な生物があり、その後、より複雑な生物に進化しました。

遺伝的アルゴリズムでも同じ動機を使用できます。物乞いでは、時間とともに進化できるより単純な単位があります。つまり、ソリューションの長さと構造は一定である必要はありません。

GA の情報を普遍的にエンコードする簡単な方法はないため、目前のすべての問題について考慮する必要があります。遺伝子プールの組換え、基本的なバイナリ エンコーディング、または基本的な比例選択が必要な場合と必要でない場合があります。これらのオプションは、解決しようとしている問題と、解決の精度/アルゴリズムが許容できる時間に大きく依存します。

遺伝子のベクトルを表す基本的なバイナリ エンコーディングは単純ですが、GA には最近傍を見つける効率が悪いという欠点があります。

次の例を検討してください。

  • 解 15 と 16 があります (01111, 10000)

  • これら 2 つの数の間のハミング距離は 5 です

GA を 15 から 16 に変更するには、5 ビットすべてを変更する必要があります。そのため、GA には隣接離散数の問題があります。これを改善する 1 つの方法は、すべてのソリューション間の距離を 1 にするグレイ コードを使用することです。

于 2015-06-20T10:33:54.027 に答える