2016-03-30 18 views
0

選択する方法n最良の染色体を配列として返しますか?遺伝的アルゴリズムの選択

Chromosome[] Selection(int n) {} 

私は、その適応性によって染色体を比較する必要があることを知っています。 私は方法がありますpublic double calculateFitness()

+2

はあなたにそれらを実装する方法についてのアイデアを与える可能性があり、この他の記事をチェック! – Vladimir

答えて

1

私はあなたが比較したいChromosomeの配列を持っていると推測します。そして、あなたは、単に自分の体力で注文して、最高のnはを取ることができます:

Chromosome[] sourceArray = ..... // wherever you got them from 
Chromosome[] bestN = sourceArray. 
    OrderByDescending(chromosome => chromosome.calculateFitness()). 
    Take(n).ToArray(); 
0

私はpremature convergenceを避けるために、他の非エリート選択スキームを見てすることができお勧めします。一言で言えば、ソリューションのフィットネスの質に関して進歩がなく、地元のオプティマに立ち往生している。ルーティン・ホイールの選択やトーナメントの選択は、コード化するのがむしろ簡単な代替の確率的スキームです。あなたはcalculateFitness()のコードを提供することができます

関連する問題