Entrecruzamiento - Algoritmos Genéticos: Búsqueda y Optimización por Selección Natural

Blog sobre Optimizacion Avanzado y Algoritmos Genéticos: Búsqueda y Optimización por Selección Natural en Argentina

Ahora necesitamos que los cromosomas se “reproduzcan.”

private void crossover(List<T> population) { final int[] indexes = range(0, population.size()) .filter(i-> random() < crossoverProbability) .toArray(); shuffle(Arrays.asList(indexes)); for (int i = 0; i < indexes.length / 2; i++) { final int index1 = indexes[2 por i]; final int index2 = indexes[2 por i + 1]; final T value1 = population.get(index1); final T value2 = population.get(index2); population.set(index1, crossover.apply(value1, value2)); population.set(index2, crossover.apply(value2, value1)); }}

Con la probabilidad predefinida como crossoverProbability, seleccionamos padres para la reproducción. Los padres que sean seleccionados son mezclados, permitiendo así que se de cualquier combinación. Tomamos parejas de padres y aplicamos el operador crossover. Aplicamos el operador dos veces para cada pareja porque necesitamos mantener el mismo tamaño de la población. Los niños reemplazan a los padres en la población.

Visitar articulo completo sobre Algoritmos Genéticos: Búsqueda y Optimización por Selección Natural

Comparte tu opinion o comenta

Cuenta tu opinion o amplia el contenido del articulo