14

Z tego, co dotychczas przeczytałem, wydają się bardzo podobne. Ewolucja różnicowa używa zamiast tego liczb zmiennoprzecinkowych, a rozwiązania nazywa się wektorami? Nie jestem do końca pewien, co to oznacza. Jeśli ktoś mógłby przedstawić przegląd nieco z zaletami i wadami obu.Co to jest ewolucja różnicowa i jak się ją porównuje do algorytmu genetycznego?

+0

Liczba zmiennoprzecinkowa nie jest różnicą. Wszystkie strategie ewolucyjne używają liczb zmiennoprzecinkowych. Algorytmy EC nie są już podzielone na typy przez ich reprezentację. – user

Odpowiedz

15

Cóż, zarówno algorytmy genetyczne, jak i ewolucja różnicowa są przykładami obliczeń ewolucyjnych.

Algorytmy genetyczne ściśle trzymają się metafory reprodukcji genetycznej. Nawet język jest w większości taki sam - oba mówią o chromosomach, oba mówią o genach, geny są odrębnymi alfabetami, obydwa mówią o skrzyżowaniu, a zwrot jest dość bliski zrozumieniu genetycznej reprodukcji niskiego poziomu, itp.

Ewolucja różnicowa ma ten sam styl, ale jej odpowiedniki nie są dokładne. Pierwszą dużą zmianą jest to, że DE używa rzeczywistych liczb rzeczywistych (w ścisłym znaczeniu matematycznym - są one implementowane jako zmienne, podwójne lub dowolne, ale teoretycznie mają one zasięg w stosunku do reali). W rezultacie idee mutacji i crossover są zasadniczo różne. Operator mutacji jest zmodyfikowany do tego stopnia, że ​​trudno mi nawet zrozumieć, dlaczego nazywa się to mutacją, z tym wyjątkiem, że służy temu samemu celowi przełamywania rzeczy z lokalnych minimów.

Po stronie plusa jest kilka wyników pokazujących, że DE są często bardziej skuteczne i/lub bardziej wydajne niż algorytmy genetyczne. A kiedy pracujemy nad optymalizacją numeryczną, miło jest móc reprezentować rzeczy jako rzeczywiste liczby rzeczywiste, zamiast najpierw przejść do reprezentacji chromosomalnej. (Uwaga: o nich czytałem, ale nie rozmawiałem z nimi zbyt wiele, więc nie mogę wypowiedzieć się z pierwszej ręki.)

Po stronie negatywnej, nie sądzę, aby istniał jakikolwiek dowód konwergencji dla DE.

+2

Trzeba dodać, że nic o Algorytmach genetycznych nie wyklucza kodowania o wartościach rzeczywistych. Istnieją operatory typu crossover, takie jak SBX (symulacja binarnego crossovera), a także różne pomysły "mieszania" rodziców na różne sposoby. Mutacja chromosomów o wartościach rzeczywistych ma kilka oczywistych implementacji, guzy Gaussa do parametrów, itp. – deong

+2

To prawda, ale im dalej od pierwotnych pojęć, tym bardziej napięta staje się metafora.Nie rzuca mi się w oczy, myślę, że wszystkie są fascynujące i użyteczne, i można je w uzasadniony sposób nazwać algorytmami genetycznymi. To tylko wyrok/estetyczne wezwanie. – Novak

8

ewolucja różnicowego jest rzeczywiście specyficzny podzbiorem szerszej przestrzeni algorytmów genetycznych, z następującymi ograniczeniami:

  • Genotyp jest jakaś forma wartościach rzeczywistych wektora operacje
  • Mutacja/zwrotnicy skorzystać różnicy między dwoma lub więcej wektorami w populacji w celu utworzenia nowego wektora (zazwyczaj przez dodanie losowej proporcji różnicy do jednego z istniejących wektorów, plus niewielka ilość losowego szumu)

DE sprawdza się dobrze w pewnych sytuacjach, ponieważ wektory można uznać za tworzące "chmurę", która dość skutecznie eksploruje obszary o wysokiej wartości przestrzeni rozwiązania. W pewnym sensie jest to ściśle związane z optymalizacją roju cząstek.

Nadal ma jednak zwykły problem z GA, ale utknął w lokalnych minimach.

+0

Czy masz odniesienie, gdzie GA jest podatne na utknięcie w lokalnych minimach? –