Algoritmi genetici (1 Viewer)

Skarso

Forumer attivo
DA WIKIPEDIA : “L'algoritmo genetico è un algoritmo di ottimizzazione e appartiene ad una particolare classe di algoritmi utilizzati in diversi campi, tra cui l'intelligenza artificiale. È un metodo euristico di ricerca ed ottimizzazione, ispirato al principio della selezione naturale di Charles Darwin che regola l'evoluzione biologica.
Il nome deriva dal fatto che i suoi primi pionieri si ispirarono alla natura e alla genetica, branca della biologia.
Gli algoritmi genetici sono applicabili alla risoluzione di un'ampia varietà di problemi d'ottimizzazione non indicati per gli algoritmi classici, compresi quelli in cui la funzione obiettivo è discontinua, non derivabile, stocastica, o fortemente non lineare
Un tipico algoritmo genetico parte da un certo numero di possibili soluzioni (individui) chiamate popolazione e provvede a farle evolvere nel corso dell'esecuzione: a ciascuna iterazione, esso opera una selezione di individui della popolazione corrente, impiegandoli per generare nuovi elementi della popolazione stessa, che andranno a sostituire un pari numero d'individui già presenti, e a costituire in tal modo una nuova popolazione per l'iterazione (o generazione) seguente. Tale successione di generazioni evolve verso una soluzione ottimale (locale o globale) del problema assegnato.
La loro evoluzione viene ottenuta attraverso una parziale ricombinazione delle soluzioni, ogni individuo trasmette parte del suo patrimonio genetico ai propri discendenti, e l'introduzione di mutazioni casuali nella popolazione di partenza, sporadicamente quindi nascono individui con caratteristiche non comprese tra quelle presenti nel corredo genetico della specie originaria. La mutazione serve, in genere, per inserire un po' di caos tra le soluzioni ed evitare che si cada in un ottimo locale”

insomma gli Algoritmi Genetici ( GA ) sono anche essi “APPROSSIMATORI UNIVERSALI” quindi utilissimi x trovare soluzioni nei campi più disparati
x maggiori spiegazioni si rimanda all’ ampio materiale reperibile in rete
i GA possono essere utili anche nello sviluppo dei TS ? secondo me sì, soprattutto nella stima ( ex-ante ) dei parametri quando questi sono in numero > 1
molto probabilmente interverranno sapientoni ed espertoni ( in realtà come al solito disinformati sull’ argomento oggetto del thread . . . :D ) che si affretteranno ad affermare che invece i GA non servono a un tubbo, bla bla bla etc
quindi prima di proseguire nel thread vorrei sapere se invece c’ è qualche isolato lettore interessato a saperne di più e a discutere sul loro eventuale utilizzo nei TS . . . ;)
 

ender85

Forumer attivo
Primo iscritto. Pieno supporto, unico giudice il mercato (come al solito:D).
Ricordati che gli "esperti" vogliono vincere il nobel non guadagnare in borsa, altrimenti non si spiegherebbe il loro capital gain :up:
 

Skarso

Forumer attivo
Primo iscritto. Pieno supporto, unico giudice il mercato (come al solito:D).


uh . . . questa è una buona notizia, un lettore che potrebbe replicare il codice in qualche linguaggio simil-pacco in modo da controllare l’ esattezza . . . :)
se aderiscono un altro paio di lettori interessati posso provare a spiegare un possibile utilizzo, sempre con la speranza che arrivi qualche suggerimento utile . . . ;)
 

f4f

翠鸟科
due

spero due bastino, ho cmq amici che si iscrivono se necessario :)

non riesco ad immaginare come collegare i soft ''AT oriented'' ai GA :-?:-?
ferma restando che ne so pochissimo... anni fa li guardai appena e poi scelsi si usare l'esperienza per fare quello che otterrei coi i GA
credo ... :help: son qui per imparare :)
 

Skarso

Forumer attivo
due

spero due bastino, ho cmq amici che si iscrivono se necessario :)

non riesco ad immaginare come collegare i soft ''AT oriented'' ai GA :-?:-?


OK, pochi ma buoni . . . ;)
beh riguardo l ‘ AT i GA potrebbero scegliere quale indicatore, ”figura”, “pattern” ha funzionato meglio in passato oppure il time span migliore . . .
però il problema con l’ AT imo è che non è adatta a cogliere eventuali correlazioni seriali e quindi finisce inevitabilmente col tradare il noise . . . :-o
 

Skarso

Forumer attivo
quando c’ è un solo parametro da stimare, ove non sia possibile individuarlo dall’ esperienza, si può facilmente ricorrere ad un semplice loop del tipo FOR . . . NEXT generalmente disponibile nei comuni linguaggi di programmazione
quando invece ci sono più parametri si può ancora ricorrere a dei loop nidificati ma l’ elaborazione ed i tempi divengono spesso complessi
ecco allora che potrebbe tornare utile il ricorso ad un Algoritmo Genetico ( GA ) che partendo da valori casuali converge in abbastanza breve tempo verso una soluzione ottimale
sto parlando di parametri ma si potrebbero cercare in questo modo anche delle regole
la prima operazione da fare è quella di tradurre ciò che si sta cercando di trovare in stringhe di caratteri generalmente binari ( cioè di valore 0 o 1 ) dette “cromosomi”
a questo punto si creano un certo numeri di individui ( o cromosomi ) in modo casuale e poi si applicano al problema da calcolare
i migliori di questi individui vengono scelti per formare una nuova generazione attraverso in genere 2 tipi di operazione:
mutazione à ovvero si cambia casualmente 1 carattere ( gene ) da 0 a 1 o viceversa
crossover à ovvero un muovo individuo avrà parte dei cromosomi degli individui “genitori”
le operazioni si ripetono x un certo numero di cicli finchè viene individuata una soluzione soddisfacente cioè che si avvicina molto e può anche arrivare a coincidere con una predeterminata “fitness function”
nel caso di un TS la fitness function potrebbe essere ad es l’ utile conseguito oppure un indice di performance etc
 

f4f

翠鸟科
OK, pochi ma buoni . . . ;)
beh riguardo l ‘ AT i GA potrebbero scegliere quale indicatore, ”figura”, “pattern” ha funzionato meglio in passato oppure il time span migliore . . .
però il problema con l’ AT imo è che non è adatta a cogliere eventuali correlazioni seriali e quindi finisce inevitabilmente col tradare il noise . . . :-o


alt ! pochi deve bastare
se 'buoni' , io son fuori :rolleyes:

senza andare OT ( spero) , la selezione di una coppia di parametri si fa su un criterio a 'superficie'
mi spiego: trovo una coppia che funziona e cerco piccole variazioni dei due parametri per vedere quanto è ampio l'intorno che sia profittevole ... forse meno, forse più profittevole, ma sempre una area
più grande l'area, più robusta la coppia di dati
se l'area è piccola ( ad es. formata al limite da una coppia coltanto) il sistema è fragilissimo
quindi, butto delle coppie a caso e poi esamino solo gli intorni delle coppie 'molto profittevoli'
la logica bidimensionale qui esposta può essere facilmente estesa a universi n-dimensionali, se uso un sistema vettoriale... facilmente dal punto di vista logico, ma è pesante dal punto di vista operazionale ( tempo macchina)
a quel punto si deve sezionare il ts nei suoi pezzi logici e scegliere quelli omogenei e ottimizzare per gruppi

mi sono spiegato male , :help: mi scuso
 

Aragorn

Forumer storico
Pure io interessato. Mi chiedevo se però c'era qualche relazione con le reti neurali, avevo letto somewhere che queste non offrono grandi risultati in ambito finanziario, ma potrei sbagliarmi. Eventualmente corriggetemi ;)
 

Skarso

Forumer attivo
Pure io interessato. Mi chiedevo se però c'era qualche relazione con le reti neurali, avevo letto somewhere che queste non offrono grandi risultati in ambito finanziario, ma potrei sbagliarmi. Eventualmente corriggetemi ;)

gli Algoritmi Genetici ( GA )non hanno nulla a che vedere con le NN o Reti Neuronali ( preferisco chiamarle così . . . )
però possono essere utilizzati efficacemente per il loro addestramento al posto dell’ algoritmo di “ backpropagation” ;)
 

Users who are viewing this thread

Alto