Algorytmy genetyczne w optymalizacji Literatura 1. David E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998; 2. Zbigniew Michalewicz, Algorytmy genetyczne + struktury danych = programy ewolucyjne, WNT, Warszawa 1999
Algorytmy ewolucyjne Definicja algorytmu ewolucyjnego Algorytmy poszukiwania ekstremalnej wartości funkcji przystosowania (funkcji celu) oparte na mechanizmach doboru naturalnego oraz dziedziczności łączące ewolucyjna zasadę przeżycia najlepiej przystosowanych z systematyczna chod przypadkową wymiana informacji [Goldberg] Idea ewolucji Istnieje pewna populacja osobników, Każdy osobnik jest mutacją pary rodziców, Osobniki konkurują ze sobą, Przetrwają osobniki najlepiej dopasowane do wymagao środowiska. Algorytmy genetyczne, oparte na obserwacjach zmian struktury kodu DNA, są podgrupą algorytmów ewolucyjnych
Schemat blokowy algorytmu ewolucyjnego Utwórz populację początkową Oceo wszystkich osobników funkcją przystosowania Odtwórz populację zastępowanie operatory genetyczne Utwórz potomstwo Czy stop? TAK Pokaż optimum NIE selekcja Wybierz rodziców
Pojęcia stosowane w algorytmach genetycznych Biologia Osobnik (genotyp, chromosom) - uporządkowany zbiór genów Gen Pozycja genu w chromosomie (locus) Wartośd genu (allel) Populacja Środowisko, funkcja przystosowania Kod genetyczny Fenotyp osobnik o zmodyfikowanej przez środowisko strukturze genów Optymalizacja Punkt w przestrzeni zmiennych decyzyjnych Składowa wektora zmiennych decyzyjnych Numer składowej wektora zmiennych decyzyjnych Wartośd składowej wektora zmiennych decyzyjnych Zbiór punktów w przestrzeni zmiennych decyzyjnych Funkcja celu Sposób zapisu wartości składowych wektora zmiennych decyzyjnych (np. alfabet, dziesiętny, binarny) Punkt w przestrzeni zmiennych decyzyjnych o innej niż początkowa wartości funkcji celu
Kodowanie genetyczne PRZYKŁAD. Przestrzeo zmiennych decyzyjnych jest dwuwymiarowa, np. wysokośd, szerokośd. Położenie punktu w przestrzeni jest określone dwoma liczbami x 1, x 2. Określamy rozdzielczośd (dokładnośd wyznaczenia) tych liczb na x 1, x 2. Stąd mamy (dla dodatnich x 1, x 2 ) x 1 = m x 1 x 2 = n x 2 gdzie m,n liczby naturalne. Jeśli x 1, x 2 mogą przyjmowad wartości ujemne, to musimy określid kres dolny MIN1, MIN2, wtedy x 1 = MIN1+m x 1 x 2 = MIN2+n x 2 Osobnik Y będzie zapisany jako Kod dziesiętny Kod binarny (MAX1=MAX2=16) Gen wysokość Gen szerokość
Populacja początkowa Utworzenie populacji początkowej (najczęściej od 20 do 50) chromosomów może byd wykonane na kilka sposobów: 1. Losowe wybieranie wartości poszczególnych genów w kolejnych chromosomach, 2. Przy znanym zakresie MIN, MAX równomierne wypełnianie przestrzeni optymalizacji, 3. Subiektywne ustalanie budowy chromosomów na podstawie istniejących przesłanek.
Funkcja przystosowania Funkcja przystosowania f(x), która podlega maksymalizacji bądź minimalizacji, może byd dana w postaci jawnej: np. lub niejawnej Ta ostatnia postad musi byd stosowana gdy składowe geny nie mają wspólnej reprezentacji matematycznej, np. Wyznaczanie funkcji przystosowania jest identyczne jak w deterministycznych metodach optymalizacji nieliniowej
Mechanizmy selekcji przy wyborze rodziców Punktem wyjściowym do selekcji jest zbiór populacja chromosomów {Y} z przypisaną wartością funkcji przystosowania {f(y)}. Wyznaczamy sumaryczną wartośd SUMf oraz udziały każdego chromosomu w tej sumie Podstawowe rodzaje mechanizmów selekcji to: metoda ruletki, metoda turniejowa, metoda rankingowa,
Mechanizmy selekcji przy wyborze rodziców metoda ruletki PRZYKŁAD. Dla N=5 chromosomów wyznaczono ich udziały f k w sumarycznej wartości funkcji przystosowania. Określamy prawdopodobieostwo p k wylosowania do puli rodziców, które odbywa się w dziedzinie całkowitoliczbowej. Maksymalizacja funkcji przystosowania gdzie C - całkowita liczba ( liczba miejsc w ruletce) Minimalizacja funkcji przystosowania Udział f k zastępujemy przez wielkośd g k obliczaną jako Zachodzi wówczas 1 2 3 4 5 Osobnicy o najgorszym przystosowaniu mogą nie wejśd do puli losowania Osobnicy o najlepszym przystosowaniu mogą nie zostad wylosowani
Mechanizmy selekcji przy wyborze rodziców metody turniejowa i rankingowa Metoda turniejowa Dla N chromosomów wyznaczamy losowo K grup po N/K członków, z których wybieramy do puli rodziców (N/K C ) chromosomów o najlepszej funkcji przystosowania, C wybrana liczba całkowita. Metoda rankingowa N chromosomów szeregujemy w zależności od ich funkcji przystosowania od najlepszej do najgorszej. W zależności od rangi wyznaczamy liczbę kopii osobników przeznaczonych do generacji nowej populacji. Niezależnie od kształtu krzywej rankingowej zachowujemy stałą licznośd populacji. Iloraz liczby kopii do liczby populacji określa prawdopodobieostwo wyboru. Liczba kopii Selekcja elitarna Selekcja proporcjonalna Selekcja egalitarna Ranga
Statyczna i dynamiczna selekcja Selekcja statyczna Metoda wyznaczania rozkładu prawdopodobieostwa wyboru w populacji jest taka sama dla wszystkich pokoleo Selekcja dynamiczna Metoda wyznaczania rozkładu prawdopodobieostwa wyboru w populacji jest zmienna dla kolejnych pokoleo Na przykład stopniowe przechodzenie od strategii egalitarnej przez proporcjonalną do elitarnej Liczba kopii Selekcja elitarna Selekcja proporcjonalna Selekcja egalitarna Ranga
Operatory genetyczne Idea krzyżowania kodowanie binarne 1. Z wyselekcjonowanej puli rodziców losuje się kolejno N/2 par rodziców (N licznośd populacji). 2. Ustala się losowo punkt przecięcia chromosomu dla danej pary alternatywnie: - punkt przecięcia może byd tylko na granicy kolejnych genów; - punkt przecięcia może byd w dowolnym miejscu chromosomu 3. Reprodukuje się parę potomną gen1 gen2 gen3
Operatory genetyczne Krzyżowanie wielopunktowe Można wprowadzid krzyżowanie wielopunktowe, tu pokazano zastosowanie dla ciągłej struktury binarnego chromosomu Schemat krzyżowania trójpunktowego
Operatory genetyczne Krzyżowanie arytmetyczne Chromosom potomny x p jest kombinacją liniową chromosomów rodziców x r Algorytm: 1. Losujemy liczbę z przedziału (0,1). 2. Generujemy potomków według wzoru 3. Sprowadzamy wartości alleli do liczb całkowitych za pomocą funkcji floor
Operatory genetyczne Inwersja W chromosomie potomnym częśd jego genomu jest odwrotnie uszeregowana jak w chromosomie rodzica. Inwersja zapobiega zubożeniu populacji Algorytm: 1. Losujemy liczby z przedziału (0,długośd chromosomu) określające punkty przecięcia 2. Odwracamy kolejnośd fragmentu genomu pomiędzy punktami przecięcia
Operatory genetyczne Mutacja Chromosom potomny powstaje przez zmianę w chromosomie rodzica losowo wybranej części jego genomu na wartośd przeciwną lub wybraną losowo. Mutacja zapobiega zubożeniu populacji Algorytm: 1. Losujemy nr chromosomu i liczbę z przedziału (1,długośd chromosomu) określającą punkt mutacji Wartośd przeciwna w alfabecie 2. Zmieniamy wartośd alleli na przeciwną Kodowanie binarne - binarnym 0 1 - czteroznakowym 0 2, 1 3
Operatory genetyczne Prawdopodobieostwo wystąpienia Krzyżowanie każde pokolenie, Inwersja 0.001 MN Mutacja (0.001-0.01) MN M licznośd populacji N długośd chromosomu Wartości orientacyjne, silnie zależne od problemu!
Odtwarzanie pokolenia (sukcesja) Zastępowanie proste Po krzyżowaniu każda para rodziców jest zastępowana przez parę potomków, na których działają operatory inwersji i mutacji Zastępowanie elitarne 1. Po krzyżowaniu tworzona jest przejściowa populacja o liczności 2M składająca się ze wszystkich rodziców oraz potomków, na tych ostatnich działamy operatorami inwersji i mutacji. 2. Populacja przejściowa jest oceniana funkcją przystosowania, wybieramy M najlepszych osobników.
Kryterium zatrzymania algorytmu Monitorowanie liczby pokoleo N Zatrzymanie następuje gdy liczba pokoleo N > Nmax Monitorowanie funkcji przystosowania Zatrzymanie następuje gdy: - Funkcja przystosowania osiągnęła zadany poziom, - Średnia poprawa funkcji przystosowaniu w pokoleniu mniejsza od zadanej - Maksymalna poprawa funkcji przystosowania w pokoleniu mniejsza od zadanej Monitorowanie różnorodności populacji Zatrzymanie następuje gdy odchylenie standardowe populacji mniejsze od zadanej min
Wprowadzenie ograniczeo Uwzględnienie ograniczeo równościowych i nierównościowych w algorytmach ewolucyjnych wprowadza się analogicznie jak w metodach deterministycznych poszukiwania optimum poprzez wprowadzenie funkcji kary modyfikującej wartośd funkcji przystosowania o wielkośd zależną od istotności naruszenia danego zbioru ograniczeo. Dla minimalizacji mamy f(x) funkcja przystosowania r k, q k współczynniki kary g k <0 - ograniczenie nierównościowe h k =0 - ograniczenie równościowe P(z 0)=0, P(z>0)=1
Hybrydowe algorytmy ewolucyjne W hybrydowych algorytmach ewolucyjnych dzielimy strukturę genomu na dwie części {x} = [{x D }, {x P }]. Wektor genów dominujących {x D }, o największym wpływie na wartośd funkcji przystosowania oraz wektor genów pomocniczych {x P }, o niewielkim wpływie na wartośd funkcji przystosowania W algorytmie genetycznym chromosom {x} ma modyfikowaną jedynie częśd {x D }, pozostała częśd {x P } jest zmieniana innym, zewnętrznym algorytmem, zwykle ma to na celu dopasowanie {x} do ograniczeo równościowych h k [{x D }, {x P }]=0