Sto scrivendo un algoritmo genetico. La mia popolazione sviluppa rapidamente una monocoltura. Sto usando una piccola popolazione (32 individui) con un piccolo numero di geni discreti (24 geni per individuo) e un approccio di accoppiamento incrociato a punto singolo. Combinalo con una strategia di selezione della ruota della roulette ed è facile vedere come tutta la diversità genetica si perde in poche decine di generazioni.Prevenire consanguineità e la monocoltura in algoritmo genetico (domanda newbie)
Quello che vorrei sapere è, qual è la risposta adeguata? Non ho conoscenze di livello accademico su GA e solo alcune soluzioni mi vengono in mente:
- Utilizzare una popolazione più ampia. (lento)
- Utilizzare i controlli di runtime per impedire l'in-breeding. (lento)
- Utilizzare più punti di incrocio. (non molto efficace)
- Aumentare il numero di mutazioni.
Quali sono le risposte adeguate alla situazione?
che sto facendo progressi in movimento la mia funzione di fitness per la GPU utilizzando CUDA. Ho aumentato la popolazione a 4096 e ho ottenuto risultati migliori. Mi piace la tua regola di population_size> num_genes^2. – ahoffer
Grazie, ma ricorda che è solo una regola empirica personale, e non ho dati per eseguirne il backup a parte l'istinto e l'esperienza personale. :) – NWS