Sezione 3. Capitolo 4
single
Sfida: Implementazione dell'Ottimizzazione per Sciame di Particelle
Scorri per mostrare il menu
Compito
Scorri per iniziare a programmare
Ti viene richiesto di implementare la logica principale di aggiornamento per un algoritmo Particle Swarm Optimization (PSO). L'obiettivo è trovare il minimo della funzione f(x) = x² + 5 * sin(x) nell'intervallo [-10, 10].
Tutti i parametri (come inerzia w, cognitivo c1 e sociale c2) e le liste iniziali (positions, velocities, pbest_positions, pbest_values, gbest_position, gbest_value) sono già predisposti.
Il compito consiste nel completare il processo iterativo principale:
- All'interno del ciclo interno
for(per ogni particellai), aggiornare innanzitutto la velocità della particella. Utilizzare la formula completa di aggiornamento della velocità PSO:w * velocities[i] + c1 * r1 * (pbest_positions[i] - positions[i]) + c2 * r2 * (gbest_position - positions[i]). - Aggiornare la posizione della particella sommando la nuova
velocities[i]apositions[i]. - Dopo aver calcolato il nuovo
valueinpositions[i], verificare se questo nuovovalueè migliore del best personale della particella (pbest_values[i]). In tal caso, aggiornare siapbest_positions[i]chepbest_values[i]. - Dopo il ciclo interno (che aggiorna tutte le particelle), verificare se il nuovo miglior valore personale (che si trova e si memorizza in
min_value) è migliore dell'attuale best globale (gbest_value). In tal caso, aggiornare siagbest_valuechegbest_position.
Soluzione
Tutto è chiaro?
Grazie per i tuoi commenti!
Sezione 3. Capitolo 4
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione