Ant colony optimization (ACO) Definizione: La meta-euristica Ant Colony Optimization (ACO) è formata da una famiglia di algoritmi multi-agente risolutori di problemi di ottimizzazione. Spiegazione: Una meta-euristica è una strategia di alto livello che guida le altre euristiche nella ricerca di soluzioni. È formato da un framework di algoritmi utilizzabile in diverse classi di problemi di ottimizzazione. Sono inoltre necessari pochi cambiamenti per adattarlo ad un problema specifico
Ant colony optimization (ACO) Si ispira al comportamento delle colonie di formiche: non sono dotate di un’intelligenza collettiva ogni formica è capace di operazioni elementari, assieme realizzano un fine comune Stigmergia: ‘i lavoratori sono influenzati dai risultati delle loro precedenti azioni’ Forma di comunicazione che si manifesta nello scambio di stimoli di natura chimica (il feromone)
Esempio: funzionamento del feromone
Strategia ACO Modello di ricerca del percorso più breve su grafo: Le formiche sono agenti che si muovono su grafo in modo asincrono. Ogni formica rilascia lungo il percorso la sua valutazione sul raggiungimento della soluzione depositando feromone. Una formica sceglierà quale percorso intraprendere in base alla quantità di feromone presente Osservazioni: La scelta di quale percorso intraprendere viene presa a livello di nodo tramite un processo stocastico che utilizza solo le informazioni locali. Le informazioni riguardanti il feromone saranno salvate nei nodi
Euristiche offline L’ACO utilizza anche delle euristiche che non vengono svolte dagli agenti, ma realizzate a livello di nodo. L’evaporazione delle scie: la quantità depositata di feromone presente sul percorso decade col passare del tempo in modo da favorire l’esplorazione di nuove regioni. Aggiornamento passivo dei feromoni: sono dei processi che monitorano la distribuzione di feromone per poi effettuare delle modifiche che premiano i percorsi che risultano particolarmente efficienti.
Vantaggi e applicazioni L’ACO si presta quindi a risolvere problemi di ottimizzazione su grafo con un approccio distribuito multi agente. È flessibile, ha alta ridondanza e tolleranza ai guasti. Sono caratteristiche desiderabili nella risoluzione di un’ampia gamma di problemi.
Routing Definizione: il routing consiste nel definire dei percorsi per i flussi di dati in modo da massimizzare le performance dell’intera rete. L’instradamento nei vari nodi si effettua utilizzando le tabelle di routing.
Tipologie Circuit-switching: viene instaurato un percorso che in seguito seguiranno tutti pacchetti inviati. Ogni nodo del grafo dovrà mantenere le informazioni sullo stato di ogni sessione attiva che lo attraversa; Packet-switching: ogni pacchetto dati è libero di seguire percorsi diversi e ogni nodo instraderà autonomamente il pacchetto sul link d’uscita prescelto;
Costruzione Tabella di Routing VS Centralizzato Statico Shortest path Distribuito Adattabile Optimal VS VS
ACO per il routing Il lavoro che segue è focalizzato sul paradigma packet-switching, metteremo infatti a confronto le performance di due algoritmi distribuiti, adattabili e di tipo shortest path: Uno è il diffusissimo distance-vector L’algoritmo scelto del framework ACO è AntNet