Sektion 3. Kapitel 4
single
Udfordring: Implementering af Partikel-Sværmoptimering
Stryg for at vise menuen
Opgave
Swipe to start coding
Du skal implementere den centrale opdateringslogik for en Particle Swarm Optimization (PSO) algoritme. Målet er at finde minimum for funktionen f(x) = x² + 5 * sin(x) på intervallet [-10, 10].
Alle parametre (såsom inerti w, kognitive c1 og sociale c2) samt initiale lister (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) er allerede opsat for dig.
Din opgave er at udfylde den primære iterative proces:
- Inden i den indre
for-løkke (for hver partikeli) skal du først opdatere partiklens hastighed. Brug den fulde PSO-hastighedsopdateringsligning:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Opdater partiklens position ved at lægge den nye
velocities[i]tilpositions[i]. - Efter at have beregnet den nye
valuevedpositions[i], tjek om denne nyevalueer bedre end partiklens personlige bedste (pbest_values[i]). Hvis det er tilfældet, skal du opdatere bådepbest_positions[i]ogpbest_values[i]. - Efter den indre løkke (som opdaterer alle partikler), tjek om den nye bedste personlige værdi (som du finder og gemmer i
min_value) er bedre end den nuværende globale bedste (gbest_value). Hvis det er tilfældet, opdater bådegbest_valueoggbest_position.
Løsning
Var alt klart?
Tak for dine kommentarer!
Sektion 3. Kapitel 4
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat