Seksjon 3. Kapittel 4
single
Utfordring: Implementer Partikkelsvermoptimalisering
Sveip for å vise menyen
Oppgave
Sveip for å begynne å kode
Du skal implementere den sentrale oppdateringslogikken for en Particle Swarm Optimization (PSO)-algoritme. Målet er å finne minimum av funksjonen f(x) = x² + 5 * sin(x) på intervallet [-10, 10].
Alle parametere (som treghet w, kognitive c1 og sosiale c2) og initialiserte lister (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) er allerede satt opp for deg.
Din oppgave er å fylle ut den viktigste iterative prosessen:
- Inne i den indre
for-løkka (for hver partikkeli), må du først oppdatere partikkelens hastighet. Bruk hele PSO-formelen for hastighetsoppdatering:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Oppdater partikkelens posisjon ved å legge til den nye
velocities[i]tilpositions[i]. - Etter å ha beregnet den nye
valuevedpositions[i], sjekk om denne nyevalueer bedre enn partikkelens personlige beste (pbest_values[i]). Hvis den er det, må du oppdatere bådepbest_positions[i]ogpbest_values[i]. - Etter den indre løkka (som oppdaterer alle partikler), sjekk om den nye beste personlige verdien (som du finner og lagrer i
min_value) er bedre enn den nåværende globale beste (gbest_value). Hvis den er det, oppdater bådegbest_valueoggbest_position.
Løsning
Alt var klart?
Takk for tilbakemeldingene dine!
Seksjon 3. Kapittel 4
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår