• Non ci sono risultati.

Descrizione analitica dei vettori randomizzati e stesura dei codici

4. APPLICAZIONE DEL MODELLO EVOLUZIONISTICO IN MATLAB ®

4.2 Descrizione analitica dell‟implementazione del modello Brennan-Lo in Matlab e della

4.2.2 Descrizione analitica dei vettori randomizzati e stesura dei codici

L‟elaborazione dei vettori che simulano il tempo meteorologico e le scelte degli individui richiedono una spiegazione più approfondita poiché le scelte analitiche attuate in questa implementazione non sono descritte nello studio che tratta del modello di Brennan-Lo [2012].

Per simulare il tempo meteorologico che si verifica nell‟ecosistema analizzato è adottata una strategia di formalizzazione statistica che rende realistica la modalità con cui si susseguono periodi di sole in alternanza a periodi di pioggia. Per concretizzare la casualità del tempo meteorologico si applica a ciascuna componente del vettore colonna 𝑟 𝑟 ( ) la definizione di variabile binomiale randomizzata (comando

129 Matlab: binornd) modificando il vettore in questo modo 𝑟( ) 𝑟 ( ) (con ( ) per ). La formalizzazione di questo vettore indica che all‟interno di un vettore colonna di zeri, compare in modo casuale il numero , con una probabilità . Dal punto di vista qualitativo, il vettore generato, contenente 35 righe, sarà composto da (che significa tempo soleggiato) con probabilità (o equivalentemente frequenza ) e da (che significa tempo piovoso) con probabilità (o frequenza ), i quali si alternano in modo casuale, randomizzato. Ad esempio, se il vettore r fosse composto di 100 righe, è probabile che ci sarebbero valori in quantità pari a 75 e valori in quantità pari a 25. Il vettore generato, che è il medesimo per ogni computazione, è raffigurato nella Tabella 4.1. Il procedimento che descrive la casualità nel tempo meteorologico non é analiticamente descritto nella simulazione di Brennan- Lo.

In modo analogo, modificando e completando la definizione formale del precedente vettore 𝑟 ( ( ) ), è elaborato il vettore ( ) 𝑟 ( 𝑓) utilizzato con lo scopo di generare la casualità nel processo decisionale in base a cui gli individui scelgono dove costruire la propria abitazione. Anche in questo caso il vettore, per mezzo dell‟inserimento della distribuzione binomiale, simula la scelta di ogni individuo in modo randomizzato tenendo comunque conto del valore assegnato alla probabilità che si effettui la scelta di costruire a valle, cioè 𝑓. Se l‟individuo effettua la scelta , cioè costruire a valle, il codice attribuisce il valore alla riga relativa alla generazione cui appartiene l‟individuo; infatti alla serie di zeri, si alternano gli in base al parametro 𝑓, che si modifica in ogni computazione del processo evoluzionistico della specie. Confrontando questa costruzione del vettore che simula un‟accettabile casualità del tempo meteorologico attraverso una variabile binomiale con l‟applicazione sperimentale condotta da Brennan e Lo [2012], si può notare, nel cap.3, come i due autori non illustrino le modalità con cui simulano il susseguirsi alternato di giorni soleggiati e piovosi. Tuttavia, analizzando i dati, in particolare i dati della colonna 𝑓 , riportati nella Tabella 3.1 (tabella contenente i dati outcome delle computazioni svolte dai due autori) nella quale si intuisce che si verifica un tempo soleggiato fino al periodo . Infatti, poiché la popolazione continua a riprodursi generazione dopo generazione in modo esponenziale e la totalità degli individui costruisce la propria abitazione a valle, se ci fosse un periodo caratterizzato da un meteo piovoso, l‟intera popolazione si

130 estinguerebbe, e nella serie numerica comparirebbe il numero 0. Ciò si verifica solamente alla 14-esima generazione, quando l‟intera popolazione non si riproduce e si estingue: dati gli altri parametri, l‟unica motivazione è che per quel periodo si è verificato un meteo piovoso, dopo 13 periodi soleggiati. Questo fatto è interpretabile come un‟ipotetica stagionalità implicita, presente nell‟applicazione sperimentale del modello; ulteriori considerazioni in merito vengono fatte in seguito, quando si tratterà il modello evoluzionistico interpretato con riferimento ai mercati finanziari.

Di seguito si riporta uno schema che descrive le modalità causa-effetto con cui si relazionano le componenti riga dei vettori 𝑟 e , (contenti le cifre 0 e 1 in base a quanto detto sopra), con la riproduttività dell‟individuo (valore 3) o la sua estinzione (valore 0), associate alla scelta fatta (valley/plateau) e al tempo meteorologico che si verifica.

valley plateau

sole (1; 1) (1; 0) xv1 = 3 xp1 = 0

pioggia (0; 1) (0; 0) xv2 = 0 xp2 = 3

Ad esempio, si verifica un giorno di sole (valore estratto dal vettore 𝑟 è pari a 1) e l‟individuo sceglie di costruire a valle (valore estratto dal vettore è pari a1), e la coppia numerica che descrive questa situazione è quella in alto a destra ( ) allora il successo riproduttivo di chi costruisce a valle è pari a 3.

131

Tabella 4.1 Simulazione del vettore r che descrive il tempo meteorologico.

I valori all‟interno del vettore colonna r descrivono il tempo meteorologico dell‟ecosistema analizzato per i 35 periodi (o generazioni): il valore 1 corrisponde alla presenza di sole (associato alla probabilità p); il valore 0 indica un tempo piovoso (con probabilità 1-p).

Date tutte le variabili sopra-descritte e le modifiche statistiche apportate per poter simulare la casualità del fenomeno ambientale del tempo meteorologico e quella del

Generazione r = vettore tempo meteorologico 1 0 2 0 3 1 4 0 5 1 6 1 7 1 8 1 9 0 10 0 11 1 12 0 13 0 14 1 15 0 16 1 17 1 18 0 19 0 20 0 21 1 22 1 23 0 24 0 25 1 26 0 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1

132 processo decisionale degli individui, entrambi associati ad una determinata probabilità, è possibile formulare un primo codice Matlab, riportato in Appendice B.

Al completamento della stesura del codice sono effettuate delle singole computazioni (con il vettore colonna casuale che descrive il tempo meteorologico sempre nella medesima casualità5), di volta in volta cambiando il valore iniziale del parametro 𝑓. Si ricorda che i valori prescelti che vengono attribuiti ad 𝑓 modificandoli in ogni shot computativo, con l‟obiettivo di rendere più esaustiva la simulazione del modello e del processo evoluzionistico rispetto a quella illustrata nel precedente capitolo, sono [0, 0.05, 0.10 ,0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1]. Le computazioni sono singolarmente effettuate utilizzando due differenti computer caratterizzati da processori e memorie RAM6 sufficientemente efficaci. Tuttavia, aumentando di volta in volta il valore attribuito alla probabilità che gli individui scelgano di costruire a valle, cioè 𝑓, i calcoli processati dal software risultano troppo complessi e nonché la macchina più potente non è dotata di sufficiente potenza computazionale e memoria per completare shot computativi impegnativi. In particolare, ciò che richiede una maggiore potenza computativa è il calcolo probabilistico dell‟estrazione delle variabili binomiali contenute nel vettore ( ) 𝑟 ( 𝑓) (vettore ottenuto da 𝑟 ( ( ) ), per ( ) con ). Ciò implica che Matlab simuli un‟estrazione binomiale per ogni singolo individuo che si riproduce effettuando la scelta di costruire a valle con probabilità 𝑓. Poiché la popolazione si riproduce di prole in prole (di in ) in modo esponenziale, le estrazioni probabilistiche binomiali da effettuare diventano moltissime ed alquanto complesse. Per gestire questo aspetto che renderebbe impossibile l‟intera simulazione del modello, si

5 Effettuando le computazioni singolarmente, „chiudendo‟ il programma per ognuna di esse, il vettore

casuale del meteo risultava sempre lo stesso, nell‟alternanza tra 1 e 0.

6 Un primo computer utilizzato possiede un sistema con le seguenti caratteristiche tecniche:

Edizione: Windows 7 Home Premium, Service Pack 1 Produttore: ASUSTeK Computer Inc.

Processore: Intel® Core™ i7-2670QM CPU @ 2.20GHz 2.20 GHz Memoria installata (RAM): 8,00 GB

Tipo sistema: Sistema operativo a 64 bit.

Per potenziare la capacità computativa è stato utilizzato un secondo computer, con le seguenti tecnicità: Edizione: Windows 7 Professional, Service Pack 1

Produttore: Fujitsu Technology Solutions

Processore: Intel® Core™ i7-4770 CPU @ 3.40GHz 3.40GHz Memoria installata (RAM): 16,0 GB

133 procede alla modifica della formalizzazione del vettore che genera la casualità del processo decisionale compiuto dagli individui. Le modifiche che si devono attuare per rendete il codice Matlab facilmente computabile sono le seguenti:

1. trasformare il vettore colonna „predisposto‟ 𝑟 ( ( ) ) nel vettore 𝑟 ( ) ponendo in precedenza, identicamente al codice precedente, l‟uguaglianza cioè il numero delle generazioni calcolate;

2. eliminare il comando superfluo ( ) che mette in relazione il parametro indicizzatore , mantenendo comunque quello relativo al parametro che descrive l‟ordine progressivo temporale delle generazioni da 1 a T (cioè );

3. infine, dopo aver modificato la stesura del codice secondo il punto 2., trasformare il vettore ( ) 𝑟 ( 𝑓) nel vettore ( ) 𝑟 ( ( ) 𝑓).

Ai fini qualitativi e di analisi descrittiva del modello, queste semplificazioni non apportano alcuna modifica, poiché la descrizione e il procedimento di base del processo evoluzionistico generazionale non viene variato.

Attuando queste modifiche, si riduce drasticamente la quantità e la complessità della computazione delle estrazioni binomiali, poiché esse vengono effettuate per la numerosità totale degli individui ( ) appartenenti alla -esima generazione, cioè oer l‟intera collettività, e non più per ogni singolo individuo.

Infine, per calcolare il totale degli individui di ciascuna prole simulata ( ( )), successiva a quella che si riproduce ( ( )) decidendo dove costruire (per ), non si utilizza più la formula contenuta nell‟espressione ( ) bensì se ne elabora un‟altra:

( ) { ( ) 𝑟( ) [( ( ) ( )) ( 𝑟( ))]} ( ) in cui ( ) e ( ( )) indicano dove costruiscono, in modo complessivo, gli individui della popolazione, e rappresentano i due successi riproduttivi e 𝑟( ) e il complemento ( 𝑟( )) indicano il tempo meteorologico che si verifica. In questa espressione non si utilizza più l‟operatore sommatoria poiché il vettore 𝑟( ) e il suo complemento a 1 contengono già le numerosità totali degli individui differenziati secondo l‟alternativa scelta (costruire a valle o in altopiano), simulata in base alla

134 probabilità assegnata al parametro 𝑓 e non occorre più fare la sommatoria per tutti i singoli individui, come implicava il codice precedente, non ottimizzato.

Tutte queste modifiche sono contenute nella formulazione ottimizzata del codice (v. Appendice B), che rende il modello meno complesso, rispetto a quanto desiderato, nella sua computazione e maggiormente utilizzabile per condurre la simulazione.

Il codice Matlab che viene utilizzato per simulare il modello evoluzionistico è quello espresso nella formulazione ottimizzata.

Come già anticipato, questa originale applicazione del modello di Brennan-Lo presenta delle estensioni rispetto alla simulazione sperimentale condotta dagli autori e dettagliatamente descritta nel cap. 3. Le varie simulazioni effettuate, complete dei 21 valori attribuiti ad 𝑓7 (nel modello Brennan-Lo i valori sono 5), sono differenti nei parametri di base mantenuti costanti. Oltre alla simulazione proposta dagli autori con ( ) , e ne vengono fatte altre, ponendo:

1. e ; 2. e ; 3. e ; 4. e .

Tuttavia, assumendo la numerosità della prole di un individuo pari a e , sebbene venga adoperato il modello ottimizzato, i due computer non sono sufficientemente potenti e (in particolare per 𝑓 con e per 𝑓 con ) Matlab interrompe il suo funzionamento8

.

In aggiunta, per una valore raddoppiato di ( ) , si implementano altre 3 simulazioni (con le varie applicazioni degli stessi parametri , ). Gli scenari totali che si ottengono sono sei: i due più interessanti, cioè quelli con le numerosità della prole pari a , sono dettagliatamente descritti successivamente mentre gli outcome numerici delle simulazioni con numerosità della prole ridotta a e ( , ) sono riportati in Appendice E.

Nel prossimo paragrafo vengono trattati tutti i risultati provenienti da queste simulazioni del medesimo modello evoluzionistico, conducendo l‟analisi dei dati soprattutto per

7

Per ciascuna simulazione del modello si considerano i seguenti valori per 𝑓 [0, 0.05, 0.10 ,0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1], corrispondenti a 21 computazioni.

8

Gli outcome generazionali relativi ai primi valori di 𝑓 e i successivi messaggi di “errore” di interruzione della computazione in Matlab sono riportati in Appendice E.

135 mezzo di grafici, e si mettono in evidenza le principali differenze rispetto ai risultati ottenuti dalla simulazione sperimentale condotta da Brennan e Lo.