Discussione sull’articolo "Algoritmi Genetici - È Facile!" - pagina 2

 
joo:

....

Ho pubblicato alcune interessanti funzioni di prova nel thread del forum MQL4 "Test Multivariable Multiextremal Function", una delle quali è presentata nell'articolo.

Se volete, potete provare a trovare gli estremi delle funzioni proposte utilizzando altri algoritmi di ottimizzazione diversi dal GA e pubblicare qui i risultati. Siete invitati a farlo. Sarà interessante per tutti e in primo luogo per me.

....

Ho visto il mio matcad preferito.

Nell'articolo sono riportate le cifre ...21,7 secondi contro 1,6e32 anni! Avete provato a risolvere lo stesso problema (problemi di prova) con matcad. Quanto è più veloce (più lento) di MQL5?

 
Prival :

Ho visto il mio mathcad preferito.

Nell'articolo ci sono delle cifre ... 21,7 secondi contro 1,6e32 anni! Avete provato a risolvere lo stesso problema (problemi di prova) usando matcad. Quanto è più veloce (più lento) di MQL5?

Sì, l'immagine proviene da matcad. È per il primo problema.

E le figure sono del secondo compito. Purtroppo non sono molto bravo con questo pacchetto matcad e non l'ho usato per risolvere il secondo problema. Anch'io, come voi, sono interessato a conoscere la risposta alla vostra domanda.

 

Per risolvere questo problema è necessaria la soluzione del secondo problema (la sua)

https://www.mql5.com/ru/forum/123072/page6#254964 (molto interessante thread tra l'altro).

Un tempo volevo (combinare questi due problemi) e calcolare, guardare, pensare, ma le mie mani come sempre non arrivavano (c'è poco tempo come sempre).

Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
  • www.mql5.com
Оптимальные значения SL и ТР ордеров для произвольной ТС. - MQL4 форум
 
Prival :

È solo che la soluzione del secondo compito (la sua) è necessaria per risolvere questo compito.

https://www.mql5.com/ru/forum/123072/page6#254964 (a proposito, un thread molto interessante)

Una volta volevo (combinare questi due problemi) e calcolare, guardare, pensare, ma come sempre non ho avuto il tempo (il tempo è breve come sempre).

Sì. Gli algoritmi euristici sono una manna dal cielo per i problemi che non hanno una soluzione analitica o quando la formalizzazione del problema è difficile.

La metà dei problemi, se non di più, di questo ramo, ad esempio, può essere risolta con l'aiuto di UGA. A proposito, è molto piacevole essere il distruttore di uno dei più famosi miti dei trader legati a ZZ (il secondo compito dell'articolo). :)

[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
  • www.mql5.com
[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - MQL4 форум
 

IMHO questo articolo è un grande contributo, ma il titolo sottovaluta il contenuto. Sospettavo di trovare una semplice introduzione a GA, ma ho una libreria già sviluppata con cui lavorare. Grazie!

 

Sulla salute! :)

PS Sì, e ancora. Se il mio articolo si chiamasse:"Gli algoritmi genetici sono molto difficili!", chi lo leggerebbe?)

Anche se non corrisponderebbe al vero. Tuttavia, i GA sono semplici anche se un po' impegnativi da giudicare. Come del resto tutto richiede un giudizio, anche i mercati. Se vogliamo guadagnare su di essi...

PPS Avverto subito che ora e in seguito userò mezzi di traduzione automatica. Mi dispiace.
 

Ottimo articolo! Grazie.

Ma comunque inizierò a scrivere la stessa cosa io stesso, su OOP.
Niente è stato inventato meglio della pratica)))

 

La ricerca di duplicati è organizzata in forma aperta, cioè si memorizzano tutti i cromosomi unici, almeno così mi è sembrato.

Cioè, c'è una ricerca di cromosomi e in ogni cromosoma è confrontato ogni gene (quasi)
Mi chiedo, se si applica qualche algoritmo di hashing cromosoma, poi idealmente la velocità della ricerca di un duplicato dovrebbe aumentare, soprattutto con un gran numero di geni.
Solo qui è lasciato a pensare o trovare un modo rapido e adatto per l'algoritmo.

Andato a scavare in mathcad))))

 
mrProF:

La ricerca dei duplicati è organizzata in forma aperta, cioè vengono memorizzati tutti i cromosomi unici, almeno così mi è sembrato.

È così, tutti i cromosomi unici sono memorizzati in un array separato - fino a 100000 pezzi (centomila). Questo è più che sufficiente per le attività pratiche.

mrProF:

Cioè, c'è una ricerca di cromosomi e in ogni cromosoma ogni gene (quasi) viene confrontato.

Non tutti i geni del cromosoma vengono confrontati. Sarebbe quantomeno impraticabile confrontare tutti i geni, e ancora più insensato. Il criterio di unicità di un cromosoma è la presenza di almeno un gene diverso rispetto ai cromosomi in "archivio". Pertanto, non appena si trova un gene unico in un cromosoma, il confronto si interrompe e l'intero cromosoma viene riconosciuto come unico e inserito nell'archivio per essere conservato "in eterno".

mrProF:

Mi chiedo se applicando un qualche algoritmo di hashing dei cromosomi, la velocità di ricerca dei duplicati dovrebbe aumentare, soprattutto con un numero elevato di geni.
Solo qui resta da pensare o trovare un modo veloce e adatto all'algoritmo.

Sono andato a scavare in mathcad))))

Non lo so - non lo so... E poi dovrò confrontarlo con l'hash? :)

Se trovi un modo più veloce per verificare l'unicità di un cromosoma, per favore informami - te ne sarò grato.

 
joo:

Esatto, tutti i cromosomi unici sono memorizzati in un array separato, fino a 100.000 pezzi (centomila). Questo è più che sufficiente per le attività pratiche.

Non tutti i geni di un cromosoma vengono confrontati. Sarebbe quantomeno poco pratico confrontare tutti i geni, e al massimo stupido. Il criterio di unicità di un cromosoma è la presenza di almeno un gene diverso rispetto ai cromosomi presenti nell'"archivio". Pertanto, non appena si trova un gene unico in un cromosoma, il confronto si interrompe e l'intero cromosoma viene riconosciuto come unico e inserito nell'archivio per essere conservato "in eterno".

Non lo so - non lo so... E poi si deve ancora confrontare con l'hash? :)

Se trovi un modo più veloce per verificare l'unicità di un cromosoma, ti prego di informarmi - te ne sarò grato.
.

Beh, questo è ciò che intendevo con "quasi")))

Il confronto con un hash è più veloce di quello con 100 geni in un ciclo....

Qui è necessario calcolare la velocità dell'algoritmo di ricerca diretta dei geni o con il confronto con l'hash.
Se per esempio il numero di geni è inferiore a 20, allora il confronto diretto, se più con l'hash.
Ora scaverò nei modi di calcolare l'hash, forse troverò qualcosa di abbastanza veloce e allo stesso tempo una sufficiente unicità dell'hash.
Come ho capito leggendo libri e articoli, la rimozione dei duplicati non è troppo critica, anche se ci sarà un hash non univoco su 100.
Molto probabilmente la mutazione coprirà questa chiave non univoca, se ci sarà un notevole aumento della velocità.

Vero questo è ancora solo una teoria, io GA secondo giorno sono impegnato in solo))
Nella testa terribile confusione, e la letteratura non è sufficiente per vedere)))