Domanda

Immaginiamo Ho una funzione sconosciuta che voglio approssimare mediante algoritmi genetici. Per questo caso, darò per scontato che è y = 2x.

avrei un DNA composto da 5 elementi, uno per ogni y x, x = da 0 a x = 4, in cui, dopo molte prove e calcolo e avrei arrivo prossimità qualcosa della forma:

best_adn = [0, 2, 4, 6, 8]

Tenete a mente non so in anticipo se si tratta di una funzione lineare, un polinomio o qualcosa di molto più brutto, Inoltre, il mio obiettivo non è quello di dedurre dal best_adn qual è il tipo di funzione, voglio solo quei punti , così posso usarle in seguito.

Questo è stato solo un problema di esempio. Nel mio caso, invece di avere solo 5 punti nel DNA, ho qualcosa di simile a 50 o 100. Qual è l'approccio migliore con GA per trovare il miglior set di punti?

  1. Generazione di una popolazione di 100, scartare il peggiore del 20%
  2. ricombinare il restante 80%? Come? li taglio in un punto casuale e poi mettendo insieme la prima parte del ADN del padre con la seconda parte del ADN della madre?
  3. La mutazione, come devo definire in questo tipo di problema mutazione?
  4. Vale la pena usare elitarismo?
  5. Qualsiasi altra semplice idea vale la pena utilizzare intorno?

Grazie

È stato utile?

Soluzione

adattamento gaussiano di solito supera algoritmi genetici standard. Se non si vuole scrivere il proprio pacchetto da zero, il pacchetto Mathematica ottimizzazione globale è eccellente - ho usato per adattarsi a una funzione non lineare veramente brutto in cui installatori standard, fallito miseramente.

Modifica: Wikipedia Articolo

Se si caccia giù le stampe dei giornali indicati sull'articolo, è possibile trovare white paper e implementazioni. In generale, comunque, si dovrebbe avere qualche idea di cosa lo spazio delle soluzioni per il vostro massimizzare la funzione di fitness come aspetto. Se il numero di variabili è piccolo, o il numero di massimi locali è piccolo o sono collegate / degradano verso un maxima globale, semplici minimi quadrati funziona bene. Se l'area attorno ad ogni massimi locali è di piccole dimensioni (per esempio, si deve ottenere una dannata buona soluzione per colpire il migliore, altrimenti si colpisce uno cattivo), sono necessari algoritmi quindi più elaborate.

La scelta delle variabili per un algoritmo genetico dipende da ciò che lo spazio delle soluzioni sarà simile.

Altri suggerimenti

Di solito si trova solo questi fuori dalla sperimentazione ... forse scrivere un GA a sintonizzare il GA.

Ma a parte questo, non capisco quello che stai chiedendo. Se non si sa quale sia la funzione è, e anche voi non si conoscono i punti per essere con, come si fa a determinare l'idoneità fisica?

Dalla mia attuale comprensione del problema, questo è più adatto per una rete neurale.

modifica:

2.Recombine il restante 80%? Come? li taglio in un punto casuale e poi mettere insieme la prima parte del ADN del padre con la seconda parte del ADN della madre?

Questo è chiamato crossover. Se si vuole essere saucey, fare qualcosa di simile scegliere un punto di partenza casuale e scambiando un correre. Per esempio, si dispone di 10 elementi in un oggetto. in modo casuale scegliere un punto X tra 1 e 10 e di swap x..10-rand% 10 + 1 .. si ottiene l'immagine ... spice è un po '.

3.Mutation, come devo definire in questo tipo di problema mutazione? di solito che dipende più su quello che viene definito come una soluzione giuridica di ogni altra cosa. si può fare mutazione lo stesso modo di fare di crossover, tranne che si riempie con dati casuali (cioè legale), piuttosto che scambiare con un altro campione ... e farlo ad un MUCH tasso inferiore.

4.È la pena usare elitarismo? sperimentare e scoprire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top