[Pubblichiamo la seconda parte dell’articolo di Andrea Valle “Osservazioni di genetica del ritmo”. Per la prima parte, cliccare qui.]
In primo luogo, si tratta di definire l’informazione. Detta facile e già in prospettiva un po’ computazionale, l’idea di partenza è che l’identità di un individuo (DNA) sia rappresentata da un insieme ordinato di tratti (geni) che codificano proprietà e che possono avere più valori (alleli). In Hinicinichnia l’approccio è legato a un’idea di montaggio algoritmico di materiali discreti. Ovviamente, sarebbe d’uopo in prospettiva modellistica tenere separati nella progettazione il modello astratto dei dati e la funzione di mapping (che converte i dati in controllo compositivo). Ma tutti quelli che fanno arte generativa sanno che tra le due fasi c’è sempre una fondamentale retroazione. Dunque, nel nostro caso un individuo è una sequenza di eventi (emissioni strumentali con una certa dinamica).
Ad esempio questo vettore:
[ [ 1, 2 ], [ nil ], [ nil ], [ 0, 2 ], [ 1, 2 ] ]
rappresenta una sequenza di cinque eventi. I valori contenuti esprimono semplicemente tre informazioni. La posizione dell’elemento nel vettore è la sua posizione nella griglia metrica definita dalla lunghezza complessiva del DNA. L’elemento-gene è un vettore a sua volta contenente due valori, un indice che identifica un certo di tipo di materiale (da una lista arbitraria) e una dinamica. Se l’elemento è vuoto (qui: nil), allora equivale a silenzio per quella posizione. Un individuo è dunque una sequenza (una sorta di frase o pattern) di una certa durata(nel nostro esempio, si potrebbe pensare musicalmente a 5/8) espressa in unità (le crome) in cui le unità metriche prevedono certi materiali con certe dinamiche, oppure il silenzio. Si può così pensare di passare in scansione il vettore da sinistra a destra e di ottenere un pattern ritmico. Una popolazione è allora un insieme di individui e quella iniziale può essere generata attraverso una procedura pseudo-casuale. Ad esempio, 4 individui potrebbero essere i seguenti:
[ [ 2, 2 ], [ nil ], [ nil ], [ nil ], [ nil ] ]
[ [ nil ], [ nil ], [ nil ], [ 4, 2 ], [ nil ] ]
[ [ 2, 2 ], [ nil ], [ 1, 2 ], [ 1, 2 ], [ 3, 2 ] ]
[ [ 0, 2 ], [ nil ], [ 4, 2 ], [ 0, 2 ], [ nil ] ]
Una popolazione è perciò un insieme di questi vettori genetici, tutti della stessa lunghezza (qui 5 unità, la durata è un tratto specie-specifico condiviso da tutti). Il pattern complessivo (i 5/8, comune a tutti gli strumenti) è dunque la popolazione di individui (frasi temporalmente parallele e agganciate alla metrica). Questa matrice complessiva viene letta in parallelo. La si può pensare come una matrice, una griglia, la cui orizzontale rappresenta il tempo in unità discrete e la cui verticale indica gli eventi. È chiara l’analogia con le matrici dei sequencer, basti pensare a una batteria elettronica. Ogni cella è un sottovettore materiale/dinamica. La popolazione è dunque un pattern ritmico (qui a 4 voci) basato su una metrica comune che risulta da individui-voci parallele.
In un GA standard ogni individuo riceve un punteggio in base alla funzione di fitness, che ne determina la probabilità di accoppiamento. Invece in Hinicinichnia non c’è fitness, dunque non c’è ottimalità, ma solo deriva contingente. Il processo ha una fine ma non ha un fine. Ora, per semplicità si facciano alcune supposizioni:
- la popolazione è composta da individui ermafroditi (massì, non stiamo a sottilizzare), in numero pari;
- la riproduzione è sessuata e prevede due genitori. Tra l’altro, questa cardinalità dei sessi è una cosa non ovvia in biologia: perché 2 sessi e non 1 o invece n? Pare sia una questione di nuovo di ottimalità, ma rimaniamo nell’alveo dell’esistente naturale;
- si ha una regolare crescita zero (da 2 genitori si generano 2 figli, non uno di più, non uno di meno).
Se abbiamo ad esempio 4 individui, organizziamo a caso 2 coppie (il nostro demiurgo pratica un comunismo sessuale autoritario). Per ogni coppia, prendiamo nei vettori le due celle corrispondenti a una posizione e ne selezioniamo a caso una sola che verrà ereditata dal nuovo individuo: è il modello genetico del crossover. Ora, qui ci può essere un ulteriore passaggio. Cioè, l’introduzione di mutazioni, ovvero di valori diversi per i geni da quelli ereditabili dai genitori. Ad esempio, nella figura 1 (una visualizzazione di un algoritmo simile, necessaria perché il dato alfanumerico è opaco) le linee orizzontali (si legge dall’alto al basso) rappresentano una popolazione di 8 individui descritti da 30 geni. La verticale rappresenta le generazioni. Come si vede dai nuovi colori che a un certo punto appaiono, vengono introdotte mutazioni che possono (o meno) essere ereditate (anche qui non c’è fitness). Il risultato è un effetto di deriva e trasformazione a gradatum.[1]
Di nuovo, in un GA serio le mutazioni servono per introdurre variazioni ma la loro utilità va misurata attraverso la funzione di fitness. InHinicinichnia, per progetto, invece non ci sono mutazioni. Il risultato è una progressiva omogeneizzazione della popolazione secondo il processo che in genetica prende il nome di “Effetto del fondatore”. In relazione alle migrazioni umane, ne fa una discussione affascinante Cavalli Sforza in “Geni, popoli e lingue”[2] (dove tra l’altro si nota infatti che la maggiore variabilità genetica è in Africa, giusto per mettere una pietra tombale sui deliri sempre attuali sulle razze umane, bianchi, neri, gialli, verdi, etc). Il processo di riduzione della ricchezza è ovvio se si pensa ai cognomi. A ogni generazione, in caso di eredità unilineare (patrilineare di solito, ça va sans dire) statisticamente metà dei cognomi si perde, salvo mutazioni (cioè, l’introduzione di nuovi cognomi).
In sostanza, dall’accoppiamento si ottiene un nuovo individuo, tornando al nostro esempio un vettore di 5 geni, ognuno ereditato a caso da un genitore. Ripetendo l’operazione, si hanno due figli potenzialmente diversi dalla stessa coppia di genitori. Ripetendo l’operazione sulla popolazione, divisa nell’esempio in due sole coppie, si ottiene una nuova generazione, cioè una nuova popolazione di 4 individui (2 figli per 2 coppie). Per introdurre il tempo (d’altronde la musica è una crononomia o una ars tempus decorandi), assumiamo allora che l’individuo muoia una volta riprodottosi (d’altronde la riproduzione spesso non è una passeggiata di salute: vale per tutto l’esistente naturale) e che la popolazione si sincronizzi rispetto a una stagione riproduttiva. Quando scatta l’orologio, si riproducono tutti: la vecchia generazione tira le cuoia e la nuova soppianta così la precedente. Il nostro orologio dura esattamente quanto la durata della lunghezza metrica genetica, cioè, nell’esempio, finita la scansione delle 5 unità metriche (e si potrebbe allora dire che in questo schema il DNA codifichi una sorta di esistenza dell’individuo).
Ripetiamo l’operazione, di generazione in generazione. Ecco che si ottiene allora una sequenza di generazioni. In assenza di mutazioni, cioè di valori che sostituiscano stocasticamente i valori ereditati nella riproduzione, si ottiene una deriva genetica che uniforma progressivamente la popolazione complessiva lungo il tempo, poiché si perdono progressivamente i geni non ereditati.
Musicalmente, il tempo complessivo unitario sarà segmentato in pattern di 5/8, ognuno di 4 voci parallele. Ogni 5/8 una nuova popolazione di 4 pattern sostituirà la precedente, mantenendo alcune caratteristiche, perdendone altre, diventando sempre più uniforme. E poiché si eredita la posizione metrica, da una distribuzione più pulviscolare si arriverà ad una organizzazione temporale per blocchi.
Data la ridotta quantità di informazione (solo 4 individui e 5 posizioni) l’esempio precedente porta rapidamente all’uniformità, come si vede nella figura 2, in cui due popolazioni casuali a partire dagli stessi parametri iniziali si stabilizzano in poche generazioni. Ogni blocco rappresenta una popolazione, ogni striscia di 5 quadrati un individuo, il colore il valore dell’indice (cioè l’elemento), la scala di grigi della barra sottostante la dinamica, mentre le generazioni sono numerate in alto.
[fig. 2]
Ma appena si aumenta la variabilità, si assiste a una deriva che, pur arrivando ad una certa stabilità dopo una ventina di generazioni, non si ferma del tutto neppure dopo 42 (figura 3, in cui il DNA prevede una griglia di 9 posizioni).
[fig. 3]
Nella descrizione precedente, il modello (abbastanza consono ai GA) è stato descritto insieme alla sua interpretazione musicale (almeno in termini di organizzazione temporale). Ma ovviamente molte altre interpretazioni sono possibili. Come si è detto, quella presentata è l’interpretazione alla base di Hinicinichnia. Una certa popolazione (un certo schema metrico di unità) e una deriva senza fitness e senza mutazioni. È una versione estrema, e incompleta, della fase stazionaria dell’evoluzione.
Ma poi, come sottolineano i teorici della “punteggiatura”, arriva l’estinzione, a perturbare il meccanismo che pretende di procedere inesorabile. E ciao popolazione, tanto sforzo per nulla. Forse. Forse no, resta almeno il record storico.
La figura 4 presenta le sezioni del brano in termini di modellizzazione genetica. Come vi vede, qui la popolazione è composta da 10 individui con DNA a lunghezza variabile per ogni sezione.
[fig. 4]
In Hinicinichnia l’evento catastrofico prende la forma di una sorta di sezione ponte, strumentalmente del tutto diversa, che si manifesta dopo un certo numero variabile di generazioni. Dopo di essa, si riparte da capo con una nuova popolazione, con un DNA di lunghezza diversa (11, 8, 13, etc.) e caratteristiche differenti, che deriva per conto suo, secondo la stessa logica, ma con risultati affatto diversi. È un riavvolgimento del nastro? Chi lo sa, comunque tutto va bene nel proliferare delle forme del vivente, almeno fino alla prossima estinzione. Quante estinzioni? Quanta storia? Come la storia naturale della vita inizia circa 3.5 miliardi di anni fa, e affronta un insieme limitato di estinzioni, così un pezzo di musica inizia, viene punteggiato in sezioni che si trasformano, e termina.
Tuttavia il modello è una sorta di scheletro astratto, lontano dalla scrittura che con Mauro [Lanza] dobbiamo allestire per i dispositivi elettromeccanici e per gli strumenti. Ritornando ancora una volta alla genetica, un individuo è descritto attraverso un vettore di valori, ovvero il suo DNA composto da geni. Questo DNA in effetti codifica a livello genotipico un insieme di proprietà che poi verranno espresse a livello fenotipico, cioè in termini manifesti (un esempio classico è il colore degli occhi). Il processo da genotipo a fenotipo in genetica si chiama “trascrizione”, e in effetti anche nel processo compositivo complessivo con Mauro noi propriamente trascriviamo, in notazione musicale o di controllo per i dispositivi, e in larga parte automaticamente (un po’ come l’RNA), il genotipo astratto (quello finora discusso) in un fenotipo di proprietà realizzate che l’ensemble composto di strumenti acustici e macchine devono realizzare: strumento, dinamica, altezza, e così via. La figura 5 è un estratto dalla partitura per strumenti, in cui si vede il passaggio da un pattern genetico (all’inizio) a una estinzione (il blocco in 2/4).
[fig. 5]
Poi, in Hinicinichnia, alla fine del brano, succede anche un’altra cosa, che non c’entra nulla con il modello presentato. Forse, come nota Gould, fa capolino “the essence of history”. Il suo nome è contingenza: “and contingency is a thing unto itself, not the titration of determinism by randomness” (Gould, p. 51).
[1] Per chi fosse curioso, qui ci sono altri esperimenti tipografici per un lavoro per 8 voci (anch’esso parzialmente documentato) che segue la stessa logica https://www.flickr.com/photos/vanderaalle/albums/72157627968493467/with/6329835237/
[2] L. Cavalli Sforza, Geni, popoli e lingue, Milano, Adelphi, 1997.
Lascia una risposta