750 likes | 981 Views
Algorytmy genetyczne - plan wykładu. Wstęp Standardowy algorytm genetyczny Matematyczne podstawy algorytmów genetycznych Techniki poprawiające efektywność algorytmów genetycznych Genetyczne systemy uczące się (GBML) Programowanie genetyczne. Algorytmy genetyczne - literatura.
E N D
Algorytmy genetyczne - plan wykładu • Wstęp • Standardowy algorytm genetyczny • Matematyczne podstawy algorytmów genetycznych • Techniki poprawiające efektywność algorytmów genetycznych • Genetyczne systemy uczące się (GBML) • Programowanie genetyczne
Algorytmy genetyczne - literatura John Holland, Adaptation in natural and artificial systems, The University of Michigan Press, 1975 David E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1995 Jarosław Arabas, Wykłady z algorytmów ewolucyjnych, WNT, Warszawa 2001 Robert Schaefer, Podstawy genetycznej optymalizacji globalnej, Wydawnictwo Uniwersytetu Jagiellońskiego, Kraków 2002
Definicje Algorytmy genetyczne – algorytmy poszukiwania oparte na mechanizmach doboru naturalnego oraz łączenia cech rozwiązań Uczenie się systemu - każda autonomiczna zmiana w systemie zachodząca na podstawie doświadczeń, która prowadzi do poprawy jakości jego działania. • Rodzaje uczenia: • Z nauczycielem • Z krytykiem • Samoorganizacja
Cele badań nad algorytmami genetycznymi • Wyjaśnienie procesów adaptacyjnych występujących w przyrodzie • Zastosowanie w zadaniach optymalizacji i uczenia
Równoważność algorytmów optymalizacji Reguła „nie ma nic za darmo” (ang. no free lunch theory): efektywność różnych typowych algorytmów szukania uśredniona po wszystkich wszystkich możliwych problemach optymalizacyjnych jest taka sama • Typowe algorytmy szukania (optymalizacji): • metoda enumeracyjna (wyliczeniowa) • szukanie gradientowe • symulowane wyżarzanie • strategie ewolucyjne • algorytmy genetyczne • metody wyspecjalizowane (wykorzystujące szczegółową wiedzę o problemie)
Terminy genetyczne i ich odpowiedniki w sztucznych systemach genetycznych
gen x Terminy genetyczne - schemat fenotyp: genotyp: 1 0 1 0 0 1 0 allel(gen x) = 1 zbiór alleli (gen x) = {0,1} locus(gen x) = 3
Standardowy algorytm genetyczny – ogólny schemat • Generowanie • populacji potomnej: • Reprodukcja • Krzyżowanie • Mutacja Start Losowa generacja populacji osobników Ocena populacji osobników Tak Czy koniec ewolucji? Nie Koniec
Funkcje podstawowych operatorów genetycznych Reprodukcja – wybór najlepiej przystosowanych osobników (rozwiązań) do następnego pokolenia Krzyżowanie – szukanie rozwiązań zawierających cechy wielu dobrych rozwiązań Mutacja – dostarczanie nowego materiału genetycznego
Czynności związane z realizacją algorytmu genetycznego • Wybór metody kodowania - reprezentacji fenotypu (rozwiązania) • Wybór operatorów genetycznych w zależności od problemu i przyjętego sposobu kodowania • Dobór wartości parametrów ewolucji
Typy reprodukcji • Ruletkowa – proporcjonalna do wartości funkcji przystosowania - konieczność skalowania • Rangowa – zależna od rangi – numeru na liście posortowanej względem przystosowania • Turniejowa – wielokrotny wybór najlepszego osobnika z losowo wybieranej podpopulacji aż do skompletowania populacji potomnej
Reprodukcja ruletkowa Przykład: optymalizacja funkcji Koło ruletki:
* Reprodukcja rangowa • Metody wyznaczania prawdopodobieństwa reprodukcji: • Liniowa: • Potęgowa: • gdzie: • r(X) – ranga rozwiązania X, • rmax – ranga maksymalna, • a,b,k – stałe spełniające warunki:
* Reprodukcja rangowa - przykład Wyznaczanie prawdopodobieństwa reprodukcji metodą liniową dla funkcji przystosowania
Typy krzyżowania - 1/2 • Ze względu na sposób kojarzenia osobników: • Kojarzenie losowe - jednakowe prawdopodobieństwo dla wszystkich par • Kojarzenie krewniacze (endogamia) - wśród osobników pokrewnych • Kojarzenie według linii - szczególnie wartościowy osobnik jest kojarzony ze wszystkimi członkami populacji • Kojarzenie selektywne dodatnie - kojarzenie osobników podobnych np. w sensie odległości Hamminga • Kojarzenie selektywnie ujemne - kojarzenie osobników niepodobnych
Typy krzyżowania - 2/2 • Ze względu na liczbę przecięć: • Jednopunktowe • Wielopunktowe • Ze względu na liczbę osobników: • Dwuosobnicze • Wieloosobnicze • W przypadku rzeczywistoliczbowej reprezentacji genotypu: • Przez wymianę wartości genów • Przez uśrednienie wartości genów
Symulacja algorytmu genetycznego optymalizującego funkcję f(x) = x2
Metody kodowania • Ze względu na typ wartości genu - allelu: • Binarne np. 1000110 • Całkowitoliczbowe • O wartościach rzeczywistych (fenotypowe)
* Kodowanie binarne kod pozycyjny kod Graya liczba Kodowanie pozycyjne: 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000 gdzie x - parametr rozwiązania, - element ciągu kodowego Kodowanie Graya:
* Kodowanie fenotypowe Wybrane operatory fenotypowe: - mutacja fenotypowa normalna: - krzyżowanie fenotypowe: - wektor parametrów fenotypu
Metody kodowania • Ze względu na sposób reprezentowania cech: • Klasyczne - każda cecha fenotypu jest kodowana przez wartość odpowiedniego genu niezależnie od jego umiejscowienia • Permutacyjne - cechy kodowane są przez pozycje genów (locus) • Mieszane - cechy kodowane zarówno przez pozycje jak i umiejscowienie genów
3 5 1 7 4 2 6 Problem komiwojażera – przykład kodowania permutacyjnego • Założenia: • każde miasto jest przypisane do jednego z genów • o kolejności odwiedzin każdego z miast decyduje jego umiejscowienie w ciągu kodowym Przykład: ciąg kodowy: 2 5 1 3 4 7 6 rozwiązanie:
Metody kodowania - cd • Ze względu na strukturę genotypu: • Za pomocą ciągów • Za pomocą innych struktur np. drzew, grafów, sieci
Dobór wartości parametrów algorytmu genetycznego • Typy doboru: • arbitralny – stałe wartości • heurystyczny • ewolucyjny • Sposoby doboru ewolucyjnego ze względu na metodę reprezentowania parametrów: • z podziałem na podpopulacje • z parametrami zakodowanymi we wspólnym genotypie
Meta - AG parametry zakodowane AG-1 parametry zakodowane AG-2 parametry zakodowane AG-K ... parametry AG-1 parametry AG-2 parametry AG-K AG-1 AG-2 AG-K ... podpopulacja 1 podpopulacja 2 podpopulacja K Algorytm z podziałem na podpopulacje
Algorytm z podziałem na podpopulacje • Założenia: • Algorytm działa dwufazowo: najpierw uruchamiane są algorytmy dla poszczególnych podpopulacji a następnie uruchamiany jest metaalgorytm (z reguły dużo rzadziej), którego osobnikami są zbiory parametrów algorytmów genetycznych • Poszczególne podpopulacje mogą być kopiowane lub usuwane w ramach reprodukcji dla metaalgorytmu
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Algorytm z parametrami zakodowanymi we wspólnym genotypie • Przykładowy genotyp (jeden chromosom): 0 1 1 0 1 0 0 0 1 0 1 0 0 1 informacja o dominowaniu Zakodowany fenotyp sposób kodowania prawd. mutacji prawd. krzyżowania
Model elitarny Najlepsze osobniki w populacji przechodzą do następnego pokolenia bez jakichkolwiek zmian. Zadanie: Podaj zalety i wady takiego modelu. zaleta - zachowanie najlepszych znanych rozwiązań wada - nadmierne skupienie populacji w obszarach wybranych rozwiązań
Zalety i wady algorytmów genetycznych • Zalety: • Odporność - unikanie ekstremów lokalnych, prawdopodobieństwo znalezienia dobrych rozwiązań jest w dużym stopniu niezależne od wyboru punktów początkowych • Wydajność – duża liczba przetwarzanych schematów - ok. m3, gdzie m - liczba osobników w populacji • Łatwość zastosowania w niemal każdym zadaniu optymalizacji • Wady: • Brak gwarancji zbieżności do optymalnego rozwiązania
Różnice pomiędzy algorytmami genetycznymi a tradycyjnymi metodami szukania • Algorytmy genetyczne przetwarzają zakodowaną postać parametrów zadania (ciąg kodowy) a nie same parametry • Poszukiwania prowadzone są w obrębie całej populacji rozwiązań (osobników) a nie pojedynczego rozwiązania • Wykorzystywana jest tylko funkcja celu (uczenie z krytykiem) bez żadnej dodatkowej informacji naprowadzającej np. pochodnej funkcji celu • Stosowane są probabilistyczne a nie deterministyczne reguły wyboru
* Schematy 1/5 Schemat (H) - ciąg złożony z symboli alfabetu ciągu kodowego i symbolu specjalnego -”*” reprezentującego dowolny symbol alfabetu ciągu kodowego W przypadku kodowania binarnego schemat składa się z symboli alfabetu V+={0,1, *} Przykładowo ciąg kodowy 0110100 jest reprezentantem schematu H=*11***0 o długości l=7 Gdy alfabet ciągu kodowego składa się z k symboli, można określić (k+1)lschematów. Rząd schematu o(H) - liczba pozycji ustalonych (zer i jedynek w przypadku binarnym), np. o(011*1**) = 4 Rozpiętość schematu (H) - odległość pomiędzy dwiema skrajnymi pozycjami ustalonymi, np. (011*1**) = 5-1 = 4
* Schematy 2/5 Przyjmijmy standardowy algorytm genetyczny z kodowaniem binarnym, reprodukcją ruletkową, krzyżowaniem prostym losowym i losową mutacją jednopozycyjną Niech w chwili t w populacji znajduje się m(H,t) reprezentantów schematu H. Oczekiwana liczba schematów w populacji potomnej wyniesie wówczas: f(H) - średnie przystosowanie wszystkich ciągów reprezentujących schemat H w chwili t fi - przystosowanie i-tego ciągu w chwili t
* Schematy 3/5 Załóżmy, że pewien schemat H przewyższa średnią o , gdzie c jest stałą. W efekcie otrzymujemy: Zaczynając natomiast od t=0 otrzymujemy: co świadczy o wykładniczym tempie rozprzestrzeniania się schematów o lepszym niż przeciętne przystosowaniu za sprawą samej reprodukcji.
* Schematy 4/5 Uwzględniając krzyżowanie i mutację otrzymujemy dolne oszacowanie oczekiwanej liczby schematów w pokoleniu potomnym: gdzie pc i pm oznaczają odpowiednio prawdopodobieństwa krzyżowania osobnika i mutacji genu
* Schematy 5/5 • Wnioski: • Krzyżowanie przyczynia się do niszczenia schematów o dużych rozpiętościach • Schematy o wysokim przystosowaniu i małej rozpiętości rozprzestrzeniają się w wykładniczym tempie - hipoteza schematów-cegiełek mogących łączyć się w struktury o wysokim przystosowaniu
* Minimalny problem zwodniczy 1/3 • Wybierzmy 4 schematy rzędu 2 o następujących średnich przystosowaniach: • ***0*****0* f(00) • ***0*****1* f(01) • ***1*****0* f(10) • ***1*****1* f(11) • Załóżmy, że f(11) jest globalnym maksimum. Można wyróżnić dwa typy problemów zwodniczych: • Typ 1: f(01)>f(00) i f(10)<f(00) lub f(01)<f(00) i f(10)>f(00) • Typ 2: f(01)<f(00) i f(10)<f(00) • Oba wiążą się z pozycyjną epistazą - zmiana w lepszym kierunku może pogorszyć przystosowanie
* Minimalny problem zwodniczy 2/3 Typ 1 Typ 2
* Minimalny problem zwodniczy 2/3 Jeśli w przypadku typu 2 f(00)+f(01) > f(10)+f(11), to proces szukania w zależności od początkowej liczności schematów może być rozbieżny (problem AG-trudny) Typ 2
Wady standardowego algorytmu genetycznego • Nieefektywność w przypadku problemów epistatycznie nieliniowych - przy braku dobrych schematów • Spadek różnorodności małej populacji w końcowej fazie ewolucji związana z tzw. dryfem genetycznym - odchylenia liczby osobników przy podobnych wartościach funkcji przystosowania • Nieefektywność w przypadku niestacjonarności środowiska
Metody likwidowania ograniczeń standardowego algorytmu genetycznego
Rekonfiguracja - zmiana pozycji genów • Założenia: • Konieczne jest dołączenie informacji o pozycjach poszczególnych genów w trakcie krzyżowania • Jeśli parametry AG są kodowane we wspólnym genotypie to informację taką można reprezentować za pomocą dodatkowego chromosomu lub dołączyć bezpośrednio do ciągu kodowego kodującego fenotyp • Jeśli informacja o pozycjach poszczególnych genów jest kodowana permutacyjnie to można ją poddać ewolucji stosując np. operację inwersji oraz krzyżowanie ciągów permutacyjnych metodą PMX, OX lub CX
Rekonfiguracja - zmiana pozycji genów Inwersja liniowa: Numerujemy geny w ciągu kodowym, wybieramy losowo 2 punkty przecięcia, obracamy środkowy fragment chromosomu. Przykład dla genów o wartościach binarnych: 1 2 3 4 5 6 7 8 1 0 1 1 1 0 1 1 - przed inwersją ^ ^ 1 2 6 5 4 3 7 8 1 0 0 1 1 1 1 1 - po inwersji postać genotypu: 1 2 6 5 4 3 7 8 - ciąg porządkowy g1 g2 g6 g5 g4 g3 g7 g8 - ciąg genów (kodowy)
Typy inwersji • Ze względu na liczbę punktów przecięcia: • Inwersja liniowa • Inwersja liniowo-boczna: z prawdopodobieństwem 0,75 inwersja liniowa, z prawdopodobieństwem 0,125 inwersja boczna dla każdego z końców (zapobiega faworyzowaniu środkowej części chromosomu) • Ze względu na wymóg homologiczności (zgodności pozycyjnej) chromosomów przy krzyżowaniu: • Inwersja ciągła - niehomologiczne chromosomy w jednej populacji • Inwersja masowa - dla każdego uporządkowania genów tworzona jest oddzielna podpopulacja
Metody kojarzenia ciągów kodowych przy inwersji • Kojarzenie ściśle homologiczne (w przypadku wylosowania ciągów niehomologicznych krzyżowanie nie zachodzi) • Kojarzenie na podstawie żywotności - w przypadku ciągów niehomologicznych do populacji potomnej wchodzą tylko ciągi o odpowiednio dużym zestawie genów • Kojarzenie według wzorca - jeden z ciągów jest rekonfigurowany względem drugiego • Kojarzenie według wzorca lepiej przystosowanego osobnika
Kojarzenie według wzorca ciąg 1 ciąg 2 pozycja: 1 2 3 5 4 2 4 1 3 5 wartość: 1 1 1 1 1 1 1 0 0 0 Po wybraniu wzorca ciągu 1, pozycje ciągu 2 muszą zostać dopasowane do ciągu 1: 2 4 1 3 5 1 2 3 5 4 1 1 0 0 0 0 1 0 0 1 Teraz można dokonać krzyżowania w wybranym losowo punkcie: 1 1 1|1 1 1 1 1 0 1 0 1 0|0 1 0 1 0 1 1 I przekonfigurować ciąg 2 do pierwotnej postaci: 2 4 1 3 5 1 1 0 0 1
Metody krzyżowania przy kodowaniu permutacyjnym • PMX (partially matched crossover) • OX (order crossover) • CX (cycle crossover) Wszystkie z powyższych operacji pozwalają na zachowanie pełnego zestawu genów przy jednoczesnym krzyżowaniu i inwersji
Metoda PMX Zamiana numerów pozycji na podstawie przyporządkowania numerów w środkowym fragmencie ciągu: A = 9 8 4 | 5 6 7 | 1 3 2 10 B = 8 7 1 | 2 3 10 | 9 5 4 6 A’ = 9 8 4 | 2 3 10 | 1 6 5 7 B’ = 8 10 1 | 5 6 7 | 9 2 4 3 Zamieniamy miejscami 5 i 2, 6 i 3 oraz 7 i 10 w obu ciągach
3 5 1 7 4 2 6 Problem komiwojażera - kodowanie permutacyjne fenotypu • Założenia: • każde miasto jest przypisane do jednego z genów • o kolejności odwiedzin każdego z miast decyduje jego umiejscowienie w ciągu kodowym Przykład: ciąg kodowy: 2 5 1 3 4 7 6 rozwiązanie: