Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Algorytmy genetyczne Nowak Sławomir
Wyższa Szkoła Biznesu w Dąbrowie Górniczej Algorytmy genetyczne Nowak Sławomir
2
Inspiracja przykładami z przyrody
Tam gdzie odporność i dostosowanie jest cechą pożądaną przyroda radzi sobie najlepiej. Umiejętności adaptacji i przeżycia najlepiej poznać studiując przykłady ze świata Natury.
3
Czym są 'algorytmy genetyczne'?...
Najprościej rzecz ujmując jest to próba zasymulowania w pamięci komputera populacji jakiegoś gatunku. Na taką populację składają się dziesiątki, setki, tysiące pojedynczych osobników. Osobniki te między sobą mogą się krzyżować, mogą również następować samoistne zmiany w strukturze pojedynczego osobnika (tzw. mutacja).
4
Czym są 'algorytmy genetyczne'?...
W wyniku krzyżowania i mutacji powstają nowe osobniki. Ze względu na fakt, że populacja ma swój z góry narzucony maksymalny rozmiar część osobników należy z niej usunąć (krok nazywany jest selekcją). Usuwane są te najmniej przystosowane.
5
Czym są 'algorytmy genetyczne'?...
Z punktu widzenia zastosowań: Algorytm genetyczny przedstawia populację osobników, z których każdy jest propozycją rozwiązania postawionego problemu.
6
Czym są 'algorytmy genetyczne'?...
AG działa on w środowisku, które można zdefiniować na podstawie problemu rozwiązywanego przez algorytm. W środowisku każdemu osobnikowi jest przyporządkowywana wartość liczbowa, która określa jakość reprezentowanego przez nie rozwiązania. Każdy osobnik wyposażony jest w genotyp, będący przepisem na utworzenie fenotypu – zdefiniowanego zestawu cech podlegających ocenie przez środowisko.
7
Czym są 'algorytmy genetyczne'?...
8
Czym są 'algorytmy genetyczne'?...
9
Wyszukiwanie rozwiązań - metody
10
Wyszukiwanie rozwiązań – metody enumeracyjne
Wykorzystywane są też rozmaite metody enumeracyjne (przeglądowe). Stosując dyskretny odpowiednik przestrzeni nieskończonej otrzymujemy skończoną przestrzeń poszukiwań. Algorytm wylicza wartość funkcji celu przeglądając po kolei wszystkie punkty przestrzeni. W praktyce w wielu problemach przestrzenie rozwiązań wciąż są jednak zbyt wielkie, aby dało się sprawdzić wszystkie elementy po kolei.
11
Wyszukiwanie rozwiązań – metody analityczne
Poszukuje się ekstremów lokalnych. Poszukiwanie ograniczamy do zbioru punktów w których pochodna równa jest zero i badamy najbliższe otoczenie tych punktów. Można też „skakać” po wykresie funkcji w kierunku wskazanym przez lokalny gradient. Poszukiwania często ograniczają się jednak do pewnego obszaru i możemy pominąć inne ekstrema leżące w pewnej odległości od obszaru badanego. Pod drugie metody te uzależnione są od istnienie pochodnych. Wiele spotykanych w teorii i praktyce problemów nie wykazuje „należytego respektu” dla pochodnych. Rzeczywisty świat optymalizacji pełny jest nieciągłości i przestrzeni o skomplikowanej topologii.
12
Wyszukiwanie rozwiązań – metody losowe
Innym rozwiązaniem są algorytmy przeszukiwania losowego. Na dłuższą metę nie wykazują one jednak przewagi nad algorytmami przeglądowymi.
13
Cel: znalezienie optymalnego rozwiązania
Celem optymalizacji jest zwiększanie efektywności aż do osiągnięcia pewnego optimum. Oceniając wartość procedur optymalizacji należy brać pod uwagę a) zbieżność b) efektywność procesu optymalizacji (przykład: businessman musi podejmować szybkie decyzje) Dowiedziono teoretycznie i empirycznie, że algorytmy genetyczne stanowią skuteczną metodę poszukiwania rozwiązań w skomplikowanych przestrzeniach.
14
Czym różną się AG od tradycyjnych rozwiązań?
AG nie przetwarzają bezpośrednio parametrów zadania lecz ich postać zakodowaną AG prowadzą poszukiwania wychodząc nie z jednego, lecz z wielu punktów (populacji) AG korzystają tylko z funkcji celu, nie zaś jej pochodnych lub innych przekształceń AG stosują probabilistyczne, a nie deterministyczne reguły wyboru.
15
Czym różną się AG od tradycyjnych rozwiązań?
16
Czym różną się AG od tradycyjnych rozwiązań?
AG nie przetwarzają bezpośrednio parametrów zadania lecz ich postać zakodowaną AG prowadzą poszukiwania wychodząc nie z jednego, lecz z wielu punktów (populacji) AG korzystają tylko z funkcji celu, nie zaś jej pochodnych lub innych przekształceń AG stosują probabilistyczne, a nie deterministyczne reguły wyboru.
17
Elementarny algorytm genetyczny
Mechanizm jest zaskakująco posty: składa się jedynie z kopiowania i wymiany podciągów. Elementarny algorytm genetyczny składa się z trzech następujących operacji: a) reprodukcja b) krzyżowanie c) mutacja
18
Reprodukcja Polega na tym, że ciągi kodowe z wyższym przystosowaniem mają większe prawdopodobieństwo wprowadzenie jednego lub więcej potomków do następnego pokolenia. Dla każdego wybranego podciągu tworzymy dokładną replikę. Zostaje ona włączona do pokolenia pośredniego, stanowiącego pulę rodzicielską do dalszych operacji genetycznych. Operacja te jest namiastką darwinowskiej zasady doboru naturalnego.
19
Reprodukcja Istnieje wiele metod selekcji osobników do reprodukcji.
Dla przykładu można przedstawić tzw. metodę ruletki. Budujemy wirtualnie koło, którego wycinki odpowiadają poszczególnym osobnikom. Im lepszy osobnik, tym większy wycinek koła zajmuje. Rozmiar wycinków może zależeć od wartości funkcji oceny, jeśli wysoka wartość oceny oznacza wysokie przystosowanie. W takim układzie prawdopodobieństwo, że lepszy osobnik zostanie wybrany jako rodzic, jest większe. Niestety ewolucja przy takim algorytmie z każdym krokiem zwalnia. Jeżeli osobniki są podobne, to każdy dostaje równy wycinek koła fortuny i presja selekcyjna spada. Algorytm słabiej rozróżnia osobniki dobre od słabszych.
20
Reprodukcja Kolejną jest metoda rankingowa. Obliczamy dla każdego osobnika funkcję oceny i ustawiamy je w szeregu najlepszy-najgorszy. Pierwsi na liście dostają prawo do rozmnażania, a reszta trafia do historii. Turniej - Metoda zupełnie różna od powyższych. Polega na losowym wyborze z całej populacji kilku osobników (jest to tzw. grupa turniejowa), a później z tej grupy wybierany jest osobnik najlepiej przystosowany i on przepisywany jest do nowo tworzonej populacji. Losowanie grup turniejowych oraz wybieranie z nich najlepszego osobnika należy powtórzyć aż do utworzenia całej nowej populacji. Istnieją także metody selekcji wielokryterialnej. Tworzymy kilka różnych funkcji oceny (oceniających pewne wybrane cechy osobników osobno). Dla przykładu osobniki mogą być ułożone nie w jednym, ale w kilku szeregach najlepszy-najgorszy, a proces selekcji jest bardziej złożony.
21
Krzyżowanie i mutacja
22
Mutacja W sprawie znaczenia mutacji zarówno w genetyce jak i nauce o AG panuje sporo zamieszania. Jest ona jednak niezbędna, gdyż w wyniku poprzednich operacji algorytm może okazać się zbyt „nadgorliwy” i wyeliminować jakiś potencjalnie obiecujący materiał genetyczny. Mutacja, stosowana oszczędnie stanowi swego rodzaju „polisę ubezpieczeniową” na wypadek utraty ważnych składników rozwiązania.
23
Inne mechanizmy W wyniku analizy świata biologicznego dokonano wyodrębnienia jeszcze wielu innych mechanizmów genetycznych i reprodukcyjnych. Wymienione jednak: reprodukcja, krzyżowanie i mutacja okazały się a) nieskomplikowane obliczeniowo b) skuteczne w większości zastosowań z dziedziny AG
24
Inne mechanizmy W wyniku analizy świata biologicznego dokonano wyodrębnienia jeszcze wielu innych mechanizmów genetycznych i reprodukcyjnych. Wymienione jednak: reprodukcja, krzyżowanie i mutacja okazały się a) nieskomplikowane obliczeniowo b) skuteczne w większości zastosowań z dziedziny AG
25
Algorytmy genetyczne w działaniu (symulacja „odręczna”)
Rozważmy problem znalezienia maksimum funkcji f(x) = x2 dla x od 0 do 31. Należy znaleźć sposób zakodowania zmiennej decyzyjnej. Naturalny będzie zapis dwójkowy, 5-cio pozycyjny. Wybierzmy losową populację złożoną z 4 ciągów kodowych
26
Algorytmy genetyczne w działaniu (symulacja „odręczna”)
Mutację w przykładzie pominięto. Typowe prawdopodobieństwo mutacji to 0,001. Mając łącznie 20 bitów w populacji możemy oczekiwać, że dotknie ona 0,02 bitów w populacji. Praktycznie więc żaden z bitów nie ulega zmianie.
27
Algorytmy genetyczne w działaniu (symulacja „odręczna”)
28
Algorytmy genetyczne w działaniu (symulacja „odręczna”)
Po reprodukcji mamy 4 nowe ciągi kodowe oraz losujemy punkty krzyżowania. Analiza wyniku w drugim pokoleniu potwierdza oczekiwania: najlepsi zwiększają swoja reprezentację, najgorsi wymierają.
29
Algorytm genetyczny - schemat
30
Zastosowania AG Znadowanie ekstremów Algorytmy genetyczne równie dobrze radzą sobie w znajdowaniu przybliżeń ekstremów funkcji, których nie da się obliczyć analitycznie.
31
Zastosowania AG Program
32
Zastosowania AG Rozwiązywanie problemów NP.
Algorytmy genetyczne znajdują zastosowanie tam, gdzie nie jest dobrze określony lub poznany sposób rozwiązania problemu, ale znany jest sposób oceny jakości rozwiązania. Przykładem jest np. problem komiwojażera, gdzie należy znaleźć najkrótszą drogę łączącą wszystkie miasta, tak by przez każde miasto przejść tylko raz. Ocena jakości proponowanej trasy jest błyskawiczna, natomiast znalezienie optymalnej trasy kwalifikuje się do klasy problemów NP zupełnych. Przy zastosowaniu podejścia ewolucyjnego dobre rozwiązanie można znaleźć bardzo szybko, ale oczywiście pewni możemy być jedynie uzyskania rozwiązań sub-optymalnych.
33
Zastosowania AG Co zrobić żeby się komiwojażer nie przepracował...
Komiwojażer musi odwiedzić wszystkie miasta z zadanego regionu i wrócić do miasta początkowego (jest to problem szukania cyklu). Każde miasto nie może być odwiedzone więcej niż jeden raz.
34
Zastosowania AG Na wejściu mamy informację o odległościach pomiędzy miastami, a na wyjściu należy wygenerować najlepszą kolejność odwiedzanych miast. Czasami dane o miastach zapisane są w postaci listy miast wraz z ich współrzędnymi. W tym wypadku do stworzenia macierzy odległości należy wykorzystać wzór na odległość Euklidesową pomiędzy dwoma punktami. Na płaszczyźnie będzie to coś takiego: Odl(a,b)=sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb))
35
Zastosowania AG
36
Zastosowania AG Możliwych tras dla n miast jest coś koło n!
37
Zastosowania AG Populacja początkowa będzie składała się z pewnej liczby tras wygenerowanych zupełnie losowo. Należy zastanowić się nad reprezentacją pojedynczego rozwiązania. Natychmiastowym pomysłem na reprezetntację rozwiązania jest właśnie lista kolejnych miast. Jest to reprezentacja bardzo prosta i bardzo szybka, ma ona jednak bardzo dużą wadę. Mianowicie skrzyżowanie dwóch tras może dać osobnika nieprawidłowego. Np. skrzyżowanie trasy z trasą w punkcie między drugim, a trzeciem miastem da następujących potomków: oraz Żadne z dzieci nie jest poprawne
38
Zastosowania AG Innym sposobem reprezentacji trasy jest lista pokazująca kolejność pobierania miast do tworzonej trasy. Punktem odniesienia dla tej reprezentacji jest lista kolejnych miast: Pojedynczy osobnik np pokazuje w jakiej kolejności wybierane są kolejno odwiedzane miasta. Na początku jest czwórka więc pierwszym odwiedzanym miastem będzie miasto umieszczone na czwartej pozycji w liście odniesienia, czyli czwórka. Czwórkę tą usuwa się z listy odniesienia (pozostają miasta ), natomiast lista odwiedzanych miast wygląda następująco: 4 Kolejnym elementem osobnika jest ponownie czwórka. W tej chwili na czwartym miejscu listy odniesienia jest piątka, więc kolejnym odwiedzanym miastem będzie miasto nr 5, a lista odniesienia będzie wyglądała następująco:
39
Zastosowania AG Program 0-6-5-2-1-3-4-8-7-9 Wartość funkcji oceny:
0-6 -> 79 6-5 -> 78 5-2 -> 9 2-1 -> 43 1-3 -> 7 3-4 -> 19 4-8 -> 43 8-7 -> 39 7-9 -> 59 9-0 -> 65 Suma: 441 Program
40
Zastosowania AG Projektowanie genetyczne
Projektowanie maszyn bądź obwodów elektrycznych jest doskonałym polem dla wykazania się algorytmów genetycznych. Inżynierowi podczas tworzenia nowych pomysłów czasami wystarczy tylko przybliżone spełnienie granicznych warunków oraz optymalizacja projektu. Algorytmy genetyczne w odróżnieniu od człowieka nie działają schematycznie. Program nie zna wcześniejszych projektów i dlatego czasami wykazuje się pewną inwencją. Co więcej człowiek często opiera się na bardzo przybliżonych modelach, które dają fałszywy obraz problemu. Algorytm genetyczny może przeanalizować złożony model i znaleźć rozwiązanie, na które człowiek by nie wpadł.
41
Zastosowania AG Programowanie genetyczne jest próbą stworzenia systemu, który wykorzystując mechanizmy algorytmów genetycznych, będzie tworzył programy. Ogólny zarys algorytmu genetycznego pozostaje taki sam. * Populację stanowią przykładowe programy komputerowe, z których każdy wykonuje jakieś działanie. * Krzyżowanie i mutacja tworzą nowe osobniki na podstawie już istniejących (nic się nie zmienia w porównaniu z typowym AG, należy jedynie pamiętać o zastosowaniu operatora odpowiedniego do reprezentacji) * Funkcja oceny ma zadecydować, czy dany program w przybliżeniu wykonuje te działania o które chodzi. Np. jeśli chcemy stworzyć program, który zawsze będzie znajdywał drogę wyjścia z labiryntu funkcja oceny będzie sprawdzała jak daleko 'zaszedł' dany program. Te programy, który znajdują poprawne wyjście otrzymują najwięcej punktów, natomiast te, które od wyjścia się oddalają otrzymują tych punktów najmniej.
42
Zastosowania AG Populacja - reprezentacja pojedynczego rozwiązania
W przypadku programowania genetycznego najczęściej stosowaną reprezentacją pojedynczego rozwiązania jest struktura drzewiasta. Jest ona bardzo wygodna z punktu widzenia krzyżowania i mutacji, a poza tym wymusza kolejność przechodzenia przez węzły i liście. Jest to reprezentacja o zmiennej długości ponieważ przykładowymi programami mogą być zarówno program wykonujący sumę dwóch argumentów jak i program obliczający pierwiastki równania kwadratowego.
43
Zastosowania AG Przykładowy program może wyglądać następująco:
Wynikiem działania programu jest pewna wartość. Wartość zwracana przez powyższe drzewo jest określona wzorem: (X*((5.00+X)-((((X-X)-(X*X))+( ))+(7.00-( )))))
44
Zastosowania AG Elementami takiego drzewa mogą być: - Jako węzły:
* Operatory arytmetyczne (+,-,/,...) * Operatory logiczne (&&,||,!,...) * Operatory bitowe (&,|,~,...) * Porównania (>,<,==,...) * Funkcje (trygonometryczne, potęgowe,...) * Instrukcja warunkowa - IF (jeśli spełniony jest warunek (pierwszy argument), wykonywane jest poddrzewo drugiego argumentu, jeśli nie trzeciego) * Instrukcja iteracyjna - FOR (pierwszy argument podaje ile razy ma zostać wykonane poddrzewo drugiego argumentu) - Jako liście * Wartości stałe, zmienno- lub stałoprzecinkowe (np.: 5, 10.5, -11) * Wartości zmiennych (np.: X) * Wywołania funkcji (np.: WczytajZnakZKlawiatury(), lub random()) * Wywołania procedur (np.: printf(), clrscr()) - W przypadku procedur problemem jest zwracana przez nie wartość (każdy element drzewa musi coś zwracać swojemu rodzicowi) - najczęściej przyjmuje się, że procedury zwracają zero.
45
Zastosowania AG Program „genetyk”
Krzyżowanie polega na wymianie pomiędzy dwoma osobnikami wybranych losowo poddrzew. Poniżej przedstawiony jest przykład krzyżowania (ramką zaznaczone zostały wymieniane poddrzewa): Program „genetyk”
46
Zastosowania AG Projektowanie genetyczne
Algorytmy genetyczne można wykorzystać do projektowania obwodów elektrycznych. Ocena każdego osobnika opiera się na własnościach elektrycznych, które łatwo jest obliczyć. Genom ma postać instrukcji dla programu, który na jego podstawie buduje obwód elektryczny. Najpierw mamy proste połączenie wejścia z wyjściem. Następnie program dodaje i usuwa połączenia i elementy. Podobny algorytmy budowały z powodzeniem różne filtry. Analogiczne podejście można zastosować przy projektowaniu anten. Algorytm „porusza się” w trójwymiarowej przestrzeni i ustawia metalowe elementy odbijające fale.
47
Zastosowania AG Projektowanie genetyczne
Jednym z nowszych pomysłów jest wykorzystanie AG w połączeniu z układami FPGA (field-programmable gate arrays). Mają one postać chipów, które można błyskawicznie zaprogramować, aby zmienić strukturę zawartego w nich obwodu elektrycznego. Dzięki układom FPGA możliwe jest ewoluowanie prawdziwych obwodów elektrycznych. Są one wpisywane do chipa, a następnie ich właściwości elektryczne są mierzone rzeczywistym obwodem testowym. W ten sposób ewolucja może wykorzystać wszystkie fizyczne własności rzeczywistego układu elektrycznego.
48
Zastosowania AG video Projektowanie genetyczne
Projektowanie robotów – projekt GOLEM demo.cs.brandeis.edu/golem/ video
49
Podsumowanie Aby ewolucja mogła zajść potrzeba bardzo dużo czasu.
W praktyce oznacza to, konieczność badania populacji tysięcy osobników, na przestrzeni setek pokoleń. Moc obliczeniowa dzisiejszych komputerów jest często zbyt mała, aby w pełni wykorzystać moc AG. Z tego powodu wykorzystuje się klastry komputerów. Na każdym przebywa pewna populacja układów. Co pewien czas, część z nich migruje do innego komputera, aby polepszyć uzyskiwane wyniki.
50
Literatura "Algorytmy genetyczne+struktury danych=programy ewolucyjne" Zbigniew Michalewicz Wydawnictwa Naukowo-Techniczne, 1996 "Algorytmy genetyczne i ich zastosowania" David E. Goldberg Wydawnictwa Naukowo-Techniczne, 1998
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.