Wst p do sieci neuronowych, wykªad 15 Algorytmy genetyczne M. Czoków, J. Piersa Faculty of Mathematics and Computer Science, Nicolaus Copernicus University, Toru«, Poland 2011-25-01
Motywacja Algorytmy genetyczne powstaªy w wyniku bada«prowadzonych w latach 1956-1960 przez biologów Barricelliego i Frasera, po±wi conych symulacji procesów genetycznych. Ich idea opiera si na takich naturalnych procesach jak dziedziczenie, dobór naturalny oraz walka o prze»ycie.
Zastosowania Algorytmy genetyczne maj szerokie zastosowanie w rozwi zywaniu problemów optymalizacyjnych. W roku 1971 powstaªa pierwsza praca autorstwa J. Hollanda badaj ca skuteczno± algorytmów genetycznych do maksymalizacji/minimalizacji funkcji. Algorytmy genetyczne byªy z powodzeniem stosowane w zadaniach optymalizacji, takich jak wytyczanie trasy poª cze«kablowych, rozgrywanie gier, zadanie transportowe, zadanie komiwoja»era, sterowanie optymalne, optymalizacja obsªugi zapyta«w bazach danych.
Zastasowania Bardzo ciekawym przykªadem pot gi algorytmów genetycznych byªo zaprojektowanie tzw. crooked wire genetic antennas, czyli optymalnego ksztaªtu anteny nadaj cej równomiernie we wszystkich kierunkach ponad krzywizn ziemi. W przeciwie«stwie do przewidywa«, symetryczne anteny o geometrycznych ksztaªtach nie rozwi zywaªy tego problemu optymalnie. Dopiero algorytm genetyczny znalazª optymalne rozwi zanie, którym okazaªa si ±mieszna pl tanina drutów. Co wi cej, znacz ce jest to,»e genetyczny algorytm wyszukaª j w±ród innych, podobnie fantazyjnie poskr canych anten, z których wi kszo± jednak nie pracowaªa wªa±ciwie.
Podstawowe elementy Przed zaimplementowaniem algorytmu genetycznego, programista musi zdeniowa pi podstawowych elementów, od których w du»ym stopniu zale»y efektywno± programu. Elementy te to: odpowiednia reprezentacja danych, stanowi cych potencjalne rozwi zania zadania sposób tworzenia pocz tkowej populacji mo»liwych rozwi za«funkcja oceniaj ca, która gra rol ±rodowiska i ocenia rozwi zania wedªug ich dopasowania podstawowe operatory, które wpªywaj na skªad populacji potomnej warto±ci ró»nych parametrów u»ywanych w algorytmie genetycznym (rozmiar populacji, prawdopodobie«stwo u»ycia operatorów genetycznych itp.)
Reprezentacja danych Jeden ci g binarny jest odpowiednikiem jednego chromosomu. Genotyp to inaczej zespóª chromosomów danego osobnika. Osobnika w populacji mo»e tworzy zarówno genotyp jak i pojedynczy chromosom. Zbiór osobników, tworzy populacj. W danej populacji ka»dy ci g binarny ma tak sam dªugo± L. Jeden znak w ci gu binarnym jest odpowiednikiem genu w chromosomie, warto±ci jakie mo»e przyjmowa ten znak czyli 0 lub 1 to allele, a poªo»enie znaku w ci gu to locus.
Reprezentacja danych W wyniku dziaªania algorytmu genetycznego w ka»dej iteracji powstaje nowy zbiór osobników, czyli nowe pokolenie. Ka»da kolejna iteracja to generacja.
Populacja pocz tkowa Kolejne bity dla ci gu dªugo±ci L wybierane s w sposób losowy. Tworzy si tyle osobników ile wynosi rozmiar populacji.
Funkcja celu ψ : chromosomy R. Im wy»sza warto± tej funkcji dla danego argumentu, tym dany osobnik jest bli»szy rozwi zaniu optymalnemu. Szukaj c analogii w naturze mo»emy powiedzie,»e dla danego osobnika funkcja ta gra rol ±rodowiska oceniaj c potencjalne rozwi zania wedªug ich dopasowania.
Operatory Operatory dzielimy na dwuargumentowe i jednoargumentowe. Operatorem dwuargumentowym jest operacja krzy»owania. Jej celem jest wymiana materiaªu genetycznego mi dzy dwoma osobnikami populacji. W jej wyniku powstaj dwa nowe osobniki potomne. Proces krzy»owania mo»na podzieli na poszczególne etapy: wybranie punktu krzy»owania poprzez losowanie liczby naturalnej l z przedziaªu [0, L 1] rozerwanie dwóch ci gów binarnych b d cych rodzicami w miejscu l tworzenie potomków poprzez wymian podci gów binarnych mi dzy rodzicami
Operatory Rysunek: Przed krzy»owaniem. Rysunek: Po krzy»owanu.
Operatory Operatorem jednoargumentowym jest mutacja. Jej celem jest zwi kszenie obszaru poszukiwa«algorytmu genetycznego i nie dopuszczenie do odrzucenia potencjalnie obiecuj cego materiaªu genetycznego. Dokonuje si jej na osobnikach potomnych zaraz po operacji krzy»owania. Dla ka»dego genu w chromosomach potomków z prawdopodobie«stwem mutacji p m (np. p m = 0, 01), dokonujemy zamiany warto±ci genu w chromosomie na przeciwn (1 0, 0 1).
Operatory
Warto±ci parametrów Warto±ci, jakie przypiszemy poszczególnym parametrom, mog mie du»y wpªyw na dziaªanie programu. Parametry, dla których musimy okre±li warto±ci, to prawdopodobie«stwo mutacji, dªugo± genu w chromosomie, rozmiar populacji. Czasem okre±la si, po której iteracji program si zatrzyma, pod warunkiem,»e wcze±niej nie wyst pi inny warunek stopu.
Funkcja przystosowania Funkcja przystosowania ϕ : chromosomy R + ocenia ka»de mo»liwe rozwi zanie. Im wy»sza warto± funkcji ϕ dla danego chromosomu, tym jest on bli»szy rozwi zaniu optymalnemu. Funkcje przystosowania uzyskuje si z przeksztaªcenia funkcji celu ψ : chromosomy R, która podlega maksymalizacji. Je±li ψ przyjmuje tylko warto±ci dodatnie, to: ϕ(x) = ψ(x) gdzie x chromosomy. Mo»na równie» przej± z ψ w ϕ za pomoc przeksztaªcenie liniowego: ϕ(x) = ψ(x) + c gdzie x chromosomy, c jest staª wi ksz od liczby przeciwnej do minimum globalnego funkcji ψ.
Selekcja Selekcja jest to sposób wyboru osobników z bie» cej populacji, tworz cej populacj rodzicielsk, na których nast pnie wykonywane s takie operacje jak mutacja, krzy»owanie w celu uzyskania nast pnego pokolenia. W klasycznym algorytmie genetycznym selekcja jest wykonywana za pomoc metody koªo ruletki.
Koªo ruletki W metodzie koªa ruletki rodzice wybierani s z prawdopodobie«stwem proporcjonalnym do ich funkcji przystosowania. Je»eli przystosowanie i-tego osobnika oznaczymy przez ϕ i, to prawdopodobie«stwo jego wybrania jest równe: p i = ϕ i Φ gdzie Φ oznacza sum przystosowa«wszystkich osobników w populacji.
Algorytm Na klasyczny algorytm genetyczny skªadaj sie poszczególne kroki: 1 Inicjalizacja, czyli wybór pocz tkowej populacji. 2 Ocena przystosowania chromosomów w populacji, czyli obliczenie warto±ci funkcji ϕ : chromosomy R + dla ka»dego chromosomu w populacji. 3 Sprawdzenie warunku zatrzymania. Mo»e on wyst pi w trzech sytuacjach: gdy uzyskamy» dan warto± optymaln lub z okre±lon dokªadno±ci dalsze dziaªanie algorytmu nie poprawia uzyskanej ju» najlepszej warto±ci na algorytm naªo»one jest ograniczenie czasowe lub wykonamy z góry zaªo»on ilo± iteracji
Algorytm 4 Selekcja chromosomów, czyli wybór osobników bior cych udziaª w tworzeniu potomków nast pnego pokolenia. Im osobnik ma wy»sz warto± dla funkcji przystosowania, tym wi ksza szansa,»e zostanie on wylosowany. 5 Zastosowanie operatorów genetycznych. Tworzymy now populacj krzy»uj c parami osobniki wyselekcjonowane w poprzednim punkcie, a nast pnie stosujemy operator mutacji na potomkach. 6 Utworzenie nowej populacji. Stanowi j chromosomy otrzymane w punkcie 5. 7 Powrót do punktu 2.
Selekcja metoda elitarna dwukrokowa odmiana podstawowej metody selekcji, w pierwszym kroku dokonujemy tradycyjnej selekcji, a w drugim uzupeªniamy populacj potomków o osobniki najlepiej przystosowane w populacji rodziców. Jej celem jest ochrona najlepiej przystosowanych chromosomów w kolejnych iteracjach (w klasycznym algorytmie osobniki najlepiej przystosowane nie zawsze wchodz do nast pnej generacji).
Selekcja metoda porz dkowa sortujemy populacj ze wzgl du na warto±ci funkcji przystosowania, prawdopodobie«stwo doboru uzale»nione jest od liczby porz dkowej w populacji. metoda turniejowa z populacji o rozmiarze N wybiera si N razy po k osobników, z ka»dej grupy selekcj przechodzi najlepszy.
Problem Dwóch zamieszanych w du»e przest pstwo przest pców zªapano za maªe przewinienie. Policja wie,»e s winni, lecz nie ma dowodów. Je±li: b d wspóªpracowa ze sob (nie b d zeznawa przeciwko sobie), odsiedz niewielk kar za maªe przewinienie, jeden zerwie wspóªprac i b dzie zeznawaª, a drugi nie, pierwszy zostanie uwolniony, drugi natomiast pójdzie siedzie za powa»ne przest pstwo, obaj b d zeznawa - obaj pójd siedzie, przy czym wyrok b dzie z tego wzgl du nieco zªagodzony. Problem jest nast puj cy: niezale»nie od post powania drugiego, opªaca si zeznawa. Je±li natomiast»adna ze stron nie b dzie zeznawa, wynik b dzie o wiele lepszy dla obu graczy.
Dylemat wi ¹nia jako gra Dylemat wi ¹nia mo»na traktowa jako dwuosobow gr. W kolejnych etapach gry ka»dy gracz, albo zdradza albo wspóªpracuje z drugim. W zale»no±ci od konguracji rozgrywki graczom przyznawane s punkty. Gracz 1 Gracz 2 Punkty Punkty Konguracja gracza 1 gracza 2 rozgrywki Zdrada Zdrada 1 1 0 Zdrada Wspóªpraca 5 0 1 Wspóªpraca Zdrada 0 5 2 Wspóªpraca Wspóªpraca 3 3 3 Tablica: Ocena poszczególnych graczy w zale»no±ci od konguracji rozgrywki. Dodatkowo z ka»dym ukªadem post powania obu graczy zwi zana jest liczba k {0, 1, 2, 3}.
Reprezentacja strategii Tworzymy populacj graczy. Ka»dy z nich ma swoj strategi oraz histori kilku poprzednich gier - z pocz tku obie te cechy s losowe. Zakªadamy,»e do wyboru ka»dego nast pnego ruchu b dziemy brali pod uwag trzy ostatnie ruchy przeciwnika. Poniewa» s cztery mo»liwe przebiegi ka»dej gry oraz bierzemy pod uwag trzy ostatnie gry, to do opisania strategii jednego osobnika potrzebujemy 4 3 = 64 bitów. Zdrad b dziemy opisywa za pomoc 0 a wspóªprac za pomoc 1.
Reprezentacja strategii bit bit bit bit bit bit bit nr 1 nr 2 nr 3 nr 4 nr 5 nr k nr 64 ª czna konguracja 0 1 2 3 0... 3 dotychczasowej rozgrywki 0 0 0 0 1... 3 w trzech ostatnich grach 0 0 0 0 0... 3 przykªadowe postepowanie gracza 1 1 0 0 0... 1 w danej sytuacji Tablica: Przedstawienie sposobu kodowania strategii osobnika w zale»no±ci od zaistniaªej sytuacji.
Przykªad Zaªó»my,»e tabela opisuje strategi gracza X. Tak wi c, je±li gracz X rozgrywa mecz z innym graczem, za± 3 ostatnie gry mo»na opisa za pomoc trójki (3,0,0) (w pierwszej grze wi ¹niowie wspóªpracowali, a wszystkie pozostaªe decyzje obu stron byªy zdrad ) to decyduje si on na zdrad, poniewa» w swojej strategii na ukªad konguracji w trzech ostatnich grach (3,0,0) ma zdeniowan zdrad. Aby móc stosowa strategi na pocz tku gry, musimy zada trzy hipotetyczne ruchy, które poprzedziªy rozpocz cie gry. To wymaga 6 bitów. W sumie nasz chromosom b dzie miaª 64+6 = 70 genów.
Algorytm Axelroda 1 Stwórz pocz tkow populacj. Ka»demu graczowi przyporz dkowuje si losowy ªa«cuch 70-bitowy reprezentuj cy strategi. 2 Ka»dy gracz u»ywa strategii zapisanej w swoim chromosomie do rozegrania gier z pozostaªymi graczami. Wynik gracza jest ±redni ze wszystkich rozegranych przez niego gier. 3 Wybierani s gracze do rozmna»ania. Najgorsi nie bior udziaªu w rozmna»aniu, ±redni gracze dostaj jednego partnera, natomiast najlepsi dwóch partnerów. 4 W wyniku krzy»owania powstaj potomkowie, których strategia opiera si na strategii rodziców. Dodatkowe zmiany w strategii potomków wprowadzaj mutacje.
Wyniki oblicze«wyniki, jakie daª program oparty na algorytmie Axelroda, byªy zaskakuj ce. Z zupeªnie przypadkowego punktu startowego zostaªa utworzona populacja, której ±redni czªonek reprezentowaª taka strategi jak uzyskiwaªy najlepsze algorytmy heurystyczne.
Motywacja W poªowie XX wieku powstaªy ró»ne o±rodki rozwijaj ce algorytmy korzystaj ce z idei ewolucji. W miar upªywu czasu, gdy zacz to szuka coraz szerszych zastosowa«dla tych algorytmów a co za tym idzie coraz bardziej je modykowa, granice mi dzy nimi zacz ªy si zaciera. Algorytmy powstaªe w tym procesie ogólnie nazywamy ewolucyjnymi. Na przykªad w algorytmach genetycznych zacz to eksperymentowa z reprezentacjami danych odmiennymi od binarnej. Konsekwencj tego byªa konieczno± zdeniowania nowych operatów mutacji i krzy»owania i inych elementów algorytmów genetycznych.
Cel Mamy dan map dwuwymiarow z wielok tnymi przeszkodami oraz robota poruszaj cego si po tej mapie. Celem algorytmu jest wyszukanie optymalnej ±cie»ki, po której robot mógªby przemie±ci si z punktu startowego do punktu docelowego.
Etapy algorytmu Proces planowania ±cie»ki mo»na podzieli na dwie zasadnicze cz ±ci. Planowanie zawczasu - ustala si ±cie»k, po której robot b dzie si poruszaª. W tym etapie zakªadamy,»e ±rodowisko jest dokªadnie znane i nie zmieni si. Planowanie na bie» co - robot porusza si po ±cie»ce wyznaczonej w pierwszej fazie i w sytuacji kolizji z nieznanym wcze±niej obiektem zmienia drog, tak by jak najoptymalniej omin przeszkod. Planowanie obu etapów odbywa si za pomoc tego samego algorytmu ewolucyjnego, tylko z innymi parametrami.
Reprezentacja ±cie»ki cie»ki s reprezentowane za pomoc ci gu punktów (m 1, m 2,..., m n ), zwanych w zªami, o wspóªrz dnych x i y, oraz znacznika informuj cego czy w zeª jest dopuszczalny czy nie. Robot porusza si z punktu do punktu po linii prostej. W zeª niedoposzczalny jest to w zeª, którego nie mo»na poª czy z nast pnym, z powodu wyst puj cej po drodze przeszkody. cie»ka p = (m 1, m 2,..., m n ) jest dopuszczalna, je±li wszystkie w zªy w niej s dopuszczalne, natomiast niedopuszczalna, je±li przynajmniej jeden w zeª jest niedopuszczalny. Pierwszym w zªem na li±cie jest punkt startowy, ostatnim w zeª docelowy.
Reprezentacja ±cie»ki Proces nawigacji (kierowania) ko«czy si, kiedy robot osi ga punkt docelowy lub nie mo»e znale¹ rozwi zania w okre±lonym przedziale czasowym. Dªugo± chromosomu reprezentuj cego ±cie»k jest zmienna, na wst pie dziaªania algorytmu jest równa ilo±ci przeszkód.
Funkcja kosztu dla dopuszczalnej drogi U»ywamy ró»nych funkcji kosztu dla dopuszczalnej i niedopuszczalnej drogi. Koszt caªej trasy chromosomu p = (m 1, m 2,..., m n ) dla dopuszczalnej drogi: gdzie ϕ(p) = w d dist(p) + w s smooth(p) + w c clear(p) w d, w s, w c staªe dist(p) caªkowita dugo± drogi smooth(p) maksymalna niegªadko± drogi clear(p) rozmiar najgorszej kolizji
Caªkowita dugo± drogi n 1 dist(p) = d(m i, m i+1 ) i=1 gdzie d(m i, m i+1 ) jest odlegªo±ci mi dzy w zªami m i oraz m i+1, to znaczy funkcja dist(p) podaje caªkowit dªugo± drogi p,
Maksymalna niegªadko± drogi gdzie: s(m i ) = smooth(p) = max n 1 s(m i) i=2 θ i min{d(m i 1, m i ), d(m i, m i+1 )} gdzie θ i jest k tem pomi dzy odcinkami m i 1, m i oraz m i, m i+1. To znaczy funkcja smooth(p) podaje najwi ksz niegªadko± p w w ¹le.
Rozmiar najgorszej kolizji gdzie: c i = clear(p) = max n 1 c i i=1 { τ d i, je»eli d i τ 0, w odwrotnym przypadku gdzie τ to promie«robota, d i odlegªo± odcinka [m i, m i+1 ] od najbli»szej przeszkody.
Koszt dla niedopuszczalnej drogi Koszt caªej trasy chromosomu p = (m 1, m 2,..., m n ) dla niedopuszczalnej drogi: ϕ(p) = α + β + γ gdzie α to ilo± uderze«p w przeszkod, β jest ±redni liczba zderze«w odcinku niedopszczalnym, a γ to koszt najgorszej dopuszczalnej drogi w bie» cej populacji, dzi ki γ wszystkie dopuszczalne ±cie»ki maj lepsze przystosowanie od niedopuszczalnej.
Krzy»owanie operator krzy»owania - dwa wybrane chromosomy rozdziela si w pewnym miejscu i ª czy ze sob : pierwsz cz ± pierwszego chromosomu z drug cz ±ci drugiego chromosomu, a pierwsza cz ± drugiego chromosomu z drug cz ±ci pierwszego chromosomu, punkt ci cia wybiera si po w ¹le niedopuszczalnym jednego z chromosomów
Mutacje przesuwanie - polega na przesuni ciu w zªa w przestrzeni, w zeª mo»e zosta przesuni ty: lokalnie - przesuni cie wykonuje si wedªug rozkªadu normalnego, celem tej mutacji jest wygªadzenie drogi globalne - przesuwa si w zeª do losowego punktu w przestrzeni, mutacja ta jest u»yteczna w przypadkach, gdy jest potrzebna wi ksza zmiana geometrii ±cie»ki (na przykªad w czasie planowania zawczasu, gdy przeszkoda blokuje nam drog ) wstawianie - wstawia si w zeª pomi dzy dowolne dwa losowe w zªy usuwanie - usuwa si dowolny w zeª wymiana - zmienia si kolejno± losowo wybranych w zªów lub kawaªków chromosomów
Mutacje optymalizacja - odcina si ostre k ty