OBLICZENIA EWOLUCYJNE FITNESS F. START COMPUTATION FITNESS F. COMPUTATION INITIAL SUBPOPULATION SENDING CHROM. TO COMPUTERS chromosome AND RECEIVING FITNESS F. EVOLUTIONARY OPERATORS VALUE fitness f. value wykład 3 communication FITNESS F. COMPUTATION with other subpopulations MIGRATION PHASE SELECTION LICZEBNOŚĆ POPULACJI YES TERMINATION CONDITION NO END 1 2 Istotny parametr AG Możliwości regulacji liczebności populacji: Metaalgorytmy genetyczne sterujące parametrami innego AG; Skorzystanie z różnych algorytmów ustalania liczebności populacji ; AG ze zmienną liczebnością populacji. procedure AGzZLP t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek zakończenia) do t:=t+1 podnieś wiek każdego osobnika o 1 zmień P(t) (utwórz P (t)) oceń P (t) usuń osobniki o wieku większym od ich czasużycia 3 4 Populacja pomocnicza P (t): pop_size (t) = ρ pop_size(t) ρ współczynnik reprodukcji procedure AGzZLP t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek zakończenia) do t:=t+1 podnieś wiek każdego osobnika o 1 zmień P(t) oceń P (t) usuń osobniki o wieku większym od ich czasu życia Liczebność populacji po jednej iteracji: pop_size(t+1) = pop_size(t) + pop_size (t) D(t) D(t) liczba osobników, które wyginęły w pokoleniu t. Prawdopodobieństwo wyboru do P (t) niezależne od dopasowania osobnika. Krzyżowanie i mutacja tylko w populacji P (t); Czas życia przypisywany jest jednorazowo każdemu osobnikowi; Wiek osobnika rośnie od 0; Śmierć osobnika gdy wiek przekracza czas jego życia. 5 Ustalanie czasu życia osobników: Wzmacnianie osobników z wartością dopasowania powyżej średniej i osłabianie gorszych od średniej; Dostrajanie liczebności populacji do bieżącego etapu poszukiwań (szczególnie ochrona przed wykładniczym wzrostem populacji). 6 1
Przykład: 2 350-100 x, y 100 1.5 f śr 300 250 1 200 150 0.5 100 0 0 10 20 30 Numer pokolenia pop_size 50 0 40 7 8 METODY UWZGLĘDNIANIA OGRANICZEŃ Np. Problem komiwojażera: Kodowanie klasyczne: (W genie danego miasta zapisany jest numer miasta docelowego). Kodowanie permutacyjne: (W kolejnych genach zapisane są kolejne miasta) Dla kodowania klasycznego: 9 10 1. Metoda kary 3. Użycie dekoderów Kara stała (w tym kara śmierci); Kara zależna od stopnia naruszenia ograniczenia (zależność liniowa, logarytmiczna, wykładnicza itp). Dekodery przekształcenia reprezentacji gwarantujące (lub zwiększających prawdopodobieństwo) generowania osobników spełniających ograniczenia. 2. Algorytmy naprawy - korygowanie rozwiązań niedopuszczalnych. Wady: znaczne wydłużenie czasu obliczeń; algorytm naprawy musi być dopasowany do konkretnego zadania; proces korygowania może być równie złożony, jak zadanie początkowe. 11 Wady: wysokie wymagania obliczeniowe; nie wszystkie ograniczenia mogą być w ten sposób uwzględnione; konieczność stosowania dedykowanych dekoderów. 12 2
Zadanie załadunku (plecakowe) Istnieje cały szereg zadań załadunku (zadań plecakowych). Dany jest zbiór rzeczy o nadanych rozmiarach i wartościach; Należy wybrać jeden lub wiele rozłącznych podzbiorów tak, by suma rozmiarów w każdym podzbiorze nie przekroczyła zadanego ograniczenia (pojemność plecaka) i by suma wartości była maksymalna. Wiele zadań z tej klasy jest NP-trudnych. 13 PROBLEMY NP Problem NP (nondeterministic polynomial): problem decyzyjny, dla którego rozwiązanie można zweryfikować w czasie wielomianowym. Problem P 0 jest NP-zupełny, gdy: 1.P 0 należy do klasy NP, 2.Każdy problem z klasy NP da się sprowadzić w czasie wielomianowym do problemu P 0. Problem NP-trudny spełnia tylko punkt 2. Problemy NP-zupełne maja postać pytania czy istnieje. Problemy NP-trudne to zwykle ich optymalizacyjne wersje ( znajdź najmniejszy ). 14 PROBLEMY NP więcej: http://cpp0x.pl/kursy/teoria-w-informatyce/zlozonosc-obliczeniowa/klasy-problemow-np/430 Zero-jedynkowe zadanie załadunku Wybierz wektor binarny x = x[1],, x[n] spełniający warunki: gdzie: W[i] zbiór wag (rozmiarów); P[i] zbiór zysków; C pojemność. 15 16 Wylosowano 3 zbiory danych: W[i] przypadkowe ([1,ν]) o rozkładzie jednostajnym; 1. Nieskorelowane: W[i] zbiór wag (rozmiarów); P[i] zbiór zysków; P[i] przypadkowe ([1,ν]) o rozkładzie jednostajnym. 2. Słabo skorelowane: P[i] = W[i] + przypadkowe ([-r, r]) o rozkładzie jednostajnym. 2. Silnie skorelowane: P[i]= W[i] + r. Przyjęto parametry: ν = 10, r = 5 Większa korelacja to mniejsza wartość różnicy: max(p[i]/w[i]) - min(p[i]/w[i]), i = 1n co może powodować większe problemy przy optymalizacji. 17 Rozpatrzono 2 rodzaje zadania załadunku: (Michalewicz) Z ograniczoną pojemnością ( ) (Rozwiązanie optymalne zawiera bardzo mało artykułów). Ze średnią pojemnością (C 2 ) (Rozwiązanie optymalne zawiera ok. połowy artykułów). Rodzaje użytych algorytmów: Algorytmy z funkcją kary (A p [k]); Algorytmy z metodami naprawy (A r [k]); Algorytmy z dekoderami (A d [k]). k numer algorytmu 18 3
Ad. 1 ALGORYTMY Z FUNKCJĄKARY ( A p [k] ) Wzrost kary (ze stopniem przekroczenia ograniczenia): Wektor x jest reprezentowany przez łańcuch binarny o długości n. Artykuł i-ty jest ładowany do plecaka tylko wtedy, gdy: Dopasowanie: x[i]=1 a. logarytmiczny: b. liniowy: c. kwadratowy: gdzie: Pen(x) funkcja kary: a) Pen(x) = 0 dla rozw. dopuszczalnych; b) Pen(x) > 0 dla pozostałych rozwiązań. ρ = max{p[i]/w[i]}, i = 1n 19 20 Ad. 2 ALGORYTMY Z MET. NAPRAWY ( A r [k] ) Ad. 3 ALGORYTMY Z DEKODERAMI ( A d [k] ) Wektor x jest reprezentowany przez łańcuch binarny o dł. n. Artykuł i-ty jest ładowany do plecaka tylko wtedy, gdy x[i]=1. Dopasowanie: Można stosować różne metody naprawy. gdzie: x naprawiona wersja wektora x. Zastosowane algorytmy różnią jedynie procedurą wybierającą artykuł do wyjęcia z plecaka: A r [1] naprawa losowa; A r [2] naprawa zachłanna (Wszystkie artykuły w plecaku są ustawione w porządku malejącym względem stosunków zysków do wagi. Procedura wyboru wybiera ostatni artykuł na liście). 21 Wektor x jest reprezentowany przez łańcuch całkowito-liczbowy o długości n, gdzie i-ty składnik wektora to liczba z zakresu [1, n i + 1]; Artykuł i-ty jest ładowany do plecaka tylko wtedy, gdy znajduje się na bieżącej liście. Reprezentacja porządkowa korzysta z listy L artykułów, dekodowanie za pomocą wektora następuje poprzez wybór artykułów z bieżącej listy, np: dla listy: L = (1, 2, 3, 4, 5, 6) dekodowanej za pomocą wektora: < 4, 3, 4, 1, 1, 1 > otrzymujemy ciąg artykułów : 4,3,6,1,2,5 22 A d [1] dekodowanielosowe Procedura dekodowania tworzy listę L artykułów takich, że ich kolejność na liście odpowiada kolejności artykułów w zbiorze wejściowym (który jest przypadkowy). A d [2] dekodowaniezachłanne Procedura dekodowania tworzy listę L artykułów w porządku malejącym względem stosunków zysków do wagi. Dekodowanie wektora x następuje na podstawie uporządkowanego zbioru. Parametry programu: liczebność populacji pop_size = 100 (stała); p m = 0.05; p c = 0.65; liczba pokoleń gen_number = 500. Wyniki średnia z 25 obliczeń 23 Korelacja BRAK SŁABA MOCNA Liczba artykułów 100 250 500 100 250 500 100 250 500 Typ pojemności (ograniczona) C 2 (średnia) A p [1] * 398 A p [2] * 341 A p [3] * 243 Metoda A r [1] * * * 123 136 58 60 C 2 920 837 826 842 894 867 858 * * * 64 156 61 61 C 2 1712 1571 1565 1577 1663 1603 1597 * * * 38 51 38 38 C 2 409 327 328 330 358 334 332 * * * 44 74 43 45 C 2 921 791 789 798 852 804 799 * * * 45 94 43 45 C 2 1729 1532 1532 1539 1624 1548 1574 * * * 62 90 60 60 C 2 742 565 565 567 577 576 576 * * * 66 117 65 64 C 2 1632 1340 1343 1346 1364 1366 1359 * * * 68 120 67 64 C 2 3052 2704 2701 2710 2748 2738 2744 63 345 A r [2] r[2] 94 371 A d [1] 64 355 A d [1] 60 353 24 4
Wnioski: Dla zadań ze średnią pojemnością algorytm A p [1] (z logarytmiczną funkcją kary) jest najskuteczniejszy; Dla zadań z ograniczoną pojemnością zachłanna metoda naprawy (A r [2]) jest najskuteczniejsza. BINARNIE CZY INACZEJ? 25 26 Binarnie 00000 00001 11001 11010 11111 Niebinarnie A B Z 1 6 Ciąg binarny Ciąg niebinarny Wartość Dopasowanie 11000 Y 24 576 01011 L 11 121 01000 I 8 64 10011 T 19 361 27 Porównanie liczby schematów: jednakowa liczba osobników; ciągi kodowe o różnych długościach. By liczba punktów w obu przestrzeniach była jednakowa: 2 l =k l l długość osobnika zakodowanego binarnie, l dł. osobnika zakodowanego w alfabecie k-elementowym tu: 2 5 =k 1 k = 32 28 Liczba schematów: 3 l dla alfabetu dwójkowego (k+1) l dla alfabetu k-elementowego. Jednakże jeżeli: 100 zmiennych; dziedzina z zakresu [-500 500]; żądana dokładność 6 miejsc po przecinku; tu: 3 5 = 243 dla alfabetu dwójkowego (32+1) 1 = 33 dla alfabetu k-elementowego. To: długość łańcucha binarnego wynosi 3000; przestrzeń poszukiwań rzędu 10 1000. Kod dwójkowy charakteryzuje się największą ze wszyst-kich liczbą schematów przypadającą na bit informacji. Dla tak wielkich przestrzeni AG działają słabo 29 30 5
Zasada znaczących cegiełek: Kod należy dobierać w taki sposób, by schematy niskiego rzędu i o małej rozpiętości wyrażały własności zadania oraz pozostawały względnie niezależne od schematów na pozycjach ustalonych. Jeden z celów zmodyfikowanego kodowania: przybliżenie algorytmu do przestrzeni zadania. Dogodne jest, by dwa punkty leżące blisko siebie w przestrzeni reprezentacji (genotyp) leżały również blisko siebie w przestrzeni zadania (fenotyp). (Nie zawsze prawdziwe przy kodowaniu binarnym) Zasada minimalnego alfabetu: np.: Należy wybrać najmniejszy alfabet, w którym zadanie wyraża się w sposób naturalny. Binarnie Całkowitoliczbowo 0111 7 1000 8 31 32 KOD GRAYA procedure GrayToBin value := g 1 b 1 := value for k := 2 to m do if g k = 1 then value := NOT value b k := value procedure BinToGray g 1 := b 1 for k := 2 to m do g k := b k 1 XOR b k a b a XOR b 0 0 0 0 1 1 1 0 1 1 1 0 b = b 1, b 2,, b m liczba binarna g = g 1, g 2,, g m liczba w kodzie Graya; m długość ciągu kodowego. 33 Binarnie 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Kod Graya 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Zmiana 1 bitu w kodzie powoduje, że otrzymana liczba ma szansę być liczbą bezpośrednio bliską liczbie przed zmianą. 34 KODOWANIE CHROMOSOMU: Kodowanie (reprezentacja danych) to zbiór stanów z przestrzeni zadania przedstawiony w postaci skończonego alfabetu znaków. Podział chromosomów uwzględniający strukturę: - standardowe (jak w klasycznym AG); - permutacyjne (np. problem komiwojażera - TSP); - drzewiaste; - macierzowe. KODOWANIE CHROMOSOMU: Podział chromosomów uwzględniający wartości: - binarne (np. zadanie plecakowe); - całkowitoliczbowe (np. TSP); - zmiennopozycyjne (typowe inżynierskie zadania optymalizacji); - tekstowe. 35 36 6
Test: porównanie wydajności kodowania binarnego i zmiennopozycyjnego. Zadanie sterowania: Chromosom wektor sterowania u Dziedzina: -200, 200 dla każdego u i. Przyjęto: x 0 =100, N=45 (u = u 0,, u 44 ). Ograniczenia: gdzie:, k = 0, 1,, N -1 x 0 stan początkowy; x k R stan; u R N poszukiwany wektor sterowania. 37 Optimum: tu: J* = 16180.4 38 Wersja binarna: Wersja zmiennopozycyjna: Każdy element wektora chromosomu zakodowano za pomocą tej samej liczby bitów; Każdy chromosom jest wektorem składającym się z N słów; Każdy chromosom to wektor liczb zmiennopozycyjnych o długości zgodnej z wektorem rozwiązania; Operatory określono tak, by każdy element chromosomu mieścił się w wymaganym zakresie. Nie pozwala na zwiększenie dokładności bez zwiększenia liczby bitów; Przy wzroście rozmiarów dziedziny dokładność maleje przy konieczności zachowania stałej liczby bitów. Pozwala uwzględnić bardzo duże dziedziny jak również przypadki o nieznanych dziedzinach; Łatwiej jest zaprojektować specjalistyczne narzędzia ułatwiające postępowanie w przypadku nietrywialnych ograniczeń. 39 40 Porównywalność algorytmów: Stała liczebność populacji (60 osobników) Stała liczba pokoleń (20 000) W reprezentacji binarnej użyto 30 bitów do zakodowania jednej zmiennej, co daje: 30*45=1350 bitów w chromosomie. Wyniki: L. elementów (N) Czas CPU [s] zmiennopoz. binarnie 5 184 1080 15 398 3123 25 611 5137 35 823 7177 45 1072 9221 Mimo użycia różnych operatorów (co wynika ze sposobu kodowania zadania i może powodować różnice w interpretacji) parametry programu dobrano tak, by wyniki mogły zostać uczciwie porównane. (np. w przypadku reprezentacji binarnej użyto klasycznych operatorów, jednak zezwolono na krzyżowanie tylko pomiędzy elementami). 41 42 7
Wnioski z testów: Reprezentacja zmiennopozycyjna jest szybsza. ZADANIE OPTYMALIZACJI Reprezentacja zmiennopozycyjna jest stabilniejsza (daje bardziej zbliżone wyniki w różnych przebiegach). MODYFIKACJA PROBLEMU MODYFIKACJA ALGORYTMU Reprezentacja zmiennopozycyjna jest dokładniejsza (szczególnie w większych dziedzinach). ZMODYFIKOWANY PROBLEM ALGORYTM EWOLUCYJNY Działanie algorytmów (szybkość, zbieżność) można poprawić wprowadzając specjalne operatory. W przypadku kodowania binarnego dla dużych dziedzin i wymaganej większej dokładności różnice w czasach obliczeń powiększają się. KLASYCZNY AG ROZWIĄZANIE OPTYMALNE Zastosowanie AE 43 44 Modyfikacje: łańcuchy o zmiennej długości; struktury bogatsze od łańcuchów (np. macierze); zmodyfikowane operatory; nowe operatory (inwersja, klonowanie, itp.); inna niż binarna reprezentacja zadania; pamięć chromosomu; zmieniony AG, ulepszony AG, zmodyfikowany AG, 45 Różnorodne programy opierające się na zasadzie ewolucji mogą się różnić: strukturą danych; operatorami; metodami tworzenia populacji początkowej; sposobami uwzględniania ograniczeń zadania; parametrami. Zasada działania nie zmienia się: populacja osobników podlega pewnej transformacji zaś osobniki starają się przetrwać w procesie ewolucji. 46 ALGORYTMY EWOLUCYJNE AG AE Rozwinięcie idei klasycznych AG w kierunku systemów bardziej skomplikowanych, zawierających: odpowiednie struktury danych (kodowanie); odpowiednie operatory. Słabość AE podstawy teoretyczne: tylko dla czystych AG istnieje tw. o schematach; w innych podejściach tylko w niektórych przypadkach można wykazać teoretycznie ich zbieżność (np. strategie ewolucyjne stosowane do zadań regularnych). 47 Zwykle jednak tylko uzyskujemy interesujące wyniki 48 8
Równoległość AG i AE: Rozproszony AE, autor: Wacław KUŚ: W świecie, w którym algorytmy sekwencyjne są przerabiane na równoległe za pomocą niezliczonych sztuczek i łamańców, jest niemałą ironią, że AG (algorytmy wysoko równoległe) są przerabiane na sekwencyjne za pomocą równie nienaturalnych sztuczek i wykrętów Goldberg, 1995 Rozproszony AE znaczące przyspieszenie obliczeń N START POPULACJA POCZĄTKOWA OPERATORY EWOLUCYJNE MIGRACJA SELEKCJA WARUNEK ZATRZYMANIA STOP chromosom PROCES f. celu ZARZĄDZAJĄCY T FEM FEM (F. CELU) FEM komunikacja z innymi podpopulacjami Max liczba procesorów: (l. podpopulacji) (l. osobników) 49 50 Dla danego problemu można określić wiele sposobów kodowania i zdefiniować szereg operatorów (np. zadanie komiwojażera). AE to rozwinięcie i uogólnienie AG. Należy jednoznacznie określić: schemat działania AE; metodę selekcji; sposób kodowania i operatory genetyczne; środowisko działania AE. 51 procedure Algorytm_Ewolucyjny t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) (działanie operatorów ewolucyjnych) oceń O(t) utwórz P(t+1) z O(t) i P(t) (sukcesja) t:=t+1 T temporary - tymczasowy O offspring - potomny 52 REPRODUKCJA (preselekcja) SELEKCJA = + SUKCESJA (postselekcja) procedure Algorytm_Ewolucyjny t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) (operatory) oceń O(t) utwórz P(t+1) z O(t) i P(t) (sukcesja) t:=t+1 Reprodukcja tworzenie populacji tymczasowej T(t), która jest poddawana działaniu operatorów genetycznych tworząc populację potomną O(t). METODY REPRODUKCJI Sukcesja tworzenie nowej populacji bazowej P(t+1) z populacji potomnej O(t) oraz starej populacji bazowej P(t). 53 54 9
R. PROPORCJONALNA R. TURNIEJOWA Wybór k osobników (rozmiar turnieju, zwykle k=2) i selekcja najlepszego z grupy. jak w AG Powtarzane pop_size razy. 55 56 R. RANKINGOWA Szeregowanie osobników według wartości przystosowania i selekcja zgodnie z kolejnością (wg tzw. linii rangi ): zapobiega powstawaniu superosobników; pomija informację o względnych ocenach osobników. 57 10