Configuración de Algoritmo de Problema-Específico - 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 echemos un vistazo a qué tipo de parámetros de problema específico necesitamos proveer para nuestra implementación genérica.

private BiFunction<T, T, T> crossover;private double crossoverProbability;private ToDoubleFunction<T> fitness;private Function<T, T> mutation;private double mutationProbability;private int populationSize = 100;private Supplier<T> supplier;private Predicate<Collection<T>> termination;

Los parámetros, respectivamente, son: 1. Operador de entrecruzamiento 2. Probabilidad de entrecruzamiento 3. Función de adecuación 4. Operador de mutación 5. Probabilidad de mutación 6. Tamaño de la población 7. Proveedor de cromosomas para la población inicial 8. Función de término

Aquí está la configuración de nuestro problema:

new GeneticAlgorithm<char[]>() .setCrossover(this::crossover) .setCrossoverProbability(0.25) .setFitness(this::fitness) .setMutation(this::mutation) .setMutationProbability(0.05) .setPopulationSize(100) .setSupplier(() -> supplier(expected.length)) .setTermination(this::termination) .find()
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