Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2011/2012 PRACA DYPLOMOWA MAGISTERSKA Dominik Tadeusz Szelenbaum Wykorzystanie metod optymalizacji globalnej w ekstrakcji parametrów tranzystora MOS Opiekun pracy: prof. dr hab. inż. Jarosław Arabas Ocena..................................................................... Podpis Przewodniczącego Komisji Egzaminu Dyplomowego
Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: 1986.02.07 Data rozpoczęcia studiów: 2005.10.01 Życiorys Urodziłem się 7 lutego 1986 roku w Warszawie. W latach 1993-1999 uczęszczałem do szkoły podstawowej nr 306 im. ks. Jana Twardowskiego w Warszawie. W tym czasie zacząłem interesować się naukami ścisłymi. Od 1999 do 2002 roku byłem uczniem gimnazjum nr 81 im. Profesora Witolda Jana Doroszewskiego. Ze względu na rozwijające się zainteresowanie fizyką, w 2002, wystartowałem w wojewódzkim konkursie fizycznym, w którym to zostałem finalistą. W latach 2002-2005 uczęszczałem do liceum im. Władysława IV w Warszawie. W tym czasie mogłem swobodnie rozwijać swoje zainteresowania w kierunku nauk ścisłych. Zaowocowało to uczestnictwem w XI Konkursie Fizycznym Politechniki Warszawskiej i uzyskaniem tytułu wyróżnionego finalisty. Dzięki temu osiągnięciu w 2005 roku zostałem studentem Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej na kierunku Informatyka. EGZAMIN DYPLOMOWY.................................... podpis studenta Złożył egzamin dyplomowy w dn.................................................... Z wynikiem........................................................................ Ogólny wynik studiów.............................................................. Dodatkowe wnioski i uwagi Komisji...........................................................................................................................................................................................................................
STRESZCZENIE Praca ta prezentuje wyniki badań na temat możliwości poprawy jakości ekstrakcji parametrów tranzystora MOS. Scharakteryzowano w niej został proces ekstrakcji parametrów, jako problem optymalizacji wynikający z procesu dopasowywania charakterystyk modelu tranzystora do rzeczywistych charakterystyk. Użyty do generowania charakterystyk został model kompaktowy EKV. Do rozwiązania problemu optymalizacji posłużono się metodami optymalizacji globalnej: Ewolucją Różnicową, metodą CMA-ES oraz DMEA. Na zbiorze testowym została zweryfikowana jakość uzyskiwanych przez nie wyników. Tak przygotowane metody użyto do przeprowadzenia wielokrotnej ekstrakcji parametrów tranzystora. W pracy zostały zaprezentowane uzyskane wyniki, które następnie posłużyły do porównania jakości ekstrakcji zaproponowanych metod z wynikami z literatury. Wnioski z zebranych wyników jednoznacznie wskazują, iż metody Ewolucji Różnicowej oraz CMA-ES pozwalają uzyskać lepszą jakość ekstrakcji niż metody referencyjne. Słowa kluczowe: Ewolucja Różnicowa, DMEA, CMA-ES, model EKV, ekstrakcja parametrów, optymalizacja globalna, algorytmy ewolucyjne. THE USE OF GLOBAL OPTIMIZATION METHODS FOR MOS PARAMETERS EXTRACTION This thesis presents the results of research focused on the possibility of improving quality of the extraction of MOS transistor parameters. Parameter extraction was defined as an optimization problem that arises from the process of matching characteristics generated by the transistor model to real characteristics. The model characteristics were generated using the EKV compact model. To solve the optimization problem global optimization methods were used including Differential Evolution, CMA-ES and DMEA. The methods were implemented, validated using benchmark problems, and applied to the multiple extractions of transistor parameters. The results are reported in the thesis and their quality is compared with the quality of the extraction results known from the literature which are considered reference methods.the comparison clearly shows that Differential Evolution and CMA-ES achieve better quality than the reference methods. Key words: Differential Evolution, CMA-ES, DMEA, EKV model, parameters extraction, global optimization, evolutionary algorithms.
Spis treści 1. Wstęp.......................................... 9 1.1. Zakres i cel pracy................................. 9 1.2. Układ pracy.................................... 9 2. Zagadnienie ekstrakcji parametrów tranzystora MOS............ 11 2.1. Modelowanie tranzystora MOS.......................... 11 2.2. Ekstrakcja jako problem optymalizacji...................... 13 2.3. Algorytmy ewolucyjne............................... 15 3. Wykorzystane metody optymalizacji....................... 17 3.1. Metoda Monte Carlo................................ 17 3.2. Metoda Covariance Matrix Adaptation Evolution Strategy.......... 18 3.3. Ewolucja różnicowa................................ 20 3.4. Algorytm ewolucyjny bazujący na mutacji różnicowej............. 24 3.5. Sympleks Neldera-Meada............................. 28 3.6. Uwzględnianie ograniczeń............................. 30 3.7. Testowanie niedeterministycznych metod optymalizacji............ 32 3.7.1. Porównanie oparte na wielu niezależnych uruchomieniach....... 32 3.7.2. Analiza testów porównawczych...................... 33 4. Implementacja badanego zagadnienia....................... 35 4.1. Weryfikacja poprawności wybranych metod optymalizacji........... 35 4.2. Opis procedury badawczej............................. 39 5. Wyniki eksperymentów............................... 43 5.1. Wyniki ekstrakcji................................. 43 5.1.1. Metoda Monte Carlo........................... 43 5.1.2. Hybrydowa Metoda Monte Carlo.................... 47 5.1.3. Ewolucja Różnicowa............................ 50 5.1.4. Algorytm CMA-ES............................ 57 5.1.5. Algorytm DMEA............................. 63 5.2. Porównanie wyników algorytmów......................... 69 5.2.1. Ekstrakcja................................. 69 7
Spis treści 5.2.2. Optymalizacja............................... 76 6. Wnioski i podsumowanie.............................. 80 Bibliografia......................................... 82 8
1. Wstęp 1.1. Zakres i cel pracy Prezentowana praca miała na celu przebadanie możliwości poprawienia jakości ekstrakcji parametrów tranzystora MOS, przy użyciu wybranych metod optymalizacji globalnej. Do jej realizacji wykorzystano model EKV, który posłużył do generowania charakterystyk tranzystora. Zaimplementowane zostały metody optymalizacji: ewolucja różnicowa, CMA-ES, oraz DMEA. Została zweryfikowana poprawność ich działania, a następnie zostały one użyte do przeprowadzania procesu ekstrakcji. Symulacja procesu ekstrakcji była dokonywana wielokrotnie, a uzyskane wyniki zostały zaprezentowane i poddane analizie. 1.2. Układ pracy Układ pracy odpowiada w uproszczeniu poszczególnym etapom realizacji jej celu, przy pominięciu aspektów technicznych związanych z implementacją. Na wstępie przedstawiono krótkie wprowadzenie do problemu ekstrakcji parametrów tranzystora, pokazując iż mamy rzeczywiście do czynienia z problemem optymalizacji globalnej. Ponieważ wykorzystane metody należą do klasy algorytmów ewolucyjnych, więc również we wstępie umieszczono jej opis, oraz przedstawiłem ogólny schemat algorytmów z tej klasy. Przedstawienie tych informacji uznano za konieczne do zrozumie zarówno badanego problemu, jak również metod jego rozwiązywania. Z tego powodu zostały one umieszczone w kolejnym rozdziale - Zagadnienie ekstrakcji parametrów tranzystora MOS. Po prezentacji podstawowych informacji, następnym rozdziale, zawarte zostały informacje dotyczące wykorzystanych metod optymalizacji. Znalazły się w nim powody, dla których wybrano poszczególne metody optymalizacji. Tam również został umieszczony ich opis. Badane metody mają charakter stochastyczny, co utrudnia porównanie wyników ich działania. Z tego powodu uznałem za zasadne umieszczenie w 9
Rozdział 1. Wstęp tym rozdziale informacji, w na temat podstawowych sposobów porównywania wyników działania takich algorytmów. Rozdział 4, Implementacja badanego zagadnienia, zawiera informacje na temat sposobu weryfikacji poprawności działania zaproponowanych metod. Znajdują się w nim szczegółowe informacje na temat procedury badawczej, jak również informacje o wartościach parametrów wykorzystanych metod. W następnym rozdziale, Wyniki eksperymentów, zostały umieszczone informacje na temat uzyskiwanej, przez poszczególne algorytmy, jakości ekstrakcji. Tam też zostało zawarte porównanie uzyskanych wyników, zarówno w kontekście jakości ekstrakcji, jak również wartości funkcji celu. W rozdziale 6 zostały umieszczone wnioski z przeprowadzonych badań, oraz podsumowanie pracy. Tam też znajdują się informacje o tym: co można było zrobić lepiej, oraz jakie nowe problemy i tematy do badań, wyłoniły się w trakcie tworzenia tej pracy. 10
2. Zagadnienie ekstrakcji parametrów tranzystora MOS 2.1. Modelowanie tranzystora MOS Współczesne projektowanie układów elektronicznych wymaga zastosowania modeli elementów elektronicznych, zwłaszcza w wypadku układów analogowych [19]. Wynika to z faktu, iż nie jest możliwe zbudowanie układu z gotowych elementów, celem poddania go analizie. Przeprowadzenie symulacji układu wymaga natomiast zastosowania modeli poszczególnych elementów. ID 0.00000 0.00005 0.00010 0.00015 0.00020 0 1 2 3 4 5 VDS Rysunek 2.1. Przykładowe charakterystyki wyjściowe tranzystora. 11
Rozdział 2. Zagadnienie ekstrakcji parametrów tranzystora MOS Jednym z najistotniejszych elementów układów elektronicznych wymagających modelowania jest tranzystor MOS. Wzmiankowany model na podstawie zadanego zestawu parametrów, powinien generować punty punkty należące do charakterystyk zadanego tranzystora. Przykładowe charakterystyki wyjściowe tranzystora przedstawiono na rysunku 2.1. Jeżeli uzyskane charakterystyki nie będą odpowiadały rzeczywistości z należytą dokładnością, to może się okazać iż symulowany układ elektroniczny w praktyce nie działa. Z tego powodu bardzo istotne jest właściwe dobranie parametrów modelu tranzystora, w celu uzyskania wiernych charakterystyk. Najpowszechniejszym sposobem określenia wartości parametrów modelu tranzystora jest dopasowanie charakterystyk generowanych przez model, do charakterystyk rzeczywistego tranzystora. Proces ten określamy mianem ekstrakcji parametrów [4]. Przy dobrym doborze parametrów modelu tranzystora jego charakterystyki, oraz charakterystyki fizycznego tranzystora są do siebie bardzo zbliżone. Istnieją modele tranzystora, o różnych liczbach parametrów, oraz sposobie wyznaczania charakterystyk. Za najpopularniejsze, wykorzystywane w przemyśle, należy uznać modele BSIM3, BSIM4 oraz EKV. Dwa pierwsze zostały uznane za standard w USA. Pozwalają uzyskać bardzo dużą zgodność charakterystyk modelu z rzeczywistymi. Poważną wadą tych dwóch modeli jest konieczność ustawienia bardzo dużej liczby parametrów, celem uzyskania dokładnych charakterystyk. Konieczność zadania wartości tak wielu (ponad 100) parametrów w sposób istotny utrudnia proces ekstrakcji parametrów. Model EKV natomiast oferuje możliwość wykorzystania tylko ponad 20 parametrów. Uwzględnia przy tym wiele zjawisk fizycznych i opisuje zachowanie tranzystora we wszystkich zakresach polaryzacji. Uważany jest w związku z tym za najpraktyczniejszy w projektowaniu układów analogowych. Przedstawione charakterystyki zostały wykonane przy jego użyciu. 12
2.2. Ekstrakcja jako problem optymalizacji 2.2. Ekstrakcja jako problem optymalizacji Problem optymalizacji w ogólności można sformułować jako poszukiwanie takiego x D, że: x = min x D f(x) (2.1) gdzie D R n nazywamy zbiorem dopuszczalnym, który to stanowi podzbiór przestrzeni wszystkich rozwiązań R n ; f(x) : R n R funkcją celu, natomiast x rozwiązaniem optymalnym [1, 5]. W zależności od własności zbioru dopuszczalnego, oraz funkcji celu możemy dokonać bardziej szczegółowej klasyfikacji problemu. W wypadku ekstrakcji parametrów tranzystora dokonuje się próby jak najlepszego dopasowania charakterystyk napięciowo-prądowych wygenerowanych za pomocą modelu, do danych pomiarowych. W tym celu manipuluje się określonymi parametrami modelu, co pozwala uzyskać różne charakterystyki. Parametry podlegające modyfikacji mają charakter ciągły, ponadto przyjmuje się dla nich ograniczenia zarówno górne jak i dolne. Można więc stwierdzić, iż zbiór dopuszczalny przyjmie formę hiperprostopadłościanu, o liczbie wymiarów równej liczbie optymalizowanych parametrów modelu, a punkty w nim zawarte stanowią możliwe rozwiązania problemu. Mamy więc do czynienia z problemem optymalizacji ciągłej. Natomiast sama funkcja celu nie jest nam dana jawnie, ale za pośrednictwem zależności od określonego modelu tranzystora. Wiadome jest jednak, iż wykorzystywany model tranzystora ma charakter nieliniowy [4]. Wynika z tego, iż badana funkcja celu może posiadać wiele minimów lokalnych (Rysunek 2.2). W takim 1.6 1.4 Minima lokalne Minimum globalne 1.2 1 0.8 0.6 0.4 0.2 0 0.5 1 1.5 2 2.5 3 Rysunek 2.2. Przykład dwuwymiarowej funkcji posiadającej wiele minimów lokalnych. 13
Rozdział 2. Zagadnienie ekstrakcji parametrów tranzystora MOS wypadku metody nastawione na przeszukiwanie pojedynczego obszaru przyciągania minimum mogą okazać się niewystarczające. Należy więc skorzystać z metod optymalizacji globalnej, które ze swej definicji [10] zapewniają środki pozwalające opuszczać obszar przyciągania pojedynczego minimum, zwiększając prawdopodobieństwo osiągnięcia minimum globalnego. 14
2.3. Algorytmy ewolucyjne 2.3. Algorytmy ewolucyjne Mianem algorytmów ewolucyjnych określa się szeroką grupę algorytmów stochastycznych, inspirowanych mechanizmami ewolucji biologicznej. Również z biologii została zaczerpnięta terminologia wykorzystywana do opisu algorytmów ewolucyjnych. Należy zaznaczyć, iż algorytmy ewolucyjne nie wywodzą się z jednego ośrodka naukowego, lecz z kilku, gdzie były rozwijane pod różnymi nazwami[1]. Stąd podział na programowanie ewolucyjne, strategie ewolucyjne, algorytmy genetyczne oraz programowanie genetyczne. Wymiana konkretnych rozwiązań i pomysłów pomiędzy poszczególnymi grupami algorytmów prowadziła do zacierania się różnic między nimi. Współcześnie powyższy podział ma głównie znaczenie historyczne, najpraktyczniej używać jest wspólnej nazwy - algorytmy ewolucyjne[1]. Mimo pierwotnej różnorodności można przedstawić ogólną strukturę algorytmu ewolucyjnego. Poniższy ogólny schemat został przedstawiony w [1], jak również w postaci rozszerzonej w [2]. Algorytm 1 Ogólny schemat algorytmu ewolucyjnego t = 0 Inicjacja(P t ) Ocena(P t ) while ( WarunekZatrzymania()) do T t =Reprodukcja(P t ) O t =Perturbacja(T t ) Ocena(O t ) P t+1 =Sukcesja(O t, T t ) t = t + 1 end while W trakcie działania algorytmu przetwarzane są populacje osobników (P t, O t, T t ). Osobniki reprezentują rozwiązania problemu, natomiast populacja jest ich wielozbiorem. Po utworzeniu populacji początkowej, określa się liczbowo jakość poszczególnych rozwiązań x g i poprzez obliczenie funkcji celu w odpowiadających im punktach. Następnie rozpoczyna się działanie głównej pętli algorytmu ewolucyjnego, która jest wykonywana, aż do spełnienia warunku zatrzymania. Działanie pętli rozpoczyna się od przeprowadzenia reprodukcji, polegającej na utworzeniu wielozbioru zawierającego losowo wybrane elementy z populacji poddawanej reprodukcji. Na ogół przyjmuje się, iż osobniki lepsze (co do wartości funkcji celu) są wybierane z niemniejszym prawdopodobieństwem niż gorsze. Następnie przeprowadzana jest perturbacja populacji. Polega 15
Rozdział 2. Zagadnienie ekstrakcji parametrów tranzystora MOS ona na dokonywaniu losowych modyfikacji perturbowanych rozwiązań. Utworzona w wyniku poprzednich dwóch kroków populacja O t podlega następnie ocenie. O tym które rozwiązania z populacji P t oraz O t będą przetwarzane w następnej iteracji algorytmu ewolucyjnego decyduje mechanizm sukcesji. Poszczególne etapy algorytmu są realizowane na wiele różnych sposobów, spełniają jednak na ogół te same role. Reprodukcja oraz sukcesja, zwane razem selekcją, mają na celu poprawianie średniej wartości funkcji celu w populacji poprzez preferowanie lepszych rozwiązań. Rolą perturbacji natomiast jest zwiększanie różnorodności przetwarzanej populacji. Algorytmy ewolucyjne można rozszerzyć o wykorzystanie metod optymalizacji lokalnej. W takim wypadku po zakończeniu działania algorytmu ewolucyjnego najlepsze uzyskane rozwiązanie zostaje poddane optymalizacji lokalnej. Ma to na celu znalezienie optimum w którego obszarze przyciągania znajduje się najlepsze uzyskane rozwiązanie. Podobne modyfikacje można wprowadzać również do innych metod optymalizacji globalnej. Powstałe w ten sposób metody w niniejszej pracy będą określane mianem hybrydowych. Dla uproszczenia strony pojęciowej na potrzeby niniejszej pracy przyjęto, iż osobnik jest tożsamy z punktem mu odpowiadającym. W ogólności wprawdzie z osobnikiem mogą być związane dodatkowe informacje np. zasięg mutacji, jednak zaimplementowane algorytmu nie wykorzystują tej możliwości. Stąd w dalszej części pracy zamiast pojęcia osobnik będzie używane bardziej intuicyjne pojęcie punkt. 16
3. Wykorzystane metody optymalizacji 3.1. Metoda Monte Carlo Za najprostszy sposób rozwiązywania problemów optymalizacji globalnej należy uznać metodę Monte Carlo. Została ona opracowana przez Stanisława Ulama w latach czterdziestych XX wieku, i wykorzystywana jest obecnie głównie do przeprowadzania całkowania numerycznego. Możliwe jest jednak jej użycie również w zadaniu optymalizacji globalnej. Sprowadza się ono do losowego próbkowania przestrzeni dopuszczalnej z rozkładem jednostajnym: x i,j,0 = ξ U(0,1) (b i,u b i,l ) + b i,l F = min {x1,x 2,,x n}{f (x 1 ), F (x 2 ),, F (x n )} (3.1) x max : F (x max ) = F Nie wykorzystuje ona żadnych mechanizmów wspierających przeszukiwanie obszaru dopuszczalnego. Można więc oszacować jakie jest prawdopodobieństwo znalezienia w danym kroku rozwiązania optymalnego. Dla prostego przypadku, gdy zbiór dopuszczalny jest postaci [1, 2,, 10] 6, i znajduję się w nim jeden wektor optymalny prawdopodobieństwo znalezienia tego rozwiązania w pojedynczym kroku wynosi 1. Po wykonaniu 100000 próbkowań szansa, że nie udało nam się znaleźć 1000000 rozwiązania optymalnego przekracza w dalszym ciągu 90%. Wydaje się więc, iż zastosowanie metody Monte Carlo w problemach o większej mocy zbioru dopuszczalnego niż wyżej zaprezentowany jest bezcelowe. Należy jednak zwrócić uwagę na następujące kwestie: często satysfakcjonujące jest nie tylko rozwiązanie optymalne, ale również inne rozwiązania spełniające określone przez użytkownika warunki; prezentowana metoda jest bardzo prosta w implementacji, może być wykonywana praktycznie w pełni równolegle, co ma znaczenie w wypadku przeprowadzania obliczeń z użyciem współczesnych kart graficznych. Przeprowadzenie testów z użyciem metody Monte Carlo pozwala również sprawdzić jak dużo można zyskać stosując bardziej wyrafinowane metody optymalizacji. 17
Rozdział 3. Wykorzystane metody optymalizacji 3.2. Metoda Covariance Matrix Adaptation Evolution Strategy Opracowany przez Nikolausa Hansena algorytm CMA-ES, tworzy nowe populacje punktów z wielowymiarowym rozkładem normalnym. Jego istota tkwi w sposobie wyliczania parametrów tego rozkładu. Ważną cechą tej metody jest brak parametrów, którym użytkownik powinien nadać wartość początkową, co pozwala uniknąć dodatkowego nakładu czasowego poświęconego na strojenie parametrów. CMA-ES jest również algorytmem dość złożonym, stąd jego pełny opis byłby dość obszerny. Z tego powodu zaprezentowany zostanie ogólny schemat działania algorytmu, z krótkim omówieniem poszczególnych kroków. Algorytm 2 Uproszczony pseudokod algorytmu CMA-ES Inicjuj(C, m, µ, σ, λ) g = 0 while WarunekZatrzymania() do for j {1, 2, 3,..., λ} do x j,g N(m, σ 2 C) Napraw(x j,g ) end for Zaktualizuj C, m, σ uwzględniając µ najlepszych punktów z generacji g g = g + 1 end while W prezentowanym pseudokodzie C oznacza macierz kowariancji na podstawie której generowane są nowe punkty, m jest wartością średnią rozkładu normalnego, natomiast wartość σ jest czynnikiem skalującym zasięgiem ewolucji. Inicjacja przeprowadzana jest na podstawie informacji o liczbie wymiarów funkcji celu, oraz wartości ograniczeń kostkowych. Po inicjacji rozpoczyna się pętla główna algorytmu, która jest przetwarzana, aż do spełnienia warunków zatrzymania. W pętli głównej następuje generowanie λ nowych punktów zgodnie z rozkładem normalnym o wartości średniej m i macierzy kowariancji równej σ 2 C. Nowo wygenerowane punkty mogą znajdować się poza obszarem dopuszczalnym, stąd obecność w kolejnym kroku mechanizmu naprawy wygenerowanego punktu. Po wygenerowaniu nowej populacji punktów konieczne jest zaktualizowanie parametrów algorytmu. 18
3.2. Metoda Covariance Matrix Adaptation Evolution Strategy Wartość parametru m jest wyliczana na nowo w każdej iteracji. W tym celu oblicza się średnią ważoną z µ najlepszych punktów ostatniej populacji. Uzyskany punkt staje się nowym parametrem m. Taki sposób wyliczania m pozwala przesuwać generację punktów w kierunku lepszych wartości funkcji celu. Parametr σ jest czynnikiem skalującym i odpowiada za zasięg ewolucji, to znaczy jak daleko od punktu m generowane są kolejne punkty. W wypadku gdy wartość σ jest zbyt mała algorytm wprawdzie będzie zbiegał do ekstremum, jednak będzie to wolna zbieżność. Gdy wartość σ będzie zbyt duża, algorytm będzie poruszał się cały czas w tym samym obszarze, omijając w kolejnych krokach obszary o lepszych wartościach funkcji celu. Z tego powodu parametr σ jest modyfikowany w każdej iteracji. Jeżeli m przebywa po kolejnych iteracjach zbyt małą odległość σ jest zmniejszana; w przeciwnym wypadku wartość σ ulega zwiększeniu. Macierz C odpowiada za kształt gęstości prawdopodobieństwa wielowymiarowego rozkładu normalnego, a tym samym za właściwe ukierunkowanie poszukiwań. Ona również ulega modyfikacji w każdej iteracji. Jej adaptacja następuje na podstawie wektora przemieszczenia parametru m między iteracjami. Macierz C nie ma za zadania dopasowywać się do kształtu funkcji celu, lesz do kierunków spadku funkcji celu. Istnieją algorytmy przeprowadzające w ramach swojego działania wielokrotne uruchomienia CMA-ES, z różnymi wartościami początkowymi średniej m. Mogą one również modyfikować inne parametry algorytmu; algorytm IPOP-CMA-ES wraz z kolejnymi uruchomieniami zwiększa wielkość przetwarzanej populacji (parametr λ). Więcej szczegółowych informacji na temat sposobu wyliczania poszczególnych parametrów algorytmu CMA-ES wraz z uzasadnieniem, jak również samego algorytmu można znaleźć w [11]. 19
Rozdział 3. Wykorzystane metody optymalizacji 3.3. Ewolucja różnicowa Algorytm Ewolucji Różnicowej (ang. Differential Evolution, w skrócie DE) został opracowany przez Kennetha Price a i Rainera Storna w latach 1994-96. Jego nazwa pochodzi od zastosowanego mechanizmu mutacji punktów - wykorzystuje on różnice między parami punktów do określenia zasięgu mutacji. Zastosowanie tej metody powoduje, iż zasięg mutacji zmienia się wraz ze zmianą wariancji przetwarzanej populacji. Od pierwszej publikacji algorytmu w roku 1997, zaproponowano dla niego wiele modyfikacji i usprawnień. Mimo to klasyczna wersja ewolucji różnicowej (ang. classic DE ) wciąż często występuje w publikacjach naukowych i wydaje się być dobrym punktem odniesienia do dalszych badań. W pracy wykorzystana została postać algorytmu określana powszechnie jako: DE/rand/1/bin. Pierwszym krokiem algorytmu jest inicjacja populacji bazowej. W tym celu generowane jest NP punktów n-wymiarowych z określonym rozkładem losowym oraz przy uwzględnieniu ograniczeń kostkowych. Zalecane jest użycie rozkładu jednostajnego, zwłaszcza gdy nie jest dostępna wiedza na temat położenia optimum globalnego. Dla ograniczeń postaci [b i,l ; b i,u ] i {1,, n} uzyskujemy: x i,j,0 = ξ U(0,1) (b i,u b i,l ) + b i,l i {1, 2, 3,..., n} j {1, 2, 3..., µ} n, µ N (3.2) gdzie: i jest indeksem współrzędnej punktu, j jest indeksem punktu w populacji, 0 odnosi się do numeru generacji populacji. Oznaczenie x i,j,0 odnosi się do i-tej współrzędnej j-tego punktu w generacji 0 populacji. Zapis: ξ U(0,1) oznacza realizację zmiennej losowej o rozkładzie jednostajnym na przedziale [0, 1). Dysponując zainicjowaną populacją, algorytm ewolucji różnicowej za pomocą mechanizmów mutacji, a następnie krzyżowania, tworzy populację potomną. W pierwszej kolejności do wybranych punktów z aktualnej populacji dodawana jest różnica dwóch innych punktów, z tej samej populacji, przemnożona przez czynnik skalujący: v j,g = x r1,g + F (x r2,g x r3,g) r 1, r 2, r 3 {1, 2, 3,..., µ} µ, g N (3.3) 20
3.3. Ewolucja różnicowa Indeksy: r 1,r 2,r 3 punktów wyznaczane są poprzez realizację zmiennej losowej o dyskretnym rozkładzie jednostajnym na zbiorze wszystkich indeksów z aktualnej populacji: r i = ξ U{1,2,3,...,µ} i {1, 2, 3} (3.4) Dodatkowo, uzyskane indeksy muszą być różne od siebie, oraz od aktualnego indeksu j, czyli: r1 r2 r3 j. Czynnik skalujący F powinien być dodatnią liczbą rzeczywistą. Mimo braku górnego ograniczenia na jego wartość, w praktyce przeważnie przyjmuje się F (0, 1). Uzyskany w wyniku tej procedury punkt v j,g nazywany jest punktem zmutowanym lub mutantem. W drugim kroku tworzenia populacji potomnej przeprowadzany jest proces krzyżowania, z użyciem metody krzyżowania równomiernego. Tworzy ona nowy punkt z wykorzystaniem współrzędnych pochodzących z dwóch różnych punktów w następujący sposób: u i,j,g = v i,j,g jeżeli ξ U(0,1) Cr j = j rand x i,j,g w przeciwnym przypadku (3.5) j rand = ξ DU{1,2,3,...,µ} Wartość współczynnika prawdopodobieństwa krzyżowania Cr [0, 1], wpływa na to, jaka część składowych nowego punktu pochodzić będzie z punktu zmutowanego, a jaka z wektora z aktualnej populacji. Tworzenie nowego punktu z wykorzystaniem współrzędnych pochodzących jedynie z punktu z aktualnej populacji jest bezcelowe. Stąd wprowadzony został dodatkowy warunek, j = j rand, gwarantujący, że co najmniej jedna współrzędna pochodzić będzie z punktu zmutowanego. Indeks j rand wybierany jest poprzez realizację zmiennej losowej o rozkładzie jednostajnym na zbiorze {1, 2, 3,, D}. Uzyskane punkty potomne u j,g mogą, ale nie muszą, spełniać narzuconych ograniczeń. Jeżeli nowo powstały punkt znajduje się poza obszarem dopuszczalnym musi zostać przeprowadzona pewna forma jego naprawy. Jest to zagadnienie często pomijane w publikacjach naukowych, również w publikacji przedstawiającej algorytm ewolucji różnicowej. Brak ustalonej metody uwzględniania ograniczeń kostkowych pozwala na dość swobodny jej dobór, bez wprowadzania zmian w przebiegu klasycznej postaci algorytmu. Z przeprowadzonych w ostatnim okresie badań wynika, iż dobór metody uwzględniania graniczeń kostkowych ma wpływ na jakość uzyskiwanych rozwiązań[18]. Spośród testowanych metod najlepsze wyniki osiągnęła metoda 21
Rozdział 3. Wykorzystane metody optymalizacji ponownego generowania rozwiązania (ang. resampling). Jeżeli punkt nie spełnia ograniczeń kostkowych, należy go odrzucić, a następnie powtórzyć całą procedurę tworzenia punktu potomnego. Nie ma jednak gwarancji, iż rozwiązanie dopuszczalne zostanie osiągnięte po jednokrotnym przeprowadzeniu procedury. Może być konieczne wielokrotne generowanie nowego rozwiązania, zwłaszcza gdy populacja znajduje się w pobliżu narożniku przeszukiwanej hiperkostki. W celu ograniczenia tego zjawisko należy wprowadzić limit re max liczby ponownych generacji punktu potomnego. Po jego przekroczeniu powinna zostać zastosowana metoda naprawy gwarantująca uzyskanie rozwiązania dopuszczalnego. Propozycja rozwiązania zostanie opisana w dalszej części pracy. W ostatnim kroku w algorytmu przeprowadzana jest sukcesja, by określić które punkty przenieść do następnej generacji rozwiązań, a które odrzucić. W tym celu porównuje się wartość funkcji celu dla punktów o zgodnych indeksach pochodzących z aktualnej populacji oraz populacji potomnej: u j,g jeżeli f(u j,g ) f(x j,g ) x j,g+1 = w przeciwnym przypadku x j,g j {1, 2, 3..., µ} (3.6) Uzyskane punkty x j,g+1 tworzą nową populację. Następnie powtarzane są procesy mutacji, krzyżowania oraz sukcesji, aż do spełnienia warunku zatrzymania algorytmu. Zapis całego algorytmu w pseudokodzie wygląda następująco: 22
3.3. Ewolucja różnicowa Algorytm 3 Pseudokod algorytmu DE/rand/1/bin g = 0 for j {1, 2, 3,..., µ} do Inicjuj(x j,g ) end for while WarunekZatrzymania() do for j {1, 2, 3,..., µ} do r 1, r 2, r 3 DU{1, 2,..., µ} r 1 r 2 r 3 j v j,g = x r1,g + F (x r2,g x r3,g) d DU{1, 2,..., D} for i {1, 2, 3,..., D} do v i,j,g if(u(0, 1) CR) j = d u i,j,g = x i,j,g if(u(0, 1) > CR) j d end for if f(u i,j,g ) < f(x i,j,g ) then else x i,j,g+1 = u i,j,g x i,j,g+1 = x i,j,g end if end for g = g + 1 end while 23
Rozdział 3. Wykorzystane metody optymalizacji 3.4. Algorytm ewolucyjny bazujący na mutacji różnicowej W roku 2011 na konferencji w Paryżu został zaproponowany nowy algorytm ewolucyjny wykorzystujący do przeprowadzania mutacji mechanizm zastosowany w ewolucji różnicowej. W publikacji nazywany jest on w skrócie DMEA (od ang. Differential Mutation Evolutionary Algorithm). Wyniki zaprezentowane dla zbioru testowego CEC2005 wydają się bardzo obiecujące, zważywszy na fakt, iż algorytm DMEA był testowany w dość wąskim zakresie. W pierwszym kroku algorytmu przeprowadzana jest inicjacja populacji z rozkładem jednostajnym na zbiorze rozwiązań dopuszczalnych, czyli analogicznie jak w algorytmie ewolucji różnicowej (wzór 3.2). Z aktualnej populacji zostają następnie wybrane punkty do populacji rodzicielskiej z użyciem reprodukcji proporcjonalnej (zwanej również ruletkową). Prawdopodobieństwo wybrania punktu jest wprost proporcjonalne do wartości jego funkcji przystosowania, poddanej przesunięciu korygującemu: P sel (x j,g g = t) = f(x j,t ) f min (t) µ k=1 (f(x k,t) f min (t)) f min (t) min k {1,2,3,...,µ} f(x k,t ) (3.7) Czynnik korygujący f min (t) musi spełniać powyższą nierówność, ponieważ w przeciwnym wypadku prawdopodobieństwo wyboru punktu mogłoby przyjmować wartości ujemne. Dodatkowo, w wypadku równości obu stron istnieje możliwość przyjęcia przez wyrażenie µ k=1 (f(x k,t) f min (t)) wartości zero. Stąd propozycja by nierówność słabą, zastąpić nierównością ostrą. W praktycznym zastosowaniu można to osiągnąć poprzez wyznaczenie przesunięcia korygującego ze wzoru: f min (t) = min k {1,2,3,...,µ} f(x k,t ) 0.01 µ (3.8) Punkty wybrane do populacji rodzicielskiej poddawane są następnie mutacji. Mechanizm mutacji używany w algorytmie DMEA stanowi rozszerzenie koncepcji mutacji różnicowej. Pierwszą różnicą jest wybieranie par punktów nie tylko z aktualnej generacji populacji, ale również z generacji poprzednich. Jeżeli populację punktów w generacji t oznaczymy przez X t, to wybór par punktów H k1,t, H k2,t dokonuje się spośród: H t = i {1,2,...,h} X t i+1 h 1 (t < 0 X t = ) (3.9) 24
3.4. Algorytm ewolucyjny bazujący na mutacji różnicowej, gdzie h określa liczbę ostatnich populacji z których losowane są pary punktów. Kolejnym rozszerzeniem mutacji różnicowej jest losowanie nie jednej, lecz wielu par punktów, a następnie wymnażanie ich różnic przez dodatkowy czynnik a k. Punkt będący sumą różnic v j,t uzyskujemy zgodnie z: p k=1 v j,t = a k (H k1,t H k2,t) p k=1 (a k) 2 (3.10) a k = ξ U(0,1) k 1, k 2 = ξ U{1,2,3,...,h µ}, przy czym zarówno współczynnik a k jak również indeksy k 1, k 2 są generowane losowo dla każdej pary punktów. Punkt v j,t jest więc zmienną losową której wariancja odpowiada podwojonej wariancji punktów ze zbioru H t. Następnie należy wygenerować punkt m jako realizację zmiennej losowej o rozkładzie normalnym. Wartość średnia dla rozkładu wynosi zero, natomiast macierz kowariancji jest postaci v m I, gdzie I jest macierzą jednostkową, natomiast v m jest określoną liczbą dodatnią. Dysponując punktem rodzicielskim x j,t, punktem będącym sumą różnic v j,t, oraz punktem losowym m, punkt potomny otrzymywany jest według wzoru: u j,t = x j,t + F v j,t + m (3.11) Czynnik skalujący F wpływa na zasięg mutacji. Większe wartości tego parametru prowadzić będzie do większego zróżnicowania populacji potomnej. Nie zostały zdefiniowane żadne ograniczenia na wartość tego parametru. Można jednak przyjąć, iż powinien on przyjmować wartości dodatnie. Ujemna wartość parametru F postaci a a R +, odpowiadają dodatniej wartości a, przy zamienionych indeksach k1, k2 we wzorze (3.10), natomiast dla wartości zero punkt potomny jest zdegenerowany. Wydaje się zasadne przyjęcie ograniczenia na wartość F analogiczną jak w ewolucji różnicowej: F (0, 1), w celu uniknięcia generowania zbyt odległych punktów. Na chwilę obecną brak jednak dowodów na poparcie tej tezy. Wygenerowane według wzoru (3.11) punkty potomne mogą znajdować się poza obszarem dopuszczalnym. Stąd konieczność zastosowania metody uwzględniania ograniczeń, która zostanie omówiona w dalszej części pracy. Po dokonaniu naprawy punktów potomnych przeprowadzana jest sukcesja z całkowitym zastępowaniem. Cała dotychczasowa populacja zastępowana jest przez nowo utworzone punkty potomne. Następnie przeprowadzane są ponownie wszystkie kroki DMEA, za 25
Rozdział 3. Wykorzystane metody optymalizacji Algorytm 4 Pseudokod algorytmu DMEA g = 0 for j {1, 2, 3,..., µ} do Inicjuj(x j,g ) end for while WarunekZatrzymania() do for j {1, 2, 3,..., µ} do Wylosuj i zgodnie z rozkładem P sel v j,g = 0 for k {1, 2, 3,..., p} do a k U(0, 1) l, m DU{1, 2,..., h µ} v j,g + = a k (H l,t H m,t ) end for v j,g v j,g = nk=1 (a k ) 2 m N(0, v m I) u j,g = x i,g + F v j,g + m x j,g+1 =Napraw(u j,g ) end for g = g + 1 end while x res =LokalnaOptymalizacja(x best ) 26
3.4. Algorytm ewolucyjny bazujący na mutacji różnicowej wyjątkiem inicjacji, o ile nie zostały spełnione warunki zatrzymania algorytmu. Punkt o najmniejszej wartości funkcji celu uzyskany w podczas wyżej opisanego przetwarzania można następnie poddać działaniu metody optymalizacji lokalnej. Mamy wtedy do czynienia z algorytmem hybrydowym, składającym się z metody optymalizacji globalnej, oraz optymalizacji lokalnej. Należy określić go mianem HDMEA - Hybrid Differential Mutation Evolutionary Algorithm. 27
Rozdział 3. Wykorzystane metody optymalizacji 3.5. Sympleks Neldera-Meada W ramach prowadzonych badań została również użyta metoda Neldera-Meada. Wprawdzie nie jest to metoda optymalizacji globalnej, jednakże została wykorzystana jako element metod hybrydowych. Opisywany algorytm opiera się o iteracyjnej modyfikacji sympleksu, w ten sposób, by ostatecznie jego środek przybliżał minimum lokalne. Dla problemu minimalizacji funkcji f(x) : R n R metoda rozpoczyna się od utworzenia punktów: P 0,, P n stanowiących wierzchołki sympleksu. Wartości funkcji w tych punktach oznaczamy kolejno: y 0,, y n. Następnie wyznaczamy indeksy skrajnych, co do wartości funkcji celu, wierzchołków sympleksu: h takie, że y h = max (y i) i {0,,n} l takie, że y l = min (y i) i {0,,n} (3.12) oraz centroid P dla punktów P i takich, że i {0,, n}\{h}. W następnym kroku należy dokonać modyfikacji najgorszego punktu, o indeksie h. Można tego dokonać za pomocą jednej z trzech operacji: odbicia, zawężenia lub ekspansji. W pierwszym kroku przeprowadza się próbę odbicia P h, względem P w następujący sposób: P = (1 + α)p αp h (3.13) gdzie współczynnik odbicia α jest większy od zera. Jeżeli odpowiadająca punktowi P wartość y, spełnia warunek: y l < y i h y i > y, to punkt P h jest zastępowany przez P i tak zmodyfikowany sympleks jest powtórnie przetwarzany. Jeżeli natomiast y < y l, czyli utworzone zostało, w wyniku odbicia, nowe minimum, to następuje ekspansja P według: P = γp + (1 γ)p (3.14) gdzie współczynnik ekspansji γ jest większy od jedności. Jeżeli wartość y < y l, to ekspansja się powiodła, i punkt P h zostaje zastąpiony przez P. W wypadku niepowodzenia ekspansji P h zostaje zastąpione przez P. Następnie nowo utworzony sympleks jest powtórnie przetwarzany. 28
3.5. Sympleks Neldera-Meada Jeżeli jednak i h y i < y, to P h poddajemy zawężeniu, uprzednio zastępując P h punktem P, o ile y < y h. Zawężenie dokonywane jest zgodnie ze wzorem: P = βp h + (1 β)p (3.15) gdzie współczynnik zawężania β (0, 1). Tak uzyskany punkt P zastępuje dotychczasowy punkt P h chyba, że y > y h. W wypadku takiego niepowodzenia zawężania, wszystkie punkty ulegają zbliżeniu do punktu o najmniejszej wartości funkcji celu. Następuje to według: P i = (P i + P l ) 2 i {0,, n} (3.16) Powyższa procedura jest powtarzana, aż do spełnienia kryterium zatrzymania. W przeprowadzanych badaniach jako kryterium zostało przyjęte przekroczenie zadanej liczby ewaluacji funkcji celu. Prezentowana metoda nie została przeze mnie zaimplementowana. Wykorzystałem gotową implementację znajdującą się w bibliotece GSL. 29
Rozdział 3. Wykorzystane metody optymalizacji 3.6. Uwzględnianie ograniczeń Problem ekstrakcji parametrów tranzystora narzuca ograniczenia na wartości parametrów tranzystora. Dla każdego parametru występuje zarówno ograniczenia dolne, jak również górne jego wartości. W ramach działania rozważanych algorytmów może się okazać, iż nowo wygenerowany punkt nie spełnia co najmniej jednego z ograniczeń. Ponieważ rozwiązania nie spełniające ograniczeń są poza naszym obszarem zainteresowań, należy ustalić sposób postępowania w takich przypadkach. Ponieważ w analizowanym problemie dla każdego parametru występują stałe ograniczenia górne i dolne, więc zbiór dopuszczalny przyjmuje formę n wymiarowego hiperprostopadłościanu. Możemy więc mówić w tym wypadku o ograniczeniach kostkowych. Taki zbiór został dodatkowo przekształcony do postaci n wymiarowego hipersześcianu. Dobór niewłaściwej metody uwzględniania ograniczeń może w sposób istotny negatywnie wpływać na wyniki uzyskiwane przez metody optymalizacji. Spośród negatywnych skutków należy wymienić tendencję do błądzenia przypadkowego, obniżenie zdolności do generacji punktów w okolicach przecięcia licznych ograniczeń, czy też zmniejszenie różnorodności generowanych rozwiązań. Stąd konieczność odpowiedniego doboru metody uwzględniania ograniczeń. Dla każdego z rozważanych algorytmów, w kontekście testu CEC2005, zaproponowane zostały różne sposoby uwzględniania ograniczeń [15, 17, 14]. Jednak, jak pokazały badania [18], dla metod CMA-ES oraz DE i zbioru testowego CEC 2005, istnieje lepsza niż proponowane metoda. Chodzi o ponowne próbkowanie, które uzyskało najlepsze wyniki zarówno dla algorytmu CMA-ES jak również DE. Metoda ponownego próbkowania polega na ponownym przeprowadzaniu procedury generowania punktu, w wypadku gdy wcześniej uzyskany nie znajduje się w obszarze dopuszczalnym. Ze względu na stochastyczny sposób generowania punktów, nowo utworzone rozwiązanie może znaleźć się w obszarze dopuszczalnym. Jest to metoda prosta i intuicyjna nie gwarantująca jednak naprawy w pojedynczej iteracji. To też stanowi istotną wadę tej metody i może prowadzić do wielokrotnego bezskutecznego generowania nowych rozwiązań znajdujących się poza obszarem dopuszczalnym. Zjawisko to zostało odnotowane [18] zarówno dla metody DE jak również dla CMA-ES. 30
3.6. Uwzględnianie ograniczeń Chcąc wykorzystać powyższą metodę, a jednocześnie ograniczyć jej niepożądane właściwości należało przeprowadzić jej hybrydyzację. Wprowadzono górne ograniczenie liczby ponownych generacji na poziomie liczby wymiarów problemu. Jeżeli w następstwie wprowadzenia ograniczenia nie udało się uzyskać rozwiązania dopuszczalnego metoda przeprowadzała naprawdę nieakceptowalnego rozwiązania. Naprawa była przeprowadzana zgodnie z koncepcją zaproponowaną w [15]. Punkt nieakceptowalny był przesuwany w kierunku środka populacji według wzoru: x = Pmid t + a(x Pmid) t (3.17) gdzie Pmid t oznacza punkt będący środkiem populacji, w generacji t, x jest punktem spoza obszaru dopuszczalnego, natomiast współczynnik a początkowo wynosi 1, jednak 2 w razie niepowodzenia utworzenia punktu w obszarze dopuszczalnym, jest dzielony przez 2. Ta procedura gwarantuje uzyskanie punktu dopuszczalnego po zastosowaniu wystarczająco małej wartości parametru a. Wyżej opisana metoda hybrydowa została zastosowana w algorytmach DE, DMEA, oraz CMA-ES. Metoda Monte Carlo nie wymaga mechanizmów uwzględniania ograniczeń, ponieważ ze swej zasady działania generuje punkty w obszarze dopuszczalnym. Dla metody Neldera-Meada natomiast zastosowano prostą funkcję kary. 31
Rozdział 3. Wykorzystane metody optymalizacji 3.7. Testowanie niedeterministycznych metod optymalizacji Metody niedeterministyczne ze względu na swój charakter wymagają dość specyficznego podejścia. Nie gwarantują one ani uzyskiwania optymalnych rozwiązań, ani nawet powtarzalności wyników. Nie posiadając wiedzy czy zostało już osiągnięte minimum lokalne nie jesteśmy w stanie jednoznacznie stwierdzić kiedy należy przerwać działanie algorytmu. Z tymi cechami wiążą się problemy ich w testowaniu. 3.7.1. Porównanie oparte na wielu niezależnych uruchomieniach Ze względu na stochastyczny charakter badanych metod niewłaściwym jest przeprowadzanie porównania w oparciu o jeden przebieg algorytmu. Takie podejście jest mylące. Przeprowadzając dwa niezależne uruchomienia metody optymalizacji globalnej niejednokrotnie należałoby stwierdzić, iż metoda jest lepsza/gorsza od samej siebie. Z tego powodu porównania należy dokonywać na podstawie wielu niezależnych uruchomień. Dysponując wieloma wynikami działania poszczególnych metod możemy mówić o ich parametrach statystycznych i na ich podstawie dokonywać porównania. Parametrami statystycznymi wartymi uwagi są mediana oraz średnia z uzyskiwanych wyników. Obserwowanie ich wartości, w trakcie działania metod, pozwala na dość wiarygodne porównanie, zwłaszcza jeżeli zostały wyznaczone na podstawie stosunkowo dużej liczby uruchomień. Można w ten sposób rejestrować tzw. krzywe zbieżności obrazujące jak, średnio, wartości funkcji celu maleją wraz z kolejnymi ewaluacjami. Drugim istotnym narzędziem porównawczym są dystrybuanty empiryczne rozwiązań. Pozwalają one porównać algorytmy pod kątem uzyskiwanych ostatecznie wyników. Ukazują one częstość występowania wyników o nie gorszej niż podana wartości funkcji celu. Można dzięki nim ocenić jaka jest szansa uzyskania wyników z określonych przedziałów wartości. Do porównania wyników dwóch algorytmów przydatny jest również test Wilcoxona. Pozwala on stwierdzić, z zadanym poziomem istotności, czy uzyskane wyniki są od siebie różne w sposób statystycznie istotny. Można na jego podstawie również stwierdzić jaki jest charakter tej różnicy - czy wyniki A są statystycznie większe od B czy wręcz przeciwnie. 32
3.7. Testowanie niedeterministycznych metod optymalizacji 3.7.2. Analiza testów porównawczych Poszukując wydajnych metod optymalizacji globalnej mających służyć ekstrakcji parametrów tranzystora należy przeanalizować dostępne testy porównawcze. Uwagę zwracają dwa kompletne zbiory testowe - BBOB oraz CEC. Oba traktowały funkcje testowe jako czarną skrzynkę pozwalając ustawiać parametry algorytmów tylko w oparciu o wymiarowość problemu, nie wykorzystując przy tym żadnej dodatkowej wiedzy na ich temat. Jest to ujęcie zgodne z badanym w niniejszej pracy, gdzie również nie wykorzystywana była dodatkowa wiedza o funkcji celu. W teście BBOB 2010 [12] przeprowadzana jest optymalizacja 24 różnych funkcji testowych, w kilku wariantach zaszumienia, oraz dla różnej wymiarowości problemu (2, 3, 5, 10, 20, 40). Najbardziej interesujące z punktu widzenia badanego zagadnienia są wyniki uzyskane przez różne metody dla 5 wymiarowych funkcji testowych bez szumów, ze względu na liczne przetestowane funkcje oraz fakt, iż docelowo optymalizacji podlegać będzie funkcja 6 wymiarowa. Najistotniejsze wydają się wyniki dla funkcji f 24 (Lunacek bi-rastrigin), ponieważ okazała się ona największym wyzwaniem dla testowanych algorytmów. Dla tej funkcji tylko pięciu metodom udało się osiągnąć odległość od optimum na poziomie lepszym niż 10 2. Trzy (Adap DE, DE (uniform),pm-adapss-de) z nich są bezpośrednio oparte na algorytmie ewolucji różnicowej, jeden na algorytmie CMA-ES (IPOP-CMA-ES). Piąty algorytm (CMA+DE-MOS) jest natomiast hybrydą obu powyższych. Spośród nich należy wyróżnić dla algorytmy - DE (uniform) oraz IPOP-CMA-ES, z różnych jednak względów. Pierwszy ze względu na pełną niezawodność - dla każdej funkcji testowej udało mu się uzyskać wynik różniący się od docelowego o nie więcej niż 10 7. Natomiast algorytm IPOP-CMA-ES wprawdzie nie zawsze uzyskiwał tak dobre rozwiązania, jednak szybciej dążył do optimum, co potwierdzają wyniki kolejnego testu. Test CEC2005 składa się z 25 funkcji, w różnych wariantach wymiarowości, jednak główne zestawienie wyników zostało zaprezentowane dla funkcji 10 i 30 wymiarowych. Dla funkcji 10 wymiarowych dwa powyżej wymienione algorytmy zajmowały miejsca w czołówce. Utwierdza to w przeświadczeniu, iż do przeprowadzenia ekstrakcji parametrów tranzystora należy wykorzystać wzmiankowane wcześniej algorytmy DE oraz CMA-ES Stąd do rozwiązywania problemu ekstrakcji parametrów, zostały wybrane właśnie te dwa algorytmy, w możliwie klasycznej postaci. Do celów badawczych wybrano również dwa dodatkowe algorytmy, próbkowanie Monte Carlo 33
Rozdział 3. Wykorzystane metody optymalizacji (MC) jako jedna z najprostszych metoda optymalizacji globalnej, oraz algorytm DMEA bazujący na DE, zaprezentowany po raz pierwszy w 2011 roku na konferencji w Paryżu. MC spełnia rolę algorytmu odniesienia, natomiast DMEA jest algorytmem wykorzystującym uogólnioną metodę mutacji DE, a przy tym nowym, stąd pomysł by przetestować jego działanie w praktycznym zastosowaniu, a nie tylko na syntetycznych funkcjach testowych. 34
4. Implementacja badanego zagadnienia 4.1. Weryfikacja poprawności wybranych metod optymalizacji Wybrane metody optymalizacji globalnej mają charakter stochastyczny, co utrudnia weryfikację poprawności ich realizacji. Można jednak porównać wyniki działania zaimplementowanych algorytmów na pewnym zbiorze funkcji testowych, z opublikowanymi już wynikami uzyskanymi dla tego samego zestawu testów. Do tego celu posłużono się zestawem CEC 2005 [13]. Wyniki dla algorytmów DE, CMA-ES oraz DMEA znajdują się w [14], [15]; posłużyły one do przeprowadzenia porównania z wynikami uzyskanymi przez własne implementacje metod. Implementacja w języku C funkcji testowych ze zbioru CEC 2005 została udostępniona na stronie: http://web.mysites.ntu.edu.sg/epnsugan/publicsite/shared Documents/Forms/AllItems.aspx. Niestety korzystanie z niej jest niewygodne (wyboru funkcji dokonuje się poprzez jej odkomentowanie przed kompilacją). Są również zastrzeżenia względem optymalności zaprezentowanej implementacji, zwłaszcza względem funkcji F 11, która wpływa również na wydajność funkcji hybrydowych (F 15 -F 25 ). Z tych powodów został zaimplementowany zestaw funkcji testowych CEC 2005. Algorytmy DE oraz L-CMA-ES zaimplementowano dokonując kilku modyfikacji. Ujednolicono w nich mechanizm uwzględniania ograniczeń kostkowych (jest on ten sam, dla wszystkich algorytmów, i bazuje na zastosowanym w DMEA). Dodatkowo w wypadku L-CMA-ES uwzględniono późniejsze zmiany sposobu obliczania parametrów wykorzystywanych przy modyfikacji macierzy kowariancji. Ogólny przebieg algorytmu pozostał jednak niezmieniony. Uzyskiwane dla funkcji CEC2005 wyniki mogły się więc różnić od zamieszonych w artykułach. Z tego powodu oczekiwano by uzyskane wyniki były statystycznie nie gorsze od zaprezentowanych w artykułach. W wypadku niespełnienia tych oczekiwań konieczna byłaby rewizja zaimplementowanych algorytmów, lub nawet odtworzenie ich pierwotnej wersji. 35
Rozdział 4. Implementacja badanego zagadnienia F n 1 2 3 4 5 6 7 8 9 IW 0.05 0.09 0.85 0.15 0.18 0.06 0.74 0.69 0.42 IU 0.70 0.74 1.39 0.81 0.18 0.72 1.17 1.20 1.09 F n 10 11 12 13 14 15 16 17 18 IW 0.56 8.99 9.27 0.60 0.78 24.37 24.43 24.44 24.36 IU 1.07 37.18 9.36 1.15 1.26 84.29 83.97 84.31 84.28 F n 10 11 12 13 14 15 16 17 18 IW 0.23 2.74 8.30 0.18 0.30 7.63 7.61 7.61 7.63 IU 0.69 11.54 8.19 0.71 0.74 28.62 28.62 28.65 28.63 F n 19 20 21 22 23 23 25 Σ IW 7.62 7.63 8.03 8.08 8.08 5.59 5.55 94.06 IU 28.60 28.64 29.03 29.03 29.04 18.29 18.27 322.71 Tabela 4.1. Czas wykonania, 1000000 ewaluacji 10 wymiarowych funkcji ze zbioru CEC 2005, w sekundach; IW - implementacja własna, IU - implementacja udostępniona, F n numer funkcji. F n 1 2 3 4 5 6 7 8 9 IW 0.01 0.06 0.33 0.06 0.12 0.02 0.29 0.24 0.12 IU 0.57 0.62 0.80 0.62 0.12 0.58 0.72 0.70 0.69 F n 10 11 12 13 14 15 16 17 18 IW 0.56 8.99 9.27 0.60 0.78 24.37 24.43 24.44 24.36 IU 1.07 37.18 9.36 1.15 1.26 84.29 83.97 84.31 84.28 F n 19 20 21 22 23 23 25 Σ IW 7.62 7.63 8.03 8.08 8.08 5.59 5.55 94.06 IU 28.60 28.64 29.03 29.03 29.04 18.29 18.27 322.71 Tabela 4.2. Czas wykonania, 100000 ewaluacji 30 wymiarowych funkcji ze zbioru CEC 2005, w sekundach; IW - implementacja własna, IU - implementacja udostępniona, F n numer funkcji. Do porównania wyników wykorzystałem test Wilcoxona dla par obserwacji, uznając za próg istotności p-wartość na poziomie 0.05. Porównaniu poddano mediany uzyskiwanych rozwiązań oraz oddzielnie średnie wartości rozwiązań, na poszczególnych etapach działania algorytmu. Jako hipotezę alternatywną przyjęto uzyskiwanie przez zaimplementowane algorytmy wyników gorszych (czyli co do wartości większych), od tych zaprezentowanych w artykułach. 36
4.1. Weryfikacja poprawności wybranych metod optymalizacji Liczba ewaluacji: 10 3 10 4 10 5 Mediana 0.9999839 0.9839937 0.5736656 Średnia 1.0000000 0.9907919 0.9907919 Tabela 4.3. Wyniki testu Wilcoxona: funkcje 10 wymiarowe, algorytm L-CMA-ES. Przybliżone p-wartości. W wypadku algorytmu L-CMA-ES zarówno dla funkcji 10 jak i 30 wymiarowych p-wartość nie spadła poniżej progu istotności (Tabele 4.3 oraz 4.4). Nie było więc praktycznie żadnych przesłanek dla odrzucenia hipotezy zerowej. Wprawdzie dla przypadku funkcji 10 wymiarowych oraz 10 5 ewaluacji p-wartości znacznie zmalały, jednak nie w stopniu pozwalającym odrzucić hipotezę zerową. Dalsza analiza wykazała, iż nie tylko uzyskane wyniki nie są statystycznie gorsze, lecz nawet są statystycznie lepsze od zaprezentowanych w artykule. Wyniki te pozwoliły więc zaakceptować zaimplementowany algorytm. Liczba ewaluacji: 10 3 10 4 10 5 3 10 5 Mediana 0.9999915 0.9873162 0.9980704 0.9980704 Średnia 0.9999915 0.9900591 0.9994348 0.9970434 Tabela 4.4. Wyniki testu Wilcoxona: funkcje 30 wymiarowe, algorytm L-CMA-ES. Przybliżone p-wartości. Analogiczne testy przeprowadzono dla algorytmu DE. Ponownie uzyskane p-wartości nie pozwoliły, w żadnym z rozważanych przypadków, odrzucić hipotezy zerowej. Zwracam przy tym uwagę na fakt, iż procedura testowa w wypadku tego algorytmu została zmodyfikowana. Jako warunek zatrzymania wykorzystałem jedynie liczbę przeprowadzonych ewaluacji funkcji celu. Podyktowane to było wynikiem analizy wyników zawartych w [17]. Wynika z niej dość jednoznacznie, iż przy produkcji wyników również pominięto warunki zatrzymania poza liczbą ewaluacji. Uzyskane w ten sposób wyniki pozwoliły przyjąć również ten algorytm do dalszych badań. Dla algorytmu DMEA test przeprowadzono jedynie dla funkcji 30 wymiarowych. Było to spowodowane faktem, iż wyniki dla funkcji 10 wymiarowych nie zostały udostępnione. Zaobserwowane wyniki (Tabela 4.7) jednoznacznie wskazywały, iż zaimplementowany algorytm osiąga statystycznie gorsze wyniki, niż przedstawiono w artykule. Rewizja implementacji algorytmu nie ujawniła żadnych błędów. Dopiero 37