Facoltà di Economia
Corso di Laurea in Economia e Commercio
Tesi di Laurea in Economia Matematica
Simulazione ad agenti e sistemi complessi.
Applicazione al caso BasicNet
Relatore:
Prof. Pietro TERNA Correlatore:
Prof. Sergio MARGARITA
Candidato:
Roberto CROSETTO
ANNO ACCADEMICO 2003-2004
Un particolare ringraziamento va ai miei genitori e ad Adriana.
Introduzione 1
1 Complessità e simulazione 5
1.1 La complessità . . . 5
1.2 I sistemi complessi . . . 7
1.3 Un modello per la realtà: il formicaio . . . 10
1.3.1 Le formiche . . . 11
1.3.2 Applicazioni alla realtà . . . 12
1.4 Complessità e ordine spontaneo . . . 14
1.5 La vita artificiale . . . 16
1.5.1 Genotipo e fenotipo . . . 17
1.5.2 Gli algoritmi genetici . . . 18
1.6 La simulazione e le scienze sociali . . . 19
1.7 Lo sviluppo di una simulazione . . . 22
1.8 I vantaggi della simulazione . . . 25
1.9 I problemi della simulazione . . . 26
1.10 L’interpretazione dei modelli . . . 27
1.11 Gli agenti . . . 29
2 Gli strumenti per la simulazione 32 2.1 Swarm . . . 32
2.1.1 Sviluppo di una simulazione . . . 34 I
2.1.2 Caratteristiche principali . . . 36
2.1.3 Le ‘‘sonde’’ . . . 38
2.1.4 Le librerie di Swarm . . . 39
2.2 NetLogo . . . 40
2.2.1 Caratteristiche principali . . . 41
2.2.2 Obiettivi futuri . . . 42
2.3 RePast . . . 43
2.3.1 Obiettivi . . . 44
2.3.2 Caratteristiche della simulazione . . . 44
2.3.3 Le librerie . . . 45
2.3.4 Progetti futuri . . . 46
3 Impresa, imprenditore e conoscenza 47 3.1 La teoria neoclassica . . . 48
3.2 La Scuola Austriaca . . . 50
3.2.1 L’attività imprenditoriale . . . 53
3.2.2 La competizione . . . 55
3.3 L’imprenditore di Kirzner . . . 55
3.4 Simon e la razionalità limitata . . . 57
3.4.1 La razionalità procedurale . . . 59
3.4.2 Il processo di scelta . . . 60
4 jES: java Enterprise Simulator 61 4.1 Introduzione all’uso del simulatore . . . 62
4.2 Lo schema ERA . . . 63
4.3 Applicazioni a casi aziendali . . . 65
4.4 Il primo formalismo: le cose da fare . . . 66
4.4.1 Le ricette . . . 66
4.4.2 I layer . . . 66
4.4.3 I batch . . . 67
4.4.4 I procurement . . . 68
4.4.5 Il processo OR . . . 69
4.5 Il secondo formalismo: chi fa cosa . . . 70
4.5.1 Le unità produttive . . . 70
4.5.2 Le endUnit . . . 71
4.5.3 La scelta delle unità . . . 72
4.5.4 La trasmissione delle informazioni . . . 72
4.6 Il terzo formalismo: quando fare cosa . . . 73
4.7 Le capacità computazionali . . . 74
4.7.1 Un semplice esempio . . . 76
4.7.2 La matrice orMemoryMatrix . . . 77
4.7.3 Le ricette che lanciano ricette . . . 77
4.8 Le capacità contabili . . . 79
4.8.1 I costi . . . 80
4.8.2 I ricavi . . . 80
4.8.3 L’utile . . . 81
4.9 Lanciare una simulazione . . . 81
4.9.1 I grafici di una simulazione . . . 82
5 L’azienda reale: BasicNet 86 5.1 La storia . . . 86
5.2 Il business system . . . 89
5.3 La struttura del Gruppo . . . 92
5.4 Le divisioni dot.com . . . 94
5.5 Il ciclo di produzione . . . 96
5.6 Le attività di promozione . . . 97
6 L’azienda virtuale: Basic_jES 99
6.1 Prima analisi e possibili sviluppi . . . 99
6.2 Novità nell’azienda . . . 101
6.3 Le modifiche al modello precedente . . . 102
6.4 Analisi del calendario . . . 104
6.4.1 La time-table di BasicNet . . . 104
6.4.2 Il calendario di Basic_jES . . . 108
6.5 Le ricette produttive . . . 109
6.6 Le memoryMatrixes . . . 110
6.7 Le modifiche al codice . . . 111
6.8 Analisi di diversi business system . . . 115
6.9 Caso 1 . . . 116
6.9.1 Le unità produttive . . . 116
6.9.2 Le nuove ricette . . . 120
6.9.3 Il calendario . . . 121
6.9.4 Le modifiche al codice . . . 122
6.9.5 I parametri della simulazione . . . 126
6.10 Caso 2 . . . 129
6.10.1 Le modifiche al modello . . . 129
6.10.2 I costi delle unità produttive . . . 132
6.10.3 I ricavi aziendali . . . 134
6.10.4 Le modifiche al codice . . . 136
6.10.5 I parametri della simulazione . . . 138
6.11 Caso 3 . . . 139
6.11.1 Le modifiche al modello . . . 140
6.11.2 Le modifiche al codice . . . 141
6.11.3 I parametri della simulazione . . . 141
6.12 Risultati della simulazione . . . 142
6.13 Considerazioni sui risultati . . . 148
6.14 Focus sui licenziatari . . . 150
6.14.1 Licenziatari con tempo 1 . . . 150
6.14.2 Licenziatari con tempo 0 . . . 153
6.15 Approfondimento di BasicSamples . . . 154
6.16 Analisi finale . . . 156
6.16.1 Caso 1 . . . 157
6.16.2 Caso 2 . . . 160
6.16.3 Caso 3 . . . 163
Appendice 165
Bibliografia 202
4.1 Esempio di ricetta produttiva . . . 66
4.2 Sequential batch . . . 68
4.3 Stand alone batch e indicazione dell’endUnit . . . 68
4.4 Procurement . . . 69
4.5 Processo or . . . 69
4.6 recipeData/orderSequence.xls . . . 74
4.7 Uso di passi computazionali . . . 75
4.8 Ricette che lanciano ricette . . . 79
6.1 Successione delle fasi per una collezione . . . 107
6.2 Suddivisione delle royalties . . . 117
6.3 Costi fissi delle divisioni dot.com (in euro) . . . 120
6.4 Articoli creati ed effettivamente prodotti per ogni collezione . 146 6.5 File log/grossSales . . . 158
VI
2.1 Logo di SWARM . . . 33
2.2 Struttura di una simulazione . . . 36
2.3 Esempi di sonde . . . 38
2.4 Logo di NetLogo . . . 41
2.5 Logo di RePast . . . 43
4.1 Interazioni tra ordini e unità . . . 63
4.2 Lo schema ERA . . . 64
4.3 File unitData/unitBasicData.txt . . . 71
4.4 File unitData/memoryMatrixes.txt . . . 75
4.5 Grafico dell’andamento delle liste d’attesa . . . 83
4.6 Andamento dell’utile durante la simulazione . . . 83
4.7 Rapporto totallenghttotaltime . . . 84
4.8 Liste d’attesa delle unità dell’impresa virtuale . . . 84
4.9 Livello delle endUnit . . . 85
5.1 Rappresentazione del business system di BasicNet . . . 91
5.2 La struttura del Gruppo . . . 92
6.1 Costi variabili e fissi di BasicNet . . . 119
6.2 Ricette 900 e 950 . . . 121
6.3 Ricetta 800 . . . 130
VII
6.4 Ricetta 900 . . . 131 6.5 Ricetta 302 . . . 131 6.6 Primo esperimento. T empodiesecuzione
T empoprevistodallericette . . . 145 6.7 Primo esperimento. Tempi d’attesa degli ordini . . . 145 6.8 Secondo esperimento. T empodiesecuzione
T empoprevistodallericette . . . 148 6.9 Secondo esperimento. Tempi d’attesa degli ordini . . . 149 6.10 Terzo esperimento. T empodiesecuzione
T empoprevistodallericette . . . 150 6.11 Quarto esperimento. T empodiesecuzione
T empoprevistodallericette . . . 151 6.12 Sesto esperimento. T empodiesecuzione
T empoprevistodallericette . . . 152 6.13 Licenziatari con tempo 0. T empodiesecuzione
T empoprevistodallericette . . . 153 6.14 Approfondimento di Basicsamples. T empodiesecuzione
T empoprevistodallericette . . . . 156 6.15 Andamento di costi, ricavi e profitti totali (Caso 1) . . . 159 6.16 Andamento di costi, ricavi e profitti giornalieri (Caso 1) . . . . 159 6.17 Andamento di costi, ricavi e profitti totali (Caso 2) . . . 161 6.18 Andamento di costi, ricavi e profitti giornalieri (Caso 2) . . . . 161 6.19 Andamento di costi, ricavi e profitti totali (Caso 3) . . . 162 6.20 Andamento di costi, ricavi e profitti giornalieri (Caso 3) . . . . 162
La simulazione ad agenti è uno strumento di grande utilità per lo studio dei sistemi complessi legati agli esseri viventi. Con questa metodologia è possibile creare un mondo virtuale all’interno del computer basato su agenti autonomi che interagiscono tra loro e osservare i fenomeni emergenti, che spesso si rivelano di una complessità straordinaria. Un sistema si dice complesso se non è possibile analizzarlo scomponendolo nelle parti che lo costituiscono, ma è necessario studiarlo nel suo insieme; un esempio è l’azienda, oggetto di studio di questo lavoro.
In questa tesi si applica il metodo della simulazione al contesto di un’im- presa reale, con l’obiettivo di ricreare tutte le sue componenti e di osservare il loro funzionamento all’interno del computer. Il modello di simulazione è stato costruito utilizzando jES, piattaforma utile per la simulazione di im- presa sviluppata dal professor Pietro Terna, e l’azienda oggetto di studio è la torinese BasicNet S.p.A., che opera nel settore dell’abbigliamento alla moda.
BasicNet ha un particolare modello di business secondo il quale non parte- cipa direttamente al processo produttivo, in quanto la produzione è delegata ad imprese esterne, chiamate Sourcing Centers o Trading Company, e gli ar- ticoli sono venduti direttamente da queste ultime ai licenziatari, che hanno il compito di commercializzare i prodotti presso il pubblico. Il ruolo princi- pale di BasicNet consiste nella gestione del network, nella finanza strategica e nell’attività di merketing e la principale fonte di ricavo è costituita dalle
1
royalties pagate dai licenziatari, pari al 10% dei loro acquisti, per i servizi loro offerti.
La costruzione di questo modello è iniziata in Lamieri (2002) e Merlo (2003a) e questa tesi ne rappresenta la continuazione, con l’obiettivo finale di un raffronto tra tre possibili modelli organizzativi, illustrati qui di seguito, che BasicNet potrebbe adottare.
Nel primo caso si rappresenta la BasicNet reale nel modo il più possibile vicino alla realtà. Grazie alla disponibilità della dottoressa Paola Bruschi, direttore generale dei sistemi informativi di BasicNet, è stata possibile la realizzazione di un’azienda virtuale con una struttura, un calendario delle attività e una configurazione dei costi e dei ricavi simili alla BasicNet reale.
Nel secondo caso si presenta un possibile modello organizzativo che Ba- sicNet potrebbe adottare, cioè un’azienda di tipo tradizionale che produce e vende direttamente i propri articoli. La differenza con il caso preceden- te è rappresentata da una diversa struttura dei costi, perché la produzione avviene internamente, e una differente origine dei ricavi, che sono calcolati applicando un margine di ricarico ai costi sostenuti dall’azienda.
Infine, si presenta una BasicNet ancora differente, che fa produrre in outsourcing i propri prodotti e li vende ai licenziatari. Questo modello orga- nizzativo è una ‘‘miscela” dei precedenti, perché la produzione è delegata ad altri, come per la BasicNet reale, e la vendita è effettuata direttamente, come nel caso precedente; perciò i costi totali non comprendono quelli relativi alla produzione e i ricavi sono calcolati in base ad un mark-up.
Occorre ricordare che lo studio qui affrontato non ha l’obiettivo di fornire risultati assoluti su quale potrebbe essere la miglior struttura organizzativa, ma offre soltanto un’indicazione generale per le scelte aziendali che, per essere utilizzata nella realtà, dovrebbe essere affiancata da altri tipi di valutazione.
Il motivo principale è che con la simulazione ad agenti non è possibile ‘‘cat-
turare” e rappresentare tutti gli elementi di incertezza del mondo reale.
La tesi è composta di sei capitoli che, partendo dai concetti generali, aiutano a comprendere le ragioni dell’utilizzo della simulazione ad agenti e come costruire modelli di simulazione.
Nel primo capitolo si presenta una trattazione sulla teoria della comples- sità e sui modi con cui è possibile studiare i comportamenti individuali e globali all’interno dei sistemi. In seguito si descrive la simulazione ad agenti e il suo ruolo nello studio dei fenomeni complessi.
Nel secondo capitolo si effettua una breve presentazione di alcuni stru- menti che possono essere usati per realizzare una simulazione ad agenti. In particolare sono presentati Swarm, un protocollo di programmazione con il quale è possibile creare modelli di simulazione utilizzabili per lo studio di fenomeni complessi di ogni genere, NetLogo e RePast, altri ambienti di simulazione.
Nel terzo capitolo è presentata una rassegna della letteratura economica a riguardo dell’impresa, riservando una particolare attenzione al modo in cui è considerata la figura dell’imprenditore. Secondo la teoria neoclassica l’im- prenditore è un semplice amministratore delle risorse interne e non ha alcuna funzione creativa, compito che al contrario è evidenziato dagli esponenti del- la Scuola Austriaca, che lo immaginano come lo scopritore delle occasioni di profitto presenti nel mercato. L’impostazione Austriaca è poi ripresa da Israel M. Kirzner ed integrata con spunti di originalità. Infine, si presenta la visione di Herbert A. Simon, che ha rivoluzionato la figura dell’impren- ditore introducendo i principi della razionalità limitata e della decisione più soddisfacente anziché della migliore.
Nel quarto capitolo si descrive il modello jES (java Enterprise Simula- tor), basato su Swarm, con il quale è possibile effettuare delle simulazioni
di impresa. Con questa piattaforma è possibile creare delle imprese virtuali all’interno del computer per osservare i fenomeni complessi che si creano nelle realtà aziendali. jES inoltre può essere usato per scopi teorici per lo studio della nascita e dell’evoluzione delle imprese.
In seguito, nel capitolo cinque, si descrive l’azienda oggetto di studio di questa tesi, la BasicNet S.p.A., proprietaria di alcuni marchi di abbigliamento come Kappa, Robe di Kappa, Jesus Jeans, K-Way e Superga.
Infine, nell’ultimo capitolo si descrivono le modifiche e le novità portate al modello di BasicNet creato con jES in Lamieri (2002) e Merlo (2003a); le mo- difiche hanno avuto l’obiettivo di rendere il più possibile simile all’azienda reale quella creata all’interno del computer. Inoltre sono illustrate la co- struzione degli altri modelli di azienda descritti precedentemente e un’analisi finale dei costi e dei ricavi in cui si confrontano i diversi modelli organizzativi.
Complessità e simulazione
1.1 La complessità
La complessità è un concetto che deriva principalmente dalla matematica e dalla fisica e con il passare del tempo è stata oggetto di studio di altre discipli- ne, come la biologia e le scienze sociali. Il suo carattere di multidisciplinarità crea delle difficoltà nel momento in cui si voglia dare una definizione di que- sto concetto e la conseguenza principale è che non ne esiste una ampiamente condivisa. Infatti nessuno dei tentativi, per ammissione stessa degli autori, è in grado di spiegare in modo esaustivo ciò che gli economisti e i sociologi intendono con questo concetto.
Una definizione generale può essere che ‘‘un sistema dinamico è complesso se a livello endogeno non tende asintoticamente ad un punto fissato, ma mostra comportamenti discontinui e può essere descritto come un insieme di equazioni non lineari con elementi stocastici’’ (Rosser, 1999). Un secondo tentativo di definizione si può trovare in Tinti (1998), dove la complessità è definita come ‘‘lo studio interdisciplinare dei sistemi complessi adattivi e dei fenomeni emergenti ad essi associati’’.
Infine, in Kilpatrick (2001) è illustrato il Santa Fe approach, vale a di-
5
re la visione della complessità nella ricerca economica secondo gli studiosi dell’Istituto degli Studi sulla Complessità di Santa Fe, che la considerano caratterizzata da sei elementi chiave:
1. interazioni disperse tra agenti eterogenei che agiscono localmente;
2. nessun controllo centrale che può sfruttare tutte le opportunità e le interazioni nell’economia;
3. organizzazioni gerarchiche che danno vita ad un groviglio di interazioni;
4. continuo adattamento e apprendimento degli agenti;
5. continue novità, ad esempio nuovi mercati, nuove tecnologie e nuovi comportamenti;
6. dinamiche senza equilibrio.
Inoltre il mondo così immaginato è a razionalità limitata con aspettative non razionali. Questa definizione di complessità è stata delineata precedente- mente dai chimici e dai fisici delle Università di Bruxelles e Stuttgart, i quali hanno svolto anche alcune applicazioni di carattere economico che hanno influenzato in modo particolare l’attività dei ricercatori di Santa Fe.
La nascita del pensiero della complessità avviene alla fine degli anni Qua- ranta da parte degli studiosi di cibernetica e di teoria dell’informazione; con il passare del tempo ad essi si sono aggiunti studiosi provenienti da diverse discipline. Una delle caratteristiche più importanti della teoria della com- plessità è rappresentata dal fatto che essa contribuisce ad unire la filosofia e la scienza, infatti a questi studi partecipano in egual misura filosofi, biologi, psicologi, chimici ed informatici; alcuni parlano della complessità come di una ‘‘terza cultura” (Tinti, 1998).
Inoltre è da sottolineare il ruolo assunto dal computer nello studio della complessità, che è utilizzato come laboratorio in cui sperimentare i modelli
computazionali del sistema che si intende studiare ed osservare il suo com- portamento; questo tipo di esperimento è detto simulazione, della quale si parlerà in modo più approfondito nei prossimi paragrafi di questo capitolo.
Inizialmente la maggior parte dei lavori sulla complessità hanno riguarda- to modelli spaziali, caratterizzati dalla possibilità per gli agenti di interagire tra loro in modo disperso; da questi modelli si può notare l’emergere di una struttura globale a partire da fenomeni strettamente locali, caratteristica che rappresenta l’idea principale della moderna teoria della complessità. Questo concetto trova l’anticipatore in un lavoro di Schelling, in cui è stato crea- to un modello che riguarda la segregazione razziale nelle città e può essere dimostrato senza l’uso del computer.
Schelling considered a rectangle with many sub-rectangles, ea- ch occupied by a black or a white. He allowed for movement based on local interactions and discovered that even a very slight prefe- rence by members of either group for living with their own kind would eventually lead to a largely segregated city, even though agents were only acting in relation to their immediate neighbors.
(Rosser, 1999, 176)
Il modello di Schelling è stato imitato per lo studio di sistemi formati da agenti eterogenei che formulano strategie in base alle interazioni con gli altri agenti; un esempio è il punto di vista della vita artificiale sviluppato da Langton (1992), che usa automi cellulari per rappresentare agenti economici che interagiscono tra loro.
1.2 I sistemi complessi
Gran parte del mondo è composto da sistemi complessi adattivi, strutture in cui le componenti sono fortemente dinamiche e correlate tra loro; ciascuno di
questi sistemi evolve e deve adattarsi al cambiamento continuo per garantirsi la sopravvivenza. Esempi di sistema complesso possono essere la società e il nostro sistema immunitario.
Secondo Tinti (1998) la complessità di un sistema è una proprietà del suo modello creato dall’osservatore esterno e non una caratteristica del sistema stesso; perciò si definisce sistema complesso una struttura la cui rappresen- tazione scientifica ha la peculiarità di essere complessa. I sistemi di questo tipo presentano alcune caratteristiche comuni:
• tante componenti più o meno complesse; quanto più numerose e com- plesse sono le parti che lo compongono, tanto più complesso è il sistema in generale;
• interazioni tra le componenti, che si passano informazioni tra loro; le informazioni non possono essere né troppo numerose né troppo poche, perché nel primo caso il sistema diventerebbe caotico e nel secondo si
‘‘cristallizzerebbe’’;
• assenza di gerarchia piramidale; in caso contrario il funzionamento del sistema potrebbe essere spiegato osservando soltanto la componente che si trova al vertice della struttura;
• interazione adattiva con l’ambiente; il sistema è tanto più complesso quanto maggiori sono i fattori esterni che influiscono sul suo adatta- mento all’ambiente e sulla sua evoluzione. Questa caratteristica rende adattivi i sistemi complessi.
È possibile classificare i sistemi in tre differenti categorie in base al loro grado di complessità. Si definiscono sistemi minimamente complessi tutti i sistemi naturali non biologici che non manifestano interazioni con l’ambiente esterno. I sistemi di media complessità sono gli artefatti complessi, come
ad esempio il computer; questi sistemi possono essere adattivi e manifestare comportamenti imprevedibili. Infine, i sistemi complessi sono sistemi adat- tivi che manifestano fenomeni emergenti, esempi di sistemi complessi sono le popolazioni umane e tutti i sistemi biologici.
I sistemi complessi sono detti non lineari (Sanders e McCabe, 2003), perché le variabili al suo interno interagiscono tra loro costantemente e si modificano in risposta alle variazioni delle altre; in questi sistemi piccoli cambiamenti possono dare origine a variazioni di tutto il sistema. I siste- mi non lineari non rispondono al principio della sovrapposizione, in quanto anche scomponendoli nelle parti costitutive non è possibile comprendere il funzionamento del sistema totale. La caratteristica fondamentale dei siste- mi non lineari è l’importanza delle interazioni tra le parti piuttosto che le proprietà delle sue componenti.
Al contrario, i sistemi lineari sono soggetti al principio di sovrapposizione, cioè è possibile analizzare un sistema di questo tipo studiando separatamente le parti che lo compongono e da esse comprendere il funzionamento completo del sistema.
La principale differenza tra i sistemi complessi, o non lineari, e quelli complicati, o lineari, è che per i secondi il comportamento globale è la somma dei comportamenti locali delle sue parti; per i primi invece il comportamento del tutto è maggiore della somma dei comportamenti locali, a causa delle interazioni tra gli agenti del sistema (Langton, 1992).
È possibile fare un esempio legato alla realtà, mettendo a confronto il motore di un’automobile e un formicaio (Terna, 2003a). Il primo è un siste- ma complicato, o lineare, perché può essere scomposto in tutte le sue parti costitutive ed a ciascuna, ad esempio il carburatore o la marmitta, può essere associata una particolare funzione che aiuta a comprendere il funzionamen- to generale del motore. Il formicaio è un sistema complesso, o non lineare,
perché la più piccola unità di questo sistema, la formica, non è in grado di dire nulla sulla struttura aggregata; per comprendere il funzionamento di un formicaio, e di qualsiasi altro sistema complesso, si rivela quindi necessario osservarlo nel suo insieme.
1.3 Un modello per la realtà: il formicaio
Secondo Ormerod (2003) la società è un sistema complesso formato da agen- ti interattivi che imparano e si adattano continuamente all’ambiente circo- stante. Questa visione è fortemente in contrasto con quella degli schemi di pensiero tradizionali delle scienze sociali e dell’aconomia, che offrono una vi- sione del funzionamento del mondo che può essere paragonato a quello di una macchina.
Nella realtà si incontrano spesso fenomeni che non possono essere spiegati con regole rigide, ma soltanto con la consapevolezza che la società è molto simile ad un organismo vivente; ad esempio, gli individui possono prendere delle scelte in base alle proprie opinioni, ma possono anche essere influenzati da quelle di altri individui. Nella teoria economica convenzionale questa idea non trova spazio, in quanto è previsto che le preferenze siano fissate per tutti.
Un modello che può essere utile per spiegare i fenomeni che si verifica- no nella realtà è il formicaio, un esempio di sistema complesso composto da agenti che interagiscono tra loro e si adattano all’ambiente circostante, che consente una via interpretativa alternativa alla teoria meccanicistica tradi- zionale. Infatti l’osservazione del comportamento di un gruppo di formiche si rivela di grande utilità nel momento in cui si voglia formalizzare il com- portamento di individui che si trovano di fronte a più possibilità tra cui scegliere.
1.3.1 Le formiche
Gli studi biologici sulle formiche hanno dato origine a risultati che sono dif- ficili da spiegare e che mostrano l’emergere di comportamenti complessi da parte loro che possono trovare analogie con le società umane.
Gli esperimenti entomologici condotti durante gli anni Ottanta hanno avuto come obiettivo l’osservazione del modo in cui le formiche prendono le decisioni e sono consistite nel posizionare due mucchietti identici di cibo a distanze uguali da un formicaio; i due mucchietti erano reintegrati ogni volta che una formica portava via del cibo da uno di essi.
Intuitivamente si può dire che una formica scelga in modo casuale dove dirigersi, perciò la distribuzione delle formiche tra i due mucchietti potrebbe essere analizzabile semplicemente lanciando una moneta e osservando la di- stribuzione di teste e croci. Tuttavia gli studi dei biologi hanno evidenziato che se una formica ha successo nella ricerca di cibo in un particolare luogo, in futuro tenderà a tornare nello stesso posto; inoltre durante il ritorno al formicaio la formica lascia una scia di secrezioni, il ferormone, che possono stimolare altre formiche a dirigersi verso il mucchietto in cui la prima ha trovato cibo.
Alan Kirman, un economista e uno dei ‘‘pionieri” nell’applicazione all’eco- nomia dei modelli basati sugli agenti interattivi (Ormerod, 2003), osservando gli studi effettuati dai biologi sulle formiche sviluppò l’idea che per compren- dere il funzionamento di un intero sistema non è sufficiente osservare soltanto il comportamento di un suo agente rappresentativo, che sia una formica op- pure un agente economico o sociale. Il risultato del sistema studiato dipende dalle interazioni che si creano tra gli agenti e dall’influenza che essi esercitano tra loro.
Tornando all’esempio del formicaio, secondo Kirman una singola formica può scegliere fra tre possibilità: dirigersi verso il mucchio di cibo da cui si
è rifornita in un momento precedente, essere indotta dalla scia lasciata da un’altra formica a scegliere un mucchio in particolare, oppure prendere una scelta nuova in modo indipendente. Date queste ipotesi, ogni esperimento di questo modello genera risultati imprevedibili e diversi tra loro che dipendono, di volta in volta, dalla propensione delle formiche a cambiare comportamento e a farsi convincere dalle altre.
Il modello di scelta fra tre possibilità descritto per le formiche è adot- tabile anche per la descrizione delle scelte delle persone in molte situazioni reali, infatti i fenomeni sociali ed economici presentano le stesse proprietà del comportamento di un formicaio: nel breve termine sono imprevedibili e nel lungo periodo originano fenomeni di carattere complesso.
1.3.2 Applicazioni alla realtà
In Ormerod (2003) si afferma che è possibile riscontrare delle analogie con il modello del formicaio se si osservano situazioni reali semplici, come la scelta di una serata al cinema, o altre più elaborate, come ad esempio alcuni fenomeni che si originano sui mercati finanziari.
Il primo esempio riguarda la scelta di più individui a riguardo di quale film da vedere al cinema. Il processo di scelta è simile a quello della formica, anche se in questo esempio ci sono alcune differenze con il modello sopra descritto, ad esempio i film tra cui scegliere non saranno uguali come i mucchi di cibo per le formiche, ma i registi cercheranno il più possibile di differenziare i loro prodotti.
Per comprendere quali siano i fattori che portano al successo un film è necessario usare la teoria degli agenti interattivi, rappresentati dal pubblico e dai critici, che sono responsabili del successo o dell’insuccesso di una pellicola.
Infatti le persone che ne vanno a vedere una ‘‘lasciano una traccia’’ proprio come le formiche con il ferormone, rappresentata in questo caso dalle opinioni
e dai passaparola, che può influenzare le scelte degli altri individui. Perciò agli individui è possibile applicare il modello decisionale delle formiche, infatti essi possono decidere in modo autonomo oppure farsi influenzare dalle opinioni e dai consigli altrui. Inoltre è anche importante l’ordine con cui i film sono visti, in quanto il fatto di andare a vedere un film l’ultimo giorno della proiezione esercita un effetto certamente minore rispetto a quello di chi è andato la prima sera.
Un secondo esempio è l’applicazione sviluppata da Alan Kirman in rela- zione ad un fenomeno realmente avvenuto sui mercati finanziari. Nei primi anni Ottanta iniziò a prendere forza l’opinione di un numero crescente di operatori specializzati che il dollaro fosse sopravvalutato e, ovviamente, nel 1985 questa valuta crollò; il fatto ‘‘curioso” è che durante questo periodo gli operatori si comportarono in modo inspiegabile, continuando a comprare il dollaro e allo stesso tempo dichiarando che quest’ultimo era decisamente sopravvalutato.
Per studiare questo fenomeno Kirman sviluppò un modello in cui si tro- vano due categorie di operatori finanziari, da un lato i fundamentalist, coloro che ritengono che i prezzi delle attività finanziarie siano determinati dai fon- damentali (ad esempio, nel caso delle azioni dal valore attuale dei dividendi futuri), e dall’altro i chartist, secondo i quali l’andamento passato di un’atti- vità finanziaria può aiutare a prevederne il futuro. Nel 1984 i primi ritenevano che il dollaro avrebbe subito un brusco calo, mentre i secondi erano certi del contrario.
Nel modello ogni operatore ha tre possibilità, come le formiche: può scegliere di comportarsi come prima, può modificare la propria opinione in- fluenzato dalle informazioni altrui, oppure può scegliere autonomamente di cambiare. Come nel formicaio, per ogni attività finanziaria la ripartizione tra i due gruppi di operatori varia continuamente e in modo rapido, pertanto
si possono verificare grandi variazioni di prezzo in modo repentino ed inspie- gabile. La volatilità dei prezzi è dunque la conseguenza della volatilità delle scelte degli operatori.
Questo modello permette di comprendere ex post anche un comportamen- to senza logica come l’acquisto di una moneta considerata sopravvalutata, dovuto a frequenti cambiamenti di opinione degli operatori, situazione che la teoria economica tradizionale non è in grado di spiegare.
1.4 Complessità e ordine spontaneo
Le idee di Hayek secondo alcuni studiosi sono considerate anticipatrici della teoria della complessità in quanto, in base alle loro opinioni, quest’ultima rap- presenta semplicemente la riscoperta di alcuni principi hayekiani, ad esempio la conoscenza e l’ordine spontaneo, o una rievocazione della sua filosofia del mercato.
Ordine spontaneo e sistema auto-organizzante possono essere considerati sinonimi (Kilpatrick, 2001), perché in un sistema complesso adattivo si può rilevare una sorta di ordine che non è prevedibile in alcun modo.
Secondo Hayek il mercato non è mai in equilibrio e con il passare del tempo evolve. Nella visione hayekiana il mercato è organizzato dagli agenti senza che sia necessaria la presenza di un controllo accentrato ed è quasi sempre in grado di raggiungere in modo autonomo la miglior configurazione;
un’eventuale autorità esterna non potrebbe migliorare la sua efficienza, ma solo peggiorarla, a causa della complessità della società e della presenza di una conoscenza dispersa tra gli uomini.
La maggior parte di queste idee sono condivise dai teorici della comples- sità, con la sola differenza che secondo la loro visione un controllo centrale pianificatore è in grado di sistemare la configurazione del mercato nel caso che questa non sia la migliore.
Un altro elemento che avvicina Hayek alla teoria della complessità è il suo interesse per la teoria biologica evoluzionistica e per la scienza cogniti- va, che lo avvicinò a gran parte della letteratura studiata dai teorici della complessità, anche se una differenza con questi ultimi è rappresentata dal fatto che i lavori di Hayek sono di limitato utilizzo per ulteriori analisi sui sistemi complessi, perché non considerava di grande aiuto per la loro analisi gli strumenti statistici.
Tuttavia il pensiero di Hayek e la moderna teoria della complessità mo- strano anche alcune caratteristiche che li distinguono tra loro.
Nelle opere di Hayek sembra che sia presente l’idea di un’entità sopran- naturale benevolente che si cela dietro l’ordine spontaneo; secondo Hayek le persone dovrebbero impegnarsi a lasciar guidare la società all’ordine spon- taneo piuttosto di tentare il controllo del mercato per mezzo di un’autorità centrale.
Al contrario, i teorici della complessità non vedono una forza benevolente dietro le dinamiche complesse. Gli uomini agiscono e ciò che fanno può causare eventi positivi o negativi, ma non esiste una mano invisibile che guida automaticamente l’uomo verso la migliore soluzione, perciò si rende necessaria la presenza di un controllo accentrato che in alcune situazioni intervenga per sistemare l’andamento della società.
Si può pertanto concludere che il pensiero di Hayek in qualche modo anti- cipa la teoria della complessità e chi si accinge allo studio di questa disciplina dovrebbe analizzare attentamente i lavori hayekiani. Occorre tuttavia sotto- lineare che le teorie espresse dalle due parti sono qualitativamente differenti (Kilpatrick, 2001).
1.5 La vita artificiale
La vita artificiale mira a sintetizzare comportamenti di tipo biologico in am- bienti artificiali, ad esempio in un computer, e ad osservare i fenomeni com- plessi che sono originati dalle interazioni tra gli agenti e dal loro adattamento all’ambiente circostante.
Tradizionalmente la biologia ha considerato un organismo vivente come una macchina complessa ed in seguito ha proceduto a ‘‘scomporre” gli orga- nismi nelle loro componenti più piccole al fine di comprendere i meccanismi della vita. Grazie alla conoscenza delle parti che costituiscono gli organismi viventi la biologia è stata in grado di proporre uno schema generale sulla vita.
Tuttavia la vita dipende non solo dalle caratteristiche degli esseri viventi ma anche dalle interazioni che si creano tra loro, perché i fenomeni naturali sono non lineari e conseguentemente gli organismi devono essere studiati osservando il comportamento che assumono se sono immersi nell’ambiente.
Perciò secondo Langton (1992) la vita artificiale applica il punto di vista sintetico alla biologia: mette insieme gli esseri viventi e analizza le interazioni che si generano; con il termine sintesi si intende la combinazione di più parti diverse tra loro per formare un tutto.
Gli obiettivi della vita artificiale sono espressi in Langton (1992, 190):
la vita artificiale intende 1) sintetizzare il processo dell’evoluzio- ne, 2) usando i calcolatori, e 3) studiare qualunque cosa emerga da questo processo, anche quando i risultati non hanno corrispet- tivi nel mondo naturale. È certo interessante, dal punto di vista scientifico, sapere quali tipi di cose possono, in linea di principio, evolversi − che siano o no evolute, di fatto qui sulla Terra.
La vita artificiale si differenzia dall’intelligenza artificiale per la diversa
prospettiva adottata. L’intelligenza artificiale ha sempre avuto come obiet- tivo la generazione di comportamenti intelligenti che non necessariamente devono avere una corrispondenza con quanto avviene in natura. Al con- trario, l’obiettivo della vita artificiale è la riproduzione dei meccanismi che avvengono nei sistemi naturali.
Nello studio della vita artificiale i calcolatori elettronici giocano un ruolo molto importante, perché possono essere considerati come un laboratorio in cui effettuare gli esperimenti desiderati. Il computer offre ai ricercatori un nuovo metodo di studio e permette l’analisi di fenomeni per i quali le equazioni che li definiscono non hanno soluzione.
Con la simulazione della vita al calcolatore gli studiosi si sono resi conto che i comportamenti che presentano una grande complessità a livello globale generalmente emergono da insiemi di unità che hanno regole locali molto semplici, perciò una conclusione che si può trarre è che anche in natura, come si è visto precedentemente per la società, i fenomeni complessi hanno cause semplici.
1.5.1 Genotipo e fenotipo
Dal punto di vista del comportamento dei sistemi viventi è importante la distinzione tra genotipo e fenotipo. Il genotipo è l’insieme delle istruzioni genetiche contenute nel DNA di un organismo, mentre il fenotipo è l’organi- smo fisico, cioè tutto ciò che emerge come risultato dell’interpretazione del genotipo in un particolare ambiente.
Nel contesto di vita artificiale si rende necessaria la generalizzazione di queste definizioni in modo che siano applicabili anche nel caso di situazioni non biologiche. Perciò di si definisce genotipo generalizzato l’insieme non ordinato di regole di basso livello e fenotipo generalizzato i com-
portamenti e le strutture che emergono dalle interazioni tra le regole di basso livello quando sono attivate in un ambiente specifico.
Nella vita artificiale si utilizza la prospettiva bottom-up, secondo cui i sistemi sono descritti a partire da semplici regole da cui possono essere origi- nati comportamenti di grande complessità. In questo contesto inizialmente si definisce il genotipo, cioè il repertorio di comportamenti, e in seguito dal- le interazioni dell’insieme emerge il comportamento globale del sistema, il fenotipo.
Se si simula la vita, si può andare incontro a fenotipi complessi costituiti su più livelli che fanno sì che emergano delle strutture gerarchiche; questa caratteristica è evidenziata in Langton (1992, 208):
Vale la pena di notare che il fenotipo è un fenomeno a più livelli. Anzitutto, c’è il fenotipo associato a ciascuna istruzione particolare − l’effetto che l’istruzione ha sul comportamento di un’entità quando viene eseguita. In secondo luogo, c’è il feno- tipo associato a ciascuna entità individuale − il suo particolare comportamento nell’aggregato. In terzo luogo, c’è il fenotipo associato al comportamento dell’aggregato come totalità.
1.5.2 Gli algoritmi genetici
Gli studi sulla vita artificiale hanno permesso di formulare delle tecniche evolutive che si basano sull’imitazione del processo di evoluzione biologica.
In natura le regole, o gli individui, si riproducono, mutano e si estinguono con l’obiettivo di diffondere soltanto gli esemplari migliori.
Uno dei primi esempi di utilizzazione del modello evolutivo per la ricerca di soluzioni è rappresentato dagli algoritmi genetici, creati da John Holland, che con il loro utilizzo ha cercato di rappresentare il processo naturale di
evoluzione biologica in un modello che sia utile a cercare le soluzioni dei problemi.
In Ferraris (1999) si legge che in un algoritmo ogni genotipo è rappre- sentato da una stringa di caratteri (possono essere ‘‘0’’ e ‘‘1’’) che descrive una particolare strategia; ad ogni individuo è assegnato un fitness value, che indica il suo grado di adattamento ed è calcolato in base ai risultati ottenuti dall’applicazione della strategia nell’ambiente circostante.
Durante ogni iterazione alcuni individui della popolazione sono selezionati per la riproduzione, con particolare attenzione a scegliere quelli con il fitness value più alto, e altri per l’estinzione. La riproduzione avviene copiando e incrociando (crossover) le stringhe dei genitori, in modo che ai figli sia trasmesso il patrimonio genetico di entrambi, proprio come accade in natura.
Per rendere possibile gli errori nella trasmissione genetica genitori-figli è stata introdotta la mutazione, secondo la quale alcuni caratteri possono essere modificati in modo casuale; il meccanismo di scelta dei caratteri avviene in base ad una data probabilità, che in genere è molto bassa.
Dopo l’esecuzione dei processi di evoluzione e di riproduzione per più volte si può notare che la popolazione converge verso un unico tipo di indi- viduo al quale è associato un alto fitness value; questo significa che strategia incorporata nelle stringhe è la migliore per l’ambiente considerato.
1.6 La simulazione e le scienze sociali
Nelle scienze della natura, come la fisica e la chimica, le teorie formulate pos- sono essere verificate direttamente in laboratorio affinché i ricercatori siano in grado di verificare la correttezza delle loro ipotesi. Gli esperimenti di questo tipo consentono di capire quali sono i fattori che danno origine a determinati fenomeni e di modificare alcuni aspetti dei primi per osservare le conseguenze al sistema generale.
L’opportunità di verificare le teorie non è invece disponibile per le scienze sociali, in quanto non dispongono di un vero e proprio laboratorio. La simula- zione al computer offre a queste discipline un nuovo ed importante strumento di ricerca, in quanto grazie ad essa sociologi, psicologi ed economisti possono studiare alcuni aspetti della realtà, ad esempio processi e relazioni non lineari, tramite la creazione nel computer di modelli accuratamente specificati.
La simulazione al computer è considerata la ‘‘terza via’’ (Gilbert e Ter- na, 2000) disponibile agli studiosi delle scienze sociali, in una classificazione che comprende i modelli letterario-descrittivi e quelli matematico-statistici;
i primi sono molto flessibili ma la loro adeguatezza non può essere verificata con strumenti di calcolo, mentre i secondi sono computabili ma hanno un grave problema rappresentato semplificazioni imposte, che possono causare un allontanamento dalla realtà. I modelli di simulazione offrono perciò un giusto compromesso tra le esigenze di flessibilità dei primi e le possibilità di computazione dei secondi (Terna, 2003a).
Una definizione del metodo simulativo è fornita in Parisi (1999, 28):
Le simulazioni sono teorie interpretative dei fenomeni della realtà formulate come un programma che gira in un computer. Le teorie della scienza mirano a identificare i meccanismi, i processi, i fattori che stanno dietro ai fenomeni e che spiegano i fenomeni, ce li fanno capire. Adottare il metodo della simulazione significa tradurre una teoria in un programma di computer, far girare il programma nel computer e verificare se il programma, cioè la si- mulazione, riproduce i fenomeni che la teoria intende spiegare. Le simulazioni sono il terzo strumento della scienza, uno strumento che si è aggiunto abbastanza di recente, cioè da quando computer veloci e potenti sono divenuti accessibili a qualunque scienziato,
ai due strumenti di ricerca tradizionali: le teorie e gli esperimenti di laboratorio.
Axtell (2000) osserva che la tecnica della simulazione ad agenti può esse- re usata in tre casi distinti. Nel primo, il più semplice, si presenta quando il fenomeno sociale che si va a studiare può essere completamente descritto da equazioni risolvibili analiticamente o numericamente; in questo caso la simulazione può essere usata come metodo alternativo per arrivare agli stessi risultati o come strumento per presentarli in modo più facilmente compren- sibile rispetto a quelli di un modello matematico. Un secondo uso emerge nel caso in cui il modello matematico adottato per analizzare il processo sociale possa essere descritto ma le sue equazioni non siano risolvibili oppure i risul- tati non siano stabili. Infine, il terzo tipo di utilizzo si ha nel caso di problemi sociali per i quali non è possibile una spiegazione fondata su equazioni; la simulazione ad agenti è perciò l’unico metodo con cui è possibile studiare questi fenomeni.
Gli utilizzatori della simulazione possono avere diversi obiettivi e, in par- ticolare, se ne possono distinguere almeno tre (Conte, 1998 e Edmonds, 2003):
1. la proiezione, cioè l’uso di modelli per prevedere gli avvenimenti futuri legati ad un particolare fenomeno; queste simulazioni non sono necessa- riamente basate su un modello ad agenti e risultano molto utili quando il sistema su cui si indaga è di natura complessa, ad esempio se si tratta di un processo non lineare. La simulazione in questo caso può essere utilizzata per prevedere gli esiti di interventi di politica economica o sociale;
2. la sperimentazione, nel caso in cui con la simulazione si intendano spie- gare dei particolari fenomeni e si desideri verificare la qualità dei mo- delli proposti. Il modello creato nel computer può essere usato in due
modi: manipolando le variabili del modello, possibilità particolarmente indicata quando non si possono realizzare modifiche nella realtà oppure quando si intende valutare quali siano le cause scatenanti di partico- lari eventi, con l’obiettivo di utilizzare il computer come un vero e proprio ‘‘laboratorio” delle scienze sociali; un secondo modo di utilizzo è l’osservazione del comportamento del modello ‘‘così come è’’ e dei fenomeni che hanno origine da esso;
3. infine, l’esplorazione del fenomeno costruito nel ‘‘laboratorio virtua- le”, per osservare e studiare i diversi aspetti delle dinamiche sociali e l’evoluzione della cooperazione tra gli agenti.
1.7 Lo sviluppo di una simulazione
Lo sviluppo di una simulazione prevede lo svolgimento di due fasi, la prima di modelling, cioè la costruzione nel computer del modello da simulare, e in seguito la simulazione vera e propria.
Modelling
Durante questa fase si crea una struttura all’interno del computer che sia in grado di imitare un certo aspetto della realtà (Edmonds, 2003); il modello solitamente è soggetto a dei parametri, perciò è possibile che lo stesso possa essere adattato per simulare e analizzare diversi aspetti della stessa realtà.
La ‘‘bontà’’ di un modello è valutata in base ai seguenti criteri (Edmonds, 2003):
• la correttezza; un modello può essere costruito scegliendo uno tra i due metodi maggiormente diffusi: il primo propone di seguire i principi che sono stati sviluppati precedentemente per fenomeni simili ed è funzione
del successo che essi hanno avuto; il secondo metodo consiste nel tenta- tivo di imitare il più possibile il processo reale ed è il più impegnativo e difficoltoso;
• la precisione dei principi utilizzati per costruire il modello, che è mi- surata dalla differenza tra i risultati del modello e quelli della realtà;
generalmente la perfetta correttezza non è raggiungibile a causa della presenza persistente di fenomeni che la ostacolano;
• la generalità, che indica la possibilità di applicare un modello in diverse circostanze; generalmente si tende a preferire un modello più versatile rispetto ad uno più specifico;
• la semplicità, qualità importante quando il modello deve essere appli- cato o interpretato;
• il costo richiesto per la creazione del modello, che spesso rappresenta uno dei criteri guida nelle scelte dei modelli di simulazione con lo scopo di ricerca;
Un aspetto importante di questa fase riguarda la scelta del modello da utilizzare, in quanto ne esistono di diversi tipi. In particolare, i modelli usati dagli economisti e dai teorici dei giochi sono detti matematici e hanno la caratteristica di definire gli agenti in base ai valori assegnati a determinate variabili. Un secondo tipo di modelli, detti procedurali, definiscono gli agenti in base a delle sequenze di azioni eseguite secondo regole interne.
Infine è necessario stabilire l’affidabilità del modello usato. Occorre os- servare che si possono riscontrare diverse cause di inaffidabilità in un modello (Conte, 1998), da un primo caso in cui sono elaborate previsioni non verificate nella realtà fino a situazioni più gravi in cui non è possibile verificare l’atten- dibilità del modello perché le previsioni sviluppate sono troppo generiche e perciò impossibili da valutare.
Simulazione
Durante questa fase si fa funzionare il modello nel computer. Si presenta però un interrogativo, che riguarda l’utilità della simulazione per un modello per cui è possibile l’esecuzione analitica; in almeno tre casi l’utilizzo della simulazione si rende necessario (Conte, 1998):
1. negli studi su sistemi che presentano capacità di apprendimento, in cui gli agenti imparano interagendo con l’ambiente e con gli altri agenti;
2. negli studi in cui possono emergere nuovi fenomeni a partire da si- tuazioni conosciute, riscontrabili nell’osservazione di sistemi dinamici auto-organizzanti, che possono subire delle modifiche per adattarsi ai cambiamenti dell’ambiente esterno;
3. negli studi sull’evoluzione e sull’adattamento dei sistemi, come nel caso degli studi dell’Istituto di Santa Fe sui sistemi complessi adattivi.
In tutti questi casi l’esecuzione analitica non può sostituire la simulazione, perché questa tecnica si rende necessaria per tutti i sistemi il cui studio prevede delle interazioni con l’ambiente; infatti solo con questo metodo è possibile consentire ai sistemi di agire in un mondo artificiale, ed in seguito a queste azioni si possono osservare fenomeni di apprendimento e di evoluzione dei sistemi.
Infine, ci sono casi per cui l’uso della simulazione è fondamentale, in quan- to di essi non si può ottenere una soluzione da un modello analitico. Alcuni esempi riguardano lo studio degli effetti dei sistemi complessi e di quelli sem- plici; questo secondo caso è molto interessante, perché in queste situazioni la simulazione ha un carattere esplorativo, cioè è usata per formulare una teoria e per evidenziare le proprietà più importanti del modello e non per verificare delle ipotesi, come avviene nel primo caso.
1.8 I vantaggi della simulazione
Un vantaggio della simulazione consiste nella possibilità di studiare fenomeni e realtà non direttamente accessibili; questa caratteristica si è rivelata molto importante per archeologi e storici, che con la simulazione dispongono così di un nuovo e importante strumento di studio.
Con la simulazione si possono perciò studiare tutti i sistemi, sia quelli semplici sia quelli complessi; da questo punto di vista la simulazione rap- presenta per i ricercatori un metodo più completo rispetto al laboratorio, all’interno del quale si possono analizzare soltanto i sistemi semplici, per- ché quasi tutti i fenomeni che interessano le scienze della natura e dell’uomo danno origine a sistemi complessi (Parisi, 1999).
La simulazione consente inoltre di elaborare modelli che mirano ad otte- nere particolari risposte, ad esempio conoscere quali saranno le conseguenze originate da un particolare insieme di fattori; grazie a questo metodo gli stu- diosi delle scienze sociali possono valutare gli effetti originati da particolari provvedimenti economici o sociali prima della loro applicazione nella realtà.
L’uso della simulazione costringe l’utilizzatore a specificare il modello in modo molto dettagliato, senza lasciare spazio a ‘‘scatole nere’’ di cui non si conosce il funzionamento. Quindi grazie questo metodo i ricercatori possono conoscere la realtà in modo molto approfondito e sono in grado di formulare le loro teorie in un modo chiaro ed esplicito (Parisi, 1999).
Infine, un altro pregio della simulazione è l’aver reso possibile l’incontro fra diverse discipline, sia per quanto riguarda il metodo di ricerca scelto sia per i temi di studio, che si sono rivelati, in alcuni casi, di carattere multi- disciplinare. I temi unificanti che sono emersi dai vari studi sono i seguenti (Conte, 1998):
• l’emergenza, cioè la manifestazione spontanea di fenomeni inaspettati a partire da modelli conosciuti;
• la complessità, che si può concretizzare, ad esempio, nella formazione di organizzazioni oppure nella specializzazione funzionale;
• l’evoluzione degli agenti e dei sistemi in risposta all’ambiente circostan- te;
• la distribuzione, ovvero la condivisione di proprietà e comportamenti da parte delle unità del modello;
• la comunicazione, che è necessaria al coordinamento ed alla diffusione di regolarità.
1.9 I problemi della simulazione
Il più noto dei problemi legati all’uso della simulazione riguarda l’interpreta- zione dei dati che sono originati dal modello, una questione approfondita nel paragrafo seguente. Da un lato, se questi ultimi non confermano le ipotesi iniziali, è difficile capire se il risultato sia attribuibile ad un errore di speci- ficazione del modello o semplicemente ad uno di programmazione; dall’altro lato, se le ipotesi sono confermate, risulta difficoltoso affermare l’adeguatez- za dei risultati, perché oltre a quelli espliciti possono essercene anche altri impliciti.
Un secondo tipo di problema riguarda la progettazione del modello. Pur avendo il vantaggio di usare linguaggi di programmazione non particolar- mente difficili, questa fase ha un primo tipo di costo che può essere misurato nel tempo dedicato alla progettazione del modello, in quanto è necessario imparare il linguaggio da usare; dopo aver scritto il codice si presenta un altro costo, rappresentato dal tempo impiegato a controllare che non ci siano errori nel programma.
Un ulteriore problema consiste nella definizione delle assunzioni relative ai diversi aspetti delle realtà che si studiano e nella scelta del modello e dei
valori da assegnare ai parametri, che possono richiedere del tempo, necessario all’utilizzatore per scegliere la migliore delle possibilità.
Infine, un ultimo problema riguarda il realismo della simulazione, definito in Conte (1998) come la trappola della verosimiglianza. La simulazione rap- presenta una semplificazione della realtà, individuando i fattori fondamentali che determinano i fenomeni oggetto di studio, e ogni miglioramento che si vuole portare richiede maggiori sforzi di progettazione. Tuttavia è anche im- portante trovare il giusto bilanciamento tra i dettagli necessari e quelli che non lo sono, per non correre il rischio di fare un’errata specificazione e creare un modello che non è in grado di rappresentare la realtà studiata.
1.10 L’interpretazione dei modelli
Il problema dell’interpretazione dei risultati di una simulazione ha una grande importanza perché, come argomentato in Axtell e Epstein (1994), se non si è in grado di comprendere i sistemi complessi artificiali meglio di quanto si riesce a fare per quelli reali non si è giunti a nessun miglioramento.
Per rendere comprensibili per se stessi e per gli altri i modelli è necessario seguire alcune indicazioni descritte in Gilbert e Terna (2000).
Occorre innanzitutto considerare gli agenti come degli oggetti, cioè parti di codice informatico in grado di contenere dati e regole su come agire su essi; queste regole forniscono la spiegazione di come gli agenti reagiscono ai messaggi provenienti dall’ambiente esterno.
Inoltre è necessario osservare sia il comportamento individuale degli agen- ti, determinato dalle variabili di stato di ognuno di essi, sia il comportamen- to che emerge dalle loro interazioni a livello aggregato. In Terna (1998) si afferma che, da un punto di vista metodologico, possono esistere due ti- pi di emergenza: l’emergenza imprevista, ma in qualche modo prevedibile, cioè quando all’interno del modello compare un comportamento ricorrente
le cui cause sono nascoste all’interno della struttura stessa del modello, e l’emergenza imprevedibile, che si manifesta quando i dati di un esperimento hanno caratteristiche simili a quelli di un fenomeno caotico; il caos è osser- vabile nei fenomeni economici e sociali, ma non è facile tentare di riprodurlo in un modello ad agenti.
Infine, occorre valutare se la simulazione ha successo e per fare ciò si potrebbe utilizzare un metodo matematico-statistico, ma siccome potrebbe risultare difficile da applicare ad un modello computazionale, spesso si uti- lizzano criteri differenti. Un primo modo consiste nel confrontare ciò che si conosce del comportamento degli agenti appartenenti al modello con le loro reali azioni durante la simulazione.
Un metodo di valutazione più rigoroso è rappresentato dall’esame degli effetti degli agenti a livello aggregato, considerando le strutture ed i gruppi che emergono; secondo Axtell e Epstein (1994) i modelli ad agenti possono essere classificati in base a quattro livelli:
Livello 0, se il modello è una caricatura della realtà, come stabilito tramite l’utilizzo di semplici dispositivi grafici.
Livello 1, se il modello è conforme qualitativamente con le macro-strutture empiriche, come dimostrato se si tracciano le distribuzioni di alcune caratteristiche della popolazione di agenti.
Livello 2, se il modello è conforme quantitativamente con le macro-strutture empiriche, come stabilito da procedure statistiche.
Livello 3, quando il modello mostra coerenza qualitativamente e quanti- tativamente con le micro-strutture empiriche determinate da analisi cross-section sugli agenti della popolazione.
Questi livelli sono progressivi, perciò se un modello presenta performance di livello n conseguentemente sarà soddisfacente anche al livello n−1.
I risultati della simulazione riguardanti il comportamento collettivo po- trebbero risultare difficili da comprendere tanto quanto la stessa realtà; que- sto problema è simile a quello incontrato nella vita artificiale riguardante la comprensione dei legami tra il genotipo e il suo fenotipo1. In questo ambi- to l’idea fondamentale è che il comportamento degli agenti è semplice ma si adatta all’ambiente esterno e alle relazioni con gli altri agenti, perciò è possibile che dalle interazioni emergano fenomeni complessi e inattesi.
Nel problema dell’interpretazione del modello è necessario includere an- che la comprensione del programma utilizzato per far funzionare il modello al computer (Axtell e Epstein, 1994), per verificare che esso faccia ciò che l’utilizzatore desidera e che non ci siano delle imprecisioni dovute alla di- sattenzione del programmatore, ad esempio errori nell’indicizzazione delle matrici usate dagli agenti.
1.11 Gli agenti
Wooldridge e Jennings (1995) sostengono che la definizione più generale che può essere data al termine agente consiste nel considerarlo un sistema com- putazionale posto in un certo ambiente dotato delle seguenti caratteristiche:
• autonomia, che gli consente di operare senza la necessità di un inter- vento umano;
• abilità sociale, cioè capacità di interagire e comunicare con altri agenti;
• reattività, che gli permette di reagire in modo tempestivo ai cambia- menti dell’ambiente circostante;
• capacità di prendere iniziative guidate da obiettivi interni, o pro-attività.
1vedi paragrafo 1.5.1
Secondo coloro che studiano l’intelligenza artificiale, l’agente è un sistema computerizzato che, oltre a possedere le caratteristiche sopra descritte, è concepito usando concetti che sono abitualmente applicati agli esseri umani.
Ad esempio, è possibile definire gli agenti usando caratteristiche come la conoscenza, le opinioni, le intenzioni, i desideri e i doveri.
Una teoria soddisfacente degli agenti deve essere in grado di illustrare in modo approfondito tutti gli attributi sopra considerati e di mostrare in che modo sono collegati questi ultimi; ad esempio, dovrà specificare come l’ambiente influisce sul comportamento dell’agente e come gli obiettivi e le informazioni guidano le sue azioni.
È possibile effettuare una classificazione generale degli agenti usati in una simulazione in base ai loro meccanismi di decisione, alla capacità di adatta- mento e di apprendere; se gli agenti sono privi di capacità di apprendimento sono detti ‘‘senza mente”, in caso contrario ‘‘con mente”. Inoltre si può ef- fettuare una distinzione anche secondo l’ambiente in cui si trovano, che può essere neutrale o strutturato, cioè dotato di regole precise a cui gli agenti devono attenersi. Ne consegue che gli agenti possono essere raggruppati in quattro categorie (Terna, 2003a):
1. agenti ‘‘senza mente’’ in un ambiente neutrale, o non strutturato;
2. agenti ‘‘senza mente’’ in un ambiente strutturato;
3. agenti ‘‘con mente’’ in un ambiente neutrale;
4. agenti ‘‘con mente’’ in un ambiente strutturato.
Nel primo caso, agenti senza mente in ambiente neutrale, si osserva che dalla simulazione emerge un fenomeno complesso, con elementi di caos ge- nerati indirettamente dagli agenti; in questi tipi di esperimenti si possono
notare due tipi di emergenza, quella imprevista e quella imprevedibile, illu- strate nel paragrafo 1.10. Tuttavia i fenomeni provocati da agenti di questo tipo non sono realistici, perciò sono di scarso interesse scientifico.
Al contrario, se si inseriscono agenti senza mente in un ambiente strut- turato, ad esempio la borsa, si nota che si creano fenomeni complessi che originano risultati realistici grazie alla presenza di un ambiente con regole.
L’aspetto interessante di questo esempio è che l’emergenza di situazioni com- plesse è dovuta alle caratteristiche dell’ambiente e non a quelle degli agenti operanti.
Nel terzo caso si presentano agenti con mente in un ambiente neutrale.
In questa situazione gli agenti economici sono in grado di imparare ad agire in modo coerente, conoscendo a mano a mano quali sono le conseguenze che derivano da una particolare azione; per un osservatore esterno gli agenti di questo tipo sembrano operare seguendo obiettivi e strategie interne, ma in realtà sono guidati soltanto da semplici regole e il loro comportamento è dovuto soltanto alla loro capacità di adattamento. I risultati indicano l’emergere di un ordine in linea con la prospettiva dell’ordine spontaneo di Hayek.
Infine, utilizzando agenti con mente in un ambiente strutturato si va in- contro all’emergenza di fenomeni complessi come nel secondo caso; inoltre in questa situazione gli agenti si adattano ed imparano e sono in grado di deter- minare risultati importanti anche a livello individuale, sviluppando strategie che ad un osservatore esterno possono sembrare non ovvie.
Gli strumenti per la simulazione
In questo capitolo si presentano Swarm, NetLogo, e RePast, alcuni strumenti con i quali è possibile costruire all’interno del computer modelli di simulazione ad agenti.
Tra essi Swarm è quello che vanta la maggior diffusione e la maggior ro- bustezza del codice (Terna, 2003a) ed è presentato in modo più approfondito, perché è il protocollo di programmazione su cui si basa jES (java Enterprise Simulator), che sarà descritto nel capitolo 4.
Su NetLogo e RePast sono fornite soltanto alcune informazioni che con- sentono di comprendere come è strutturato l’ambiente di simulazione.
2.1 Swarm
Il progetto Swarm1 nasce nel 1994 dall’idea di Chris Langton ed è successi- vamente sviluppato all’interno dell’Istituto degli Studi sulla Complessità di Santa Fe.
Swarm è una piattaforma informatica con cui è possibile effettuare simula- zioni di sistemi complessi adattivi; l’unità base della simulazione è lo sciame,
1Disponibile alla pagina web http://www.swarm.org e http://wiki.swarm.org
32
che è definito come un insieme di agenti che eseguono una serie di azioni.
Swarm offre delle librerie di componenti con le quali si possono costruire modelli e analizzarli.
Figura 2.1: Logo di SWARM
In Minar, Burkhart, Langton e Askenazi (1996) si legge che uno dei prin- cipali motivi della nascita del progetto Swarm è l’esigenza di disporre di uno strumento versatile per lo studio dei sistemi complessi che possa essere fa- cilmente comprensibile ed utilizzabile dai ricercatori di diverse discipline; il progetto deve pertanto la sua nascita al lavoro congiunto di più studiosi, che hanno avuto come obiettivo primario la creazione di una ‘‘lingua franca della simulazione ad agenti” (Terna, 2003a).
Prima della sua creazione nell’ambito dello studio dei sistemi complessi era presente un grande numero di modelli di simulazione, che risultavano di difficile interpretazione e comprensione per chi tentasse di avvicinarsi allo studio di un particolare fenomeno. Il motivo principale è che le piattaforme di simulazione esistenti erano molto specifiche e contenevano un numero di assunzioni implicite che erano chiare soltanto ai creatori del software.
Swarm presenta il vantaggio di poter essere utilizzato in diverse area di ricerca, ad esempio nella chimica, nell’ecologia, nell’economia e nelle scienze
sociali, grazie al fatto che il codice informatico relativo al comportamento degli agenti deve essere integralmente scritto dall’utilizzatore; il progetto infatti fornisce soltanto le funzioni generiche di gestione del tempo, dei cicli di funzionamento e di interazione grafica con l’utente.
2.1.1 Sviluppo di una simulazione
Il formalismo adottato da Swarm prevede un insieme di agenti che interagi- scono tra loro mediante eventi. L’agente è l’oggetto principale all’interno di una simulazione e può generare eventi che interessano se stesso o altri agenti.
Il verificarsi degli eventi è regolato da un calendario interno che descrive le azioni nel preciso ordine in cui devono essere eseguite; il tempo avanza solo nel momento in cui gli eventi inseriti nella sequenza sono stati eseguiti.
La componente che organizza gli agenti è detto sciame (o swarm) e rap- presenta un intero modello, in quanto contiene gli agenti e la rappresentazione del tempo, vale a dire una sequenza di attività che devono essere eseguite.
Gli sciami possono essere anche agenti, oltre che i loro contenitori; un agente per definizione è costituito da un insieme di regole e di capacità di ri- sposta agli stimoli ma, come si legge in Minar, Burkhart, Langton e Askenazi (1996), può essere allo stesso tempo anche uno sciame, cioè una collezione di oggetti e di sequenze di azioni da svolgere. In questa situazione il comporta- mento dell’agente è definito dalle interazioni che si svolgono all’interno dello sciame.
Un semplice esempio di quanto esposto si può avere nel caso di una simula- zione di carattere economico; se si sceglie di studiare un distretto industriale, si ottiene che lo sciame è composto dalle aziende che compongono il distretto e ogni azienda rappresenta un agente con un proprio comportamento. Ma si può raggiungere un livello di dettaglio maggiore del sistema economico se si afferma che ogni impresa appartenente al distretto è anch’essa uno sciame:
infatti può essere composta da agenti che rappresentano, per esempio, le uni- tà produttive, gli impiegati e gli operai, e ha un calendario interno distinto da quello del modello generale. Nel caso si volesse studiare il comportamento dei singoli agenti all’interno di un’impresa, per analizzare ad esempio il ruolo dell’imprenditore, si potrebbe creare uno sciame che lo rappresenta, forma- to da agenti che determinano il suo comportamento generale e un orologio interno che indica gli eventi da svolgere. Si creerebbe in questo modo una gerarchia di modelli interdipendenti tra loro.
Per effettuare una simulazione in qualsiasi ambito di ricerca occorre por- tare a termine una serie di azioni che possono essere riassunte in uno schema generale:
• l’utilizzatore deve definire gli agenti e stabilire le regole che definiscono il loro comportamento; inoltre deve decidere quali relazioni intercorrono tra loro;
• in seguito deve inserire tutti gli agenti all’interno di uno sciame, descri- vendo un elenco di attività da svolgere con l’indicazione dei tempi in cui devono essere portate a termine;
• il ricercatore deve anche definire quali strumenti utilizzare per osservare l’andamento della simulazione (grafici, statistiche, ...); essi sono messi a disposizione dalle librerie di Swarm e sono anch’essi agenti appartenenti ad uno sciame, detto observer. Il motivo del ricorso a questa opzione dipende dal fatto che il fine ultimo dei ricercatori non è far funzionare il modello, ma analizzare la nascita e l’evoluzione dei fenomeni complessi nei mondi da loro costruiti;
• dopo aver definito e combinato il model e l’observer, l’apparato di simulazione è completo ed è possibile far ‘‘funzionare” l’universo creato.
Dallo schema proposto risalta il fatto che la struttura di Swarm è com- posta da due livelli differenti (Terna, 1998): al primo livello si ha il modello (model), che rappresenta il fenomeno che si vuole analizzare, al secondo l’os- servatore, (observer) che considera il modello come un unico oggetto con il quale interagisce per ottenere i risultati richiesti dagli strumenti che il ricercatore utilizza per analizzare il mondo creato.
Riprendendo l’esempio precedente sul distretto industriale, nella Figu- ra 2.2 è mostrato un esempio sintetico della struttura della simulazione. Nel model sono presenti gli agenti, cioè le industrie, e un gestore del tempo che contiene le azioni da svolgere; nell’observer vi sono altri tipi di agenti, vale a dire gli strumenti di controllo del modello, e un altro gestore del tempo. Sia il model sia l’observer sono sciami.
Figura 2.2: Struttura di una simulazione
2.1.2 Caratteristiche principali
La struttura di Swarm è realizzata con il linguaggio di programmazione ad oggetti Objective C. Questo stile di programmazione consiste nella definizione