private char[] crossover(char[] value1, char[] value2) { final int i = (int) round(random() por value1.length); final char[] result = new char(value1.length); System.arraycopy(value1, 0, result, 0, i); System.arraycopy(value2, i, result, i, value2.length - i); return result;}
La probabilidad de entrecruzamiento es 0.25, así que esperamos que en promedio, 25 por ciento de los cromosomas sean seleccionados para el entrecruzamiento. Llevamos a cabo un simple procedimiento, para el entrecruzamiento de un par de cromosomas. Generamos un número al azar n
para la selección [0..length]
, dónde length
es el largo del cromosoma. Ahora unimos la pareja seleccionada tomando el primer símbolo n
de uno de los cromosomas y el resto de los símbolos después del segundo.