初期の会議の 1 つに、巡回セールスマンの次のアルゴリズムを提案する論文がありました。これをいくつかのグラフの問題に適用して成功させました。
人口全体にわたって、接続数の降順でノードを計算およびソートします (つまり、N0 が一部の個人で N1、N2、N3 に接続されている場合、3 つの接続があり、N1 が常に N4 に接続されている場合は、接続が 3 つしかありません)。 1)。
最初に、カウントが最大のノードを取得します。これを current_gene_node と呼びます。(たとえば、N0)
LOOP: current_gene_node を子孫に追加します。
そのノードを接続のリストから削除します。(サイクルがないため、N0 を考慮から除外します。)
current_gene_node が母集団に接続を持たない場合、母集団でランダムに選択されていないノードを選択します (突然変異)
そうでない場合は、そのノードの接続のリストから、母集団全体の接続の普及率に基づいて抽選を行います (current_gene_node = N0 で、接続 N0 が N1 = 50%、N2 = 30%、N3 = 20 の場合)。 % -- N1 が次の current_gene_node になる確率は 50% です)。
すべてのノードが接続されるまで LOOP に進む
2 人の親から直接選択するという意味では、実際には遺伝的ではありませんが、人口の有病率に基づいて選択するという同じ数学的圧力に従います。だから、それは私にとって「十分に遺伝的」であり、私にとってはかなりうまく機能しています:-)