🧬 Ewolucja genetyczna — dobór naturalny
Uruchom selekcję, krzyżowanie i mutację na populacji cyfrowych stworzeń i obserwuj, jak dopasowanie wspina się po krajobrazie pokolenie za pokoleniem.
Podobne symulacje
O tej symulacji
Ta symulacja uruchamia algorytm genetyczny na populacji cyfrowych stworzeń, z których każde jest zakodowane jako genom genów zmiennoprzecinkowych określających cechy takie jak prędkość i sposób zdobywania pożywienia. W każdym pokoleniu stworzenia rywalizują o pożywienie, są oceniane przez funkcję dopasowania, a najlepiej dopasowane są wybierane — poprzez selekcję turniejową — do rozmnażania przez krzyżowanie i mutację. Obserwowanie, jak histogram dopasowania przesuwa się z pokolenia na pokolenie, pokazuje dobór naturalny w działaniu: zmienność, dziedziczność i presję selekcyjną łączące się, by wspinać się po krajobrazie dopasowania.
🔬 Co pokazuje
Populację stworzeń o genomach zakodowanych zmiennoprzecinkowo, przeszukującą krajobraz dopasowania zdefiniowany przez skuteczność zdobywania pożywienia. W każdym pokoleniu populacja jest oceniana, podzbiór wybierany jest przez selekcję turniejową (rozmnaża się najlepiej dopasowany osobnik z małej losowej próbki), a potomstwo powstaje przez krzyżowanie i mutację genomów rodziców — te same elementy, które wykorzystuje się w prawdziwych obliczeniach ewolucyjnych.
🎮 Jak korzystać
Przeciągnij Population size, aby zmienić liczbę stworzeń rywalizujących w każdym pokoleniu, Mutation rate, aby kontrolować ilość wprowadzanej zmienności genetycznej potomstwa, oraz Tournament size, aby ustalić, jak silnie selekcja faworyzuje najlepiej dopasowane osobniki. Food per tick i Creature speed dostosowują odpowiednio środowisko i dynamikę stworzeń. Naciśnij Reset, aby zrestartować ewolucję od nowej, losowej populacji.
💡 Czy wiesz, że?
Algorytmy genetyczne zostały sformalizowane przez Johna Hollanda w latach 70. XX wieku, bezpośrednio inspirowane ewolucją darwinowską, a ta sama pętla selekcji, krzyżowania i mutacji, użyta w tej symulacji, posłużyła od tamtej pory do projektowania anten dla statków kosmicznych NASA oraz automatycznego poszukiwania wydajnych architektur sieci neuronowych.
Najczęściej zadawane pytania
Czym algorytm genetyczny różni się od metody spadku gradientu?
Metoda spadku gradientu wymaga, aby funkcja dopasowania (straty) była różniczkowalna, i podąża w kierunku optimów lokalnych zgodnie z kierunkiem gradientu. Ma trudności z funkcjami nieciągłymi, funkcjami z wieloma minimami lokalnymi oraz problemami, w których rozwiązań nie da się naturalnie przedstawić jako wektorów ciągłych. Algorytmy genetyczne nie czynią żadnych założeń co do krajobrazu dopasowania: radzą sobie z reprezentacjami dyskretnymi, funkcjami nieciągłymi i zaszumionymi oraz krajobrazami wielomodalnymi, kosztem efektywności spadku gradientu zyskując odporność na złożone krajobrazy.
Czym jest twierdzenie o schematach i dlaczego ma znaczenie?
Twierdzenie Hollanda o schematach dostarcza teoretycznego wyjaśnienia, dlaczego algorytmy genetyczne działają. Schemat to wzorzec pasujący do podzbioru chromosomów. Twierdzenie mówi, że schematy o ponadprzeciętnym dopasowaniu, krótkiej długości definiującej i niskim rzędzie uzyskują wykładniczo rosnącą reprezentację w kolejnych pokoleniach — sugerując, że algorytmy genetyczne niejawnie poszukują i łączą krótkie, wysoko dopasowane bloki budulcowe, mimo że żadne jawne poszukiwanie takich bloków nie jest zaprogramowane.
Czym jest kompromis między eksploracją a eksploatacją w algorytmach genetycznych?
Eksploracja oznacza przeszukiwanie nowych, nieodwiedzonych obszarów przestrzeni rozwiązań; eksploatacja oznacza doskonalenie najlepszych dotychczas znalezionych rozwiązań. Wysoka mutacja i niska presja selekcyjna zwiększają eksplorację; niska mutacja i wysoka presja selekcyjna zwiększają eksploatację. Zbyt duża eksploatacja powoduje przedwczesną zbieżność do optimum lokalnego, a zbyt duża eksploracja uniemożliwia zbieżność do jakiegokolwiek dobrego rozwiązania.
Czym jest selekcja turniejowa i jak działa w tej symulacji?
Selekcja turniejowa wybiera niewielką losową próbkę populacji — turniej — i pozwala rozmnożyć się najlepiej dopasowanemu osobnikowi z tej próbki. Większy Tournament size zwiększa presję selekcyjną, przybliżając populację do eksploatacji; mniejszy turniej sprawia, że selekcja jest łagodniejsza i zachowuje więcej różnorodności. Nie wymaga globalnego rankingu dopasowania, dzięki czemu presję selekcyjną łatwo dostroić jednym suwakiem.
Jak wskaźnik mutacji wpływa na wynik ewolucji?
Mutacja losowo zaburza geny potomstwa, wprowadzając zmienność, której sama selekcja nie może wytworzyć. Bardzo niski wskaźnik mutacji pozwala populacji szybko się zbiec, ale grozi utknięciem w optimum lokalnym. Bardzo wysoki wskaźnik mutacji stale wprowadza różnorodność, ale może niszczyć dobre rozwiązania niemal tak szybko, jak znajduje je selekcja, uniemożliwiając zbieżność. Użyteczny zakres leży między tymi dwiema skrajnościami.
Co pokazuje histogram dopasowania w kolejnych pokoleniach?
Na początku histogram dopasowania jest szeroki i niski, co odzwierciedla losową populację o dużym zróżnicowaniu umiejętności. W miarę jak selekcja turniejowa wielokrotnie faworyzuje lepiej dopasowane stworzenia, a krzyżowanie rekombinuje ich geny, histogram zwęża się, a jego szczyt przesuwa się w stronę wyższych wartości dopasowania z pokolenia na pokolenie. Histogram, który przestaje się przesuwać mimo dalszej mutacji, zwykle wskazuje, że populacja zbiegła do optimum lokalnego.