Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Implementer Partikkelsvermoptimalisering | Sverm-Baserte Algoritmer
Bio-inspirerte Algoritmer
Seksjon 3. Kapittel 4
single

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:

  1. Inne i den indre for-løkka (for hver partikkel i), 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]).
  2. Oppdater partikkelens posisjon ved å legge til den nye velocities[i] til positions[i].
  3. Etter å ha beregnet den nye value ved positions[i], sjekk om denne nye value er bedre enn partikkelens personlige beste (pbest_values[i]). Hvis den er det, må du oppdatere både pbest_positions[i] og pbest_values[i].
  4. 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åde gbest_value og gbest_position.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt