180 likes | 431 Views
Algorytmy Genetyczne. Wprowadzenie. Algorytmy genetyczne. Twórca - John Holland Są oparte na mechanizmach doboru naturalnego oraz dziedziczności. Skrót - AG (ang. GA – Genetic algorithms) Można wykorzystać do: - symulacji biologicznych - optymalizacji
E N D
Algorytmy Genetyczne Wprowadzenie
Algorytmy genetyczne • Twórca - John Holland • Są oparte na mechanizmach doboru naturalnego oraz dziedziczności. • Skrót - AG (ang. GA – Genetic algorithms) • Można wykorzystać do: - symulacji biologicznych - optymalizacji - szukania rozwiązań określonych zagadnień
Cechy, które warunkują ich odporność AG • Przetwarzają zakodowaną reprezentację parametrów zadania a nie ich bezpośrednią postać • Poszukiwania zaczynają się od pewnej populacji a nie od jednego punktu. • Wykorzystana jest tylko z funkcja celu, nie zaś z jej pochodne lub inne pomocnicze informacje. • Stosowane są reguły wyboru probabilistyczne a nie deterministyczne
Podstawowe operacje na AG • Reprodukcja • Krzyżowanie • Mutacja
Reprodukcja (ang. Reproduction) • To proces, w którym indywidualne ciągi kodowe zostają powielone w stosunku zależnym od wartości, jakie przybiera dla nich funkcja celu f (biologicznie zwana funkcją przystosowania). • Reprodukcja różnicująca (selekcja) to proces, gdzie ciągi kodowe o wyższym przystosowaniu mają większe prawdopodobieństwo wprowadzenia jednego lub więcej potomków do następnego pokolenia.
Symulacja ruletki • Reprodukcję można zrealizować np. za pomocą symulacji odpowiednio wykalibrowanej tarczy obrotowej (ruletki), gdzie każdemu ciągowi kodowemu populacji odpowiada sektor o rozmiarze proporcjonalnym do przystosowania.
1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 Krzyżowanie (ang. Crossover) • 1. Losowo zostaje wybrana jedna z pozycji (punktu krzyżowania k) z posród l-1 początkowych pozycji w ciągu kodowym ( l jest długością ciągu). • 2. Zostają zamieniane wszystkie znaki od pozycji k+1 do l włącznie w obu elementach pary rodzicielskiej. 1. 2. k k
1 1 1 1 0 0 1 0 1 1 1 1 Mutacja (ang. mutation) • Proces który zachodzi z małym prawdopodobieństwem i polega na przypadkowej zmianie wartości elementu ciągu kodowego. Ciąg wyjściowy Ciąg zmutowany
Przykład • Cel: maksymalizacja funkcji na zbiorze liczb całkowitych z przedziału [0,31]. • Drogą losową generujemy populację początkową o rozmiarze n=4 np. rzucając symetryczną monetą. • Uzyskane osobniki to: 01101 11000 01000 10011
Schematy • to wzorce opisujące podzbiór ciągów podobnych ze względu na ustalone pozycje. • Niech alfabet, używany do kodowania schematów składa się ze znaków {0,1,*}. Gdzie * zastępuje dowolny znak. • Niech alfabet składa się z k symboli, natomiast l-oznacza długość słowa wówczas liczba schematów to (k+1)l.
Schematy - przykład • schemat *111* pasuje do elementów {01110, 01111, 11110, 11111} • Wówczas l=5, k=3, a liczba wszystkich możliwych schematów to wtedy 35=243.
Schematy – krzyżowanie i mutacja • Krzyżowanie nie naruszy schematu, jeśli do prowadzi do jego przecięcia. Przykład: 1***0 - jest podatny na rozerwanie **11* - jest mało podatny na rozerwanie • Mutacja o normalnym, niedużym natężeniu rzadko powoduje zniszczenie konkretnego schematu.
Schematy - propagacja • Schematy o wysokim przystosowaniu i małej rozpiętości (zwane „cegiełkami”) propagują się z pokolenia na pokolenie w rosnących wykładniczo proporcjach, co odbywa się równolegle. • Liczba schematów przetwarzanych efektywnie w każdym pokoleniu jest porównywalna z n3. • Efekt ten nazywa się ukrytą równoległością.
Bibliografia • D. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998