• Non ci sono risultati.

2. Particle Swarm Optimization e Rough Set Theory

2.1 Premessa

All’interno di questo capitolo viene fornita un’analisi delle due principali metodologie che verranno utilizzate nel corso dello svolgimento dell’elaborato, in modo tale da fornire una introduzione sotto il profilo teorico di quanto verrà poi svolto nella parte pratica dell’applicazione. Gli approcci che consentiranno la realizzazione di un trading system su più titoli, sono principalmente di due tipi: il primo è dato da una particolare forma di metaeuristica, che prende il nome di “Particle Swarm Optimization” e il secondo strumento utile è dato dalla “Rough Set Theory”.

Figura 2: Schema dei differenti approcci per risolvere un problema di ottimizzazione

Come illustrato dalla Figura 2, per poter risolvere un problema di ottimizzazione come quello che in seguito verrà esposto, sono presenti due alternative pratiche: la prima consiste nel determinare perfettamente il risultato ottimale, tramite un approccio per così dire “matematico” che non si presta ad errori o interpretazioni, tanto che viene comunemente indicato con il nome di “metodo esatto”; la seconda modalità, che consiste nei cosiddetti “metodi euristici”, invece prevede una strada differente dal calcolo ottimale ed esatto, dal momento che quest’ultimo, per le ragioni che vedremo, non è sempre semplice da perseguire. All’interno della prima categoria è possibile far rientrare l’insieme dei metodi che nel concreto forniscono una soluzione allo specifico problema di ottimizzazione individuando, di volta in volta, la migliore tra le soluzioni possibili. Una caratteristica comune a tutti i metodi esatti è data dalla loro scarsa flessibilità, dal momento che gli algoritmi sviluppati per la risoluzione di questo tipo di problematiche non sono facilmente adattabili a tutte le possibili varianti che si possono manifestare: essi infatti sono stati sviluppati per un problema specifico e potranno

funzionare al meglio esclusivamente all’interno di quel contesto; tuttavia anche una minima variazione nel framework implicherebbe necessariamente la riscrittura di un nuovo algoritmo che tenga conto delle variazioni intercorse. In aggiunta, va tenuto in considerazione anche l’elevato grado di competenze matematiche e statistiche richieste ai fini dello sviluppo di tali modelli, rappresentando così uno scoglio difficilmente superabile dalla maggior parte degli addetti ai lavori, ma che si dimostra assolutamente necessario per la determinazione del risultato ottimo.

Viste le difficoltà applicative e computazionali caratterizzanti i metodi esatti, nel corso degli anni si è assistito al diffondersi dei processi euristici, portando allo sviluppo dei cosiddetti “algoritmi euristici”: la qualità migliore di tali approcci consiste nel fornire all’operatore risultati praticamente ottimali (sebbene non perfettamente ottimali in termini matematici) in tempistiche nettamente inferiori rispetto ai metodi esatti. Dunque, diversamente dall’alternativa rappresentata dai metodi esatti, questo approccio si dimostra molto più flessibile, riuscendo così ad individuare una risposta plausibile anche per quei problemi che vengono comunemente indicati con la dicitura NP-Hard32. Come avviene per i metodi esatti, è possibile individuare delle metodologie euristiche specifiche per la risoluzione di problemi di ottimizzazione, ma un tale approccio non si dimostra funzionale per il raggiungimento dei vari obiettivi, vista l’onerosità del lavoro di volta in volta effettuato nello specifico, quando invece la principale caratteristica di questi metodi consiste proprio nell’adottare un approccio “generale” che si presta molto bene all’utilizzo in contesti differenti.

Sotto il profilo teorico, le euristiche (che scoprono qualcosa tramite il metodo “trial and error”, letteralmente “tentativi ed errori”) possono essere catalogate in tre famiglie a seconda delle peculiarità alla base di ognuna di esse, sebbene l’enorme quantità di tecniche presenti impedisca la creazione di una reale classificazione completa e riconosciuta a livello globale.

• “Euristiche costruttive”: l’imput iniziale di questa classe di euristiche è dato da un insieme vuoto, che in questo contesto sta ad indicare l’insieme delle soluzioni di partenza. Tramite l’utilizzo di questi algoritmi è possibile andare a riempire man mano l’insieme di partenza, avvicinandosi sempre più alla costruzione di una soluzione ottimale, grazie all’aggiunta di specifici elementi in seguito allo

32 NP-Hard è un acronimo che individua quella particolare categoria di problemi di difficile risoluzione,

svolgimento di ogni iterazione. Alcuni esempi di questo tipo possono essere individuati nei cosiddetti “algoritmi greedy33” e in quegli algoritmi sopra citati che vengono utilizzati servendosi di metodi esatti di ottimizzazione.

• “Euristiche di ricerca locale” (o “migliorative”): diversamente dalla famiglia precedente, questa prima tipologia di euristiche presenta come punto di partenza una sorta di soluzione approssimata iniziale, a partire dalla quale è possibile ricercare possibili risultati migliori nelle immediate vicinanze, sfruttando un procedimento iterativo di ricerca basato su tali algoritmi. Solitamente, il ricorso a questo tipo di tecnica fornisce soluzioni ottimali solamente a livello locale e non globale.

• “Iper-euristiche”: quest’ultima categoria rappresenta un tema ancora piuttosto innovativo, oggetto ancora oggi di ricerca. Tuttavia, a livello generale, vengono interpretate come un insieme di algoritmi che selezionano differenti procedure di ottimizzazione, in modo tale da renderle adatte, in maniera del tutto automatica, ad una molteplicità di problemi.

All’interno di questa ricerca continua ed iterativa della soluzione migliore, è presente un meccanismo di “stop”, il quale una volta soddisfatti certi criteri fa terminare le iterazioni, fornendo la risposta ottima tra tutte quelle generate nel corso del funzionamento dell’algoritmo. Nonostante il grado di flessibilità di queste tecniche sia nettamente superiore rispetto a quello dei metodi precedentemente descritti per i singoli problemi di ottimizzazione, si tratta in ogni caso di tecniche specifiche per la specifica tipologia di problema, rappresentando così lo stesso vincolo, seppur in forma minore, della categoria dei metodi esatti. Ciò significa, che ogni metodo è stato sviluppato per la risoluzione di un singolo problema piuttosto che per fornire risposte relativamente a problemi più generali. A tal riguardo, per risolvere questo limite di adattabilità e di flessibilità, negli ultimi anni si è assistito alla diffusione di una particolare classe di metodi all’interno della famiglia delle euristiche, denominata “Metaeuristiche”: questo insieme è stato realizzato sviluppando le tecniche di ricerca locale sopra enunciate e viene di seguito descritto nel paragrafo seguente.

33 Si tratta di un paradigma algoritmico, dove la ricerca del risultato ottimale viene svolta a livello

globale, tramite lo studio della soluzione più “golosa/aggressiva” di ogni fase di iterazione a livello locale.

Nel documento Evoluzione adattiva di un trading system (pagine 32-35)