GenAgents è un ambiente di simulazione sviluppato dall’autore per lo studio delle dinamiche di evoluzione dei comportamenti cooperativi in sistemi sociali artificiali a “razionalità limitata”.
L’ambiente permette di riprodurre almeno in parte la complessità sistemica delle dinamiche di relazione tra diversi gruppi di agenti artificiali. Gli agenti, appartenenti a clan o famiglie con diverse strategie di relazione, si muovono ed interagiscono spazialmente mettendo in atto le loro logiche di relazione.
1. GenAgents
Storia evolutiva di un progetto di ricerca sulle dinamiche dei comportamenti cooperativi
Gino Martorelli
ginomartorelli@virgilio.it
www.learning-path.it
GenAgents è un ambiente di simulazione sviluppato dall’autore per lo studio delle
dinamiche di evoluzione dei comportamenti cooperativi in sistemi sociali artificiali a
“razionalità limitata”.
L’ambiente permette di riprodurre almeno in parte la complessità sistemica delle
dinamiche di relazione tra diversi gruppi di agenti artificiali. Gli agenti, appartenenti a
clan o famiglie con diverse strategie di relazione, si muovono ed interagiscono
spazialmente mettendo in atto le loro logiche di relazione.
2. Prologo
Due prigionieri sono rinchiusi in celle distinte e separate. Al mattino verranno interrogati
dalla polizia che sta indagando proprio su un crimine che hanno commesso insieme.
Entrambi sanno che se tacciono (cooperano) saranno scarcerati in quanto la polizia,
senza una confessione e con scarsissime prove, potrà accertare nulla o poco a loro
carico.
I poliziotti decidono di introdurre un fattore di squilibrio in questo sistema, qualcosa che
rompa la simmetria di una situazione vantaggiosa: se uno dei due tradisce (defeziona)
dando informazioni preziose sul complice, avrà garantita l’impunità. Non solo, sarà
liberato con una buona ricompensa, mentre il complice riceverà il massimo della pena per
il crimine contestato ed in più dovrà pagare una pesante pena in denaro. Se entrambi
decideranno di confessare (defezionare l’un l’altro) e di denunciare il crimine, otterranno
invece il massimo della pena, senza dover pagare la multa in denaro.
Indicando con Pr. A e Pr. B i due prigionieri, con C e D rispettivamente le azioni di
cooperazione e defezione, e sostituendo gli anni di carcere con dei punteggi, possiamo
rappresentare la situazione attraverso una tabella di payoff generica valida per tutte le
situazioni simili:
Pr. B
C D
Pr. A C Mutua cooperazione 5 punti Figura dello stupido -3 punti
D Tentazione 10 punti Mutua defezione 0 punti
Cosa faranno dunque i prigionieri? Tradiranno o decideranno di cooperare?
Stando ai presupposti dovrebbero cooperare. Tenere la bocca chiusa e riacquistare la
libertà, sembra essere la soluzione più logica per entrambi. Durante la notte però
ciascuno inizia a riflettere e a chiedersi se e quanto può fidarsi della lealtà dell’altro. La
ricompensa per il tradimento (defezione) costituisce una tentazione troppo forte per
entrambi. Ciascuno sa che l’altro sta pensando esattamente la stessa cosa al riguardo.
Entrambi dunque decidono di parlare e denunciare l’altro. In questo modo, sanno di
ottenere la pena per il crimine commesso, ma almeno eviteranno di fare la parte degli
stupidi ed in più non dovranno pagare una pena in denaro.
Quella che sembrava la soluzione più logica, si è trasformata in una prospettiva da
evitare, portando i due prigionieri all’esito in fondo meno conveniente per entrambi: il
massimo della pena per il crimine commesso.
La situazione narrata in questo episodio, nota nella teoria dei giochi come “dilemma del
prigioniero”, è piuttosto dura ed estrema. Eppure, nella nostra vita quotidiana, in politica,
nelle transazioni commerciali, nei rapporti affettivi ed interpersonali, la struttura di base dello
scenario delineato, il rapporto cioè tra cooperazione e sfiducia, emerge spesso in modo più
prepotente e subdolo di quanto non si possa pensare.
3. In quali condizioni e perché alcuni organismi, in natura come in società, decidono di
cooperare, di defezionare o di rifiutare una relazione con altri organismi?
Questa è la domanda che molti ricercatori, di discipline a volte radicalmente diverse e
lontane come la biologia, l’economia, la fisica, la filosofia e la cibernetica, si sono posti
per diversi decenni cercando di delineare dei modelli esplicativi e previsionali.
Sul finire degli anni settanta Robert Axelrod, un politologo della Università del Michigan
da molto tempo impegnato negli studi sulla cooperazione, iniziò ad organizzare sul
proprio calcolatore degli strani tornei tra automi deterministici capaci di giocare
iterativamente al dilemma del prigioniero.
Ciascun automa aveva una propria strategia di gioco, alcuni defezionavano
sistematicamente, altri iniziavano cooperando quindi rispondevano pan per focaccia (Tit
for Tat) ad ogni tradimento per poi tornare a cooperare in situazioni di cooperazione, altri
ancora prendevano decisioni in funzione della storia passata in qualche modo
memorizzata.
In poco tempo furono sviluppati ben quattordici tipi di automi, ciascuno con una strategia
diversa, ma il sistema nel suo insieme risultava comunque piuttosto rigido. Data una
tabella di regole, o di payoff, l’esito complessivo dei tornei era spesso piuttosto scontato,
anche in situazioni di iterazione prolungata. La strategia dell’automa Tit for Tat risultò la
migliore, riuscendo ad avere la meglio in quasi tutti gli scenari di partenza.
Nella maggior parte delle simulazioni effettuate da diversi autori la tabella di payoff
rimane invariata e costituisce un vincolo piuttosto forte alla evoluzione del sistema nel
suo insieme. Inoltre, la popolazione di automi resta anch’essa invariata durante le
interazioni, limitandosi spesso a conteggiare per un certo periodo o numero di iterazioni i
punteggi totali guadagnati o persi da ciascun automa o da ciascuna sottopopolazione di
automi. La domande che potremmo iniziare a porci dunque sono:
i) Cosa accadrebbe in una società virtuale, composta di agenti virtuali in grado di
muoversi e di interagire spazialmente in modo preferenziale?
ii) Cosa accadrebbe se facessi in modo che il clan di agenti vincenti in un dato istante
potessero cambiare le regole di partenza della tabella di payoff?
iii) Quale evoluzione seguirebbe il sistema se introducessi un principio di vita, di
morte e riproduzione, per ciascun agente, in funzione dei punteggi di fitness
guadagnati in ciascuna iterazione ed in funzione del grado di somiglianza con
degli agenti “archetipo”?
iv) In quali condizioni dinamiche potrei osservare l’emergenza di nuove strategie e di
nuovi ordini sociali?
Sulla scia della tradizione di ricerca iniziata da Axelrod, e portata avanti da diversi altri
autori, GenAgents e' il tentativo di mettere in scena sistemi in grado di dare una risposta
alle domande delineate sopra, un ambiente di simulazione dove più agenti artificiali,
appartenenti a famiglie con diverse strategie di relazione, si muovono ed interagiscono
spazialmente mettendo in atto le loro logiche di relazione.
4. Il sistema, per i vincoli e le caratteristiche, è in grado di mettere in scena le dinamiche di
un ambiente a "razionalità limitata" (bounded rationality) e questo, di per sé, sembra
essere di buon augurio. Per ogni situazione problematica infatti c’è in genere un solo
modo, o al più pochissimi modi, di comportarsi secondo scelte perfettamente razionali.
Esiste invece una infinità di modi diversi di comportarsi, in uno stesso scenario, mettendo
in atto scelte “quasi razionali” o a razionalità limitata come l’ha definita Simon.
INTRODUZIONE AL SISTEMA GENAGENTS
GenAgents è un ambiente di simulazione per lo studio di sistemi sociali artificiali a
“razionalità limitata”.
L’ambiente permette di riprodurre almeno in parte la complessità sistemica delle
dinamiche di relazione tra diversi gruppi di agenti artificiali. Gli agenti, appartenenti a
clan o famiglie con diverse strategie di relazione, si muovono ed interagiscono
spazialmente mettendo in atto le loro logiche di relazione.
Ogni agente è definito dal suo "codice genetico" digitale. I primi tre geni definiscono il
movimento, nel quarto è codificata la scelta relazionale attuata nell'ultimo incontro
(memoria storica a breve termine), il quinto ed il sesto gene codificano la specie o clan di
appartenenza. Dal settimo gene in poi la sequenza genetica è libera e può essere vista
come l'identità dell'agente all'interno del suo clan.
Ad ogni generazione, secondo una logica di tipo autopoietico (vedi l’Appendice ed il
paragrafo sulla dinamica del modello), dal pool genetico emerge un "individuo target"
virtuale (un archetipo) il quale definisce due modelli:
• uno per la specie o clan
• uno per il tipo di relazione considerata adattiva per le generazioni successive
A questo "individuo virtuale" possono corrispondere uno o più individui "reali" della
popolazione. Questo tuttavia non è scontato, l'agente virtuale può rappresentare il
target, o l'archetipo a cui tende la popolazione al di là del fatto che ci sia un reale
individuo il cui codice genetico sovrappone perfettamente il codice target.
Sto lavorando affinché ogni clan possa fare riferimento ad un proprio modello archetipico.
Questo dovrebbe rendere il sistema, in qualche modo, più vicino alle reali situazioni che
accadono in natura dove ogni gruppo (clan, specie ecc…) in genere tende ad avere un
proprio modello di riferimento, spesso diverso dagli altri modelli.
Le modalità dinamiche di emergenza e la formalizzazione algoritmica del modello sono
parzialmente descritte nel paragrafo sulla dinamica del modello (vedi sotto).
5. Ogni individuo interagisce con gli otto agenti che si trovano in corrispondenza del suo
vicinato di Moore :
Naturalmente non è detto che ogni posizione del vicinato sia occupata da qualche agente.
Ogni agente si "guarda intorno”, prende atto di quanti e quali agenti sono presenti nel
suo vicinato quindi interagisce con loro mettendo in atto le scelte relazionali (defezione,
rifiuto, cooperazione) in funzione del clan di appartenenza, dell'agente che ha di fronte e
delle logiche di relazione reciproche.
Il fitness di ogni agente viene quindi calcolato sia in base alla sua somiglianza con i
modelli emergenti "virtuali" (o archetipi) sia in base ai punteggi riportati nelle interazioni
con gli agenti del suo vicinato.
I punteggi riportati dagli agenti in ogni interazione, a loro volta, sono definiti nella tabella
di regole o di payoff che, inizialmente, è possibile caricare, creare e salvare prima di
iniziare la simulazione. La tabella non resta immutata durante le generazioni, il clan
vincente ha la possibilità di cambiare la tabella di regole per le generazioni seguenti, il
sistema dunque è a dinamica evolutiva, nulla rimane “immutato”.
Vediamo i dettagli della dinamica di emergenza del modello “archetipo”. La metodologia
usata, come vedremo, porta alla emergenza di quelli che Holland definì “schemi” e dai
quali ricavò uno dei teoremi fondamentali degli algoritmi genetici.
DINAMICA DEL MODELLO
Il fitness per ogni agente è calcolato in funzione di due fattori:
1. Il punteggio riportato nelle relazioni con gli agenti del proprio vicinato il quale, a
sua volta, dipende dalla struttura della Matrice di Payoff;
2. Il grado di somiglianza con un target o “agente virtuale” che emerge, ad ogni
generazione, dal pool genetico globale.
Il primo fattore non necessita di particolari spiegazioni. Per ogni generazione ad ogni
agente vengono aggiunti o tolti dei punti di fitness in conseguenza del tipo di strategia
che l’agente stesso attua con gli agenti del suo vicinato (se ve ne sono). Ogni specie
infatti interagisce mettendo in atto una particolare strategia (cooperazione, defezione,
rifiuto) la quale, in relazione alla strategia dell’altro e della tabella di payoff, comporta il
guadagno o la perdita di punti.
6. Per quanto riguarda la tabella di payoff il sistema, nei primi istanti o generazioni, prende
come riferimento una tabella definita esternamente. In seguito, secondo leggi
probabilistiche che non riporteremo in questa sezione, il clan (o i clan) “vincente” ha la
possibilità di cambiare le regole di interazione a parziale vantaggio della propria specie.
La tabella di payoff dunque non è fissa ma emerge ad ogni generazione come
conseguenza delle dinamiche globali del sistema.
Per quanto riguarda il secondo fattore, occorre innanzitutto definire la procedura
attraverso la quale viene generato il prototipo dell’agente virtuale, o target.
La sequenza genetica dell’agente target viene costruita nel modo seguente:
Dal pool genetico della popolazione, per ogni posizione genetica o gene i, viene calcolata
la frequenza cumulativa dell’occorrenza per il gene “1”.
Indicando con str(j,i) il gene i-esimo del j-esimo agente, definiamo la funzione g(j,i)
come segue:
∀ j,i ∈ Ν g(j,i) = 1 ⇔ str(j,i) = 1
La frequenza cumulativa della presenza del gene “1”, per ogni posizione genetica i, sarà
allora:
Np
Np ∑ g ( j, i)
∀ j,i ∈ Ν → Gi = ∑ g ( j , i ) ⇒ Gi =
j
j Np
con Np numero totale di agenti della popolazione, mentre la G i è media delle frequenze
per ogni posizione i della sequenza genetica.
Indichiamo ora con G e con σ g rispettivamente la media e la deviazione standard delle
medie parziali calcolate sulle posizioni genetiche, cioè:
⎡ Ng ⎤
⎢∑ G i ⎥
G= ⎣ ⎦
i
per la media ;
Ng
⎡ Ng
( )⎤
2
⎢∑ G − G i ⎥
⎢ i ⎥
σg = ⎣ ⎦ per la deviazione standard, con Ng numero totale di geni per ogni agente.
Ng
7. Il modello target viene definito dalla funzione T(i) nel seguente modo:
∀ i ∈ Ν si ha:
T(i) = 1 ⇔ (
Gi 〉 G + σ g )
T(i) = 0 ⇔ (
Gi 〈 G −σ g )
T(i) = # ⇔ (G − σ ) ≤g (
Gi ≤ G + σ g )
La funzione T(i) genera il vettore che definisce la sequenza genetica dell’agente target.
Nel caso in cui 0 < i ≤ 10 tale sequenza avrà quindi la forma:
1 0 0 1 # 0 1 # 1 #
Per individuare la funzione di fitness del sistema definiamo la funzione f(j,i):
∀ j,i ∈ Ν → f(j,i) = 1 ⇔ str(j,i) = T(i)
∀ j,i ∈ Ν → f(j,i) = 0 ⇔ str(j,i) ≠ T(i)
con Ti ≠ #
Se indichiamo con payoff il punteggio totale riportato nelle interazioni con gli agenti del
vicinato, la funzione di fitness Fj per il j-esimo agente sarà dunque:
⎡ Ng ⎤
F j = ⎢∑ f ( j , i )⎥ ± payoff
⎣ i ⎦
dove Ng è il numero totale di geni che definiscono l’agente.
Il fitness totale F della popolazione è dato dalla:
⎡ Np ⎤
F = ⎢∑ F j ⎥
⎣ ji ⎦
I geni contrassegnati con “#” non contribuiscono al computo della fitness degli agenti e
possono essere visti come i gradi di libertà del sistema globale.
Poiché ad ogni generazione il pool genetico della popolazione può cambiare a causa degli
operatori di mutazione e di crossover, ne consegue che il target stesso può cambiare
dinamicamente.
8. L’intero sistema è dunque definito in modo autopoietico, la dinamica che ne segue è
caratterizzata dalla ricerca continua di equilibri resi instabili dalle perturbazioni continue
dovute alle interazioni tra agenti, agli operatori di mutazione e crossover ed al
cambiamento del modello di target che emerge dal pool genetico.
Siano F*j ed Fj i punteggi di fitness di due generici agenti, F e σ rispettivamente la
media e la deviazione standard del fitness della popolazione, il crossover tra i due agenti
viene effettuato se, e solo se, sono rispettate le condizioni:
F*j > ( F - σ )
Fj > (F - σ )
Questo criterio di attuazione per l’operatore di crossover permette di mantenere alta la
biodiversità interna al sistema e di massimizzare il fitness della popolazione evitando
situazioni di “massimi locali”.
Tra le diverse misurazioni effettuate (dimensione di complessità della funzione di fitness
ecc..) vengono calcolati il fitness medio per ogni specie, il fitness medio della popolazione
ed i rispettivi valori di deviazione standard. I criteri di selezione e di accoppiamento tra
gli agenti sono definiti rispetto a questi indicatori.
Le nascite degli individui che andranno a sostituire gli agenti "deceduti" sono realizzate
utilizzando il classico meccanismo di crossover sui codici genetici delle coppie. Il punto di
crossover, per ogni coppia, è definito randomicamente. In questa versione non sono stati
impiegati punti multipli per il crossover.
Ad ogni generazione, a causa delle morti, delle mutazioni e della nascita di nuovi
individui, il pool genico cambia nella sua configurazione globale. Il target o archetipo
emergente muterà quindi in modo dinamico ed autoreferenziale (autopoietico),
costringendo l'intero sistema a cercare una nuova strategia di adattamento e di selezione
(nuovi creodi, nuove morfologie di equilibrio instabile ).
9. La maggior parte dei modelli ad algoritmi genetici fino ad oggi impiegati per questo tipo
di simulazioni hanno impiegato un criterio di accoppiamento tra agenti che prende in
considerazione solo gli individui il cui fitness è superiore di un qualche delta rispetto alla
media. In sostanza vengono ammessi all’accoppiamento solo gli individui considerati
“migliori”. Questo criterio permette, in genere, di raggiungere livelli di ottimizzazione
della fitness globale piuttosto buoni.
Tuttavia è facile notare che il livello di ottimalità raggiunto non è quasi mai il massimo
consentito teoricamente, in realtà si resta spesso piuttosto al di sotto. La “biodiversità”
del pool genetico inoltre viene notevolmente ridotta nel tempo, con tutto quello che
questo implica in funzione del significato portato da ciascun “gene”.
Il criterio di accoppiamento impiegato in GenAgents è completamente diverso. Non viene
impedito agli agenti “migliori” (anche di clan diversi) di accoppiarsi, questo tuttavia non è
un vincolo per il sistema. Qualsiasi agente con un fitness di energia superiore di un
qualche delta al minimo assoluto (in genere 1/2 della deviazione standard) può
accoppiarsi con qualsiasi altro agente.
Questo criterio aumenta di molto la biodiversità nel tempo e permette, nonostante
minimi locali temporanei, di realizzare livelli di fitness globale della popolazione
decisamente superiori con punte che arrivano a toccare il massimo teorico possibile con
diverse configurazioni ed equilibri tra i clan in gioco.
Questo criterio consente un aumento considerevole della biodiversità nel tempo e
permette, nonostante minimi locali temporanei, di realizzare livelli di fitness globale
decisamente superiori con punte che arrivano a toccare il massimo teorico possibile.
Di seguito è riportato un grafico della evoluzione della biodiversità nel corso di una
simulazione, si consideri che 0.25 è il valore massimo possibile (1/4) per la biodiversità
del sistema.
10. La tabella di regole scelta per l'assegnazione dei punteggi nelle interazioni (le regole
sociali iniziali del sistema) muta in funzione delle dinamiche emergenti nel sistema. In
estrema sintesi, il clan “vincente” ha la possibilità di cambiare le regole sociali di partenza
secondo un modello probabilistico che, per brevità, non espongo in questo articolo.
In sostanza, il principio che guida tutto il progetto è quello di lasciar emergere i
comportamenti dal basso senza specificare ad alto livello particolari vincoli, cercare
l’emergenza di comportamenti organizzativi in popolazioni di agenti semplici guidati da
vincoli locali e non globali, focalizzare l’attenzione sulle dinamiche più che sugli stati di
equilibrio realizzati dal sistema nel corso delle generazioni.
In accordo alle osservazioni di Holland secondo cui “i sistemi viventi non si stabilizzano
mai”, la dinamica di GenAgents è quella tipica dei sistemi autopoietici, continuamente
perturbati e guidati da creodi e substrati evolutivi alla ricerca di stati stabili, per un
qualche dt diverso da zero, dai quali dipende l'identità stessa del sistema.
Ci sono diverse ipotesi sulle quali sto lavorando circa le dinamiche che permettono il
passaggio a diversi ordinamenti sociali più o meno cooperativi. L’idea principale, in parte
confermata dalle analisi delle dinamiche del sistema, è che si ha un passaggio a nuovo
ordinamento come risposta del sistema a configurazioni globali con un elevato indice di
complessità (dimensione frattale).
In modo un po’ schematico la situazione è la seguente:
1. ogni sistema in natura mantiene la sua identità globale (ciò che permette di vederlo
come sistema stabile nel tempo) fin tanto che è in grado di contenere il livello di entropia
interna (complessità) entro fluttuazioni che non lo costringono alla scissione, cioè a
rinunciare alla sua identità;
2. se la complessità aumenta oltre limite e la scissione non è possibile a causa di vincoli
strutturali e/o culturali (pensiamo ad un organismo o ad un nucleo famigliare ad es.),
11. quando le fluttuazioni di entropia (complessità interna) superano i livelli di stabilità, il
sistema è costretto a realizzare dinamiche in grado di ridurre il grado di complessità
(entropia) globale;
3. le dinamiche in questione possono essere sostanzialmente raggruppate in due
tipologie:
• quella che prevede l’ipersemplificazione attraverso la virtualizzazione delle
differenze interne al sistema
• quella che prevede l’aumento della connessione e della comunicazione interna tra i
subsistemi emergenti allo scopo di aumentare il grado di organizzazione
strutturale e permettere l’integrazione, in un unico sistema, di diverse parti,
ciascuna con le sue differenze interne e la propria complessità.
Sarebbe troppo lungo qui discutere quali forme sociali e/o fisiche possono emergere da
ciascuna delle due tipologie dinamiche. Basterà accennare alle dinamiche di auto ed etero
distruzione nella prima tipologia (in generale tutti i progetti a basso costo energetico di
costruzione e conferma di una identità a spese di un’altra) e a quelle della organizzazione
culturale e biologica nel secondo tipo di dinamiche (in generale tutti i fenomeni di nascita
di nuove morfologie biologiche e culturali, come accade nella fecondazione di un ovulo o
nella nascita di un nuovo modo di fare e vivere la cultura, nei rapporti affettivi ecc…).
In GenAgents è possibile osservare questa danza tra i due attrattori del sistema
(aumento della complessità interna – impossibilità alla scissione) nella emergenza di
nuovi “ordini sociali” e nuovi “archetipi”, nella sincronizzazione dei movimenti degli agenti
che migrano in massa in zone diverse del loro spazio di interazione (virtualizzazione delle
differenze interne rispetto al movimento) o nella emergenza di comportamenti ora
cooperativi, ora competitivi, altre volte coordinativi ecc…
Le dinamiche di transizione (o di emergenza) tra diversi tipi di strategie di interazione
sono ancora oggetto di studio ma si può dire che, tra le diverse dinamiche osservate,
forse la più evidente è quella riportata dalla seguente mappa:
12. In sostanza, se i comportamenti di defezione crescono, l'unico modo di fronteggiare la
situazione è quello di passare a comportamenti di discriminazione, cioè non cooperare
con chiunque ma solo con quegli agenti che hanno avuto un comportamento di
cooperazione. Questa strategia, qui definita in modo semplice ma in realtà più complessa
nella simulazione, è esattamente quella assunta dagli agenti discriminatori, una sorta di
"guerriglieri", sono loro che combattendo contro il clan dei defezionatori fanno emergere
nel tempo comportamenti e leggi sociali di cooperazione.
Un'ulteriore elemento di perturbazione è dato dal meccanismo di mutazione genetica che,
ad ogni generazione ed in funzione di alcuni parametri, porta alla mutazione una piccola
percentuale di individui.
L'entità delle mutazioni, ed altre dimensioni critiche del sistema, sono definibili
direttamente dallo sperimentatore attraverso alcuni tasti funzione che agiscono su alcune
caratteristiche del sistema durante la simulazione stessa (vedi la lista dei tasti funzione
nel Menù principale del programma). Sia il range di mutazione sul codice che la
probabilità di mutazione possono essere cambiate durante la simulazione attraverso
alcuni tasti funzione (frecce del tastierino numerico).
Sto elaborando una versione di GenAgents nella quale alcuni parametri che regolano
l'entità delle mutazioni sono a loro volta funzioni di altri parametri del sistema quali, ad
esempio, il fitness della popolazione.
I tipi di famiglie implementati in questa versione sono:
DEFEZIONATORE:
Defeziona sistematicamente. Molto efficiente nei sistemi di regole che premiano il
comportamento legato ad un tipo di logica individualista esasperata.
COOPERATORE:
13. È definito da regole di comportamento che iterativamente lo portano ad adottare
rigidamente relazioni di tipo cooperativo.
DISCRIMINATORE:
Agisce discriminando. Controlla il codice genetico nella posizione che codifica l'ultima
scelta relazionale effettuata dall'agente che incontra. Quindi Coopera con chi ha
cooperato o Defeziona con chi ha defezionato.
CONFORMISTA:
Esplicita il suo comportamento relazionale sulla base di un sistema di regole che
individuano una strategia conservativa confrontando risultati, strategie e modelli
emergenti dell'ultimo incontro. Se ha guadagnato di più e le “condizioni sociali” non sono
mutate allora nel ciclo successivo ripeterà la scelta relazionale fatta. Se invece ha perso
nel ciclo successivo effettuerà la scelta relazionale opposta a quella fatta
precedentemente. In sostanza è un operatore rinforzato positivamente a vincere, a
prescindere dalla strategia considerata “eticamente” corrett.
Dal menù principale si puo accedere alla lista delle tabelle disponibili, agli ambienti di
caricamento e di definizione di nuove tabelle e ad una definizione dei tasti funzione attivi
durante la simulazione.
14. Qualora si voglia dimensionare il sistema secondo parametri personali lo si può fare
scegliendo l'opzione Dimensiona Sistema del Menù principale. Questa opzione
permette di definire la numerosità della popolazione globale, la lunghezza del codice
genetico, la presenza o l'assenza di vincoli per i modelli emergenti (liberi o a dinamica
emergente) e la logica di accoppiamento tra individui che può essere specie-specifica
(accoppiamento solo tra individui della stessa specie) oppure tra specie (accoppiamento
tra individui di specie diverse).
Si possono anche definire due parametri che ho definito di Dispersione e di Decadimento.
Impostati entro un range di valori tra 0 e 1 rendono il sistema più o meno hamiltoniano
(o conservativo). Il primo parametro stabilisce quanta energia, in termini di fitness perso,
occorre per muoversi nell'ambiente, il secondo parametro definisce invece una costante
di decadimento temporale che agisce su ogni individuo anche se non si muove (in
GenAgents si invecchia e muoversi richiede energia).
Conviene impostare il primo a valori non superiori a 0.5, ed il secondo a valori non
superiori a 0.05. Si può rendere il sistema hamiltoniano (o conservativo) impostando a
zero i due fattori di decadimento (non si invecchia e non ci si stanca: troppo bello per
essere vero!).
15. Se un agente vuole spostarsi nella posizione occupata da un altro agente questo è
possibile solo se la sua energia (fitness) è superiore di un certo delta (1/2 della
deviazione standard ad esempio) a quella dell’agente “bersaglio”.
Dall’operatore di mutazione è escluso il quarto gene, quello cioè che codifica l'immagine
dell'individuo (ultima azione compiuta). Questo significa che in GenAgents si può mutare
identità ma non si può mascherare o cancellare il proprio passato prossimo … insomma
una specie di “legge karmica” virtuale.
Durante la simulazione alcuni grafici e finestre di stato permettono di avere informazioni
utili sulle dinamiche emergenti: la complessità del sistema globale (dimensione frattale
del segnale di fitness); la condizione di "salute" di ogni famiglia; la coesione spaziale; i
modelli di relazione e di famiglia emergenti ecc...
Un riquadro in basso a destra permette di osservare gli spostamenti e le diverse
configurazioni spaziali che possono formarsi nel corso delle generazioni. In questo
riquadro è interessante notare le diverse configurazioni a reticolo che si sviluppano nel
tempo e l’emergenza di dinamiche di intrusione, invasione, inclusione ecc…
Un pulsante nella form principale consente di aprire due file nei quali verranno
memorizzate le matrici di dati relative a diverse variabili del sistema (numero di individui
per ogni famiglia ad ogni generazione, fitness globale e di ogni specie, dimensione di
complessità del sistema ecc...). Premendo di nuovo lo stesso pulsante si blocca la
registrazione e si chiudono i file (la simulazione, naturalmente, continua). Riporto di
seguito una tipica schermata del sistema:
16. Poiché i file salvati vengono numerati, è possibile salvare diverse sessioni di dati durante
una stessa simulazione. Questi files potranno essere utilizzati per diversi tipi di analisi dei
dati o per graficare l'evoluzione del sistema durante le generazioni considerate. Se non si
intende dimensionare un proprio ambiente di simulazione, si può lanciare dal menù
principale il sistema di default predefinito.
Se non è possibile effettuare le sperimentazioni su un PC abbastanza veloce è
consigliabile ridurre la numerosità della popolazione, e non superare un’ampiezza di 10
per la lunghezza del gene.
Per qualsiasi altra informazione o per osservazioni da fare puoi mandarmi dei messaggi
via e-mail, saranno graditi.
Gino Martorelli
vertigo@learning-path.it
- Appendice -
Sistemi Autopoietici
Breve introduzione
17. Un sistema vivente, considerato come una unità, può essere visto come un tutto
analizzabile, dotato di proprietà costitutive, oppure come un sistema complesso. In
quest'ultimo caso il sistema realizza la propria unità attraverso i suoi componenti e le
reciproche relazioni tra di essi.
La teoria sui sistemi autopoietici, per opera di F.G. Varela e H.R. Maturana, nasce
come il tentativo di costruzione di un modello in grado di rendere conto della
organizzazione comune che tutti i sistemi devono presentare per essere riconosciuti come
unita "viventi".
Nella loro teoria gli autori sostengono che la riproduzione e la evoluzione non
rappresentano delle caratteristiche costitutive della organizzazione vivente. Essi
ritengono inoltre che non si può rendere conto delle proprietà di un'unità vivente
limitandosi a spiegare le proprietà dei suoi componenti. Nei sistemi autopoietici
l'organizzazione vivente viene dunque caratterizzata specificando la rete di
interazioni, o relazioni, tra i componenti che costituiscono il sistema come una unità.
Più che sulle proprietà l'accento viene spostato sulla organizzazione relazionale,
necessaria e sufficiente, per caratterizzare un sistema come una unità vivente. La
comunicazione tra le unità costitutive si struttura qui come un processo di negoziazione
di identità e topologie.
Possiamo individuare tre fondamentali tipi di relazioni che, strutturando in vario modo lo
spazio di esistenza dei componenti, caratterizzano l'autopoiesi del sistema:
• Relazioni Costitutive;
• Relazioni di Specificità;
• Relazioni d'Ordine.
Qeste relazioni, strutturate secondo caratteristiche di dinamica, di topologia e di identità,
ci permettono di studiare i sistemi autopoietici nell'ambito dei sistemi dinamici complessi
a logica differenziale:
RELAZIONI COSTITUTIVE RELAZIONI DI SPECIFICITÀ RELAZIONI D'ORDINE
TOPOLOGIA Limiti fisici dell'Autopoiesi Substrato di Esistenza Potenziali di Esistenza
IDENTITÀ Emergenza di Strutture Proprietà dei componenti Evento-Emergenza
DINAMICA Interazioni tra componenti Funzione dei Componenti Processi
Un sistema autopoietico costituisce una unità fin quando può compensare dinamicamente
le perturbazioni che tendono a ristrutturare i suoi Creodi, potenziali di esistenza e di
organizzazione dei suoi componenti. Come conseguenza si ha che più sistemi autopoietici
possono interagire tra loro, senza perdere le rispettive identità, se e solo se le modalità
attraverso le quali realizzano la loro autonomia costituiscono delle perturbazioni
compensabili.
18. Quando i cambiamenti subiti da un sistema autopoietico lo portano a partecipare alla
realizzazione di un altro sistema, il primo diventa componente del secondo. In questo
modo si possono avere diversi ordini di autopoiesi. Un esempio concreto in biololgia si ha
con la evoluzione del sistema nervoso nei sistemi viventi.
Da un punto di vista fenomenologico l'autopoiesi di un sistema si evidenzia attraverso la
sua autonomia, mentre la realizzazione o l'autoriproduzione dell'organizzazione
autopoietica è il prodotto stesso della sua organizzazione. Sistemi diversi rispetto alla
natura dei loro componenti possono presentare la medesima organizzazione e, rispetto
ad essa, possono quindi essere considerati membri della stessa classe.
Nei sistemi allopoietici, contrariamente a quanto accade nell'autopoiesi,
l'organizzazione è tale che in essi non vi è produzione di componenti e di processi che li
realizzano come unità, si può dire cioè che i processi che determinano la realizzazione di
un sistema allopoietico non fanno parte della sua organizzazione. In questi sistemi
meccanicistici il prodotto del loro funzionamento è sempre qualcosa di diverso
dall'identità ed unità del sistema.
Si può notare che, in quanto fenomeno emergente, un sistema autopoietico non si
realizza in modo lineare, sequenziale o graduale. Esso piuttosto prende forma attraverso
la relazione parallela e sincrona dei suoi componenti, nonché attraverso la loro
organizzazione topologica.