Politechnika Poznańska Zastosowanie algorytmów genetycznych do ...
Politechnika Poznańska Zastosowanie algorytmów genetycznych do ... Politechnika Poznańska Zastosowanie algorytmów genetycznych do ...
Przedstawiony powyżej schemat działania algorytmu genetycznego może być zrealizowany na wiele różnych sposobów w zależności od wybranej implementacji poszczególnych procedur. Poniżej przedstawiono bardziej precyzyjny opis, w jaki sposób mogą być realizowane procedury wykorzystywane w algorytmach genetycznych. Te procedury zostały zaimplementowane przez autora w pracy. 2.2.2 Kodowanie chromosomów Wykorzystując algorytmy ewolucyjne standardowo mamy do wyboru jedną z dwóch metod kodowania rozwiązań do postaci chromosomu. Pierwsza z nich, tradycyjna, wywodząca się z pierwszych prac Hollanda zakłada, iż wszystkie rozwiązania kodowane są w łańcuchach binarnych, co oznacza, że każdy gen może przybierać wartość 0 lub 1. Druga z metod opiera się na zmiennopozycyjnej reprezentacji rozwiązań. Każda z tych metod ma swoje zalety i wady. Reprezentacja binarna wykazuje pewne wady [Mic2003] przy rozwiązywaniu zagadnień o dużej liczbie zmiennych decyzyjnych (wielowymiarowa przestrzeń przeszukiwania) oraz wymaganej dużej dokładności rozwiązania, jako że wiąże się to z bardzo rozbudowanym wektorem zero-jedynkowym reprezentującym rozwiązanie. Można również znaleźć opinie, iż kodowanie zmiennopozycyjne oraz generalnie każde inne, bardziej skomplikowane od tradycyjnego binarnego, stanowi niepotrzebną komplikację zadania co z kolei zwiększa i tak już dużą złożoność obliczeniową. Biorąc pod uwagę fakt, że w literaturze wskazuje się, iż nie można jednoznacznie stwierdzić, która z tych dwóch metod kodowania jest skuteczniejsza, w pracy zastosowano tradycyjną metodę kodowania za pomocą ciągów binarnych. Argumenty przemawiające za wybraniem tej właśnie metody to [Gwi2007]: • stosunkowo niewielka liczba zmiennych decyzyjnych (wymiar przestrzeni poszukiwań), • wąskie dziedziny zmiennych, • żądana dokładność obliczeń na poziomie 3 cyfr znaczących. Chromosomy są w tym przypadku ciągami (wektorami) składającymi się z genów , przy czym każdy gen może przybrać wartość 0 lub 1. W takim przypadku każdemu genowi odpowiada po prostu jeden bit, co pozwala na łatwe 21
manipulowanie wartościami poszczególnych genów przy użyciu standardowych operacji na bitach. Wektor taki reprezentuje jedno z potencjalnych rozwiązań w przestrzeni przeszukiwania, a więc koduje po jednej wartości każdej ze zmiennych decyzyjnych. Przykładowo, dla k zmiennych decyzyjnych x i , z których każda należy do z góry założonej dziedziny D i = [a i , b i ] można określić liczbę N genów (bitów) potrzebnych do zakodowania wszystkich możliwych wartości x i z żądaną dokładnością p i . Aby zakodować wszystkie wartości zmiennych należy podzielić każdą z dziedzin D i na (b i − a i ) ⋅ 10 p i przedziałów, wówczas istnieje taka, możliwie najmniejsza, liczba m i , która dla każdego przedziału D i spełnia warunek: (b i − a i ) ⋅ 10 p i ≤ 2 m i − 1. (2.7) Z powyższego wynika, że do zakodowania wszystkich zmiennych w postaci k jednego chromosomu potrzeba N = ∑i=1 m i bitów, a więc taka też będzie liczba genów w chromosomie. 2.2.3 Populacja Populacja początkowa, czyli zbiór rozwiązań będący podstawowym elementem niezbędnym do rozpoczęcia działania algorytmu, może być tworzona w sposób losowy lub deterministyczny. Oba te podejścia są stosowane w praktyce, zaś wybór jednego z nich uzależniony jest od konkretnego problemu oraz dostępnych danych. W przypadku, kiedy stosowana jest metoda losowa, wówczas osobniki należące do populacji początkowej (czyli wszystkie składniki wektora rozwiązania) wyznaczane są w oparciu o wartość zmiennej losowej (zwykle o rozkładzie równomiernym). W tym przypadku wykorzystuje się najczęściej generatory liczb losowych zaimplementowane w danym kompilatorze wybranego języka programowania. Ze względu na wiarygodność rozkładu zmiennej losowej korzystniejsze jest jednak wykorzystanie generatorów z ustandaryzowanych bibliotek o zadanym rozkładzie. Tworzenie populacji początkowej w sposób deterministyczny może być prowadzone na różne sposoby, jednak najczęściej jest ona podawana wprost przez 22
- Page 1 and 2: Politechnika Poznańska Wydział Bu
- Page 3 and 4: 5 Optymalizacja położenia źróde
- Page 5 and 6: Streszczenie Praca poświęcona jes
- Page 7 and 8: zegowych równań całkowych, co zm
- Page 9 and 10: wyliczane są współczynniki wagow
- Page 11 and 12: W pracy analizowane są zagadnienia
- Page 13 and 14: włókien, oraz przypadek odwrotny.
- Page 15 and 16: 2 Optymalizacja 2.1 Wprowadzenie Dl
- Page 17 and 18: W powyższym wzorze f oznacza maksy
- Page 19 and 20: z punktów w przestrzeni poszukiwa
- Page 21: osobniki co oznacza, że w wyniku r
- Page 25 and 26: twórcę programu znającego charak
- Page 27 and 28: metody jest liczność populacji ty
- Page 29 and 30: 3 Metoda rozwiązań podstawowych 3
- Page 31 and 32: a ij = Bφ i x j , j = 1, … , N,
- Page 33 and 34: Tabela 3.1 Przykładowe zbiory funk
- Page 35 and 36: najnowszych opublikowanych badań z
- Page 37 and 38: do obliczeń współrzędnych punkt
- Page 39 and 40: gdzie L i B oznaczają operator lin
- Page 41 and 42: 4.3 Rozwiązanie dwuwymiarowego ust
- Page 43 and 44: Uwzględniając warunki brzegowe ot
- Page 45 and 46: 5 Optymalizacja położenia źróde
- Page 47 and 48: Na brzegu Γ zadana jest stała tem
- Page 49 and 50: Ponieważ istnieje tak duża liczba
- Page 51 and 52: 5.5 Wyniki numeryczne Do obliczeń
- Page 53 and 54: Jak wspomniano wcześniej, w algory
- Page 55 and 56: W drugim cyklu obliczeń populacja
- Page 57 and 58: Rysunek 5.12 Konfiguracja 4 element
- Page 59 and 60: Zestawienie uzyskanych wyników dla
- Page 61 and 62: Rysunek 5.20 Rozwiązanie optymalne
- Page 63 and 64: W związku z tym, że położenie p
- Page 65 and 66: gdzie ∂ ∂n oznacza pochodną w
- Page 67 and 68: Tabela 6.1 Zestawienie wyników obl
- Page 69 and 70: Wykresy ilustrujące rozwiązanie i
- Page 71 and 72: Występująca na brzegu osobliwoś
Przedstawiony powyżej schemat działania algorytmu genetycznego może być<br />
zrealizowany na wiele różnych sposobów w zależności od wybranej implementacji<br />
poszczególnych procedur. Poniżej przedstawiono bardziej precyzyjny opis, w jaki<br />
sposób mogą być realizowane procedury wykorzystywane w algorytmach<br />
<strong>genetycznych</strong>. Te procedury zostały zaimplementowane przez autora w pracy.<br />
2.2.2 Ko<strong>do</strong>wanie chromosomów<br />
Wykorzystując algorytmy ewolucyjne standar<strong>do</strong>wo mamy <strong>do</strong> wyboru jedną<br />
z dwóch metod ko<strong>do</strong>wania rozwiązań <strong>do</strong> postaci chromosomu. Pierwsza z nich,<br />
tradycyjna, wywodząca się z pierwszych prac Hollanda zakłada, iż wszystkie<br />
rozwiązania ko<strong>do</strong>wane są w łańcuchach binarnych, co oznacza, że każdy gen może<br />
przybierać wartość 0 lub 1. Druga z metod opiera się na zmiennopozycyjnej<br />
reprezentacji rozwiązań. Każda z tych metod ma swoje zalety i wady.<br />
Reprezentacja binarna wykazuje pewne wady [Mic2003] przy rozwiązywaniu<br />
zagadnień o dużej liczbie zmiennych decyzyjnych (wielowymiarowa przestrzeń<br />
przeszukiwania) oraz wymaganej dużej <strong>do</strong>kładności rozwiązania, jako że wiąże się<br />
to z bardzo rozbu<strong>do</strong>wanym wektorem zero-jedynkowym reprezentującym<br />
rozwiązanie. Można również znaleźć opinie, iż ko<strong>do</strong>wanie zmiennopozycyjne oraz<br />
generalnie każde inne, bardziej skomplikowane od tradycyjnego binarnego,<br />
stanowi niepotrzebną komplikację zadania co z kolei zwiększa i tak już dużą<br />
złożoność obliczeniową. Biorąc pod uwagę fakt, że w literaturze wskazuje się, iż<br />
nie można jednoznacznie stwierdzić, która z tych dwóch metod ko<strong>do</strong>wania jest<br />
skuteczniejsza, w pracy zastosowano tradycyjną metodę ko<strong>do</strong>wania za pomocą<br />
ciągów binarnych. Argumenty przemawiające za wybraniem tej właśnie metody to<br />
[Gwi2007]:<br />
• stosunkowo niewielka liczba zmiennych decyzyjnych (wymiar<br />
przestrzeni poszukiwań),<br />
• wąskie dziedziny zmiennych,<br />
• żądana <strong>do</strong>kładność obliczeń na poziomie 3 cyfr znaczących.<br />
Chromosomy są w tym przypadku ciągami (wektorami) składającymi się<br />
z genów , przy czym każdy gen może przybrać wartość 0 lub 1. W takim przypadku<br />
każdemu genowi odpowiada po prostu jeden bit, co pozwala na łatwe<br />
21