L'algoritmo genetico e le sue possibili applicazioni - pagina 3

 
Igor Makanu:

È adatto, in modalità di ottimizzazione genetica da "Maximum of user criterion" GA del tester massimizzerà il risultato ottenuto dal doppio OnTester() - tutto funziona, ma c'è un problema di automazione "per rallegrare GA" quando inizia a convergere intorno al massimo locale trovato e non vuole cercare altre varianti da parametri di input, in generale in fine tuning GA deve aiutare aggiungendo condizioni a OnTester() o dividendo i parametri di ottimizzazione in diversi intervalli

A proposito, come implementarlo? Ho anche iniziato a pensare di farlo in questo modo.

Tag Konow:
Vuoi dire "intelligente" - ottimizzato e adattato a un certo ambiente?

Beh, sì, la selezione viene sempre effettuata con qualche criterio. A proposito, il criterio stesso può cambiare con le generazioni, se necessario.

 
Реter Konow:
Vuoi dire "intelligente" - ottimizzato e adattato a un ambiente particolare?

OK. Creare un ambiente chiuso, da un complesso di sistemi interagenti. Per esempio: gli individui a tre geni "divorano" (si attaccano a se stessi e crescono) individui a due geni se non possono "scappare" da loro (diciamo che i geni X e Y sono coordinate sul piano). L'individuo a tre geni ha un gene Z aggiunto - la terza dimensione. Ha un vantaggio. Il compito dell'individuo a due geni è quello di sopravvivere e non essere catturato, e il compito dell'individuo a tre geni è quello di catturare il più rapidamente possibile il due geni e risparmiare tempo e risorse.

L'obiettivo: l'individuo geneticamente più debole deve calcolare quello geneticamente più forte per sopravvivere.
Lo sappiamo - un individuo tri-genico "vede" un di-genico sul piano, come un uccello vede un topo nel campo, e un di-genico percepisce tutto in due dimensioni, e quindi non è consapevole del nemico che si avvicina fino all'ultimo momento. Tuttavia, in un grande gruppo, ci sono molti individui bi-genetici e ognuno cattura gli eventi di divorare i suoi compagni di tribù - dove e quando sono stati catturati. Così, i dvigen possono formare "percezioni" generalizzate - esperienza e conoscenza acquisita da tutte le generazioni su quali ostacoli naturali nello spazio tridimensionale hanno i loro nemici e come meglio adattarsi per sopravvivere.
 
Aleksey Mavrin:

A proposito, come si implementa questo? Ho anche iniziato a pensare di farlo in questo modo.

è il solito lavoro con il tester - prima si impostano tutti i parametri per l'ottimizzazione, poi si prova fino al momento in cui il tester inizia a disegnare linee orizzontali su ogni passaggio - questo è un segno che GA ha convergente intorno a un massimo locale, poi si vede nella scheda di ottimizzazione quali parametri GA ha smesso di cambiare, e poi la prossima ottimizzazione viene eseguita, rompere questi parametri (che GA non cambia) su altri intervalli, anche se spesso è sufficiente riavviare il tester cancellando (salvando) le cache di ottimizzazione - GA è inizializzato accidentalmente.

 
Igor Makanu:

è il solito lavoro con il tester - prima si impostano tutti i parametri per l'ottimizzazione, poi si è testato fino al momento in cui il tester inizia a disegnare linee orizzontali su ogni passaggio - è un segno che GA ha convergente intorno a un massimo locale, poi si vede nella scheda di ottimizzazione quali parametri GA ha smesso di cambiare e poi la prossima ottimizzazione corre si rompe questi parametri (che GA non cambia) su altri intervalli, anche se spesso è sufficiente per riavviare il tester rimuovendo (salvando) le cache di ottimizzazione - GA inizializza

Penso che GA dovrebbe convergere verso un massimo generale (non locale) se il passo dei cambiamenti dei parametri è abbastanza basso. Se il passo è troppo alto il cambio di intervallo non aiuterà, i massimi possono scivolare tra i valori vicini.

Allora è più semplice fare un'enumerazione completa con il passo più basso, e poi GA, estirpando gli intervalli peggiori.

 
Aleksey Mavrin:

Allora è più facile andare in pieno overshoot con il passo più basso, e poi GA, estirpando le gamme peggiori.

non più facile, ecco il mio EA ottimizzato:


un passaggio di un singolo test di questo EA per 1,5 anni richiede 1,5-2 secondi, nell'ottimizzatore circa la stessa velocità, si può stimare quanto ci vorrà una ricerca completa, e GA entro 20-50 minuti trovo già risultati che mi soddisfano

 
Igor Makanu:

non più facile, ecco il mio EA in fase di ottimizzazione:


un passaggio di un singolo test di questo EA in 1,5 anni impiega 1,5-2 secondi, l'ottimizzatore ha circa la stessa velocità, si può stimare quanto tempo ci vuole per fare una corsa completa, e GA entro 20-50 minuti ho già trovato risultati che mi soddisfano

Quando il numero di passaggi è visualizzato scientificamente, è l'overflow della cifra genetica, e non funziona affatto (se mai). Ho dovuto farlo:

1. Ridurre il numero di passi. Per evitare che il conteggio dei passi sia grossolano e per coprire la gamma desiderata, ho reso il conteggio dei passi non lineare. Cambiando il parametro 0.001-0.099, 0.01-0.99, 0.1-9.9, ... Cioè passo con una precisione di circa l'1%.

2. Ridurre il numero di variabili da ottimizzare, e questa è la cosa principale.

2а. Dividi le variabili in gruppi che sono (gruppi) quasi indipendenti e ottimizza separatamente.

2б. Trova le variabili che dipendono da un'altra e collegale. Ho rimosso un paio di variabili in questo modo, dopo un lunghissimo trambusto.

2в. Trova le variabili che possono essere rese costanti al costo di una minuscola diminuzione della redditività. Trovato anche.

3. e restringere la gamma di variabili dopo molte valutazioni.

Finché non ho fatto questi sacrifici, la mia ottimizzazione non era efficace. Tutto questo riguarda l'ottimizzazione con troppe variabili. Questo di per sé è sbagliato, ma alcuni esperti evolvono verso la semplificazione piuttosto che la complicazione.

 
Igor Makanu:

non più facile, ecco il mio EA in fase di ottimizzazione:


un passaggio di un singolo test di questo EA in 1,5 anni richiede 1,5-2 secondi, nell'ottimizzatore circa la stessa velocità, si può stimare quanto tempo ci vuole un'enumerazione completa, e GA entro 20-50 minuti trovo già risultati che mi soddisfano

Questa è una questione di complessità del sistema. Ne stavo discutendo nel thread di GU. Faccio 3-5 passi per un'enumerazione completa. Hai 18 parametri sullo screenshot, sarebbe (3-5)^18 = 400M a 3,8 trilioni, già sulla pietà, anche se è molto, e soprattutto coppie è molto, faccio ricerca completa non su tutti, e avendo fissato alcuni, e in gruppi, che poi già insieme su GA determinato - restringendo GM.

e completamente d'accordo con la dichiarazione più dettagliata

Edgar Akhmadeev:

Quando il numero di passaggi viene visualizzato scientificamente, è la digitalizzazione della genetica che viene sopraffatta e non funziona affatto (se non del tutto). Ho dovuto farlo:

1. Ridurre il numero di passi. Per evitare che il conteggio dei passi sia grossolano e per coprire la gamma desiderata, ho reso il conteggio dei passi non lineare. Cambiando il parametro 0.001-0.099, 0.01-0.99, 0.1-9.9, ... Cioè passo con una precisione di circa l'1%.

2. Ridurre il numero di variabili da ottimizzare, e questa è la cosa principale.

2а. Dividi le variabili in gruppi che sono (gruppi) quasi indipendenti e ottimizza separatamente.

2б. Trova le variabili che dipendono da un'altra e collegale. Ho rimosso un paio di variabili in questo modo, dopo un lunghissimo trambusto.

2в. Trova le variabili che possono essere rese costanti al costo di una minuscola diminuzione della redditività. Trovato anche.

3. e restringere la gamma di variabili dopo molte valutazioni.

Finché non ho fatto questi sacrifici, la mia ottimizzazione non era efficace. Si tratta di un'ottimizzazione con troppe variabili. Questo di per sé è sbagliato, ma alcuni esperti evolvono verso la semplificazione piuttosto che la complicazione.

Ognuno ha i suoi metodi, in sostanza tutti probabilmente capiscono.
 
Edgar Akhmadeev:

Quando il numero di passaggi è visualizzato scientificamente, è la digitalizzazione genetica che trabocca e funziona completamente male (se funziona affatto).


Cosa intende per 'funziona completamente male'?

Come si può riprodurre la scorrettezza dell'opera?

 
Edgar Akhmadeev:

Quando il numero di passaggi è visualizzato in forma scientifica, è l'overflow della cifra genetica, e non funziona affatto (se non del tutto).

Con me GA funziona in modo inequivocabile, scrivo nel file delle impostazioni EA dei passaggi riusciti, creo il nome del file dall'hash MD5 dei parametri di ottimizzazione di input stessi, cioè durante l'ottimizzazione vedo i file apparire nella cartella Common

Ho solo un problema finora - in qualche tempo GA può iniziare a convergere intorno a un piccolo gruppo di parametri di ottimizzazione - penso che questo sia normale, tutti i GA lavorano in questo modo ed è un problema del loro uso

Ma inequivocabilmente GA funziona e non si blocca - lo vedo nei file aggiunti e nei nomi unici

 
Slava:

Cosa vuol dire "non funziona affatto correttamente"?

Come posso riprodurre il malfunzionamento?

Ho scritto su questo molto tempo fa, quando usavo i frame in EA. Non ricordo più il punto esatto, credo di aver iniziato a non avere tutti i fotogrammi in arrivo (con risultati migliori). Cercherò i vecchi post e cercherò di chiarire.

Ma ricordo distintamente che era chiaramente riproducibile nel mio Expert Advisor - non appena il numero di overshoots superava un certo numero e veniva visualizzato in forma scientifica, la mia genetica era rotta. La cosa importante non era solo un grande numero di passi di una variabile, ma anche un grande numero di variabili.