Creatività, caos e calcolatori
La creatività è un elemento fondamentale del comportamento intelligente. Qualsiasi sistema che aspiri al titolo di intelligente deve esibire un qualche grado di attività creativa. Non tenterò di definire il significato di "attività creativa". Mi limito a citare i criteri, peraltro vaghi e indefiniti, indicati da A. Newell, J. C. Shaw e H. A. Simon nel loro articolo I processi del pensiero creativo.
La soluzione di problemi viene detta creativa nella misura in cui sono soddisfatte una o più delle condizioni seguenti:
Voglio soffermarmi in particolare sulla prima delle precedenti condizioni, sulle caratteristiche di novità del prodotto del pensiero. Il risultato di un processo creativo non deve essere facilmente prevedibile. Un sistema il cui comportamento non mostra alcuna novità, che agisce in maniera rigida e chiaramente predeterminata, non può aspirare all'etichetta di intelligente. Si può dire che una condizione necessaria (ma certo non sufficiente) dell'intelligenza è la difficoltà di prevedere l'esito del comportamento. La non prevedibilità è, forse, un sintomo di creatività e di intelligenza. Sorge quindi la domanda: il comportamento di un calcolatore è prevedibile? In caso di risposta affermativa possiamo concludere che un calcolatore non mostrerà mai un comportamento creativo.
Il comportamento di un calcolatore è prevedibile?
La risposta appare ovvia: il comportamento di un calcolatore è prevedibile. Da un
punto di vista intuitivo, sembra evidente che niente di nuovo può venire da un
calcolatore; in un calcolatore non vi è niente altro che quello che i progettisti vi
hanno messo dentro. Come disse Lady Lovelace a proposito della macchina analitica
di Babbage: "La macchina analitica non ha la pretesa di creare alcunché. Può fare
qualsiasi cosa sappiamo come ordinarle di fare". Da un punto di vista formale, un
calcolatore è un sistema deterministico, regolato da precise leggi che ne determinano
l'evoluzione in modo univoco. I sistemi deterministici non hanno alcuna libertà, ma il
loro comportamento è rigidamente predefinito e quindi prevedibile.
Personalmente non ritengo questi argomenti corretti e credo che un calcolatore, per essendo un sistema deterministico, possa essere non prevedibile. All'argomento intuitivo si può obiettare che spesso i calcolatori esibiscono comportamenti estranei alle intenzioni dei progettisti e risultano imprevedibili per gli utilizzatori. Ma è l'argomento formale quello più importante e interessante. Un calcolatore è un sistema deterministico: è vero che un sistema deterministico è sempre prevedibile? Cos'è un sistema deterministico? Quest'ultima domanda è la prima alla quale cercherò di rispondere.
Sistemi deterministici
Un sistema deterministico ha le seguenti caratteristiche:
Un paio di esempi e qualche parola di commento possono essere utili. Un esempio ben noto di sistema deterministico è costituito da due corpi celesti che si muovono soggetti soltanto al reciproco influsso gravitazionale, quale potrebbe essere il sistema Terra-Luna pensato isolato dal resto dell'universo. In questo caso l'insieme S delle variabili di stato è costituito dalla posizione e dalla quantità di moto. Tutte le altre grandezze fisiche pertinenti (energia cinetica, energia potenziale, forza) sono esprimibili mediante queste variabili di stato. In genere qualsiasi sistema studiato dalla meccanica classica soddisfa la condizione 1. Ciò non vale nel caso della meccanica quantistica nella quale non esiste un insieme di grandezze fisiche dalle quali dipendono in modo univoco le altre. Il meglio che si può fare è determinare un insieme di grandezze dalle quali dipendono le probabilità delle altre grandezze. Lo stato del sistema non è determinato dalle variabili si stato; queste ultime forniscono solo la probabilità che il sistema sia in un certo stato (a rigore non si può parlare di variabili di stato).
Torniamo ai due corpi celesti isolati. Nel tempo essi cambiano la posizione e la quantità di moto. Il sistema evolve nel tempo. L'evoluzione del sistema è regolata da un sistema di equazioni differenziali che ammette una e una sola soluzione compatibile con lo stato iniziale. Dopo un certo tempo, i due corpi ritorneranno a occupare le medesime posizioni, con le medesime quantità di moto, e ripeteranno esattamente la loro danza.
Un secondo esempio di sistema deterministico è costituito da una rete
booleana. Si tratta di un reticolo che unisce dei nodi. I nodi possono trovarsi in due
stati: 0 e 1. Lo stato di un nodo dipende da quello dei nodi ai quali è collegato,
mediante semplici regole basate solo su condizioni AND (il nodo è nello stato 1 se tutti
i nodi collegati sono nello stato 1), OR (il nodo è nello stato 1 se almeno un nodo
collegato è nello stato 1), NOT (il nodo è nello stato 1 se il nodo collegato è nello
stato 0).
La figura seguente mostra una semplice rete booleana

Ecco un esempio di evoluzione di questa rete booleana a partire dallo stato A=B=C=D=0
A |
B |
C |
D |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
Si noti come la successione di stati indicata in neretto si ripete indefinitamente. In effetti una rete booleana ha un numero finito di stati e quindi, dopo un tempo sufficiente, il sistema deve tornare nel medesimo stato. A questo punto il sistema percorrerà la medesima successione di stati.
Spero di avere chiarito quale sia la natura di un sistema deterministico. La domanda alla quale volevo rispondere è: un sistema deterministico è sempre prevedibile? Adesso devo spiegare cosa significa prevedere.
La previsione
Consideriamo un sistema deterministico il cui stato iniziale è noto. Prevedere il
comportamento di questo sistema significa stabilire in anticipo:
a) la successione degli stati che il sistema attraversa nel corso della sua evoluzione
b) in quale stato il sistema sarà in un tempo determinato
c) se il sistema percorrerà una serie ciclica stabile di stati
Risulterà utile un breve commento. In primo luogo si noti che le previsioni devono essere fatte in anticipo, prima che il fenomeno da prevedere sia accaduto. Se la previsione arriva dopo, siamo in presenza di una spiegazione, cioè di una rigorosa deduzione del perché qualcosa è avvenuto. Se consideriamo come esempio il sistema composto da due corpi celesti ci accorgiamo che esso è prevedibile. Possiamo infatti risolvere il sistema di equazioni che descrivono l'evoluzione del sistema e quindi risolvere i problemi a e b. Noti teoremi di meccanica celeste permettono di affrontare e risolvere il problema c.
Siamo in grado di affrontare adesso il nostro quesito iniziale.
Un sistema deterministico è sempre prevedibile?
Per rispondere a questa domanda consideriamo un sistema costituito da tre corpi
celesti, isolati rispetto al resto dell'universo, soggetti solo alla forza gravitazionale.
Siamo di fronte ad un sistema deterministico, retto da un sistema di equazione
differenziali che ammette una sola soluzione. Rispetto al precedente sistema di due corpi
celesti vi è solo un piccolo problema supplementare: nessuno è in grado di calcolare la
soluzione esplicita delle equazioni del moto. Nel caso del problema dei tre corpi (così
si chiama il sistema appena introdotto) la soluzione delle equazioni del moto, che pure
sappiamo esistere, non può essere trovata. La conseguenza è che dobbiamo usare metodi di
calcolo approssimati. Sono stati sviluppati metodi altamente sofisticati, come
l'integrazione numerica mediante calcolatore e la teoria delle perturbazioni. Per quanto
raffinati questi metodi introducono nei calcoli dei piccoli errori. Vediamo come esempio
come procede l'integrazione numerica. Noto lo stato iniziale del sistema (posizioni e
quantità di moto) si calcolano le forze che si esercitano tra i tre corpi e supponendo
tali forze costanti per un breve intervallo di tempo (qui si introduce l'approssimazione
poiché le forze variano in modo continuo, non discreto) si calcolano posizioni e
quantità di moto dopo tale breve intervallo di tempo. I valori così ottenuti sono
utilizzati come un nuovo stato iniziale al quale applicare l'integrazione numerica. Questo
nuovo stato iniziale è noto solo con una certa approssimazione. I metodi approssimati
hanno un effetto simile a quello che si verifica quando le condizioni iniziali sono note
con un certo grado di approssimazione. Al fine della prevedibilità del sistema si pone il
seguente problema: variazioni piccole delle condizioni iniziali producono variazioni
piccole della storia futura del sistema? Oppure variazioni piccole dello stato iniziale
possono avere conseguenze tali da produrre una storia evolutiva completamente diversa? Due
stati iniziali simili (molto vicini) generano evoluzioni simili (vicine a meno di un certo
piccolo errore calcolabile) oppure generano evoluzioni divergenti?
Le risposte a queste domande si trovano negli scritti del matematico, fisico, ingegnere minerario e filosofo francese Jules Henri Poincaré: esistono condizioni iniziali nelle quali una piccola variazione produce un comportamento del sistema totalmente diverso. Questo fenomeno, noto come dipendenza sensibile dalle condizioni iniziali, è all'origine del caos deterministico. Un sistema deterministico può dipendere in modo così rilevante dalle condizioni iniziali da risultare non prevedibile: ogni minimo errore si amplifica al punto da rendere inattendibili le previsioni. In tal caso potrebbero non esistere cicli stabili: una piccola alterazione non verrebbe smorzata ma esaltata, portando il sistema in una nuova configurazione. Così si esprime Poincaré:
"Una causa minima, che ci sfugge, determina un effetto considerevole, del quale non possiamo non accorgerci: diciamo allora che questo effetto è dovuto al caso. Se conoscessimo con esattezza le leggi della natura e lo stato dell'universo all'istante iniziale, potremmo prevedere quale sarà lo stato di questo stesso universo ad un istante successivo. Ma quand'anche le leggi naturali non avessero per noi più segreti, potremo conoscere lo stato iniziale soltanto approssimativamente. Se ciò ci permette di conoscere lo stato successivo con la stessa approssimazione, non abbiamo bisogno d'altro, e diremo che il fenomeno è stato previsto, che esistono leggi che lo governano. Ma non sempre è così: può succedere che piccole differenze nelle condizioni iniziali generino differenze grandissime nei fenomeni finali; un piccolo errore a proposito delle prime genererebbe allora un errore enorme a proposito di questi ultimi. La previsione diventa impossibile; siamo di fronte al fenomeno fortuito."
(Poincaré: Il caso (1907), tr. it. in Geometria e caso, Bollati Boringhieri, 1995, pp.107-108)
Il caos
Il caos deterministico, scoperto alla fine dell'Ottocento da Poincaré, è stato a
lungo dimenticato, per essere riscoperto negli anni sessanta dallo studioso di
meteorologia Edward Lorenz, che studiava un modello molto semplice
dei moti dell'atmosfera. Cito dalla voce Caos nella Enciclopedia Treccani delle
scienze fisiche.
Questo modello vene utilizzato da E. Lorenz per mostrare che i moti
dell'atmosfera non possono essere descritti con precisione fissata oltre un tempo in
pratica breve, anche se da un punto di vista matematico i moti obbediscono a un'equazione
strettamente deterministica, eventualmente anche semplice.
La rilevanza di questi risultati per le previsioni metereologiche è notevole e pone gravi
dubbi di principio sull'affidabilità delle previsioni su scale di tempo lunghe (rispetto
a qualche giorno): il caos sui moti dell'atmosfera pone invero limiti essenzialmente
invalicabili.
Torniamo alla domanda iniziale: un sistema deterministico è sempre prevedibile? Ora possiamo rispondere in modo negativo: esistono sistemi deterministici imprevedibili a causa del caos deterministico, nonostante il loro comportamento sia rigorosamente predeterminato. E i computer? Sono soggetti al caos deterministico?
Reti boolene
Una rete booleana è un interessante esempio di computer. Cosa sappiamo sul
comportamento delle reti booleane? In primo luogo un po' di terminologia. La successione
degli stati attraversati dalla rete booleana si chiama traiettoria della rete. Poiché la
rete ha un numero finito di stati, il sistema deve tornare in uno stato già attraversato
e, da questo punto, percorrerà ciclicamente la medesima successione di stati. Cicli di
questo tipo si chiamano attrattori. L'insieme degli stati che evolvono in un dato
attrattore si chiama bacino d'attrazione. Un attrattore è stabile se il sistema entrato
nell'attrattore e sottoposto ad una piccola perturbazione rimane in quel bacino
d'attrazione. Indichiamo con N il numero dei nodi della rete e con K il numero medio dei
collegamenti di un nodo. Considereremo due tipi particolari di reti booleane, quelle K=N
(ogni nodo è connesso con tutti gli altri) e K=2 (ogni nodo è connesso con solo due
altri nodi). Il numero degli stati diversi è 2N. La lunghezza media di un
attrattore varia a seconda del tipo di rete: per reti K=N risulta radice(2N)
mentre per reti K=2 vale radice(N).
La tabella seguente illustra il comportamento di una rete K=N, per valori diversi di N, riportando la lunghezza media di un attrattore e il tempo impiegato a percorrerlo nell'ipotesi che il sistema attraversi 109 stati al secondo (109 stati/sec = 1000 Mhz).
Nodi |
Lunghezza media di un attrattore |
Tempo impiegato a percorrere l'attrattore |
10 |
10 |
10-8 sec |
100 |
1015 |
106 sec » 11 giorni |
200 |
1030 |
1021 sec » 30.000 miliardi di anni |
Si consideri un calcolatore con soli 200 byte nel quale il valore di ciascun byte dipende dagli altri 199 medianti semplici funzioni booleane. Un tale calcolatore potrebbe impiegare 30.000 miliardi di anni prima di tornare al medesimo stato. Il suo comportamento non è per nulla prevedibili e privo di novità.
Perché allora i calcolatori sembrano stupidi? Perché di fatto esiste un basso livello di interconnessione: di solito un byte dipende da pochi altri byte (K<<N); anzi tipicamente K=2. Ecco la tabella per K=2.
Nodi |
Lunghezza media di un attrattore |
Tempo impiegato a percorrere l'attrattore |
100 |
10 |
10-8 sec |
200 |
14 |
10-8 sec |
106 |
1000 |
10-6 sec |
109 |
3 · 104 |
3 · 10-5 sec |
1018 |
109 |
1 sec |
Un calcolatore con 109 byte (1 gigabyte) ritornerebbe al medesimo stato dopo un tempo brevissimo: apparirebbe "congelato", immobile, in un eterno stato stazionario privo di qualsiasi novità. E' tuttavia evidente che un calcolatore in genere non è così stupido: perché? Perché di solito un calcolatore non è un sistema isolato ma interagisce con l'ambiente esterno, rappresentato dagli esseri umani che lo usano. Queste interazioni svolgono il ruolo di perturbazioni casuali che alterano l'evoluzione deterministica rendendo accessibili stati normalmente non permessi. E' quello che a una scala ben maggiore avviene nel cervello.
Il cervello è probabilmente un sistema deterministico che a causa delle continue interazioni con l'ambiente può accedere a stati altrimenti proibiti, sperimentando gli effetti del caos deterministico, risultando quindi imprevedibile e anche creativo.
Queste considerazioni suggeriscono che un calcolatore potrebbe esibire una qualche forma di comportamento creativo (o almeno di comportamento con novità) a condizione di
a) disporre di un alto grado di interconnessione
b) interagire con l'ambiente
Non conta la velocità di elaborazione o la quantità di memoria: bisogna avere molte connessioni interne e dei buoni organi di senso.
Nota bibliografica
Sui fondamentali contributi di Poincaré allo studio del problema dei tre corpi e alla
scoperta del caos deterministico si può consultare di Umberto Bottazini, Poincaré: il
cervello delle scienze razionali, collana "i grandi della scienza", n. 7
febbraio 1999, editore Le Scienze.
Sul caos e sulle sue applicazioni in specifici campi scientifici si veda:
Siti internet dedicati al caos:
Making Order Out
of Chaos
Uno studio pioneristico sulla creatività nell'uomo e nelle macchine è l'articolo di Newell A., Shaw J. C. e Simon H. A. (quest'ultimo premio Nobel per l'economia nel 1978) intitolato I processi del pensiero creativo (1962), reperibile nell'antologia a cura di Somenzi e Cordeschi, La filosofia degli automi, Boringhieri, 1994, pp. 204-249.
Sulla natura delle teorie deterministiche:
Nagel E., La struttura della scienza, Feltrinelli, 1984 (edizione originale inglese
1961), in particolare il capitolo 10 intitolato Causalità e indeterminisimo nelle
teorie della fisica.