Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Toteuta partikkeliparvien optimointi | Parvopohjaiset Algoritmit
Bioinspiroituneet Algoritmit
Osio 3. Luku 4
single

single

Haaste: Toteuta partikkeliparvien optimointi

Pyyhkäise näyttääksesi valikon

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Sinun tehtävänäsi on toteuttaa Particle Swarm Optimization (PSO) -algoritmin ydintä päivittävä logiikka. Tavoitteena on löytää funktion f(x) = x² + 5 * sin(x) minimi välillä [-10, 10].

Kaikki parametrit (kuten inertia w, kognitiivinen c1 ja sosiaalinen c2) sekä alkuperäiset listat (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) on jo alustettu puolestasi.

Tehtävänäsi on täyttää pääasiallinen iteratiivinen prosessi:

  1. Sisemmässä for-silmukassa (jokaiselle partikkelille i) sinun tulee ensin päivittää partikkelin nopeus. Käytä täydellistä PSO-nopeuden päivitysyhtälöä: w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]).
  2. Päivitä partikkelin sijainti lisäämällä uusi velocities[i] nykyiseen positions[i].
  3. Kun olet laskenut uuden value arvon kohdassa positions[i], tarkista onko tämä uusi value parempi kuin partikkelin henkilökohtainen paras (pbest_values[i]). Jos on, päivitä sekä pbest_positions[i] että pbest_values[i].
  4. Sisemmän silmukan jälkeen (joka päivittää kaikki partikkelit), tarkista onko uusi paras henkilökohtainen arvo (jonka löydät ja tallennat muuttujaan min_value) parempi kuin nykyinen globaali paras (gbest_value). Jos on, päivitä sekä gbest_value että gbest_position.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt