2

jenesライブラリ (チュートリアル 5: ObjectChromosome </a>)で提供されている Java の例を実装しました。集団内の個人はすべて同じであることがわかりました (つまり、無作為化は行われていません)。

ga.evolve();OCProblem クラスの後に次のコードを追加して、母集団の各個人を出力しました。

ga.evolve();
Population pop= ga.getCurrentPopulation();
ArrayList population_test= pop.getIndividuals();

for(int n=0; n < population_test.size(); n++){
    Individual<ObjectChromosome> individual=(Individual<ObjectChromosome>) population_test.get(n);
    ObjectChromosome chrom = individual.getChromosome();

    int i1 = (Integer)chrom.getValue(0);
    int i2 = (Integer)chrom.getValue(1);
    double i3= (double)chrom.getValue(2);
    boolean i4= (boolean)chrom.getValue(3);
    Color i5= (Color)chrom.getValue(4);

    System.out.println("[ "+ i1+" , "+ i2+" , "+ i3+" , "+ i4+" , "+ i5+" ] "); 
}

出力は、個人が重複している衝撃的でした! これは前のコードからの出力です

チュートリアル 5: ターゲットに最も近い色のシーケンスを見つけます。[6、20、0.5623470035526044、false、(赤)] [6、20、0.5623470035526044、false、(red)] [6、20、0.562347003526044、false、(red)] [6、20、0.5623470035526044、10、0、0.5623470035526044 )] [6、20、0.5623470035526044、false、(red)] [6、20、0.5623470035526044、false、(red)] [6、20、0.56235526044、false、(red)] (赤) ] [ 6 ,20 , 0.5623470035526044 , false , (赤) ] [ 6 , 20 ,0.5623470035526044 , false , (赤) ]

jenesライブラリのランダム メソッドが母集団に対して機能しない理由を知っている人はいますか?

4

2 に答える 2