L’intelligenza artificiale è stata applicata a diversi tipi di sistemi: troviamo algoritmi di IA nei telefoni cellulari, in dispositivi domestici come i riconoscitori vocali per controllare reti di domotica e, infine, nei robot che svolgono diversi compiti, dall’interfacciamento con gli esseri umani al controllo motorio.
Intelligenza artificiale, cosa vogliamo dalle macchine smart?
L’implementazione dell’intelligenza artificiale segue sempre lo stesso schema: algoritmi in codice eseguiti da un computer universale. Questo schema però non è l’unico possibile: infatti, esiste una strada alternativa, cioè la realizzazione di macchine dedicate.
Una macchina dedicata è un sistema fisico progettato per realizzare uno specifico algoritmo. Si distingue dal computer universale nella destinazione d’uso: un computer universale può eseguire qualsiasi algoritmo, mentre una macchina dedicata può eseguire un singolo algoritmo.
Un esempio di macchina dedicata è il telaio: il suo scopo è intrecciare i fili provenienti da due spolette per ottenere un tessuto ed esegue egregiamente questo compito anche in assenza di un computer di bordo. Oggi i telai sono assistiti dai computer, sono stati tra le prime macchine a poter essere programmate, ma l’informazione importante da considerare è che essi implementavano uno specifico algoritmo molto prima che si parlasse della Macchina di Turing.
Il telaio è una macchina dedicata che esegue un algoritmo semplice, è normale chiedersi se sia possibile realizzare delle macchine dedicate che eseguano algoritmi complessi senza il supporto di un computer.
Intelligenza artificiale senza computer, il ruolo del quantum computing
La risposta a questa domanda è arrivata già nel 1985 grazie al fisico David Deutsch, uno dei protagonisti della seconda rivoluzione quantistica.
Deutsch, insieme a Richard Feynman è stato tra i primi a occuparsi di Quantum computing, e nel suo seminal paper “Quantum theory, the Church-Turing principle and the universal quantum computer” ha proposto una rivisitazione del principio di Church-Turing.
Il principio afferma che: “Ogni funzione (umanamente) calcolabile può essere calcolata da una Macchina di Turing Universale”. Deutsch lo ha modificato in “Ogni sistema fisico realizzabile in modo finito può essere perfettamente simulato da una macchina di calcolo che opera con mezzi finiti”.
La versione di Deutsch ha contribuito a definire cosa si intende con Quantum Turing Machine e inoltre è servita come trait d’union tra il concetto di algoritmo visto come procedura astratta e l’hardware necessario per realizzarlo.
Integrando la visione di Deutsch con quella di Turing si può dedurre che ogni funzione Turing-computabile può essere realizzata come un sistema fisico.
Una visione a cui non si è abituati è che il computer è una macchina fisica, cioè un sistema dinamico, per esempio una puleggia, che segue le leggi della fisica. Infatti, il computer è un sistema la cui dinamica è espressa dall’evoluzione temporale degli stati fisici dei suoi registri e della sua memoria.
Durante l’esecuzione di un programma non si hanno parti in movimento, come invece avviene nella macchine semplici, ma si ha la variazione dello stato di magnetizzazione (o di potenziale elettrico) dei bit che rappresentano i registri interni o la memoria.
In questa prospettiva, anche il software va visto dal punto di vista fisico. Infatti, un programma caricato in memoria, prima di essere eseguito, rappresenta le condizioni iniziali del sistema dinamico, cioè un programma è la condizione iniziale del sistema computer che definisce in modo univoco la sua evoluzione nel tempo.
Ogni computer è quindi un sistema dinamico che segue le leggi della fisica, e ogni programma definisce le specifiche condizioni iniziali di questo sistema. Questa serie di considerazioni ha stimolato la nostra visione, che consiste nel considerare le funzioni computabili nei termini di un sistema dinamico.
In pratica pensiamo che, data una funzione, dovrebbe sempre esistere un sistema fisico composto da parti, meccaniche e/o elettroniche interagenti fra loro, la cui evoluzione dinamica nel tempo produce la computazione codificata nella funzione, questo sia nel mondo classico che in quello quantistico.
Intelligenza Artificiale senza computer: il caso Fukushima
Un treno rallenta varcando la soglia della città perché i passeggeri si affaccino ai finestrini ad ammirare lo spettacolo. La bella stagione ha anticipato la fioritura e, già agli inizi di marzo, i ciliegi si presentano in tutto il loro splendore. Il treno riparte tra l’entusiasmo dei turisti e la soddisfazione dei residenti, che ritrovano la loro città nella ridente primavera ormai alle porte. Non sanno che non rivedranno mai più quella fioritura, perché più nessuno potrà tornare in quella città. È il 10 marzo del 2011: da quella data la città di Tomioka diverrà una città fantasma.
Un camion si avvicina a un parcheggio dove sono accumulati migliaia di sacchi neri gli uni sopra gli altri. L’autista dopo qualche manovra individua una zona appropriata e scarica altri sacchi di materiale contenente isotopi di cesio e stronzio. Questi sacchi non possono finire nell’inceneritore perché c’è il rischio di un’ulteriore contaminazione radioattiva dell’ambiente. Siamo nell’ottobre del 2021 a Tomioka, a 60 km da Fukushima.
Nel descrivere la tragedia del disastro di Fukushima la retorica potrebbe sprecarsi, ma non serve. È ovvio che sarebbe meglio se gli incidenti non succedessero, ma quando succedono è importante avere un piano per arginarne le conseguenze provocate.
Di recente il fisico italiano Giorgio Parisi è stato insignito del premio Nobel per le sue ricerche sui sistemi complessi e la teoria del caos. Un sistema è caotico quando è descritto da equazioni differenziali non lineari: la caratteristica di queste equazioni è che piccole variazioni delle condizioni iniziali portano a variazioni importanti del risultato finale.
Il sistema di sicurezza di Fukushima sopportava onde alte fino a 10 metri. In un mondo non caotico, descritto da equazioni lineari, ci si sarebbe potuto aspettare che un’onda di 14 metri avrebbe provocato danni modesti, visto che in fondo si trattava di solo 4 metri in più rispetto al massimo tollerato. In realtà le onde che hanno attraversato le barriere di sicurezza della centrale nucleare hanno scatenato una serie di eventi che hanno portato l’intero processo totalmente al di fuori del controllo, in uno dei peggiori incidenti nucleari mai successi sulla terra. In genere, le equazioni che regolano i sistemi non sono lineari e portano facilmente a situazioni caotiche come questa.
Pretendere di realizzare sistemi sicuri al 100% non è una cosa razionale, ma è razionale impegnarsi totalmente nella ricerca della sicurezza e ancora di più essere responsabili quando gli eventi sfuggono al nostro controllo e ci si trova a fare i conti con gli effetti di un disastro come quello di Fukushima.
Responsabilità significa avere un piano per mettere in sicurezza e ripristinare la situazione. Tuttavia, farlo dopo un incidente che può avere coinvolto il nocciolo di una centrale nucleare è un problema ingente a causa dei livelli radioattivi che possono impedire l’avvicinamento di esseri umani anche per migliaia di anni.
Un piano di sicurezza che si rispetti deve quindi prevedere la possibilità di ripristinare la situazione anche in assenza di esseri umani. Infatti TEPCO, la società che controlla l’energia elettrica di Tokyo, contava di inviare due famiglie di robot dentro la centrale: i primi, detti cleaner, con il compito di ripulire la zona e i secondi, detti scorpion, con il compito di verificare il danno complessivo e misurare il livello di radiazione e la temperatura.
Per i robot cleaner era pianificato un tempo di esercizio di oltre dieci ore, ma, dopo appena due furono ritirati perché il livello di radiazione ionizzante era talmente alto da impedirne l’esercizio.
IA senza computer: la fragilità dei sistemi computerizzati
L’incidente di Fukushima, e il fallito tentativo di rimediare in parte ai danni utilizzando dei robot, confermano uno scenario tutt’altro che nuovo per la microelettronica: la fragilità dei sistemi computerizzati rispetto alle condizioni ambientali.
L’automazione di molti processi informativi, basata sull’utilizzo dei computer elettronici, è un risultato importante dell’evoluzione tecnologica e scientifica avuta a metà del secolo scorso.
È da notare che l’automazione dei processi informativi, così come è stata intesa fino agli inizi di questo secolo, è sostanzialmente un processo sedentario e controllabile, che necessita un’infrastruttura tecnologica che possa essere mantenuta nelle corrette condizioni di temperatura, umidità, pressione.
La recente evoluzione dell’IoT e dei sistemi di intelligenza artificiale ha condotto i sistemi informativi al di fuori della zona di comfort sedentaria, estendendo il concetto di data producer e data consumer anche ai dispositivi fisici disconnessi dalla rete o connessi via wireless che operano attivamente nello spazio fisico come droni e robot.
Tali dispositivi si possono trovare a operare al di fuori della zona di controllo e quindi in condizioni impreviste e non adatte alla loro operatività. Un drone può trovarsi a sorvolare una zona durante una tempesta o a sorvolare un tratto di bosco durante un incendio, eventualità in cui potrebbe esprimere al massimo il suo valore ma assolutamente sfidante dal punto di vista operativo.
IA senza computer: quali applicazioni
Da quanto abbiamo visto, si può dedurre che ogni algoritmo di intelligenza artificiale può essere realizzato nei termini di una macchina dedicata.
Il vantaggio rispetto all’uso di un computer universale è che si ha una maggiore scelta sulla tecnologia da usare per la realizzazione della macchina.
Per capire l’importanza torniamo al problema dei robot pulitori inviati all’interno della centrale di Fukushima. Ciò che limitava la loro capacità operativa era l’interazione delle radiazioni ionizzanti con l’elettronica di base necessaria al loro funzionamento.
Va da sé che, se la loro intelligenza si fosse basata su una forma diversa di computazione, per esempio automi cellulari realizzati a livello nanotecnologico, avrebbero sofferto meno della presenza delle radiazioni ionizzanti con conseguente successo della missione.
Questo è solo un esempio, ma esistono centinaia di applicazioni che gioverebbero dalla realizzazione di un’intelligenza artificiale priva di computer (#computerfreeai), a partire dalle macchine destinate all’agricoltura fino ai sistemi nanometrici impiegabili in medicina per diagnosi e cure.
IA senza computer: le sfide aperte
Da un punto di vista teorico abbiamo visto che non ci sono impedimenti a realizzare macchine dedicate: sapere che un obiettivo è raggiungibile non significa però sapere automaticamente come raggiungerlo.
Ci sono almeno due grandi problemi da considerare: il primo è che gli algoritmi di intelligenza artificiale possono essere molto complessi e quindi la loro realizzazione in forma di macchine dedicate richiede un lavoro di compilazione automatica.
Il secondo aspetto è che, una volta risolto il problema della compilazione automatica, come risultato ci si potrebbe trovare di fronte al progetto di una macchina mastodontica irrealizzabile, oppure realizzabile ma di dimensioni tali da renderla inutile.
Entrambi sono obiettivi complessi e ci vorranno alcuni anni per vedere i primi risultati concreti.
La mia attenzione e il mio interesse sono indirizzati alla prima sfida, che consiste nell’individuare una metodica che trasformi un algoritmo codificato in un linguaggio formale come il C o il Python in una descrizione formale di una macchina dedicata.
Il raggiungimento di questo risultato sarà il primo punto, necessario per valutare i costi e i benefici economici di questa possibile declinazione dell’intelligenza artificiale ed attirare gli investitori verso il secondo punto: l’implementazione nanotecnologica, che richiede un impegno maggiore in termini economici e organizzativi.