Abschnitt 3. Kapitel 4
single
Herausforderung: Implementierung der Partikelschwarmoptimierung
Swipe um das Menü anzuzeigen
Aufgabe
Wischen, um mit dem Codieren zu beginnen
Sie sollen die zentrale Aktualisierungslogik für einen Particle Swarm Optimization (PSO) Algorithmus implementieren. Ziel ist es, das Minimum der Funktion f(x) = x² + 5 * sin(x) im Intervall [-10, 10] zu finden.
Alle Parameter (wie Trägheit w, kognitiver Faktor c1 und sozialer Faktor c2) sowie die Anfangslisten (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) sind bereits für Sie vorbereitet.
Ihre Aufgabe ist es, den Haupt-Iterierungsprozess auszufüllen:
- Im inneren
for-Loop (für jedes Partikeli) müssen Sie zunächst die Geschwindigkeit des Partikels aktualisieren. Verwenden Sie die vollständige PSO-Geschwindigkeitsformel:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Aktualisieren Sie die Position des Partikels, indem Sie die neue
velocities[i]zupositions[i]addieren. - Nachdem Sie den neuen
valueanpositions[i]berechnet haben, prüfen Sie, ob dieser neuevaluebesser ist als das persönliche Bestwert des Partikels (pbest_values[i]). Falls ja, aktualisieren Sie sowohlpbest_positions[i]als auchpbest_values[i]. - Nach der inneren Schleife (in der alle Partikel aktualisiert werden), prüfen Sie, ob der neue beste persönliche Wert (den Sie finden und in
min_valuespeichern) besser ist als das aktuelle globale Bestwert (gbest_value). Falls ja, aktualisieren Sie sowohlgbest_valueals auchgbest_position.
Lösung
War alles klar?
Danke für Ihr Feedback!
Abschnitt 3. Kapitel 4
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen