Piszę algorytm genetyczny. Moja ludność szybko rozwija monokulturę. Używam małej populacji (32 osobniki) z niewielką liczbą dyskretnych genów (24 genów na osobnika) i podejściem krzyżowania z jednym punktem. Połącz to ze strategią doboru koła do ruletki i łatwo zauważyć, jak cała różnorodność genetyczna jest tracona w ciągu zaledwie kilkudziesięciu pokoleń.Zapobieganie chów wsobny i monokultury w algorytmie genetycznym (pytanie początkujących)
Co chciałbym wiedzieć, jaka jest właściwa odpowiedź? Nie posiadam wiedzy akademickiej na temat GA i tylko kilka rozwiązań przychodzi na myśl:
- Użyj większej populacji. (powolny)
- Stosuj kontrole czasu wykonywania, aby zapobiec in-breeding. (wolno)
- Użyj większej liczby punktów przecięcia. (niezbyt efektywne)
- Podnieś liczbę mutacji.
Jakie są odpowiednie reakcje na sytuację?
Robię postępy w przenoszeniu funkcji fitness do procesora graficznego za pomocą CUDA. Podniosłem populację do 4096 i osiągnąłem lepsze wyniki. Podoba mi się twoja zasada population_size> num_genes^2. – ahoffer
Dziękuję, ale pamiętaj, że jest to tylko osobistą regułą, i nie mam żadnych danych do jej kopii innych niż instut i osobistego doświadczenia. :) – NWS