Как установить уникальную хромосому в начальной популяции в JGAP?

Я пытаюсь сделать следующее: у меня есть хромосома размера N, тип которой IntegerGene. Я заинтересован в том, чтобы эта уникальная хромосома была оценена по оператору кроссовера, поэтому я использую:

            Configuration configuration = new DefaultConfiguration ();
            Configuracion.getGeneticOperators (). Clear ();
            CrossoverOperator crossover = new CrossoverOperator (configuration);
            Configuracion.addGeneticOperator (crossover);
            ...
            Genotype poblacion = Genotype.randomInitialGenotype(configuracion);

Например, я хочу использовать одну хромосому для создания следующих популяций, эта хромосома была бы | 9 | 5 | 10 | 0 | И поэтому я инициализирую это:

 Gene [] genes = new Gene [4];

 genes [0] = new IntegerGene (configuration, 9,9);
 genes [1] = new IntegerGene (configuration, 5,5);
 genes [2] = new IntegerGene (configuration, 10,10);
 genes [3] = new IntegerGene (configuration, 0,0);

Когда я запускаю программу, вывод (решение хромосомы) всегда одинаков (| 9 | 5 | 10 | 0 |), он не выполняет оператор кроссовера....

Run:
Population Size: 10

...
 9 5 10 0
Punctuation = 12.5
 9 5 10 0
Punctuation = 12.5
 9 5 10 0
Punctuation = 12.5
 9 5 10 0
Punctuation = 12.5

 Chromosome Solution [0] = 9
 Chromosome Solution [1] = 5
 Chromosome Solution [2] = 10
 Chromosome Solution [3] = 0

Спасибо.

0 ответов

Другие вопросы по тегам