(2016-06-26, 04:28 PM)Konq napisał(a): [ -> ]To znaczy mają zaplanowany cel, a mutacje nie są przypadkowe, tylko oskryptowane? W jaki sposób działa te "losowe zmienianie genów"? Czy jest możliwe np. pojawienie się super-mutanta? Co to jest funkcja dostosowawcza?
Nie chcę wchodzić w kwestie techniczne, więc podam maksymalnie uproszczony przykład. W rzeczywistości jest to znacznie bardziej skomplikowane, ale chcę zobrazować ogólną ideę.
Niech na początku "genotyp" każdego osobnika składa się z pięciu dowolnych liter alfabetu. Populację będą tworzyły osobniki o różnych literkach, np. ABCDE, GFDAS, LKJHQ, itp.
Na ich podstawie symulacja w losowy sposób tworzy nowe pokolenie. Ma do dyspozycji następujące podstawowe operacje:
- krzyżowanie: np. bierzemy połowę literek z jednego osobnika, a połowę z drugiego. Możemy np. zrobić, że osobnik lepiej dostosowany będzie się krzyżował częściej niż słabiej dostosowany,
- mutacja: z zadanym, małym prawdopodobieństwem, zmieniamy literkę w "kodzie" nowego osobnika na inną, też losowo wybraną z pewnym prawdopodobieństwem (albo np. zmieniamy kolejność dwóch liter, duplikujemy którąś, itp.),
- selekcja: odrzucamy te osobniki, które mają najmniejszą wartość funkcji dostosowania.
Funkcja dostosowania to sposób oceny osobnika. Np. chcemy stworzyć ciągi, w których będzie jak najwięcej takich samych liter pod rząd. Funkcja dostosowania to wtedy największa liczba takich liter, i np. ciąg ABBBBBBC ma wartość 6 i jest lepiej dostosowany niż ciąg FGGHHH (wartość 3).
Wszystko jest przypadkowe, ale selekcja - tak samo jak dobór naturalny w przyrodzie - odsiewa "gorsze" osobniki.
Jest chyba dla każdego oczywiste, że po tysiącach pokoleń ewolucji wg takich zasad otrzymamy bardzo długie ciągi takich samych liter.
Cel nie jest z góry zdefiniowany. Jeśli puścisz symulację drugi raz, otrzymasz na końcu inne wyniki, ale to też będą długie ciągi takich samych liter. Przenosząc to na biologię, dostaniesz inny organizm, ale przystosowany do tego samego środowiska.
Oczywiście ten przykład jest dość bajkowy i w przypadku bardziej skomplikowanych problemów to już nie będą ciągi literek, a operacje krzyżowania i mutacji trzeba inaczej zdefiniować, ale zasada pozostaje ta sama.