Gen Agents Project

18
GenAgents Storia evolutiva di un progetto di ricerca sulle dinamiche dei comportamenti cooperativi Gino Martorelli [email protected] 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.

description

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.

Transcript of Gen Agents Project

Page 1: Gen Agents Project

GenAgents

Storia evolutiva di un progetto di ricerca sulle dinamiche dei comportamenti cooperativi

Gino Martorelli

[email protected]

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.

Page 2: Gen Agents Project

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.

Page 3: Gen Agents Project

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.

Page 4: Gen Agents Project

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).

Page 5: Gen Agents Project

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.

Page 6: Gen Agents Project

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:

∀ j,i ∈ Ν → ⇒ ∑=Np

ji ijgG ),(

Np

ijgG

Np

ji

∑=

),(

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 rispettivamente la media e la deviazione standard delle

medie parziali calcolate sulle posizioni genetiche, cioè: gσ

; media laper GNg

GNg

ii ⎥⎦

⎤⎢⎣

=∑

( ) agente. ogniper geni di totalenumero con standard, deviazione laper

2

g NgNg

GGNg

ii

⎥⎥⎦

⎢⎢⎣

⎡−

=∑

σ

Page 7: Gen Agents Project

Il modello target viene definito dalla funzione T(i) nel seguente modo: ∀ i ∈ Ν si ha: T(i) = 1 ⇔ ( )g σ+⟩ GGi

T(i) = 0 ⇔ ( )g σ−⟨ GGi

T(i) = # ⇔ ( ) ≤− gσG ( )g σ+≤ GGi

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:

payoffijfFNg

ij ±⎥

⎤⎢⎣

⎡= ∑ ),(

dove Ng è il numero totale di geni che definiscono l’agente. Il fitness totale F della popolazione è dato dalla:

⎥⎦

⎤⎢⎣

⎡= ∑

Np

jijFF

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.

Page 8: Gen Agents Project

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 ).

Page 9: Gen Agents Project

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.

Page 10: Gen Agents Project

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.),

Page 11: Gen Agents Project

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:

Page 12: Gen Agents Project

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:

Page 13: Gen Agents Project

È 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.

Page 14: Gen Agents Project

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!).

Page 15: Gen Agents Project

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:

Page 16: Gen Agents Project

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 [email protected]

- Appendice - Sistemi Autopoietici Breve introduzione

Page 17: Gen Agents Project

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.

Page 18: Gen Agents Project

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.