2012-02-07 13 views
6

Sto leggendo alcuni articoli su Algoritmi genetici e spesso menzionano algoritmi evolutivi in ​​un modo molto simile. Secondo Wikipedia, le GA sono sottoinsiemi di EA. Tuttavia, se guardiamo più da vicino, possiamo notare che entrambi sono algoritmi di ottimizzazione metaeurici basati sulla selezione naturale (crossover, selezione, mutazione) e entrambi non hanno una rappresentazione fissa (dipende dal problema da risolvere, anche noi usiamo tradizionalmente il binario rappresentazioni per GA). Sono molto simili. Quindi, la mia domanda è: possiamo considerare ogni algoritmo evolutivo un algoritmo genetico? e quali sono le reali differenze tra loro? GrazieQuali sono le reali differenze tra algoritmi genetici e algoritmi evolutivi?

risposta

9

Dipende da chi chiedi. Per i primi decenni che esistevano tali cose, tutti consideravano che esistevano categorie distinte (generalmente elencate come "algoritmi genetici", "programmazione genetica", "strategie di evoluzione" e "programmazione evolutiva". differenze tra i sottocampi, quindi la distinzione ha un qualche senso.

A un certo punto (verso la fine degli anni '90 o giù di lì), c'è stata una spinta più grande per l'unificazione, in quanto le persone hanno iniziato a vederle come istanze di un classe generale di algoritmi.La principale conferenza GA (ICGA) si è trasformata in GECCO, e il termine unificante è diventato "computazione evolutiva", comprendendo tutto quanto sopra, e occasionalmente alcuni altri (è possibile visualizzare le cose come l'ottimizzazione degli sciami di particelle come algoritmi evolutivi come bene se sei un po 'liberale con le definizioni)

Quindi, al momento, dovremmo dire generalmente "calcolo evolutivo" (o "algoritmi evolutivi") come il termine generico "catch-all". La programmazione genetica mantiene la propria identità come evoluzione delle stringhe di codice direttamente, e le strategie di evoluzione mantengono anche un'identità separata rispetto ai valori reali e spesso includono una sorta di auto-modifica (ad esempio, le direzioni di ricerca dell'apprendimento della matrice di adattamento della covarianza in fase di esecuzione). La programmazione evolutiva esiste ancora, ma solo come una nicchia molto più piccola. Il termine "algoritmi genetici" si è ampliato un po '. Inizialmente, le persone pensavano che funzionassero su stringhe binarie che operavano con selezione generazionale, ecc. Nel tempo, uno ad uno, la rigidità è diminuita. A questo punto, è possibile quasi utilizzare "algoritmo genetico" come sinonimo di "calcolo evolutivo". Non dovresti, perché c'è una sottigliezza nella terminologia che potresti perdere, ma in generale, se non stai facendo direttamente la generazione del codice, e non stai evolvendo numeri reali in un modo molto particolare che corrisponde a ciò che le persone pensano come strategie di evoluzione, quindi sei ragionevolmente sicuro nel definirlo un "algoritmo genetico".

+0

Molto interessante. Grazie deong per questa risposta completa. Questo spiega perché alcuni documenti continuano a parlare di "calcolo evolutivo", ad esempio un approccio basato sul calcolo evolutivo all'ottimizzazione del portafoglio rischio-rendimento basata sullo scenario per le misure generali di rischio (di R. Hochreiter), mentre la comunità usa sempre più il termine "genetica" algoritmi". – omar

+0

@deong Ho interpretato erroneamente il tuo soprannome come De Jong :) –

+0

Heh ... non proprio. Ma è strano che non abbia mai notato la somiglianza. – deong

6

Per completare l'ottima risposta di deong, ecco una citazione dall'eccellente libro Introduction to Evolutionary Computing scritto da A. E. Eiben e J. E. Smith.

Sorprendentemente, questa idea di applicare i principi darwiniani per date automatizzati di problem solving indietro agli anni quaranta, molto prima che il svolta di computer [146]. Già nel 1948 Turing propose la ricerca genetica o evolutiva e nel 1962 Breinermami fece eseguire esperimenti informatici sull'ottimizzazione tramite l'ottimizzazione tramite l'ottimizzazione e la ricombinazione. Durante gli anni '60 tre diverse implementazioni dell'idea di base furono sviluppate in differenti luoghi. Negli Stati Uniti, Fogel, Owens, e Walsh ha introdotto evolutivo programmazione [155, 156], mentre l'Olanda ha chiamato il suo metodo un genetica algoritmo [98, 202, 204]. nel frattempo, in Germania, Rechenberg e Schwefel ha inventato le strategie di sviluppo [317, 342].Per circa 15 anni queste aree si sono sviluppate separatamente; ma dai primi anni '90 sono stati identificati come come diversi rappresentanti ("dialetti") di una tecnologia che è nota come calcolo evolutivo [22, 27, 28, 120, 271]. All'inizio degli anni 90 un quarto flusso seguendo le idee generali emerse, programmazione genetica, sostenuto da Koza [38, 229, 230]. Il terminologia contemporanea denota l'intero campo da evolutiva computing, gli algoritmi coinvolti cosiddetti algoritmi evolutivi, e considera programmazione evolutiva, strategie evolutive, algoritmi genetici e programmazione genetica come sottoaree appartenenti corrispondenti varianti algoritmo.

Lo sviluppo di forum scientifici dedicati alla CE fornisce un'indicazione del passato del campo e di presenti. La prima conferenza internazionale specializzata nel tema era la International Conference on Genetic Algorithms (ICGA), prima detenuta nel 1985 [180] e ripetuta ogni due anni fino al 1997 [182, 333, 43, 158, 137, 241 nel 1999 si è fusa con la Conferenza annuale sulla programmazione genetica [235, 234, 232] per diventare il annua genetica e Evolutionary Computation Conferenza (GECCO) [37. 416. 381. 2421. Allo stesso tempo la Conferenza annuale sulla programmazione evolutiva. tenuto dal 1992. [150. 151. 344. 268. 154. 12. 3071 fusione con la conferenza IEEE sul calcolo evolutivo, tenuta dal 1994, [210. 211. 212. 213. 2141 per formare il Congresso sul calcolo evolutivo (CEC) che è stato tenuto annualmente da allora [71. 72. 73. 741.

Il primo evento europeo (esplicitamente istituito ad abbracciare tutti i flussi) è stato il Problem Solving parallelo dalla Natura (PPSN) nel 1990 [3431. che è diventata una conferenza semestrale [259. 90. 410. 116. 337. 1871. E 'stato in un pannello discussione (adescare il primo cappello PPSN t il nome evolutivo calcolo è stato offerto come un termine generico per tutti i "dialetti" esistenti. calcolo evolutivo (MIT Press La prima rivista scientifica dedicata a questo campo è stata lanciata nel 1993. Nel 1997 la Commissione europea ha deciso di finanziare una rete europea di ricerca in CE denominata EvoNet, i cui fondi sono garantiti fino al 2003. Al momento della stesura di (2003), ci sono tre importanti conferenze CE (CEO, GECCO e PPSN) e molte più piccole, inclusa una dedicata esclusivamente all'analisi teorica e allo sviluppo, Fondamenti di Algoritmi Genetici (Foga) detenuti ogni due anni a partire dal 1990 [316, 420. 425. 44. 39. 261. 3081. Ormai ci sono tre principali riviste scientifiche CE (Evolutionary Computation , IEEE Transactions on Calcolo evolutivo e Macchine di programmazione genetica ed evolutive) e molti con un profilo correlato da vicino . ad esempio, sul calcolo naturale. soft computing o intelligenza computazionale .Stimiamo il numero di pubblicazioni CE nel 2003 in più di 1500 su molte di esse in riviste e negli atti di specifiche aree di applicazione.