2011-10-16 8 views
13

Ho letto un paio di sezioni introduttive di libri e alcuni articoli su entrambi gli argomenti e mi sembra che questi due metodi siano praticamente identici.Quali sono le differenze tra algoritmi genetici e strategie di evoluzione?

Detto questo, non ho ancora avuto il tempo di approfondire veramente gli argomenti, quindi potrei sbagliarmi.

Quali sono le distinzioni tra algoritmi genetici e strategie di evoluzione? Cosa li rende diversi e dove sono simili?

risposta

19

In ES gli individui sono codificati come vettori di numeri reali. Sulla riproduzione, i genitori vengono selezionati casualmente e i discendenti più adatti vengono selezionati e inseriti nella generazione successiva. Gli individui ES sono auto-adattanti. La dimensione del gradino o la forza di mutazione sono codificate nell'individuo, quindi i parametri buoni arrivano alla generazione successiva selezionando individui buoni.

In GA le persone sono codificate come numeri interi. La selezione viene effettuata selezionando i genitori proporzionali alla loro forma fisica. Quindi le persone devono essere valutate prima che venga effettuata la prima selezione. Gli operatori genetici lavorano a livello di bit (ad esempio tagliando una stringa di bit in più pezzi e scambiandoli con i pezzi dell'altro genitore o cambiando singoli bit).

Questa è la teoria. In pratica, a volte è difficile distinguere tra entrambi gli algoritmi evolutivi ed è necessario creare algoritmi ibridi (ad esempio individui interi (bit-string) che codificano i parametri degli operatori genetici).

+2

Penso che la risposta sia un po 'troppo generica, considerando che la rappresentazione genetica GA standard e originale non è integer, ma piuttosto una stringa di bit binario di 1 e 0. Anche la selezione non è limitata alla selezione Proporzionata fitness, ce ne sono molti altri come Tournament ... per evitare confusione forse la risposta avrebbe dovuto essere stata riformulata in modo leggermente diverso invece di dedurre che un GA deve avere questo e quello ... ecc. – chutsu

+0

Penso è una grande introduzione alle differenze. Qual è il problema con la chiamata alla rappresentazione di un insieme di numeri interi?A livello di software questo è esattamente il modo in cui vengono elaborati dall'algoritmo e aiuta a visualizzarli come simili al codice genetico. Il consiglio generale non è di gestire comunque la rappresentazione come una stringa, almeno è così che sono stato addestrato. – Adam893

+0

Potrebbe per favore fornire un esempio in cui ES e in cui viene tipicamente applicata la GA? –

0

La differenza principale sembra essere che un algoritmo genetico rappresenta una soluzione che utilizza una sequenza di numeri interi, considerando che una strategia evoluzione utilizza una sequenza di numeri reali - di riferimento: http://en.wikipedia.org/wiki/Evolutionary_algorithm#

0

Come fonte wikipedia (http://en.wikipedia.org/wiki/Genetic_algorithm) e @Vaughn Cato hanno detto che la differenza in entrambe le tecniche dipende dall'implementazione. EA usa numeri reali e GA usa numeri interi.

Tuttavia, in pratica penso che potresti utilizzare numeri interi o numeri reali nella formulazione del tuo problema e nel tuo programma. Dipende da te. Ad esempio, per il ripiegamento delle proteine ​​si può dire che l'insieme degli angoli diedri forma un vettore. Questo è un vettore di numeri reali, ma le voci sono etichettate da numeri interi quindi penso che puoi formulare il tuo problema e scrivere il tuo programma basato su su un aritmetico intero. È solo un'idea

2

Nella maggior parte dei libri di testo più recenti su GA, la codifica a valori reali viene introdotta come alternativa all'intero, ovvero gli individui possono essere codificati come vettori di numeri reali. Questo è chiamato parametro continuo GA (si veda ad esempio Haupt & Haupt, "Algoritmi genetici pratici", J.Wiley & Sons, 1998). Quindi questo è praticamente identico alla codifica dei numeri reali ES.

Per quanto riguarda la selezione dei genitori, sono disponibili molte strategie diverse per GA. Non li conosco tutti, ma presumo la selezione tra tutti (non solo il meglio è stato utilizzato per alcune applicazioni).