Anternet: anche le formiche, nel loro piccolo, chattano
Questo è l’articolo numero 200 di OMg!Science!. Ed è anche il primo del nostro nuovo autore, Umberto Biscotti. Ecco cosa penso: non c’è modo migliore di festeggiare un traguardo del genere, che avere un nuovo divulgatore al nostro fianco a raccontare la scienza agli appassionati.
Quando siamo partiti con OMg!Science! non mi aspettavo tutto questo: lo speravo, certo, ma non ci credevo mica.
Grazie di cuore a tutti.
[Giovanni]
Succede spesso, nel mondo delle scienze e in particolare della tecnologia, che certe invenzioni o certi fenomeni siano ideati o spiegati ricorrendo all’aiuto della natura. Si pensi ad esempio al volo, i cui principi cardine sono stati mutuati dall’osservazione degli uccelli. A volte, invece, come nel caso della ricerca di cui stiamo per parlarvi, succede il contrario, cioè che si ricorra ad un costrutto umano per inquadrare un particolare fenomeno naturale.
Lo studio in questione, pubblicato su PLOS Computational Biology e poi ripreso in alcuni articoli da Mashable e altri, riguarda il comportamento delle formiche raccoglitrici (Pogonomyrmex barbatus), e ha visto l’inconsueta collaborazione di due scienziati provenienti da branche del sapere apparentemente lontanissime, come Biologia ed Informatica. Tale incontro è avvenuto grazie all’intuizione della professoressa Deborah M. Gordon, biologa dell’università di Stanford, che si è rivolta al collega Balaji Prabhakar, informatico, per confermare una delle proprie osservazioni.
La professoressa, infatti, voleva capire quale meccanismo è alla base della scelta del numero di formiche da mandare fuori dal formicaio a procurarsi cibo e, dopo attente osservazioni, è riuscita nell’intento, formulando anche un preciso algoritmo. Di qui a chiedere la collaborazione di uno specialista del settore informatico, il passo è stato breve. La professoressa Gordon, infatti, aveva da subito notato una certa somiglianza tra l’algoritmo relativo alle sue formiche e quello per il trasferimento dei files in una rete di computer. La conferma di questa ipotesi è avvenuta quasi immediatamente: secondo il professor Prabhakar, che ha analizzato l’algoritmo ricostruito dalla Gordon, le formiche raccoglitrici, nell’organizzare la raccolta del cibo, si comportano in modo molto simile a ciò che avviene per internet con il noto protocollo TCP (Transmission Control Protocol, fondamentale per lo scambio di informazioni), in merito alla determinazione della quantità di banda disponibile per il trasferimento di un file.
Infatti, il ritmo al quale le formiche (che vanno alla ricerca di cibo singolarmente) lasciano il formicaio per effettuare tale ricerca corrisponde alla quantità di cibo disponibile. Ciò fa sì che il loro ritorno alla colonia, avvenga solo una volta che il cibo sia stato trovato. In questo caso, se il rientro avviene in tempi brevi, nuove formiche usciranno a recuperarne altro (per approfittare, quanto più possibile, della sua generosa disponibilità). Viceversa, se dovessero tornare senza averlo trovato, l’uscita di nuove formiche sarebbe rallentata, fino all’estrema conseguenza di annullarla del tutto, poiché, chiaramente, la sua ricerca sarebbe infruttuosa. Il TCP, a grandi linee, funziona in modo simile. I dati sono divisi in pacchetti numerati e spediti singolarmente alla destinazione. Se il pacchetto è ricevuto dalla destinazione, all’origine viene inviata una conferma della consegna. Se la conferma è rapida, il trasferimento dei pacchetti sarà accelerato. Se, invece, la conferma arriva in modo ritardato, il trasferimento viene rallentato.
Questa soluzione è ben spiegata dal seguente frammento in pseudocodifica dell’algoritmo di Nagle, impiegato proprio nel TCP allo scopo di evitare la congestione nei trasferimenti di dati:
Se ci sono nuovi dati da inviare
Se la dimensione della Finestra >= MSS e la dimensione dei dati nel buffer >= MSS
Spedisci i dati
Altrimenti
Se precedentemente sono stati inviati dati non ancora confermati
Accoda i nuovi dati nel buffer ma non inviarli ancora
Altrimenti
Invia i dati direttamente verso la destinazione
Fine se
Fine se
Fine se
* In questo algoritmo MSS sta per Maximum Segment Size, la dimensione massima ricevibile di un segmento TCP; la Finestra rappresenta il numero di byte che il destinatario della trasmissione si dichiara disposto a ricevere dal mittente oltre l'ultimo byte per il quale il mittente abbia già ricevuto il segnale di conferma; il Buffer è una memoria di transito usata per "parcheggiare" i dati in attesa di un prossimo utilizzo
Se provate a sostituire i termini nell’algoritmo con quelli che sarebbero utilizzati per descrivere il problema delle formiche oggetto di studio, potete verificare tranquillamente come la somiglianza sia notevole. Ed è per questo che i due scienziati hanno deciso di soprannominare questa scoperta con l’evocativo nome di “Anternet”, fondendo il termine ant (trad.: formica) con Internet.
La scoperta di tali ulteriori e raffinatissime capacità organizzative di questi insetti ha portato la Gordon a chiedersi quanti altri algoritmi ancora sconosciuti possano esistere fra le 11.000 specie di formiche che vivono sulla Terra. Quanto ancora potremmo imparare da queste creature? Non è possibile, magari, che qualcuna di esse abbia sviluppato un algoritmo ancora più efficiente di quello descritto da questa ricerca, applicabile, in qualche modo, anche ai nostri computer?
Tag:algoritmo, algoritmo di Nagle, formiche, internet, PLOS, Pogonomyrmex barbatus, TCP
seguici anche su Facebook!