Mi pregunta está relacionada con este: Roulette-wheel selection in Genetic algorithm. Population needs to be sorted first? Si no ordenamos la población, ¿cuál es la forma de organizar la selección de ruleta para ello? Seguramente, tenemos que buscar de forma lineal ahora. ¿Tienes algún fragmento de código en C++ o Java para este caso?¿Cómo se debe organizar la selección de la rueda de ruleta para población no ordenada en algoritmo genético?
Respuesta
No es necesario ordenar la población en absoluto; la clave de la selección de la ruleta es que la probabilidad de que un individuo determinado sea seleccionado para la reproducción es proporcional a su estado físico.
Digamos que tiene una población no seleccionada, con eficacias de la siguiente manera:
[12, 45, 76, 32, 54, 21]
Para realizar la selección de la ruleta, sólo tiene que elegir un número aleatorio en el rango de 0 a 240 (la suma de la aptitud de la población). Luego, comenzando en el primer elemento de la lista, reste la aptitud de cada individuo hasta que el número aleatorio sea menor o igual a cero. Así, en el caso anterior, si elegimos al azar 112, hacemos lo siguiente:
Step 1: 112 - 12 = 100. This is > 0, so continue.
Step 2: 100 - 45 = 55. This is > 0, so continue.
Step 3: 55 - 76 = -21. This is <= 0, so stop.
Por lo tanto, Elección de la persona # 3 para la reproducción. Tenga en cuenta que esto no requiere que la población se ordene en absoluto.
Así, en pseudocódigo, que se reduce a:
let s = sum of population fitness
let r = random number in range [0, s].
let i = 0.
while r > 0 do:
r = r - fitness of individual #i
increment i
select individual #i - 1 for reproduction.
Tenga en cuenta que la - 1
en la última línea es para contrarrestar el increment i
que se hace dentro de la última iteración del bucle (porque a pesar de que hemos encontrado el individuo que queremos, se incrementa independientemente).
- 1. Selección de rueda de la ruleta en algoritmo genético. La población necesita ser ordenada primero?
- 2. Selección de Torneo de Algoritmo Genético
- 3. Selección de rueda de ruleta para minimizar la función
- 4. Algoritmo genético: ¿qué es la selección de estado estable?
- 5. aptitud selección proporcional (ruleta rueda de selección) en Python
- 6. sólo el x% superior para la selección de un algoritmo genético
- 7. ¿imagen de la rueda giratoria en HTML5 (por ejemplo, ruleta)?
- 8. ¿Cómo encontrar los mejores parámetros para un algoritmo genético?
- 9. ¿Tiene algoritmo genético en producción?
- 10. ¿Cómo cambio el color de la fuente de la lista de selección en una ruleta?
- 11. Algoritmo para organizar puntos cartesianos
- 12. Haskell: Resumiendo un algoritmo genético
- 13. Procesamiento de imágenes usando el algoritmo genético
- 14. Cómo debo probar un algoritmo genético
- 15. operación de cruce en el algoritmo genético para TSP
- 16. Algoritmo genético en un optiproblema similar a la mochila
- 17. Cómo implementar el operador de mutación gaussiana para un algoritmo genético en Java
- 18. ¿Por qué añadir Crossover a mi algoritmo genético me da peores resultados?
- 19. Algoritmo para organizar correos electrónicos en hilos?
- 20. Algoritmo genético para un juego de cartas (Dominion)
- 21. ¿Qué biblioteca de Programación/Algoritmo Genético usas?
- 22. ¿Qué es la evolución diferencial y cómo se compara con un algoritmo genético?
- 23. Cómo cambiar la imagen de una ruleta
- 24. Red neuronal, Algoritmo genético como sistema de detección de intrusiones
- 25. La selección de características y el aprendizaje no supervisado para la selección del algoritmo de datos multilingüe + aprendizaje automático
- 26. algoritmo de selección problema
- 27. la rueda del mouse no se desplaza en tmux
- 28. Algoritmo para organizar automáticamente diagrama de relación de entidad
- 29. Optimización de algoritmo genético: utilizando el distintivo -O3
- 30. formas dinámicas de Django - ¿población de campo sobre la marcha?