¿Cuáles son los mejores algoritmos de selección de apareamiento en informática evolutiva?

Selección de ruleta: la probabilidad de que un individuo sea seleccionado es proporcional a su aptitud normalizada.

Selección de rango: es similar a la selección de la ruleta, pero en lugar de usar el estado físico, la población se ordena por estado físico y el rango normalizado se usa como probabilidad de selección.

Ambos tienen sus fortalezas y debilidades dependiendo de las estadísticas del sistema, como la variación de la condición física. Muy raramente he usado la selección de rango. Prefiero ajustar un sistema de selección de ruleta, como el cambio y el enraizamiento cuadrado de los ejercicios para hacer que la distribución sea más agradable.

Sin embargo, un EA muy rápido y sucio que me gusta usar, y no estoy seguro de cómo se llama, es seleccionar tres individuos y reemplazar el que tenga la aptitud más baja por el crossover mutado de los otros dos, in situ . De esta manera no necesita una segunda población y no hay generaciones discretas. Funciona sorprendentemente bien y obtienes cosas como el elitismo de forma gratuita.

El investigador de IA Ken Stanley creó una variación interesante de selección de rango, en la que utilizó la especiación para proteger las innovaciones de ser descartadas de manera demasiado agresiva, antes de que tuvieran la oportunidad de optimizar.

Detalles completos en su tesis doctoral. http://nn.cs.utexas.edu/download

(de la página 25)

La especiación, también conocida como niching, se ha estudiado en GA, pero rara vez se ha aplicado a NE. La especiación se usa generalmente para la optimización de funciones multimodales (Mahfoud 1995). En estos problemas, una función tiene óptimos múltiples, y se utiliza un GA para encontrar esos óptimos. Otros tipos de problemas se derivan naturalmente de la optimización de funciones multimodales, como los problemas de clasificación: se pueden encontrar diferentes clasificadores en diferentes partes del espacio físico. En tales problemas, la población en su conjunto, en lugar de los individuos, se utiliza para tomar decisiones, por lo que es imperativo evitar que los individuos converjan en una única solución. La especiación también es útil para prevenir la convergencia prematura, es decir, toda la población queda atrapada en una solución subóptima, al hacer cumplir que la población sigue siendo diversa en problemas de solución única.

Los mejores en la literatura tienden a equilibrar la diversidad con las estrategias elitistas (manteniendo un grupo diverso de soluciones dispares). Las soluciones de bloque también pueden funcionar en algunas situaciones.

More Interesting

¿Cuánto tiempo se necesita para leer Introducción a Algoritmos de TH Cormen, para un principiante?

¿Se requiere un buen conocimiento de la estructura de datos y algoritmos para saltar a la codificación competitiva?

¿Cuál es la última actualización del algoritmo SEO de Google en 2017?

15 personas se sentarán en una fila de 15 sillas. ¿Cómo calculo cuántos planes de asientos se pueden hacer, donde dos planes de asientos se consideran iguales si dos planes comparten cuádruples adyacentes? o ¿Cómo puedo crear un algoritmo eficiente para encontrar límites inferiores para 15 o menos personas?

Cómo usar lower_bound para buscar una cadena en una estructura vectorial

¿Qué debo hacer para autoaprendizaje de ciencias de la computación con interés en inteligencia artificial y ciencias de la computación teóricas?

Cómo demostrar la corrección de un algoritmo de búsqueda lineal para el ejercicio 2.1-3 en CLRS

¿Se aplican las estructuras de datos y algoritmos para C / C ++ a JavaScript?

¿En qué tipo de índices de búsqueda y enfoque se debe trabajar para un sitio web con búsqueda basada en la ciudad (y localidad) de una palabra clave, un ejemplo típico es un directorio web?

El tiempo supuestamente imaginario puede modelarse significativamente en física. Entonces, ¿puede existir una complejidad de tiempo imaginaria para un algoritmo?

¿Cómo mejoro mis habilidades informáticas? ¿Alguien puede recomendarme formas de acortar la curva de aprendizaje?

¿Cuál es una manera eficiente de crear una gran cantidad de cadenas aleatorias pero únicas?

¿Por qué no se acepta mi solución para SPOJ.com - JUEGOS de problemas?

¿Por qué hay una diferencia de complejidad de tiempo entre los algoritmos de clasificación en Java cuando estoy usando Integer e integer?

¿Son suficientes los tutoriales del codificador superior de la estructura de datos y los algoritmos para obtener una base sólida en la programación?