Artificial Bee Colony – Come si differenzia da PSO

Artificial Bee Colony - Le differenze rispetto al PSO

Intuito e implementazione del codice per ABC e esplorare dove si supera l’ottimizzazione dello sciame di particelle

Immagine creata da DALL·E 3 basata sul prompt “Disegna un'immagine a tema fantascientifico di api che si fronteggiano in battaglia.”

Ho condiviso l’intuizione, l’implementazione e l’utilità dell’Ottimizzazione dello Sciame di Particelle (PSO) in un articolo recente, come parte della mia serie sugli algoritmi ispirati alla natura. Oggi, spiegherò come funziona l’Artificial Bee Colony (ABC).

Le api non fanno parte di un branco? Questi due algoritmi sono semplicemente due facce della stessa medaglia?

In questo articolo, approfondirò l’intuizione dell’ABC. Successivamente, fornirò la parte matematica, seguita dall’implementazione in Python. Infine, formulerò un problema che il PSO non riesce a risolvere ma che l’ABC affronta facilmente, e spiegherò gli aspetti dell’ABC che rendono ciò possibile.

Intuizione

Come nel caso del Reinforcement Learning e degli Algoritmi Evolutivi, anche dietro all’ABC c’è un equilibrio tra esplorazione ed sfruttamento.

Coloro che sono nuovi agli algoritmi di intelligenza di swarm potrebbero sentirsi inizialmente intimiditi dall’associazione con la biologia e pensare che ci sia una complicata modellazione matematica per imitare esattamente ciò che accade in natura. Poiché le variabili sono tipicamente rappresentate con alfabeti greci nei libri di testo, ciò contribuisce a questa falsa percezione di complessità.

Ma non è certo il caso, almeno per l’ABC. Non c’è nulla da capire sulla danza delle api. E non c’è nulla oltre alla matematica delle scuole superiori in questo algoritmo.

Fondamentalmente, si tratta semplicemente di una ricerca direzionale locale verso posizioni promettenti, salvando i risultati solo se vi è un miglioramento nella funzione obiettivo, insieme a una ricerca casuale globale in caso di periodi prolungati senza progressi.

Gli autori di questo algoritmo lo hanno quindi confezionato con nomi fantasiosi e li hanno associati alle api impiegate, alle api osservatrici e alle api esploratrici.

Formulazione della Soluzione

Come il PSO, l’ABC è un algoritmo metaeuristico?

Cosa si intende per ‘metaeuristico’, potresti chiederti?