Meine Frage ist mit dieser verbunden: Roulette-wheel selection in Genetic algorithm. Population needs to be sorted first? Wenn wir nicht die Bevölkerung sortieren, was ist die Art der Roulette-Rad-Auswahl für sie zu organisieren? Sicherlich müssen wir jetzt linear suchen. Haben Sie in diesem Fall Code-Snippets in C++ oder Java?Wie sollte die Rouletteradauswahl für nicht sortierte Populationen im genetischen Algorithmus organisiert werden?
Antwort
Die Population muss überhaupt nicht sortiert werden - der Schlüssel zur Rouletteauswahl ist, dass die Wahrscheinlichkeit, dass ein bestimmtes Individuum für die Reproduktion ausgewählt wird, proportional zu seiner Fitness ist.
Sagen Sie bitte eine unsortierte Bevölkerung haben, mit Fitnessen wie folgt:
[12, 45, 76, 32, 54, 21]
Roulette Auswahl auszuführen, müssen Sie nur eine Zufallszahl im Bereich von 0 bis 240 (die Summe der Bevölkerung der Fitness) wählen müssen. Beginnen Sie dann bei dem ersten Element in der Liste, subtrahieren Sie die Fitness jedes einzelnen, bis die Zufallszahl kleiner oder gleich Null ist. Also, im obigen Fall, wenn wir nach dem Zufall 112 holen, tun wir folgendes:
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.
Daher wählen wir einzelne # 3 für die Wiedergabe. Beachten Sie, dass die Population nicht sortiert werden muss.
Also, in Pseudo-Code, kocht es auf:
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.
Beachten Sie, dass die - 1
in der letzten Zeile der increment i
entgegenzuwirken ist, die innerhalb der letzten Iteration der Schleife (denn auch getan, obwohl wir haben fand die Person, die wir wollen, erhöht es unabhängig).
- 1. Crossover im genetischen Algorithmus
- 2. Auswahlmechanismus für genetischen Algorithmus
- 3. parallelen Lauf für genetischen Algorithmus
- 4. Schlechte Randomisierung im Rahmen des genetischen Algorithmus
- 5. Gebäude mit genetischen Algorithmus Ranking,
- 6. C++: Variable Template-Parameter (für genetischen Algorithmus)
- 7. Schema Überleben in genetischen Algorithmus
- 8. Was ist der Unterschied zwischen genetischen und zellulären genetischen Algorithmus
- 9. Erzeugen einer Population für den genetischen Algorithmus in C
- 10. Beste Datenstruktur für den genetischen Algorithmus in C++?
- 11. Code für genetischen Algorithmus Cross-Over in Matlab
- 12. Wie werden Einheiten- und Integrationstests organisiert?
- 13. Sollte ich Objekte injizieren, die für die Ausführung eines Algorithmus benötigt werden? Sollte ich alles spritzen?
- 14. Wie man die Eltern überschneidet, wenn man eine Wertcodierungsmethode im genetischen Algorithmus benutzt?
- 15. Welchen genetischen Algorithmus/Programmierbibliothek verwenden Sie?
- 16. Wie viele Einheiten sollte es in jeder Generation eines genetischen Algorithmus geben?
- 17. Angular2: Wie genau sollten Komponenten organisiert werden?
- 18. Auswahl nur der oberen x% für die Auswahl in einem genetischen Algorithmus
- 19. Darstellung von Gen und Chromosomen in genetischen Algorithmus
- 20. Algorithmus für die Handschrifterkennung
- 21. Wie erhalte ich die Punktzahl für die grafische Darstellung der ROC-Kurve für einen genetischen Algorithmus-Klassifikator?
- 22. Gewichtsoptimierung eines neuronalen Netzwerks mit Hilfe eines genetischen Algorithmus
- 23. Haben Sie jemals einen genetischen Algorithmus in realen Anwendungen verwendet?
- 24. Wie vermeidet man die Wiederholung des Wertes in der Ausgabe des genetischen Algorithmus?
- 25. Wie kann der Komponententest eines Bibliotheksprojekts in Xcode organisiert werden?
- 26. Welche Programmiersprache, welchen Algorithmus sollte ich für die Wörterbuchübersetzung verwenden?
- 27. Wie werden große Clojure-Projekte organisiert?
- 28. Haben Sie einen genetischen Algorithmus in der Produktion?
- 29. 8 sortierte Listen in C++ zusammenführen, welcher Algorithmus sollte ich verwenden
- 30. R-Histogramm mit mehreren Populationen