Wyk ady z algorytmów genetycznych Cześć 1: Podstawowe informacje o algorytmach genetycznych Marcin Studniarski Wydzia Matematyki i Informatyki Uniwersytetu ódzkiego Uwagi. 1. Niniejszy skrypt nie obejmuje ca ości wyk adu (patrz Uwagi końcowe). Brak w skrypcie cz eści materia u wyg oszonego na wyk adzie nie oznacza, ze materia ten nie obowiazuje na egzaminie. Lista pytań na egzamin jest zamieszczona w oddzielnym pliku. 2. Autor dzi ekuje Panu Dominikowi Witczakowi za udost epnienie elektronicznych notatek z wyk adu. 1 Literatura do wyk adu Na końcu tej cz eści wyk adu znajduje si e spis literatury, z której korzysta em przy opracowaniu wyk adu oraz która mo ze być pomocna studentom. Ksia zki Arabasa [1] i Goldberga [2] zawieraja g ównie opisowe omówienie przedmiotu bez wg ebiania si e w rozwa zania matematyczne. W [1] omawia si e g ównie ró zne odmiany algorytmów ewolucyjnych (algorytm ewolucyjny jest szerszym poj eciem ni z algorytm genetyczny) oraz sposób ich dzia ania, ró zne metody selekcji, operatory genetyczne, itp. Natomiast w [2] wi ecej uwagi poświ eca si e implementacji komputerowej oraz zastosowaniom algorytmów genetycznych. Ksia zka Michalewicza [3] zawiera zarówno elementy teorii, jak i zastosowania, z tym, ze teoria jest przedstawiona zgodnie ze stanem wiedzy w okresie, gdy ksia zka ta powstawa a. Matematyczna teoria algorytmów genetycznych rozwin e a si e w ciagu ostatnich kilkunastu lat i jest przedstawiona w monogra ach Vose [5] oraz Reevesa i Rowe [4]. W pierwszej z tych pozycji wykorzystuje si e bardzo zaawansowany aparat matematyczny do badania zachowania si e populacji generowanych przez algorytm genetyczny. Druga ksia zka omawia aktualny stan teorii w sposób bardziej przegladowy. 2 Wprowadzenie Algorytmy genetyczne naśladuja procesy ewolucyjne obserwowane w przyrodzie. Konstrukcja tych algorytmów opiera sie na sa dwóch za o zeniach przyj etych w teorii ewolucji: 1. W procesie rozmna zania si e zywych organizmów nast epuje wymiana informacji genetycznych. 1
2. Od czasu do czasu, w wyniku zachodzacych mutacji, pojawiaja sie w przyrodzie zywe organizmy o cechach genetycznych istotnie ró znych od cech pozosta ych ( zyjacych wcześniej) organizmów. W algorytmach genetycznych osobniki sa reprezentowane przez chromosomy, które sa ańcuchami binarnymi. Wymiana informacji mi edzy osobnikami odbywa sie w procesie krzy zowania, który przebiega nastepujaco. Za ó zmy, ze mamy dwa ańcuchy: 101110001101 011100010010 Najpierw losujemy, czy te ańcuchy maja podlegać krzy zowaniu; jeśli tak, to losujemy jedna z pozycji do rozci ecia. Przypuśćmy, ze wylosowaliśmy pozycj e po piatym bicie: 10111j0001101 01110j0010010 Wówczas z pary rodziców powstaje para potomków poprzez zamiane końcowych segmentów rolami: 10111j0010010 01110j0001101 Mo zna de niować bardziej z o zone krzy zowania, np. rozcinamy ańcuchy w dwóch miejscach i wymieniamy środkowe segmenty. Mutacja dzia a natomiast tylko na jeden ańcuch, i polega na tym, ze dla ka zdego bitu losujemy, czy ma zajść mutacja czy nie (zwykle prawdopodobieństwo mutacji jest ma e, np. 1/100). Jeśli dla któregoś bitu wylosujemy, ze ma być zmutowany, to wówczas negujemy taki bit (tj. zamieniamy 0 na 1 lub odwrotnie). Trzecim procesem jest selekcja. Algorytm opiera si e tutaj na tym, ze najpierw wybieramy losowo populacj e r osobników, i to odpowiada w przyrodzie sytuacji, gdy mamy n zwierzaków, tworzacych pewna populacj e. Te zwierzaki sie rozmna zaja, ale oprócz tego s absze osobniki szybciej gina. Modeluje si e to tak, ze wybieramy najlepiej przystosowane osobniki (tzn. takie, które w przyrodzie szybciej potra a uciekać, albo maja ostrzejsze zeby, itp.), a w ujeciu programistycznym ka zdemu osobnikowi przyporzadkowuje sie liczb e, która nazywamy przystosowaniem osobnika (na ogó sa to liczby dodatnie). W ten sposób na zbiorze osobników jest określona pewna funkcja zwana funkcja przystosowania. Jeśli losuje si e osobnika, to uruchamia si e ko o ruletki : jeśli mamy osobniki v 1, v 2,.., to na okregu przeznacza sie kawa ek proporcjonalny do przystosowania ka zdego osobnika. Losuje si e nast epnie z tego ko a osobniki, które przechodza do nast epnego pokolenia. 2
Mo ze w selekcji zajść sytuacja, w której wylosowanych zostanie kilka takich samych osobników. Selekcja nie pomog aby otrzymać potomstwa z takich par, zatem z pomoca przychodzi mutacja, dzi eki której uzyskujemy nowe cechy genetyczne. Z tego powodu najpierw przeprowadza si e selekcj e ( zeby wybrać te lepsze osobniki), potem przeprowadza si e krzy zowanie (wymiana informacji genetycznych mi edzy osobnikami),a na końcu mutacj e, która ma umo zliwić tworzenie zupe nie nowych osobników. Oczywiście operatory dostosowuje si e do zadania. Np. jeśli szukamy maksimum funkcji dwóch zmiennych, to jeśli mamy pare osobników x = (x 1 ; x 2 ) i y = (y 1 ; y 2 ), to mo zna krzy zowanie zde niować jako dobór dwóch punktów le z acych na odcinku aczacym x i y w pobli zu środka tego odcinka Algorytmy genetyczne stosuje si e cz esto np. do optymalizacji funkcji, dla których metody ró zniczkowe np. zawodza. Tak ze do optymalizacji zapytań w bazach danych. W porównaniu z algorytmami deterministycznymi algorytmy genetyczne maja wady i zalety. Zaleta na pewno jest to, ze o funkcjach przystosowania nie trzeba niczego zak adać, moga być one zupe nie dowolne, moga mieć bardzo brzydki wykres. Algorytm genetyczny mo ze jednak dzia ać bardzo wolno, poza tym rozwiazanie optymalne mo ze zostać utracone w kolejnych pokoleniach. Dobrym algorytmem jest model elitarny, w którym najlepsze osobniki sa zachowywane albo sa one zachowywane w ramach populacji i biora udzia w dalszej ewolucji, albo sa jedynie odnotowywane w pamieci i potem sie je wyrzuca stamtad, jeśli pojawi sie lepszy. Inne wady: brak sensownych kryteriów zatrzymania. Na dobra sprawe algorytmy genetyczne moga dzia ać w nieskończoność, ale to przecie z nie ma wiekszego sensu. Ciekawymi kryteriami sa kryteria probabilistyczne: podaja, ile iteracji trzeba wykonać, by z danym prawdopodobieństwem (np. 99%) najlepsze znalezione dotychczas rozwiazanie by o optymalne. Zawsze mo zna dobrać bardzo z ośliwy przyk ad do ka zdego algorytmu genetycznego, z ośliwa funkcj e przystosowania, zeby w aśnie w jednym punkcie by a wy zsza wartość, a wsz edzie indziej zera - wtedy algorytm genetyczny nie dzia a lepiej ni z zwyk e losowe przeszukiwanie. Innym problemem jest optymalizacja wielokryterialna. Do tej pory rozmawialiśmy o optymalizacji jednokryterialnej, gdy jest jedna funkcja przystosowania. Jest trudniej, jeśli sa dwa kryteria optymalności. Na przyk ad, gdy mamy zbiór portfeli papierów wartościowych skonstruowany z poszczególnych akcji, to mo zna ka zdemu portfelowi przypisać oczekiwana stop e zysku oraz ryzyko sa to dwa kon iktowe kryteria optymalności, bo ryzyko chcemy zminimalizować, a zysk zmaksymalizować. Algorytm powinien wygenerować pewien zbiór punktów (tzw. punktów niezdominowanych lub rozwiazań optymalnych w sensie Pareto), który pozwala by inwestorowi na podj ecie w aściwej decyzji w zale zności od jego preferencji (tzn. wi ekszej lub mniejszej sk onności do ryzyka). Algorytmy genetyczne do takich zadań nadaja sie doskonale, bo generuja zbiory osobników, a nie jak w przypadku gradientowych metod optymalizacji pojedyncze punkty. Z drugiej strony trudne jest opracowanie metody selekcji lepszych osobników 3
w sytuacji, gdy funkcja przystosowania jest wektorowa. Opracowanie dobrych algorytmów genetycznych dla optymalizacji wielokryterialnej jest wcia z problemem otwartym. 3 Klasyczny algorytm genetyczny Rozwa zamy funkcj e określona na przestrzeni euklidesowej: f : R n! R. Za- ó zmy, ze szukamy maksimum funkcji f na zbiorze C := ny [ i ; i ] (1) i=1 (iloczyn kartezjański n przedzia ów domkni etych). Do powy zszego zadania optymalizacji chcemy zastosować algorytm genetyczny, w którym funkcja przystosowania jest sama funkcja f. W tym celu zak adamy, ze f(x) > 0 dla ka zdego x 2 C: (2) Jeśli warunek (2) nie jest spe niony, a funkcja f jest ograniczona z do u, to spe nienie tego za o zenia mo zna osiagn ać dodajac do f pewna sta a. W przypadku zadania minimalizacji mo zna jako funkcj e przystosowania wziać f (z dodana ewentualnie pewna sta a). W klasycznym algorytmie genetycznym (zwanym tak ze prostym algorytmem genetycznym) osobniki (chromosomy) zakodowane sa w postaci ańcuchów binarnych (tj. skończonych ciagów o ustalonej d ugości z o zonych z zer i jedynek). Zatem punkty przestrzeni R n, b edace ciagami n liczb rzeczywistych, musimy jakoś zakodować jako ańcuchy binarne. Wiadomo, ze w komputerze mo zna reprezentować tylko skończony podzbiór zbioru liczb rzeczywistych. Zatem algorytm genetyczny zawsze dzia a na pewnym skończonym zbiorze osobników, zwanym przestrzenia poszukiwań, który oznaczamy symbolem. W naszym przyk adzie nale zy skonstruować zbiór C, gdzie C jest dany wzorem (1). Liczebność zbioru zale zy od wymaganej dok adności obliczeń. Przypuśćmy, ze wynosi ona k cyfr po przecinku. Wówczas dzielimy ka zdy przedzia [ i ; i ] na ( i i ) 10 k podprzedzia ów o równej d ugości. Oznaczmy przez m i najmniejsza liczb e ca kowita spe niajac a nierówność ( i i ) 10 k 2 mi 1: (3) Wówczas reprezentacja, posiadajaca ka zda zmienna x i zakodowana jako ańcuch binarny o d ugości m i, spe nia przyjete wymagania dok adności. Poniewa z d ugości przedzia ów [ i ; i ] odpowiadajacych poszczególnym zmiennym moga być ró zne, wi ec ilość bitów niezb ednych do zakodowania ka zdej zmiennej mo ze być inna. Dla zamiany ańcucha binarnego na liczb e rzeczywista u zywamy nast epujacego wzoru: jeśli (a 1 a 2 :::a mi 1a mi ) (4) 4
jest ańcuchem binarnym o d ugości m i, to i x i = i + i 2 mi 1 mx i 1 j=0 2 j a mi j (i = 1; :::; n): (5) Reprezentacja binarna ca ego wektora x = (x 1 ; :::; x n ) jest konkatenacja (sklejeniem) ańcuchów (4) odpowiadajacych kolejnym zmiennym. D ugość takiego ańcucha wynosi nx m = m i ; (6) i=1 przy czym w ańcuchu tym pierwszych m 1 bitów s u zy do zakodowania liczby x 1, nastepnych m 2 bitów do zakodowania liczby x 2, itd. Parametrami algorytmu sa prawdopodobieństwo krzy zowania p c oraz prawdopodobieństwo mutacji p m, b edace liczbami z przedzia u [0; 1]. Poczatkow a populacj e r osobników tworzymy w sposób losowy, tzn. losujemy kolejne bity kolejnych osobników. Osobniki (chromosomy) znajdujace sie w aktualnej populacji oznaczamy v 1 ; v 2 ; :::; v r, a odpowiadajace im punkty przestrzeni R n (powsta e przez rozkodowanie ańcuchów binarnych) oznaczamy odpowiednio v 1 ; v 2 ; :::; v r. Kolejne kroki klasycznego algorytmu genetycznego przedstawiaja sie nastepujaco (por. [3], str. 32 33). 1. (ocena populacji) Wyznaczyć wartości funkcji przystosowania dla wszystkich chromosomów: eval(v j ) := f(v j ); j = 1; :::; r: (7) 2. Obliczyć ca kowite przystosowanie populacji, wyra zajace sie wzorem: F := rx eval(v j ): (8) j=1 3. Obliczyć prawdopodobieństwo wyboru p j dla ka zdego chromosomu v j (j = 1; :::; r) ze wzoru: p j := eval(v j) : (9) F 4. Obliczyć prawdopodobieństwo skumulowane q j dla ka zdego chromosomu v j (j = 1; :::; r) ze wzoru: jx q j := p l : (10) 5. (proces selekcji polegajacy na r-krotnym uruchomieniu ko a ruletki ) Wykonać r razy nastepujace czynności: (a) Wygenerować losowa liczb e l=1 5
zmiennopozycyjna z 2 [0; 1]. (b). Jeśli z q 1, to wybrać pierwszy chromosom v 1. W przeciwnym razie, jeśli q j 1 < z q j, przy czym 2 j r, to wybrać chromosom v j. [Uwaga. Prawdopodobieństwo wyboru osobnika jest proporcjonalne do jego przystosowania. Te same osobniki moga być wybierane wielokrotnie. Otrzymana w ten sposób populacje nazywamy populacja po srednia.] 6. (wybór chromosomów do krzy zowania) Dla ka zdego chromosomu z populacji pośredniej wykonać nast epujace czynności: (a) Wygenerować losowa liczb e zmiennopozycyjna z 2 [0; 1]. (b) Jeśli z p c, to wybrać dany chromosom do krzy zowania. [Uwaga. Oczekiwana ilość chromosomów wybranych w ten sposób wynosi rp c.] 7. Jeśli ilość chromosomów wybranych w kroku 6 jest parzysta, to po aczyć je losowo w pary. W przeciwnym razie do aczyć losowo jeden chromosom do grupy wybranych lub usunać losowo jeden chromosom. 8. (krzy zowanie) Dla ka zdej pary chromosomów otrzymanej w kroku 7 wygenerować losowa liczb e ca kowita s 2 f1; ::m 1g. Liczba ta wskazuje pozycj e punktu krzy zowania. Nast epnie wykonać krzy zowanie zgodnie z regu a: (a 1 :::a s a s+1 :::a m )! (a 1:::a s b s+1 :::b m ) (11) (b 1 :::b s b s+1 :::b m ) (b 1 :::b s a s+1 :::a m ) 9. (mutacja) Dla ka zdego chromosomu w aktualnej populacji po krzy zowaniu i dla ka zdego bitu w chromosomie wykonać nastepujace czynności: (a) Wygenerować losowa liczb e zmiennopozycyjna z 2 [0; 1]. (b) jeśli z p m, to zmutować dany bit (tzn. zmienić 0 na 1 lub odwrotnie). [Uwaga. Oczekiwana ilość zmutowanych bitów w pojedynczym chromosomie wynosi rmp m.] 10. Jeśli nie jest spe nione kryterium zatrzymania, to przejść do kroku 1. [Uwaga. Kryterium zatrzymania mo ze mieć ró zne formy, np. mo ze być to ustalona z góry ilość iteracji. Probabilistyczne kryteria zatrzymania b ed a podane w cześci 2 wyk adu.] 4 Poj ecie schematu i jego w asności Schematem nazywamy ańcuch o d ugości m z o zony z symboli 0,1 i * (gdzie * oznacza wszystko jedno ). Reprezentuje on wszystkie ańcuchy zerojedynkowe, które zgadzaja sie z nim na wszystkich pozycjach, gdzie nie wystepuje gwiazdka. Przyk ady: (a) Schemat S = (0*1*01) reprezentuje cztery ańcuchy: (001001), (011001), (011101), (001101). [Uwaga. Mówimy, ze ańcuchy te sa zgodne z S.] (b) Schemat (100) reprezentuje tylko jeden ańcuch (100) (c) Schemat (****) reprezentuje wszystkie ańcuchy o d ugości 4. W asności schematów: 6
(a) Ka zdy schemat reprezentuje 2 g ańcuchów, gdzie g jest ilościa symboli * w schemacie. (b) Ka zdy ańcuch o d ugości m jest zgodny z 2 m schematami. (c) Dla ańcuchów o d ugości m istnieje 3 m mo zliwych schematów. Zadanie 1. Udowodnić w asność (b). Rz edem schematu S (oznaczanym o(s)) nazywamy ilość pozycji wype nionych zerami lub jedynkami, czyli tzw. pozycji ustalonych. D ugo scia de niujac a schematu S (oznaczana (S)) nazywamy odleg ość miedzy pierwsza i ostatnia ustalona pozycja w ańcuchu. Przyk ady: S 1 = (***001*110); o(s 1 ) = 6; (S 1 ) = 10 4 = 6: S 2 = (****00**0*); o(s 2 ) = 3; (S 2 ) = 9 5 = 4: S 3 = (11101**001); o(s 3 ) = 8; (S 3 ) = 10 1 = 9: S 4 = (***1**); o(s 4 ) = 1; (S) = 3 3 = 0: 5 Mody kacje operatora krzy zowania 5.1 Krzy zowanie wielopunktowe Wada klasycznego krzy zowania jednopunktowego jest to, ze schematy o ustalonych pozycjach pierwszej i ostatniej, takie, jak np. schemat S 1 = (10*******00), sa zawsze niszczone, niezale znie od wyboru pozycji krzy zowania wynika to z faktu, ze pozycja krzy zowania musi wystapić pomi edzy pierwszym a ostatnim genem chromosomu. Uniemo zliwia to aczenie prostszych schematów w schematy bardziej skomplikowane. Dla ilustracji rozwa zmy drugi schemat S 2 = (***011*****) oraz dwa chromosomy zgodne odpowiednio z S 1 i S 2 : v 1 = (10010001000); v 2 = (01001110111): Widać, ze w wyniku klasycznego krzy zowania v 1 i v 2 nie mo zna otrzymać chromosomu zgodnego ze schematem S 3 = (10*011***00): Problem ten mo zna rozwiazać stosujac krzy zowanie wielopunktowe, w którym zamiast jednej pozycji krzy zowania wyst epuje ich wi ecej, przez co chromosomy dzielone sa na ustalona skończona ilość segmentów. Pozycje krzy zowania losuje 7
sie niezale znie od siebie ze zbioru liczb f1; :::; m 1g, gdzie m jest d ugościa chromosomu (losowanie to jest bez zwracania, tzn. dwie pozycje krzy zowania nie moga wypaść w tym samym miejscu). Kolejne segmenty u potomka pobierane sa na przemian od pierwszego i drugiego rodzica. W szczególności, zastosowanie krzy zowania dwupunktowego do wymienionych wcześniej v 1 i v 2, przy wybranych pozycjach krzy zowania po drugim i ósmym genie, daje par e potomków v 0 1 = (10j001110j000); v 0 2 = (11j010001j110); z których pierwszy jest zgodny ze schematem S 3. 5.2 Krzy zowanie p-jednostajne Majac dana pare rodziców, tworzymy pare potomków w nastepujacy sposób: dla ka zdej pozycji losujemy niezale znie cyfr e 0 lub 1. Jeśli wylosowano 0, to wartość bitu na tej pozycji u pierwszego potomka jest kopiowana od pierwszego rodzica, a u drugiego potomka od drugiego rodzica. Jeśli wylosowano 1, to post epujemy odwrotnie wartość odpowiedniego bitu u pierwszego potomka pochodzi od drugiego rodzica, a u drugiego potomka od pierwszego rodzica. Prawdopodobieństwo wylosowania zera jest przy tym sta e, równe p. Na przyk ad przy p = 1=2, zastosowanie krzy zowania p-jednostajnego do chromosomów v 1 i v 2 z 5.1 mo ze dać w wyniku nastepujac a pare potomków: v1 00 = (0 2 0 1 0 1 0 2 0 1 1 2 1 2 1 1 0 1 0 1 1 2 ); v2 00 = (1 1 1 2 0 2 1 1 1 2 0 1 0 1 0 2 1 2 1 2 0 1 ); gdzie dolne indeksy 1 i 2 wskazuja na rodzica (odpowiednio v 1 i v 2 ), od którego pochodzi wartość danego bitu. 5.3 Krzy zowanie dwupunktowe wariant zmody kowany Wariant ten aczy w sobie cechy krzy zowania jedno- i dwupunktowego. Ze zbioru f1; :::; m 1g losujemy niezale znie ze zwracaniem dwie pozycje krzy zowania s 1 i s 2. Jeśli s 1 = s 2, wówczas realizowane jest klasyczne krzy zowanie jednopunktowe. W przeciwnym przypadku odbywa si e krzy zowanie dwupunktowe, tzn. wymieniane sa segmenty rodziców znajdujace sie miedzy pozycjami s 1 i s 2. 5.4 Krzy zowanie wielopunktowe z maska Stosujac poj ecie maski krzy zowania, mo zna opisać w jednolitej postaci wiele ró znych wariantów krzy zowania. Maska krzy zowania jest chromosom w wylosowany ze zbioru wszystkich ańcuchów binarnych o ustalonej d ugości m. Po wylosowaniu maski nastepuje proces tworzenia pary potomków z pary rodziców, b ed acych równie z chromosomami o d ugości m. Polega on na wymianie bitów pomi edzy rodzicami na pozycjach, na których w masce w wystepuja jedynki. 8
Na przyk ad przez zastosowanie maski w 0 = (00111111000) do pary chromosomów v 1 i v 2 z 5.1, otrzymujemy pare potomków v1 0 i v2 0 z tego samego paragrafu maska ta realizuje zatem krzy zowanie dwupunktowe. Z kolei, stosujac do tej samej pary rodziców maske w 00 = (10010110001); otrzymamy pare potomków v1 00 i v2 00 z 5.2. Natomiast krzy zowanie jednopunktowe mo zna wpisać w ten schemat post epowania przyjmujac, ze maske w losuje si e z jednakowym prawdopodobieństwem ze zbioru ańcuchów 6 Uwagi końcowe w 1 = (00000000001); w 2 = (00000000011); ::: w m 1 = (01111111111): Nastepujace tematy nie znalaz y sie w niniejszym skrypcie, poniewa z sa bardzo przyst epnie i szczegó owo opracowane w podr eczniku Michalewicza [3]: 1. Wp yw procesu selekcji, krzy zowania i mutacji na oczekiwana ilość ańcuchów zgodnych z danym schematem w kolejnych iteracjach algorytmu genetycznego. 2. Strategie ewolucyjne. 3. Zastosowanie algorytmów ewolucyjnych do zadania transportowego. 4. Zastosowanie algorytmów ewolucyjnych do zadania komiwoja zera. References [1] J. Arabas, Wyk ady z algorytmów ewolucyjnych, WNT, Warszawa, 2001. [2] D.E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa, 1995. [3] Z. Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag, Berlin, 1992 (istnieje t umaczenie na polski). [4] C.R. Reeves, J.E. Rowe, Genetic Algorithms Principles and Perspectives: A Guide to GA Theory, Kluwer, Boston, 2003. [5] M.D. Vose, The Simple Genetic Algorithm: Foundations and Theory, MIT Press, Cambridge, Massachusets, 1999. 9