3.4 Bacterial Foraging Optimization
3.4.1 BFO per la risoluzione di problemi di ottimizzazione di portafoglio
Da un punto di vista di ottimizzazione di portafoglio, ogni singolo batterio artificiale rappresenta un portafoglio, ovvero un vettore contenente i pesi attribuiti a ciascun titolo. La determinazione della soluzione ottima mediante tale algoritmo puΓ² essere definita come la combinazione di 3 operazioni:
1. Chemiotassi: il principale compito di tale step Γ¨ quello di cercare migliori soluzioni attraverso i movimenti (avanzamento e capovolgimento) dei batteri. Durante uno step di chemiotassi ogni batterio esegue prima un capovolgimento e, successivamente, un certo numero di avanzamenti. Eseguendo una moltitudine di tali step, i batteri artificiali producono nuove soluzioni attraverso lβaumento e la diminuzione dei pesi associati ad ogni
π½(π, π + 1, π, π) < π½πππ π‘?
SI NO
Settare
π = ππ
Settare π½πππ π‘= π½(π, π + 1, π, π). Eseguire lo step di
73
titolo. In altri termini, considerando una popolazione di portafogli B, lβalgoritmo aggiusta le quote (π₯π₯ππ) attribuite ad ogni titolo componente il portafoglio mediante la duplice fase di capovolgimento ed avanzamento. Dopo aver generato una nuova soluzione (ππ₯π₯ππ), lβalgoritmo la valuta mediante una determinata funzione obiettivo e la sostituisce alla precedente nel caso fosse migliore. Lβequazione di chemiotassi puΓ² essere definita nel seguente modo:
ππ₯π₯ππ = π₯π₯πππ‘ + πΆ(π) β βπ·π(π), βπ
π₯π₯πππ‘+1 = {ππ₯π₯ππ π π π(ππ π) < π(π π) π₯π₯πππ‘ ππ πππ π ππππ‘πππππ βπ dove:
- π(π π) e π(ππ π) sono rispettivamente il valore della funzione obiettivo della soluzione corrente e della nuova soluzione;
- πΆ(π) Γ¨ un parametro che rappresenta lβampiezza dello step di chemiotassi dellβi-esimo batterio;
- βπ·π(π) Γ¨ un numero casuale (β [β1,1]) che definisce lβammontare del cambiamento di direzione dellβi-esimo batterio dovuto alla fase di capovolgimento;
- π‘ Γ¨ il numero degli step di chemiotassi.
Il parametro πΆ(π) differisce sulla base della tipologia dello step di chemiotassi: πΆπ‘(π) indica la dimensione dello step di capovolgimento e πΆπ (π)
si riferisce alla dimensione di uno step di avanzamento. Ogni fase di chemiotassi include un capovolgimento e ππ avanzamenti. Per rendere
lβalgoritmo piΓΉ efficiente, tutti i batteri utilizzano un meccanismo di autoverifica per controllare i due movimenti che lo caratterizzano. Se un capovolgimento (o un avanzamento) non produce un risultato migliore, il batterio ne esegue immediatamente un altro per cambiare la sua direzione. Quindi, per ogni asset selezionato, un batterio prima realizza un movimento di capovolgimento per determinare il nuovo valore di βπ·π(π), poi calcola il
nuovo valore di π₯π₯ππ (ππ₯π₯ππ) mediante lβequazione precedente. Quando il valore di π₯π₯ππ diventa negativo (ππ₯π₯ππ < 0) lβalgoritmo compie una procedura di riparazione, nella quale lβasset i Γ¨ sostituito con un asset non
74
selezionato. Nel momento in cui il capovolgimento fornisce un risultato migliore, prima si rimpiazza la soluzione corrente π π con la nuova soluzione ππ π, poi si eseguono ππ avanzamenti. Tuttavia, se il risultato derivante dal capovolgimento non Γ¨ accettabile, il batterio deve fare nuovi capovolgimenti finchΓ© non trova una soluzione migliore o fino a quando non viene raggiunto il numero massimo di step di chemiotassi (ππ ) durante uno step di
riproduzione. Dopo unβoperazione di capovolgimento eseguita con successo, il batterio effettua i movimenti di avanzamento, che possono essere di un numero di iterazioni inferiore a ππ nel caso in cui non fosse piΓΉ possibile
migliorare ulteriormente la soluzione. In ogni step di avanzamento, si determina un nuovo valore di π₯π₯ππ utilizzando lo stesso βπ·π(π) ricavato dal precedente capovolgimento. Come nel caso precedente, se tale step offre una soluzione migliore, la BFO esegue unβoperazione di sostituzione.
2. Riproduzione: dopo ππ fasi di chemiotassi si esegue uno step di riproduzione, che ha il compito principale di generare eventuali migliori soluzioni per aumentare efficientemente la qualitΓ di tutta la popolazione. Il primo passo di tale step Γ¨ quello di classificare i membri della popolazione in ordine ascendente sulla base dei valori delle loro funzioni obiettivo. La prima metΓ della popolazione Γ¨ selezionata per la riproduzione mentre la seconda metΓ Γ¨ scartata. Da ogni membro selezionato si ottengono due nuovi batteri, che vengono piazzati nella stessa posizione del primo: in questo modo la dimensione della popolazione non cambia. Dopo uno step di riproduzione si eseguono altre ππ fasi di chemiotassi. La BFO ripete iterativamente questβultimo ciclo finchΓ© il numero degli step di riproduzione non raggiunge πππ.
3. Eliminazione-dispersione: dopo πππ fasi di riproduzione si esegue uno step di eliminazione-dispersione, che ha il compito principale di incrementare la potenziale diversitΓ della popolazione. Ogni asset componente una determinata soluzione ha una probabilitΓ pari a πππ di subire tale step, ovvero di essere eliminato e rimpiazzato da un asset non selezionato precedentemente. Dopo questa operazione, la BFO esegue πππ step di riproduzione, dove in ognuno dei quali vengono realizzati ππ step di
75
chemiotassi in modo ripetitivo. Questo ciclo viene ripetuto piΓΉ volte finchΓ© il numero delle fasi di eliminazione-dispersione non raggiunge il valore πππ. In conclusione, si presenta uno pseudo-codice della BFO per la risoluzione di un problema di ottimizzazione di portafoglio (Kao e Cheng, 2013).
Pseudo-codice BFO
Inizializzazione in modo casuale di tutti i batteri
Calcola ππ, π = 1, β¦ , π΅ βCalcola il valore della funzione obiettivo di ogni batterioβ
per πππ = 1 fino a πππ fai βπππ: numero massimo di fasi di eliminazione-dispersioneβ
per πππ = 1 fino a πππ fai βπππ: numero massimo di fasi di riproduzioneβ
per ππ = 1 fino a ππ fai βππ: numero massimo di fasi di chemiotassiβ βstep di chemiotassiβ
per π = 1 fino a B fai
per π = 1 fino a K fai βK: numero dei titoli selezionatiβ
esegui movimento di capovolgimento fine ciclo per
Calcola πππππππΆππππ£ππππππππ‘π
se πππππππΆππππ£ππππππππ‘π Γ¨ migliore allora
muovi il batterio b sulla nuova posizione
ππ = πππππππΆππππ£ππππππππ‘π
π» = π» βͺ π π βH: insieme di tutte le soluzioni migliorateβ
fine se
se πππππππΆππππ£ππππππππ‘π Γ¨ migliore allora βinizia lo step di avanzamentoβ
ππ = 0 βππ : numero di iterazione degli step di avanzamentoβ
fai
per π = 1 fino a K fai esegui step di avanzamento fine ciclo per
Calcola πππππππ΄π£πππ§πππππ‘π
se πππππππ΄π£πππ§πππππ‘π Γ¨ migliore allora
muovi il batterio b sulla nuova posizione
ππ= πππππππ΄π£πππ§πππππ‘π
π» = π» βͺ π π
fine se
ππ = ππ + 1
mentre (πππππππ΄π£πππ§πππππ‘π non Γ¨ migliore oppure π
π > ππ ) βππ : numero
massimo di fasi di avanzamentoβ fine se βfermare gli step di avanzamentoβ
fine ciclo per βfine di uno step di chemiotassiβ aggiorna πππππππππβππππππ e π ππππππππβππππππ
fine ciclo per βfine di ππ step di chemiotassiβ
76
ordina i batteri in base al valore di ππ βordina i batteri in ordine ascendenteβ
elimina i batteri nella seconda metΓ della popolazione riproduci i batteri nella prima metΓ della popolazione posiziona i batteri nella stessa zona dei loro genitori
fine ciclo per βfine di πππ step di riproduzioneβ βstep di eliminazione-dispersioneβ
per π = 1 fino a B fai
per π = 1 fino a K fai
se (π = ππππππ(0,1) < πππ) allora βπππ: probabilitΓ di eliminazione-
dispersioneβ esegui step di eliminazione-dispersione
fine ciclo per
Calcola πππππππΈβπ·
se πππππππΈβπ· Γ¨ migliore allora
muovi il batterio b sulla nuova posizione
ππ= ππ
πππππΈβπ·
π» = π» βͺ π π
fine se
fine ciclo per βfine di uno step di eliminazione-dispersioneβ
aggiorna πππππππππβππππππ e π ππππππππβππππππ
fine ciclo per βfine di πππ step di eliminazione-dispersioneβ registra il miglior batterio βfine del ciclo della BFOβ
77
CAPITOLO 4
IL CASO DELTAHEDGE
In questo capitolo verrΓ formulato il problema di ottimizzazione vincolata avanzato da DeltaHedge. Nella prima parte si presenterΓ nel dettaglio la societΓ , per poi definire i principali strumenti finanziari mediante i quali opera, ovvero i futures. In seguito, si tradurranno in termini quantitativi le richieste avanzate da DeltaHedge per la determinazione dellβallocazione ottima allβinterno del programma Styx, ottenendo, in questo modo, un problema di minimizzazione vincolata. Infine, dato che le metaeuristiche presentate nel capitolo precedente sono applicabili solamente a problemi di ottimizzazione libera, si riformulerΓ il problema di selezione iniziale in forma non vincolata attraverso il metodo delle penalitΓ esatte.