cattivi scienziati

Come le macchine affrontano il problema dell'autoriproduzione

Enrico Bucci

Si può conferire a dei sistemi artificiali la capacità di evolversi in maniera autonoma, ispirandosi al principio darwiniano della selezione naturale? Alcuni esempi ci sono già

Macchine autopoietiche, capaci di procurarsi le risorse necessarie alla propria sopravvivenza e alla propria replicazione; di questo ci siamo occupati nei due articoli precedenti a quello che state leggendo.

E’ il momento di chiederci se le macchine possano essere capaci di evoluzione autonoma, se cioè l’ultima delle tre caratteristiche fondamentali della vita che abbiamo identificato possa essere conferita anche alle macchine che abbiamo brevemente illustrato in precedenza.

L'evoluzione per selezione naturale ha plasmato la vita sulla Terra. Nel corso di miliardi di anni, il principio secondo cui gli organismi meglio adattati all'ambiente circostante avranno maggiori probabilità di riprodursi e trasmettere i propri tratti genetici alle nuove generazioni, ha permesso la diversificazione della vita e il suo adattamento agli ambienti più disparati, oltre che un enorme aumento di complessità.

Come uno dei possibili approcci verso l’evoluzione autonoma dei robot, i ricercatori mirano a trarre spunto dal principio darwiniano e ad applicarlo nel settore della robotica.  Lo sviluppo di robot in evoluzione può sembrare un salto tecnologico ambizioso, ma di certo non è privo di precedenti. Per decenni, i ricercatori hanno cercato ispirazione nell'evoluzione biologica per sviluppare nuovi algoritmi informatici, che possano generare nuove generazioni di soluzioni più efficaci in base alle loro prestazioni. L'idea di utilizzare algoritmi evolutivi per ottimizzare i robot esiste da più di due decenni, ma i tentativi erano principalmente limitati alle simulazioni perché la tecnologia per produrre sistemi fisici non era disponibile.

Sebbene questa approssimazione dell'evoluzione abbia finora avuto luogo in uno spazio interamente digitale, siamo adesso giunti oggi ad un possibile nuovo scenario.

In sostanza, dopo un primo salto dal "wetware" biologico al software", avvenuto con l’avvento degli algoritmi genetici, siamo adesso all’inizio di una seconda grande transizione: dall’evoluzione autonoma del software a quello dell'hardware.

Per illustrare un esempio di cosa sta avvenendo in molti diversi laboratori, discuterò qui brevemente di una ricerca in corso nei laboratori dell’università della Vrije Universiteit di Amsterdam, sotto la supervisione del professor Eiben.

Ho scelto volutamente questo esempio, perché è più direttamente ispirato all’evoluzione degli organismi biologici; ma il modo di conferire capacità evolutive autonome ai robot può essere molto diverso da quanto avviene in natura e da quanto di seguito descritto, per cui non è detto che, alla fine, ciò che sta sviluppando il prof. Eiben costituisca la soluzione più efficiente o conveniente.

Innanzitutto, ad Amsterdam si è creata una sorta di "clinica del parto", in cui sono concepiti nuovi progetti di robot, paragonabili alla creazione dei fenotipi (piante o animali) codificati dai genotipi (DNA) degli organismi viventi. I genotipi robotici vengono passati quindi ad una stampante 3D, incorporando anche sensori e attuatori che per il momento sono prefabbricati, e tutti i pezzi sono quindi montati nel modo determinato dal progetto genotipico.

I robot appena nati passano attraverso una "scuola materna", che fornisce un ambiente in cui i singoli robot possono imparare e controllare i loro corpi per svolgere compiti semplici, aumentando le loro possibilità di successo nel mondo reale. Se i robot si comportano male in questa fase, possono essere rimossi dal sistema e i loro corpi riciclati, assicurando che i loro tratti difettosi non vengano trasmessi alle generazioni future.

Se un robot acquisisce il set di abilità necessario, viene considerato un "adulto" fertile e passa alla fase finale: il test nel mondo reale. Qui il robot deve sopravvivere, eseguire i suoi compiti ed essere potenzialmente selezionato per la riproduzione. In questo caso, ricombina il suo genotipo con il genotipo di un altro robot (il partner di accoppiamento, ugualmente selezionato in base alle sue performance) e passerà il nuovo genotipo alla “clinica del parto”, completo di approfondimenti su come il suo design potrebbe essere ulteriormente migliorato ricavati dalle esperienze nel mondo reale.

Come è possibile immediatamente dedurre dalla descrizione fatta, il processo sin qui descritto prevede in più punti l’intervento umano nella selezione e nell’assemblaggio dei nuovi robot; non è però un intervento che non possa essere sostituito, per quel che riguarda l’assemblaggio e la riproduzione nel modo in cui abbiamo visto, e per quel che riguarda la selezione adattativa attraverso l’impiego di sistemi automatici di valutazione delle prestazioni, le quali possono essere prefissate in quanto a compiti, oppure semplicemente essere lasciate libere pure esse di evolvere spontaneamente; in questo senso, un nuovo progetto è partito a York, che rappresenta appunto un ulteriore passo nella descrizione indicata.

La dimostrazione che i robot possano evolvere autonomamente per ottimizzare la raccolta delle risorse necessarie alla propria riproduzione, aumentando in complessità, è peraltro recentemente ottenuta attraverso la realizzazione di un sistema robotico modulare in grado di eseguire assemblaggi seriali delle proprie parti, sia ricorsivi, con la creazione di più robot copia, che gerarchici, con la creazione di robot più grandi e complessi. Ciò è stato ottenuto attraverso la progettazione di blocchi di costruzione precursori che possono essere riconfigurati per creare un'ampia gamma di funzionalità diverse. La discretizzazione in blocchi semplifica notevolmente il processo di costruzione e di generazione di varietà, la correzione degli errori nelle macchine non funzionanti e il coordinamento della macchina ottenuta attraverso l’assemblaggio. Un algoritmo è usato per assemblare i blocchi costitutivi in insiemi funzionali e pianificare il percorso di costruzione ottimale. Inoltre, i blocchi, ciascuno dotato di sensori e capacità di calcolo autonome, si comportano nella macchina finale come uno sciame robotico coordinato, in una versione semplificatissima di organismo pluricellulare. Questo sistema, lasciato libero di procurarsi i blocchi per il proprio assemblaggio, ha finito con lo sviluppare versioni più efficienti (per esempio con braccia più complesse e grandi) per eseguire il compito di raccogliere il materiale utile alla propria riproduzione: questo è, evidentemente, un analogo dell’aumento di fitness aumentata di un organismo dovuto ad una sua maggiore capacità di procurarsi le risorse necessarie.

Infine, in un ulteriore passaggio a imitazione di quanto avviene in natura nel processo di evoluzione darwiniana, un altro gruppo di ricercatori ha presentato circa un anno fa i risultati ottenuti su una popolazione di una cinquantina di robot diploidi con tre “geni”, liberi di “accoppiarsi” tra loro e artificialmente costretti a “morire” dopo un certo numero di cicli di accoppiamento, osservando al variare dell’ambiente le classiche dinamiche darwiniane di mutazione, accoppiamento, mortalità e natalità. Come atteso, si è trovato che minore è la diversità genetica nella popolazione di partenza, minore è la probabilità di sopravvivenza della popolazione di robot; l’accoppiamento (casuale o selezionato), come forma minima di collaborazione fra macchine utile a produrre diversità (casuale o pre-orientata dalla selezione dei partner che si accoppiano), aumenta quindi le possibilità di superare cambiamenti e avversità.

Dovrebbe a questo punto essere chiaro che persino una forma di evoluzione “darwiniana” è già possibile oggi, in semplici sistemi robotici; questo permette di evitare una delle classiche trappole dell’evoluzione virtuale di progetti, cioè il fatto che i modelli di ambiente virtuale non possono mai corrispondere davvero al mondo fisico, a spese però della rapidità di evoluzione.

Altri tipi di evoluzione non darwiniana sono pure possibili, e molto più efficienti: in particolare, l’evoluzione può essere teleologica nel caso di robot in grado di progettare le generazioni successive, e il fine può essere stabilito autonomamente, fissato un generalissimo obiettivo (come quello di sopravvivere o fi aumentare il numero di discendenti).

Mi rendo conto che, con questi ultimi tre articoli, non ho fatto che sfiorare l’argomento della “vita” nelle macchine; mi interessava però dimostrare che, fissate tre generalissime proprietà che normalmente si attribuiscono ai sistemi viventi, ovvero autoreplicazione, autosostentamento ed evoluzione per adattamento, non vi fossero ostacoli di principio a ritrovarli anche in macchine costruite dall’uomo; anzi, proprio questo è un filone di ricerca attivissimo ed in rapido sviluppo, con l’obiettivo di ottenere macchine migliori per ambienti difficili, come altri pianeti.

Detto questo, vi sono però alcuni elementi che è necessario analizzare con qualche dettaglio maggiore, i quali sono tipici dei sistemi viventi e sono invece del tutto fuori portata con gli approcci macroscopici illustrati.

Ne parleremo nel prossimo articolo.

Di più su questi argomenti: