2011-01-22 16 views
11

Sto facendo un progetto per l'anno scorso sugli algoritmi genetici, in particolare del tipo Dawkins Weasel. Ho fatto la selezione della roulette e la selezione del torneo, ancora per fare la selezione dello stato stazionario, ma non sono sicuro di cosa sia esattamente e i riferimenti che trovo online sono tutti abbastanza vaghi.Algoritmo genetico - che cos'è la selezione dello stato stazionario?

Qualcuno sa come dovrebbe essere implementato? Qualsiasi suggerimento sarebbe grandioso.

Molte grazie.

risposta

19

In genere, la corsa di un algoritmo genetico è divisa in generazioni: ogni generazione il processo di selezione e riproduzione sostituisce tutti (o almeno la maggior parte) della popolazione. In un algoritmo genetico a regime stazionario si sostituiscono solo pochi individui alla volta.

Utilizzare una tecnica di selezione standard per scegliere i genitori per produrre questi pochi figli. Quindi selezionare casualmente lo stesso numero di individui, eliminarli e sostituirli con la prole (si potrebbero selezionare individui non idonei per la morte, ma questo potrebbe spazzare via la diversità della popolazione in un problema non banale).

È necessario valutare l'idoneità solo una volta per persona, dopo aver valutato l'idoneità, salvarla e quindi riutilizzarla in futuro. Protip: quando viene creato un nuovo individuo, contrassegnalo come non valutato e quindi valutalo la prima volta che è necessario (in questo modo, se un individuo viene creato e quindi selezionato casualmente per la morte prima di essere utilizzato, non devi consumare tempo per valutare la sua forma fisica).

Un'implementazione di base dovrebbe essere abbastanza semplice, ma è possibile controllare Essentials of Metaheuristics (pagine 45-46, ebook disponibile gratuitamente).

Problemi correlati