3.7 Algorytmy niedeterministyczne
3.7.2 Algorytmy ewolucyjne
Techniki ewolucyjne w rozwiązywaniu zagadnień optymalizacji globalnej są dziś bardzo często używanymi metodami obliczeniowymi. Dzieje się tak, pomimo te-go, że nie mają one ciągle ”solidnych podstaw matematycznych”. Techniki te mają bardzo istotną zaletę - pozwalają uzyskać rozwiązania niezwykle złożonych problemów w dość łatwy sposób. Liczba udanych aplikacji tych technik oblicze-niowych przyczyniła się do akceptacji ich przez środowiska naukowe i inżynierskie. Początki algorytmów ewolucyjnych sięgają lat 60-tych. Pierwsze prace mówiące o niedeterministycznym podejściu do zagadnień optymalizacji to przede wszyst-kim prace Hollanda [43], Fogela [22], Rechengerga [68] czy Schwefela [70]. Jed-nak powszechny sceptycyzm towarzyszący tym probabilistycznym podejściem do zagadnień optymalizacji, powodował, że były one lekceważone aż do końca lat 80-tych. Prace wspomnianych autorów ustaliły podstawy dla trzech podejść do obliczeń ewolucyjnych, którymi są:
X algorytmy genetyczne (J.H. Holland) X programowanie ewolucyjne (L.J. Fogel)
X strategie ewolucyjne (I. Rechenberg i H.P. Schwefel) Schemat algorytmu ewolucyjnego
Realizacja algorytmu ewolucyjnego sprowadza się do iteracyjnego przekształca-nia populacji osobników, reprezentujących zbiór (bieżących) rozwiązań danego
3.7. ALGORYTMY NIEDETERMINISTYCZNE 43
zadania. Ewolucyjny charakter tego procesu jest widoczny w sposobie genero-wania kolejnych populacji, w którym stosujemy tzw. operatory genetyczne oraz proces selekcji. Operatory genetyczne wprowadzają do systemu losową modyfi-kację oraz wymianę materiału genetycznego osobników, co pozwala na uzyskiwa-nie nowych rozwiązań. Selekcja natomiast steruje procesem tak, aby promować najlepsze osobniki, które są wyłaniane w oparciu o badanie stopnia ich przysto-sowania. Proces ewolucyjny działający według tego modelu powinien zapewnić pojawianie się w kolejnych populacjach osobników coraz lepiej przystosowanych, tzn. przybliżających coraz dokładniej rozwiązanie zadania (ekstremum globalne).
Rysunek 3.2: Ogólny przebieg algorytmu ewolucyjnego
Rys. 3.2 przedstawia przebieg algorytmu ewolucyjnego. Algorytm 9 przed-stawia ogólny schemat algorytmu ewolucyjnego [4]. Różni się on od schematu przedstawionego na rysunku warunkiem stopu definiującym moment przerwania ewolucji. Z reguły algorytm zostaje przerwany po wykonaniu ustalonej liczby ite-racji lub gdy nastąpi stagnacja procesu ewolucji (brak zmiany wartości funkcji celu) czy osiągnięcia oczekiwanego rozwiązania (z założonym wcześniej błędem).
W przedstawionym algorytmie Pk oznacza populację osobników z przestrzeni
potencjalnych rozwiązań, Tk oznacza część populacji wybraną metodą selekcji
bezpośrednio z populacji Pk, natomiast Qk oznacza zbiór osobników
utowrzo-nych w wyniku działania operacji ewolucyjutowrzo-nych (np. mutacji, krzyżowania) na
elementach zbioru Tk. Populacja składa się z µ osobników. Populacja
początko-wa, powstająca w trakcie inicjacji algorytmu, najczęściej składa się z osobników losowo wybranych z przestrzeni potencjalnych rozwiązań. W kroku k generowa-nych jest λ osobników potomgenerowa-nych, tworzących tzw. populację pośrednią
(ozna-czoną jako Qk). Następnie przeprowadzana jest selekcja, która polega na wyborze
µ osobników tworzących kolejną populację Pk+1 z populacji pośredniej Qk oraz
lub mniejsza od liczby osobników populacji Pk.
Algorytm 9 Ogólny schemat algorytmu ewolucyjnego
1: k:=0 2: inicjacja P0 3: ocena P0 4: repeat 5: Tk := selekcja ze zbioru Pk 6: Qk := operacje ewolucyjne na Pk 7: ocena Qk 8: Pk+1 := selekcja ze zbioru Pk∪ Qk 9: k := k + 1
10: until warunek stopu
Przedstawiony algorytm 9 obrazujący ogólny schemat algorytmu ewolucyj-nego jest obecnie adaptowany w wielu różnych wariantach. Różnice polegają na sposobie selekcji, krzyżowania i mutacji osobników. Szczegółowy opis różnorod-nych operatorów krzyżowania i mutacji można znaleźć w [37], [38].
Istotnym parametrem algorytmów ewolucyjnych jest sposób kodowania osob-ników. W przypadku algorytmów genetycznych często stosuje się reprezentację binarną. W algorytmach genetycznych dominującym operatorem genetycznym jest krzyżowanie. Polega ono na wymianie między osobnikami rodzicielskimi frag-mentów łańcuchów kodowych. Obecnie stosowanych jest bardzo wiele odmian operatora krzyżowania, ale najprostszą i najczęściej stosowaną formą jest tzw. krzyżowanie jednopunktowe. Sposób ten jest wzorowany na obserwowanym w przyrodzie procesie przemian w DNA, zachodzących podczas rozmnażania gene-ratywnego. Chromosomy rodzicielskie są rozcinane na dwa fragmenty. Następnie pierwszy fragment pierwszego chromosomu jest sklejany z drugim fragmentem drugiego chromosomu; podobnie pierwszy fragment drugiego chromosomu jest sklejany z drugim fragmentem pierwszego. Powstałe w ten sposób łańcuchy two-rzą chromosomy osobników potomnych (rysunek 3.3). Wszystkie chromosomy zawierają jednakową liczbę genów, dlatego też rozcięcie musi być wykonane w tym samym miejscu w obu chromosomach. Miejsce rozcięcia jest zwykle wybiera-ne losowo z rozkładem równomiernym. Podobnie można zastosować krzyżowanie dwupunktowe, gdzie zamiast jednego punktu rozcięcia losuje się dwa takie punkty i następnie wymienia odpowiednie części chromosomów.
Kolejnym operatorem genetycznym jest mutacja, która jest wykonywana dla każdego genu osobno. Podczas mutacji, która jest wykonywana z
prawdopodo-bieństwem pm, wartość genu zmienia się na przeciwną (z 0 na 1 lub 1 na 0). W
ostatnich latach pojawiły się prace pokazujące, że zastosowanie na większą skalę mutacji w początkowych fazach działania algorytmu genetycznego, może mieć bardzo korzystny wpływ na jego zbieżność [55].
któ-3.7. ALGORYTMY NIEDETERMINISTYCZNE 45
Rysunek 3.3: Krzyżowanie jednopunktowe w kodowaniu binarnym
ra jest operatorem stochastycznym. Wybór osobników tworzących kolejne popu-lacje, polega na ich wylosowaniu z prawdopodobieństwem zależnym od wartości funkcji przystosowania.
W przypadku gdy celem optymalizacji jest wyznaczenie optymalnych wartości
parametrów ze zbioru R kodowanie binarne może prowadzić do nieefektywnych
algorytmów. Poprawę jakości działania można uzyskać dzięki zastosowaniu kodo-wania liczbami rzeczywistymi. W przypadku takich algorytmów główna struktura i przebieg samego algorytmu jest identyczna, natomiast znacznej zmianie ulegają operatory ewolucyjne - krzyżowanie i mutacja.
Krzyżowanie może odbywać się na dwa sposoby. Pierwszy podobny jak przy krzyżowaniu jedno lub dwupunktowym polega na wymianie wartości (liczb rze-czywistych, nie bitów) w poszczególnych chromosomach. Drugi sposób zwany krzyżowaniem uśredniającym jest opisany równaniem:
{
x′
i = xi+ λi(yi− xi)
y′
i = yi+ λi(xi− yi) (3.35)
gdzie λi jest liczbą rzeczywistą wylosowaną z rozkładem równomiernym z
prze-działu [0, 1].
Wybór odpowiedniego osobnika w celu przeprowadzenia krzyżowania jest wy-konany z pewnym prawdopodobieństwem. Prawdopodobieństwo to jest tym więk-sze im lepwięk-sze jest przystosowanie danego osobnika (mniejsza wartość funkcji celu). Często stosowaną metodą selekcji jest metoda rankingowa. Poniżej zostanie opi-sana wersja metoda rankingowej zastosowana w niniejszej pracy. Osobniki z danej populacji zostają posortowane od najlepszego do najgorszego. Następnie losuje-my zgodnie z rozkładem równomiernym liczbę naturalną s z przedziału od 1 do
µ(µ + 1)/2, gdzie µ jest liczebnością populacji. Korzystając z zaproponowanego
przez autora wzoru (3.36) losuje się osobnika w celu poddania go krzyżowaniu. Na rys. 3.4 przedstawiono wykres opisywanej funkcji dla populacji składającej się z µ = 7 osobników. Łatwo zauważyć, że osobnik o większej wartości funkcji przystosowania ma większe szanse zostać wybranym do dalszej selekcji.
1 + Floor ( 1 2 + µ−1 2 √ (2µ + 1)2− 8s + 8 ) (3.36)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 0 1 2 3 4 5 6 7 8 s nr osobnika
Rysunek 3.4: Wykres funkcji na podstawie której dokonywano selekcji dla przy-kładowej populacji składającej się z µ = 7 osobników
Mutacja polega na zaburzeniu wartości wylosowanego genu danego
chromo-somu. Wybrany gen zi poddany procesowi mutacji przyjmuje wartość:
z′
i = zi+ ∆zi
gdzie ∆zi jest wartością perturbacji genu zi.
Zastosowano sposób mutacji pojedynczych genów w chromosomie zaczerpnię-ty z klasy algorytmów genezaczerpnię-tycznych Breeder Genetic Algorithm:
∆zi = (zi max− zi min)2−βbλi, (3.37)
gdzie zi max oraz zi minoznaczają maksymalne wartości parametrów z
przestrze-ni poszukiwań, βbjest parametrem określającym zakres mutacji. Im wspomniany
parametr jest większy tym zakres mutacji jest mniejszy.
0 50 100 150 200 250 300 350 400 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 k p m
Rysunek 3.5: Zmienne prawdopodobieństwo mutacji (pmax = 0.8, pmin = 0.2,
3.7. ALGORYTMY NIEDETERMINISTYCZNE 47
Decyzja czy dany osobnik (chromosom) z populacji zostanie poddany
muta-cji jest podejmowana z prawdopodobieństwem pm. Poprzez zmianę parametru pm
mamy możliwość wpływania na intensywność procesu mutacji w zależności od nu-meru generacji czy wartości funkcji przystosowania. Autor zaproponował funkcję, która uzależniała wartość prawdopodobieństwa mutacji od numeru generacji:
pm(k) = pmin+ (pmax− pmin) exp
( −β ( k pminkmax )2) (3.38)
gdzie: pm(k) jest wartością prawdopodobieństwa mutacji w k-tej generacji, pmin,
pmax są odpowiednio prawdopodobieństwem mutacji w początkowej i końcowej
fazie działania algorytmu, kmax jest liczbą określającą liczbę iteracji kończącą
działanie algorytmu oraz β jest parametrem określającym prędkość zmniejszania
wartości parametru pm wraz z numerem generacji. Rys. 3.5 przedstawia wykres
Optymalizacja rozkładu prądu w cewce
W tym rozdziale przedstawione zostaną wyniki obliczeń problemu syntezy po-la magnetycznego przedstawionego jako problem optymalizacji rozkładu prądów w cewce. Poszukiwany będzie taki rozkład prądów, który wytworzy pole magne-tyczne o zadanym z góry kształcie. Zostaną przedstawione oraz porównane wyniki obliczeń wykorzystujące metody optymalizacji przedstawione w rozdziałach po-przednich.
4.1 Opis rozważanych problemów
Rys. 4.1 przedstawia przekrój cewki w symetrii walcowej. Cewka ta składa się z
w× k = n pojedynczych zwojów (w oznacza liczbę zwojów w kierunku z,
na-tomiast k liczbę zwojów w kierunku r). Przypadek k = 1 będziemy nazywać przypadkiem jednowymiarowym (1D), zaś k > 1 przypadkiem dwuwymiarowym (2D). Założymy, że pole magnetyczne jest indukowane w środowisku magnetycz-nie liniowym, co oznacza, że przenikalność magnetyczna tego środowiska magnetycz-nie zale-ży od wartości pola. Zatem do wyznaczenia pola magnetycznego można stosować zasadę superpozycji. Zgodnie z tą zasadą, wypadkowe pole magnetyczne jest su-mą pól wytworzonych przez każdy ze zwojów. Będziemy rozważali dwa przypadki obszarów Γ, w których ma być wytworzone zadane pole magnetyczne. Pierwszym z nich jest kula umieszczona w środku układu współrzędnych. Promień kuli
wy-nosi rreq. Natomiast w drugim przypadku obszarem tym jest odcinek leżący na osi
z układu współrzędnych rozciągający się od punktu zreqmin do punktu zreqmax. Dla obszarów, gdzie ma być wytworzone zadane pole magnetyczne stosowany będzie indeks ”req”, natomiast indeksem ”c” oznaczono wszystkie parametry
do-tyczące cewki. Cewka ma długość określoną przez współrzędne zcmin oraz zcmax.
Będziemy zakładać, że środek cewki oraz obszaru, w którym ma być wytworzone zadane pole magnetyczne pokrywają się z początkiem układu współrzędnych, tzn.
zcmin =−zcmax, zreqmin =−zreqmax. W przypadku 1D uzwojenia mają promień 48
4.1. OPIS ROZWAŻANYCH PROBLEMÓW 49
rc= rcmin, zaś w przypadku 2D uzwojenia są równomiernie rozłożone pomiędzy
rcmin a rcmax.
Rysunek 4.1: Przekrój poprzeczny cewki walcowej składającej się z pojedynczych zwojów oraz obszaru Γ.
Najczęściej rozważanym problemem jest wyznaczenie takiego rozkładu prą-dów w cewce, aby otrzymać pole jednorodne. Bez straty ogólności można wtedy
założyć, że breq= µ0 T (µ0 – przenikalność magnetyczna próżni). Przeskalowanie
wartości prądów umożliwia uzyskanie pól o dowolnych wartościach. Problem wy-tworzenia jednorodnego pola magnetycznego w pewnym zadanym obszarze jest ważnym problemem aplikacyjnym, wykorzystywanym na przykład do konstrukcji urządzeń rezonansu magnetycznego, czy urządzeń wykorzystywanych w separacji magnetycznej. Parametry problemu optymalizacyjnego rozważanego w niniejszej pracy odpowiadają typowym wymiarom konstrukcyjnym dla urządzeń rezonan-su magnetycznego [81]. W pracy [80] została przedstawiona zależność wiążąca wymiary cewki z średnicą obszaru w którym generowane jest pole.
zcoil= 0.8dcoil+ 1.2dreq (4.1)
gdzie zcoil = zcmax−zcminjest długością cewki, dcoil= 2rcminśrednicą wewnętrzną
cewki, natomiast dreq = 2rreq jest średnicą obszaru, w którym generowane jest
pole. Zależność (4.1) została wskazana jako optymalne rozwiązanie dla osiągnię-cia jednorodnego pola przy minimalizacji powierzchni przekroju cewki. Tabela
4.1 przedstawia parametry rozważanych problemów. Cewka ma długość 1.02 m, średnicę wewnętrzną 60 cm, w przypadku 2D jej grubość wynosi 10 cm. Obszar Γ jest kulą o średnicy 45 cm lub odcinkiem o długości 90 cm. Użyte wymiary są standardowymi w przypadku urządzeń rezonansu magnetycznego do obrazowania całego ciała człowieka.
Tabela 4.1: Parametry cewki oraz obszaru Γ analizowanych problemów Wymiary cewki
rc= rcmin 30 cm
rcmax 40 cm
zcmax=−zcmin 51 cm
Obszar Γ będący kulą
rreq 22.5 cm
Obszar Γ będący odcinkiem
zreqmax=−zreqmin 45 cm