Evoluzione simulata
Questo gioco deriva dall'articolo apparso sul numero 251 de Le Scienze, del luglio 1989, scritto da A.K. Dewdney.
Davvero l'argomento è interessante, per chi può apprezzare...
Su un ambiente come al solito costituito da una griglia toroidale di caselle una germinazione continua d'erba ha luogo indefinitamente...
Oltre l'erba, rappresentata nel programma allegato da puntini verdi, altri organismi viventi popolano l'ambiente; si tratta di erbivori, identificati a loro volta da puntini rossi. Questi si muovono a casaccio (almeno inizialmente), e ogni volta che incontrano erba, se ne cibano. Un erbivoro dispone di una certa energia, che aumenta per ogni quantità d'erba ingerita, e diminuisce ad ogni spostamento che esso compie sullo schermo. Quindi un erbivoro sfortunato, incapace di trovare erba sul suo cammino, poco a poco termina la sua energia e muore d'inedia.
Un erbivoro fortunato, invece, accumula energia più di quanta ne consumi spostandosi; se l'accumulo supera un certo limite, ecco che l'erbivoro si riproduce. La riproduzione consiste in pratica nella duplicazione dell'erbivoro che la compie, il quale si sdoppia in due esemplari ciascuno dotato di metà dell'energia dell'esemplare di partenza.
Se si generano troppi erbivori, il tasso (costante) di riproduzione dell'erba non è sufficiente a sostentarli, per cui essi tornano, in numero, a ridursi; viceversa, se il loro numero si riduce troppo, l'erba è libera di crescere ed ecco che gli erbivori, trovando cibo in abbondanza, tornano ad incrementare il loro numero.
Ciascun erbivoro, sin dall'inizio, possiede un semplicissimo codice genetico, che determina il modo in cui esso si muove a casaccio sullo schermo. Il codice è composto da 4 geni, che possiamo chiamare SU, DX, GIU e SX. Ad ogni spostamento, la direzione del movimento seguita dall'erbivoro è scelta casualmente fra le quattro direzioni possibili, pesate con una probabilità determinata dal valore dei geni propri del singolo erbivoro. Ad esempio, un erbivoro avente SU=10, DX=10, GIU=40, SX=40 avrà una forte tendenza a spostarsi verso sinistra o verso il basso dello schermo, non escludendo però altri movimenti con una probabilità inferiore.
Inizialmente, gli erbivori hanno un codice genetico casuale (tipo SU=25, DX=25, GIU=25, SX=25), per cui essi si muovono a casaccio sullo schermo, ciascuno di essi piroettando attorno alla sua posizione corrente in maniera caotica. Questo comportamento tende ad esaurire l'erba nei dintorni dell'erbivoro, lasciandolo isolato in una zona brulla e quindi esposto a carestia ed eventuale morte per inedia.
Gli erbivori che invece, casualmente, possedessero un codice genetico comportante una tendenza a spostamenti trasversali, potrebbero vagare liberamente sullo schermo andando a ricercare zone ricche d'erba per potersi poi nutrire e riprodurre.
In effetti, e questo è il punto determinante della simulazione, ogni volta che un erbivoro si riproduce, il codice genetico della sua prole viene alterato (rispetto a quello del genitore) da un raggio cosmico che ne cambia casualmente le caratteristiche del movimento. Quindi un erbivoro figlio assomiglia al genitore a meno di una variante casuale. Ad esempio, il figlio di "SU=25, DX=25, GIU=25, SX=25" potrebbe avere geni del tipo "SU=24, DX=26, GIU=25, SX=25", con una lieve tendenza in più ad andare a destra ed in meno ad andare in su rispetto al genitore.
Se si lascia agire il programma per qualche tempo, inizialmente si osserva un comportamento caotico da parte degli erbivori, che migrano casualmente sullo schermo; dopo un po', iniziando a riprodursi, diventa premiante per i discendenti assumere un comportamento migratorio, tendente cioè a farli spostare attraverso lo schermo.
Il programma, man mano che l'azione si sviluppa, visualizza una serie di fattori interessanti per seguire l'evoluzione:
Numero corrente di erbivori;
Numero di nascite di erbivori occorse;
Numero di morti di erbivori occorse;
Generazione più antica di erbivori tuttora rappresentata;
Generazione media di erbivori correntemente rappresentata;
Generazione più recente di erbivori correntemente rappresentata;
Valore di stabilità degli erbivori (quale sarebbe il numero di erbivori in grado di consumare esattamente la quantità d'erba prodotta);
Direttività; qual'è la tendenza generale che gli erbivori hanno a spostarsi lungo una direzione; se il complesso di essi si muove a casaccio, tale valore è teoricamente nullo. Esso cresce man mano che gli erbivori, col passare delle generazioni, sviluppano la tendenza a muoversi secondo una certa direzione;
Cicli; numero di iterazioni del programma (passi eseguiti dagli erbivori);
Le frecce colorate dovrebbero mostrare la tendenza generale degli erbivori a spostarsi nelle 4 direzioni; non sono ancora riuscito a renderle coerenti...
Prima di attivare l'esecuzione del programma, è possibile variare i parametri caratteristici del programma stesso col tasto Config; a parte quelli di banale interpretazione, può essere interessante la possibilità di generare un paradiso per gli erbivori, una zona cioè dove il tasso di crescita dell'erba è superiore al normale, di forme svariate... Durante l'elaborazione, si può attivare o disattivare il paradiso a piacimento.
Scarica qui il programma SimEvo!
10 novembre 2002, Bruno Davide
Vai alla genealogia Torna a home page Invia informazioni Legge sulla privacy Copyrights ©