Sistemi e problemi complessi, Legge di Corrispondenza, Subottimalità

Quando abbiamo introdotto le Classi di Wolfram-Langton abbiamo volutamente evitato di usare la parola “complessità”. Perché?

Il fatto è che la parola “complessità” viene usata in molte accezioni differenti. Non abbiamo parlato di complessità in relazione al margine del caos semplicemente perché quella non è l’unica accezione in cui utilizzeremo tale termine.

In effetti, la maggioranza degli studiosi di complessità sarebbe d’accordo nel sostenere che, quando i sistemi dinamici si trovano al margine del caos, le interazioni tra le componenti del sistema non siano né ordinate come quando l’organizzazione viene imposta dall’esterno, né caotiche come in assenza di qualsiasi organizzazione, bensì complesse. Quello che accade in queste condizioni è che le componenti si auto-organizzino e a livello sistemico emergano proprietà e capacità non riferibili alle componenti singolarmente considerate. L’esempio più noto è quello di una colonia di formiche: anche se a prima vista potrebbe sembrare un insieme caotico di insetti, in realtà è un sistema dinamico al margine del caos; come tale, la colonia riesce a realizzare imprese impossibili per la singola formica: per esempio costruire ponti viventi, allevare afidi, praticare l’agricoltura.

Se la dinamica di un sistema al margine del caos è complessa, allora non è sbagliato dire che in tale regime compaia un certo tipo di complessità. Possiamo chiamarla complessità dinamica.

Tuttavia, quando diciamo che una cellula è immensamente più complessa di un televisore o che il nostro cervello è incredibilmente più complesso del tessuto adiposo che abbiamo nei glutei o nell’addome, stiamo riferendoci a un’accezione di complessità diversa. Potremmo chiamarla complessità strutturale. Nessuno finora è riuscito a darne una definizione univoca, né tantomeno a fornirne un’unità di misura. Di certo, ha a che fare con il numero delle componenti e con la libertà che hanno le varie componenti di interagire tra loro e con l’ambiente. Da questo punto di vista, una tempesta di sabbia e uno sciame di locuste sono paragonabili: entrambi i sistemi hanno un numero elevatissimo di componenti e ciascuna componente ha la possibilità di interagire con le altre componenti che la circondano.

Tempesta di sabbia
“Tempesta” di locuste

Tuttavia, è evidente che, a parità di numerosità e libertà delle componenti, un sistema le cui componenti siano particelle di sabbia va considerato strutturalmente meno complesso di un sistema composto da altrettanti insetti sociali. Pertanto, nel nostro concetto di complessità strutturale, vorremmo includere non solo numero e libertà di interagire delle componenti, ma anche la complessità strutturale delle singole componenti del sistema; certo, in questo modo rendiamo la nostra definizione ricorsiva e dunque, dal punto di vista logico, incorriamo in una petitio principii. Ciò nonostante, in questa sede, anche solo avere a disposizione un’idea intuitiva, evocativa, del concetto di complessità strutturale, ci è più che sufficiente.

Dal punto di vista della complessità strutturale, i sistemi che popolano il mondo che ci circonda possono essere classificati in 2 o 3 ordini di grandezza.

I sistemi fisico-chimici sono quelli più semplici.

I sistemi biologici appartengono invece a un ordine di complessità diverso, incommensurabilmente più elevato rispetto a quello dei sistemi fisici e chimici. All’interno del loro ordine di complessità, i sistemi biologici sono organizzati in sistemi di sistemi che, ad ogni livello, aumentano la propria complessità: i tessuti sono sistemi di cellule, gli organi sono sistemi di tessuti, gli apparati sono sistemi di organi, i sistemi sociali sono sistemi di organismi, ecc.

I sistemi artificiali appartengono a un ordine di complessità strutturale a se stante, in genere collocato a metà strada tra i sistemi fisico-chimici e quelli biologici. Questi sistemi sono caratterizzati dal fatto di essere non solo mediamente complessi, ma anche più o meno complicati.

Ogni sistema, sia esso semplice, complicato o complesso, deve trovare il modo per adattarsi al proprio ambiente. Prima che la vita facesse la sua comparsa sulla Terra, sistemi fisico-chimici dovevano adattarsi a un ambiente fisico-chimico. Non diversamente da quanto accade oggi, le nuvole cariche di umidità la scaricavano sotto forma di pioggia, i vulcani attivi eruttavano la loro lava, le placche tettoniche galleggiavano sul mantello cambiando i connotati della crosta terrestre; e così via.

Nel momento in cui la vita ha fatto la sua comparsa, ha portato con sé un problema prima di allora del tutto sconosciuto: garantire la sopravvivenza del genoma. Questo problema, come si sa, ne comporta innumerevoli altri: per far sopravvivere il proprio genoma, i sistemi biologici devono sopravvivere sufficientemente a lungo; in altre parole, devono imparare a sopravvivere anche come individui e non solo come specie. Ciò significa acquisire la capacità di competere tra loro per procacciarsi le risorse migliori – o le uniche disponibili, in caso di penuria; ma anche di cooperare, se è funzionale alla riduzione dei rischi ambientali; di diventare predatori e non prede; di sfuggire ai predatori quando invece si è prede; di attrarre i partner quando è arrivato il momento di riprodursi; devono imparare a risolvere questi e innumerevoli altri problemi. I problemi della biosfera sono profondamente diversi dai problemi che i sistemi fisico-chimici affrontano per adattarsi all’ambiente fisico-chimico: richiedono strategie evolutive altamente sofisticate e, essendo fittamente intrecciati gli uni con gli altri, rendono l’esistenza dei sistemi biologici un’attività di problem solving a tempo pieno.

Infine, quando gli esseri umani hanno cominciato a modificare il loro ambiente attraverso l’evoluzione culturale e tecnologica, nuovi problemi hanno fatto la loro comparsa. A questi problemi può essere attribuita una classe di complessità. Questa tipologia di complessità viene chiamata computazionale ed è diversa sia da quella dinamica, sia da quella strutturale. La complessità computazionale è infatti legata alla calcolabilità (un problema è calcolabile se esiste un algoritmo in grado di risolverlo) e alla trattabilità (un problema è trattabile se può essere risolto in un tempo ragionevole).

In questa sede chiameremo complicati i problemi calcolabili e trattabili. Chiameremo complessi i problemi non calcolabili (sono non calcolabili se non abbiamo un algoritmo in grado di risolverli, indipendentemente dal fatto di aver dimostrato, oppure no, che un simile algoritmo proprio non possa esistere) oppure calcolabili ma intrattabili (a livello pratico è come se fossero non calcolabili). Ripensando ai problemi di adattamento affrontati dai sistemi appartenenti ai vari ordini di complessità strutturale, si può dire che i sistemi viventi si trovino per lo più ad affrontare problemi mal definiti, sfumati, sfaccettati, e dunque complessi, mentre ai sistemi artificiali vengono sottoposti in genere problemi ben formulati, risolubili, più o meno complicati.

A questo punto abbiamo a nostra disposizione tre accezioni del termine “complessità”: la complessità strutturale; quella dinamica; e la complessità computazionale. Queste tre possibilità non esauriscono tutte le accezioni possibili con cui viene usato il termine complessità, ma ai fini del nostro discorso possono bastare.

D’ora in poi, quando parleremo di sistemi complessi, seguiremo la maggioranza degli studiosi, che, usando questa espressione, si riferisce a sistemi caratterizzati da un’elevata complessità strutturale o a sistemi dinamici che evolvono al margine del caos oppure a entrambe le due cose insieme.

A proposito dei sistemi complessi così intesi, va qui ricordata una legge empirica di eccezionale importanza: i sistemi complessi se la cavano bene con i problemi complessi, fanno invece molta fatica con i problemi complicati; viceversa, i sistemi complicati se la cavano bene con i problemi complicati e fanno molta fatica con i problemi complessi. Daremo a questa legge empirica il nome di Legge di Corrispondenza.

Esempi della Legge di Corrispondenza sono sotto gli occhi di tutti: i sistemi biologici sono molto abili a risolvere i problemi complessi del loro ambiente naturale. Pensiamo agli animali in libertà quando devono procacciarsi il cibo o allevare i loro cuccioli. Sanno farlo veramente bene. Immaginiamo ora di voler progettare una macchina per eseguire gli stessi compiti – non in un ambiente virtuale semplificato, ma nell’ambiente reale – tenendo conto di tutte le possibili variabili, di tutti gli imprevisti possibili. Una prestazione facile, naturale, per i sistemi biologici si rivela praticamente insormontabile per i sistemi artificiali. Al contrario, quando un sistema biologico è alle prese con un problema altamente complicato, le prestazioni si invertono. Pensiamo a quanto sia difficile per un essere umano, un ragazzo o un adulto, imparare la matematica, la statistica, la meccanica quantistica. A quanto sia difficile risolvere un’equazione a mente o anche solo convincersi che tirando una moneta non truccata, dopo numerosi lanci in cui è sempre uscita testa, al lancio successivo la probabilità che esca croce non è maggiore di quella che esca per l’ennesima volta testa. Quando affidiamo questo genere di calcoli a un computer, ci sembra di poter dire che abbia meno incertezze di noi. Ma se invece consideriamo l’ironia, oppure la capacità di ragionare usando il buon senso o tenendo conto del contesto, allora le parti si scambiano di nuovo: ciò che è automatico e ovvio per un essere umano, è incredibilmente difficile per una macchina. Potremmo andare avanti riempiendo centinaia di pagine con esempi altrettanto inequivocabili.

C’è un’importante differenza tra come i sistemi artificiali affrontano i problemi calcolabili e trattabili e come invece i sistemi biologici affrontano i problemi del loro ambiente naturale. In linea generale, i sistemi complicati sono progettati in modo tale da trovare la soluzione giusta – spesso l’unica, ma comunque la migliore – ai problemi complicati. Lo stesso non si può dire dei sistemi complessi. Questi ultimi applicano strategie euristiche ai problemi complessi del loro ambiente e di norma si devono accontentare di soluzioni più o meno buone, chiamate subottimali, che possono essere davvero lontane da concetti quali “soluzione ideale” o “perfezione”. Le soluzioni subottimali non risolvono tutti gli aspetti del problema, anzi c’è sempre qualche aspetto del problema che rimane trattato o risolto solo parzialmente, con ovvie conseguenze indesiderabili che il sistema deve imparare a tollerare. Le soluzioni subottimali vanno pensate come modi estemporanei trovati dal sistema per superare un ostacolo, per adattarsi a un cambiamento ambientale. Come alternative alla non azione, alla paralisi, in attesa di conoscenze o risorse che il sistema valuta necessarie per giungere alla soluzione ideale ma che, nel caso di problemi complessi, non arriveranno mai. Possiamo chiamare Principio di Subottimalità questo peculiare modo di affrontare i problemi complessi, tipico dei sistemi complessi.

Il Principio di Subottimalità trova un’interessante applicazione pratica in Psicologia della Complessità. Spiega infatti come mai l’inseguimento della perfezione sia patogenico: la perfezione non è “pane per i denti” dei sistemi complessi, esseri umani compresi, pertanto non dovrebbe interessarli più di tanto. Laddove questo venga dimenticato, subentrano sofferenza o disturbi psicologici. Assai più congeniale ai sistemi complessi è ricercare invece soluzioni soddisfacenti anche se imperfette, attività che possiede la capacità di innescare processi salutogenici.

Questo discorso si applica a ogni sistema complesso, dunque non solo ai singoli individui, ma anche a coppie, famiglie e organizzazioni.