Swarm Intelligence
L’intelligenza collettiva è la risoluzione collettiva di problemi che emerge quando molti agenti semplici seguono regole locali, come nelle colonie di formiche, nella PSO e negli sciami di robot.
L’intelligenza dello sciame (SI) è il comportamento collettivo di sistemi decentralizzati e auto-organizzati, nei quali molti agenti semplici, ciascuno guidato da regole locali e senza un leader, risolvono insieme problemi che nessuno di loro potrebbe affrontare da solo. Le colonie di formiche trovano percorsi brevi verso il cibo, gli stormi di uccelli cambiano direzione all’unisono e le termiti costruiscono termitai ventilati, senza che alcun individuo abbia un piano. Gerardo Beni e Jing Wang introdussero il termine nel 1989 per descrivere sistemi robotici cellulari. Nell’intelligenza artificiale (AI), l’intelligenza dello sciame ha due rami principali: algoritmi di ottimizzazione che imitano questi comportamenti collettivi nel software e la robotica a sciame, che coordina molti robot fisici allo stesso modo.
Principi fondamentali#
I sistemi a sciame condividono alcune proprietà:
- Interazione locale: ogni agente percepisce e reagisce solo ai vicini e all’ambiente circostante.
- Auto-organizzazione: schemi globali, come la forma di uno stormo o la rete di sentieri di una colonia, emergono da interazioni locali ripetute anziché da un piano centrale.
- Robustezza: poiché nessun agente è indispensabile, lo sciame continua a funzionare anche quando alcuni individui smettono di funzionare.
- Scalabilità: aggiungere agenti aumenta la capacità senza dover riprogettare la logica di controllo.
Il coordinamento può essere diretto o indiretto. Il modello boids di Craig Reynolds del 1986 genera movimenti realistici degli stormi con tre regole dirette: separazione (evitare di affollare i vicini), allineamento (dirigersi verso la loro direzione media) e coesione (dirigersi verso la loro posizione media). Le formiche si coordinano indirettamente tramite la stigmergia: ciascuna modifica l’ambiente depositando feromoni e le altre reagiscono all’ambiente modificato.
Algoritmi di ottimizzazione a sciame#
Gli algoritmi di ottimizzazione ispirati agli sciami esplorano ampi spazi di soluzioni con una popolazione di soluzioni candidate che condivide informazioni. Richiedono soltanto un metodo per valutare una soluzione candidata, non il suo gradiente, quindi sono adatti a problemi rumorosi, non differenziabili o combinatori.
L'ottimizzazione per colonia di formiche (ACO), introdotta da Marco Dorigo nella sua tesi di dottorato del 1992, risolve problemi di instradamento e pianificazione come il problema del commesso viaggiatore. Formiche artificiali costruiscono percorsi un arco alla volta, preferendo quelli con più feromone; ai percorsi più brevi viene assegnato più feromone, mentre l'evaporazione cancella gradualmente le tracce non più rinforzate, impedendo alla colonia di fissarsi su un percorso mediocre scelto troppo presto:
L’ottimizzazione a sciame di particelle (PSO), introdotta da James Kennedy e Russell Eberhart nel 1995, opera in spazi continui. Ogni particella ha una posizione e una velocità, ricorda la posizione migliore che ha trovato e conosce la migliore posizione trovata dallo sciame; a ogni passo la sua velocità combina il momentum attuale con un’attrazione casuale verso entrambe le posizioni migliori. Questo esempio NumPy usa 30 particelle per minimizzare la funzione di Rastrigin, la cui griglia di minimi locali intrappola i metodi di ricerca locale più semplici:
import numpy as np
rng = np.random.default_rng(0)
def rastrigin(x):
"""Bumpy test function with many local minima and a global minimum of 0 at the origin."""
return 10 * x.shape[-1] + (x**2 - 10 * np.cos(2 * np.pi * x)).sum(axis=-1)
pos = rng.uniform(-5, 5, (30, 2)) # 30 particles in a 2-D search space
vel = np.zeros_like(pos)
best_pos, best_val = pos.copy(), rastrigin(pos) # each particle's personal best
start = best_val.min()
for _ in range(100):
swarm_best = best_pos[best_val.argmin()] # best position any particle has found
r1, r2 = rng.random((2, 30, 1))
# Inertia + pull toward the particle's own best + pull toward the swarm's best
vel = 0.7 * vel + 1.5 * r1 * (best_pos - pos) + 1.5 * r2 * (swarm_best - pos)
pos = pos + vel
val = rastrigin(pos)
improved = val < best_val
best_pos[improved], best_val[improved] = pos[improved], val[improved]
print(f"Best value: {start:.3f} at the start, {best_val.min():.6f} after 100 iterations")Il valore migliore dello sciame scende da 9.633 tra le posizioni iniziali casuali a 0.000000, il minimo globale all’origine. Con altri semi casuali, lo sciame a volte si stabilizza in un minimo locale vicino pari a 0.995: è la convergenza prematura che le varianti di PSO contrastano usando sciami più grandi, riavvii o topologie di vicinato che rallentano la diffusione del miglior risultato globale. Nel machine learning, PSO viene usato per l’ottimizzazione degli iperparametri, la selezione delle caratteristiche e la ricerca di architetture neurali, quando i gradienti non sono disponibili.
Intelligenza dello sciame e concetti correlati#
- Algoritmi evolutivi: migliorano una popolazione attraverso selezione, incrocio e mutazione, sostituendo gli individui a ogni generazione. Le particelle PSO persistono e migliorano condividendo informazioni sulle posizioni vantaggiose.
- Apprendimento d’insieme: combina le previsioni di diversi modelli addestrati in un unico output al momento della previsione. Gli agenti dello sciame si scambiano informazioni durante tutta la ricerca e modificano il proprio comportamento di conseguenza.
- Sistemi multi-agente: ambito più ampio che studia agenti interagenti, che possono essere sofisticati, coordinati centralmente o in competizione. L’intelligenza dello sciame riguarda il caso di molti agenti semplici e cooperativi, dotati solo di informazioni locali.
Robotica a sciame e visione#
La robotica a sciame applica gli stessi principi a macchine fisiche, ciascuna semplice ed economica. Gli sciami di droni impiegati per la ricerca, la mappatura e l’agricoltura usano un coordinamento decentralizzato, così il gruppo continua a funzionare quando singoli droni si guastano o perdono il contatto. Ogni agente può eseguire a bordo un rilevatore compatto come Ultralytics YOLO26 a bordo e condividere con i vicini solo brevi messaggi di rilevamento, ad esempio la classe e la posizione di un oggetto, invece di trasmettere video a una stazione base. Gli spettacoli di luci con droni sembrano sciami, ma i droni seguono traiettorie precalcolate da un pianificatore centrale e nessuno reagisce ai vicini. L’auto-organizzazione funziona su larga scala: nel 2014, ricercatori di Harvard programmarono 1.024 Kilobot, piccoli robot che avanzano a scatti su zampe vibranti, per assemblarsi formando figure come una stella, una chiave inglese e la lettera K, usando soltanto messaggi a infrarossi scambiati tra vicini.










