LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE



Podobne dokumenty
LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

LABORATORIUM 2: Wpływ wielkości populacji i liczby pokoleń na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

LABORATORIUM 5: Wpływ reprodukcji na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

LABORATORIUM 4: Wpływ operatorów mutacji na skuteczność poszukiwań AE

ĆWICZENIE 2: Algorytmy ewolucyjne cz. 1 wpływ wielkości populacji i liczby pokoleń na skuteczność poszukiwań AE

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

LABORATORIUM 1: Program Evolutionary Algorithms

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

ALGORYTMY EWOLUCYJNE. INTELIGENTNE TECHNIKI KOMPUTEROWE wykład 011. Napór selekcyjny (selektywny nacisk. Superosobniki: SELEKCJA

METODY HEURYSTYCZNE wykład 3

ALGORYTMY GENETYCZNE ćwiczenia

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Algorytmy genetyczne

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

METODY HEURYSTYCZNE wykład 3

Metody Rozmyte i Algorytmy Ewolucyjne

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

Zadania laboratoryjne i projektowe - wersja β

ALHE Z11 Jarosław Arabas wykład 11

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy genetyczne w optymalizacji

Techniki optymalizacji

Algorytm genetyczny (genetic algorithm)-

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

Algorytmy ewolucyjne 1

SZTUCZNA INTELIGENCJA

Algorytmy genetyczne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy ewolucyjne NAZEWNICTWO

Generowanie i optymalizacja harmonogramu za pomoca

Algorytmy genetyczne

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Algorytmy genetyczne (AG)

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Algorytmy genetyczne

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Problemy z ograniczeniami

BIOCYBERNETYKA ALGORYTMY GENETYCZNE I METODY EWOLUCYJNE. Adrian Horzyk. Akademia Górniczo-Hutnicza

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Obliczenia ewolucyjne - plan wykładu

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Dobór parametrów algorytmu ewolucyjnego

Strategie ewolucyjne (ang. evolu4on strategies)

SZTUCZNA INTELIGENCJA

Wstęp do Sztucznej Inteligencji

Algorytmy genetyczne w interpolacji wielomianowej

6. Klasyczny algorytm genetyczny. 1

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Strategie ewolucyjne (ang. evolution strategies)

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

Algorytmy ewolucyjne `

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Algorytmy genetyczne Michał Bereta Paweł Jarosz (część teoretyczna)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

KARTA MODUŁU KSZTAŁCENIA

METODY HEURYSTYCZNE 3

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

OPTYMALIZACJA KSZTAŁTU WYKRESU WÖHLERA Z WYKORZYSTANIEM ALGORYTMÓW EWOLUCYJNYCH W UJĘCIU DIAGNOSTYCZNYM

Programowanie genetyczne, gra SNAKE

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

PRZEWODNIK PO PRZEDMIOCIE

SZTUCZNA INTELIGENCJA

Na poprzednim wykładzie:

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

ĆWICZENIE 5: Sztuczne sieci neuronowe

PRZEWODNIK PO PRZEDMIOCIE

Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Obliczenia Naturalne - Strategie ewolucyjne

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin., Oeconomica 2017, 337(88)3, 5 12

5. Algorytm genetyczny przykład zastosowania

Równoważność algorytmów optymalizacji

ALGORYTMY EWOLUCYJNE W ZASTOSOWANIU DO ROZWIĄZYWANIA WYBRANYCH ZADAŃ OPTYMALIZACJI1

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2011, Oeconomica 285 (62), 45 50

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

Programowanie genetyczne - gra SNAKE

Program "FLiNN-GA" wersja 2.10.β

Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH. Heurystyka, co to jest, potencjalne zastosowania

Algorytmy ewolucyjne Część II

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

Algorytmy ewolucyjne (3)

ALGORYTMY GENETYCZNE

Programowanie genetyczne

PRZEWODNIK PO PRZEDMIOCIE

ROZWÓJ ALGORYTMU EWOLUCJI RÓŻNICOWEJ. Konrad Wypchło

Zaawansowane programowanie

Transkrypt:

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE opracował: dr inż. Witold Beluch witold.beluch@polsl.pl Gliwice 2012

Cel ćwiczenia W ramach ćwiczenia przeprowadzisz testy mające na celu wykazanie skuteczności działania poszczególnych operatorów w algorytmie ewolucyjnym dla wybranej funkcji celu. Sprawdzisz też, jak parametry (a dokładniej w tym przypadku prawdopodobieństwa) poszczególnych operatorów wpływają na skuteczność poszukiwań algorytmu ewolucyjnego. Trochę teorii W ramach niniejszego ćwiczenia sprawdzisz działanie różnych operatorów krzyżowania i mutacji w algorytmie ewolucyjnym. Program Evolutionary Algorithms korzysta z kodowania rzeczywistoliczbowego 1, w związku z tym stosowane w programie operatory ewolucyjne muszą być dopasowane do tego rodzaju kodowania zmiennych projektowych. Poniżej skrótowo opisano tylko te operatory krzyżowania i mutacji, które są zaimplementowane w programie Evolutionary Algorithms. Więcej informacji na temat tych i innych operatorów można znaleźć np. w literaturze zebranej na końcu niniejszej instrukcji. Operatory krzyżowania Krzyżowanie proste (inaczej: jednopunktowe) jest operatorem krzyżowania wymieniającego, czyli takiego, które nie modyfikuje genów osobników rodzicielskich, a jedynie powoduje ich przetasowanie. Może być, podobnie jak i inne operatory krzyżowania wymieniającego, stosowane zarówno przy kodowaniu binarnym, jak i rzeczywistoliczbowym. Polega na losowym wybraniu dla dwu osobników rodzicielskich (X 1 i X 2 na Rys. 1) punktu ich przecięcia c i zamianie fragmentów kodu. W wyniku powstają osobniki potomne (Y oraz Z): Y = [X 1 1,..., X 1 c, X 2 c+1,, X 2 n] Z = [X 2 1,..., X 2 c, X 1 c+1,, X 1 n] Rys. 1 Krzyżowanie proste (jednopunktowe) Krzyżowanie arytmetyczne jest operatorem krzyżowania uśredniającego, a więc takim, który modyfikuje geny osobników rodzicielskich. Jest operatorem typowym dla kodowania rzeczywistoliczbowego (zastanów się, dlaczego nie można go zastosować przy kodowaniu binarnym?). 1 Jak pamiętasz z wykładu, w klasycznych algorytmach genetycznych stosowano kodowanie binarne. Takie kodowanie w typowych zadaniach inżynierskich, gdzie zmienne są liczbami rzeczywistymi, jest nieco kłopotliwe (wymagane jest przekształcanie ciągów binarnych na liczby rzeczywiste, ponadto zmiana dziedziny lub żądanej dokładności obliczeń wpływa na długość osobnika). W związku z tym należy przyjąć zasadę, iż kodowanie powinno w możliwie naturalny sposób reprezentować zadanie i tak np. kodowanie binarne jest naturalne w przypadku tzw. zadania plecakowego, gdzie 1 na danej pozycji odpowiada zabraniu danej rzeczy do plecaka, zaś 0 odpowiada jej pozostawieniu. 2

W pierwszym etapie losowana jest liczba k z zakresu 0,1. W drugim etapie wartości genów chromosomów rodzicielskich są uśredniane (Rys. 2): Y = X 1 + k (X 2 - X 1 ) Z = X 2 + X 1 - Y Rys. 2 Krzyżowanie arytmetyczne Wartości genów osobników potomnych leżą zawsze pomiędzy wartościami genów osobników rodzicielskich, więc jeśli rodzice spełniają ograniczenia kostkowe na zmienne 1, to osobniki potomne również je spełniają. Krzyżowanie heurystyczne jest operatorem podobnym w działaniu do krzyżowania arytmetycznego i również jest operatorem typowym dla kodowania rzeczywistoliczbowego. W pierwszym etapie losowana jest liczba k przyjmująca wartości z zakresu 0,1. W drugim etapie tworzony jest z osobników rodzicielskich maksymalnie 1 potomek taki, że: Y = X 2 + k (X 2 - X 1 ) przy założeniu, że f(x 2 ) f(x 1 ), czyli że osobnik 2 jest nie gorszy od osobnika 1. Ten rodzaj krzyżowania może utworzyć osobnika, który nie spełnia ograniczeń kostkowych na zmienne. W takim przypadku procedura ponownie generowania jest liczba losowa i próba utworzenia osobnika potomnego jest powtarzana. Jeśli przez założoną liczbę prób nie uda się utworzyć osobnika dopuszczalnego wówczas potomek nie jest tworzony w ogóle. Przykład krzyżowania heurystycznego przedstawia Rys. 3 (zwróć uwagę, że wartości genów potomka mogą być większe, niż wartości genów obojga rodziców). Rys. 3 Krzyżowanie heurystyczne 1 Ograniczenia kostkowe (proste) to takie, że dla i-tej zmiennej projektowej x i : a i x i b i, gdzie liczby a i oraz b i ograniczają z dołu i z góry wartości, które może przyjmować zmienna x i. 3

Operatory mutacji Wszystkie zastosowane w programie Evolutionary Algorithms operatory mutacji są typowe dla kodowania rzeczywistoliczbowego. Operatory mutacji działają zazwyczaj w ten sposób, że dla każdego genu każdego osobnika w populacji podejmuje z prawdopodobieństwem równym prawdopodobieństwu mutacji decyzję, czy gen ten ulegnie mutacji. W przedstawionych poniżej operatorach różny jest sposób, w jaki dochodzi do modyfikacji wybranego genu. Mutacja równomierna jest operatorem mutacji, który modyfikuje wybrany gen tak, iż przyjmuje on z losową wartość z zakresu zmienności danej zmiennej z rozkładem równomiernym. Operator ten jest szczególnie przydatny w początkowej fazie działania algorytmu, gdzie wskazane jest szerokie przeszukiwanie przestrzeni rozwiązań. Mutacja nierównomierna jest operatorem należącym do tzw. grupy mutacji ze strojeniem. Wybrany gen jest modyfikowany o wartość pewnej funkcji (t,y). Funkcja ta w początkowych pokoleniach pozwala na istotne modyfikacje genu z dużym prawdopodobieństwem, które to prawdopodobieństwo zmniejsza się w kolejnych pokoleniach (Rys. 4). Takie podejście ogranicza wady poprzedniego operatora mutacji w końcowej fazie działania AE. a) b) Rys. 4 Przebieg funkcji (t,y) a) początkowa faza obliczeń, b) końcowa faza obliczeń Mutacja brzegowa jest operatorem mutacji, który powoduje przyjęcie przez wybrany gen (z jednakowym prawdopodobieństwem) wartości z lewego bądź z prawego krańca przedziału dla danej zmiennej. Operator ten jest szczególnie użyteczny, gdy ekstremum globalne leży na, bądź w pobliżu brzegu obszaru dopuszczalnego. Program Evolutionary Algorithms Program Evolutionary Algorithms został opisany (w zakresie algorytmów ewolucyjnych) w instrukcji do ćwiczenia laboratoryjnego numer 3. W razie potrzeby sięgnij do tej instrukcji. Pamiętaj o ważnych elementach związanych z funkcjonowaniem programu są one przypomniane poniżej: Zawsze rozpoczynając pracę z programem należy sprawdzić, czy: liczba zmiennych projektowych wynosi 2 (Data->Number of variables); nie ma przypadkowo wprowadzonych ograniczeń liniowych oraz nieliniowych (Data -> Linear/Nonlinear constraints). 4

Do wykonania Przeprowadź poszukiwania maksimum globalnego dla następującej wielomodalnej funkcji celu (przystosowania): A. Przyjmij: f ( x, y) = ((36 ( x 6)*( x 6))*cos(2*( x 6))) + + ((36 ( y 6)*( y 6))*cos(2*( y 6)) ) + 78 ograniczenia na zmienne: 0 < x < 12, 0 < y < 12. wielkość populacji: 20 osobników; liczba pokoleń: 50; funkcja kary: kara śmierci (death penalty); selekcja: turniejowa (tournament selection), p t =0.1 Wyniki w tabelach zapisuj z dokładnością do 5-go miejsca po przecinku. Pamiętaj o kopiowaniu pliku bes_popu.dat (jeden plik dla każdego wiersza obu tabel). B. Zbadaj wpływ różnych operatorów krzyżowania na skuteczność poszukiwań EA. Jako jedyny aktywny operator mutacji przyjmij mutację równomierną (uniform mutation), p um =0.03. Przeprowadź trzykrotnie obliczenia dla następujących aktywnych operatorów krzyżowania: tylko krzyżowanie proste (simple crossover), p sc =0.3; tylko krzyżowanie arytmetyczne (arithmetic crossover), p ac =0.3; tylko krzyżowanie heurystyczne (heuristic crossover), p hc =0.3; wszystkie powyższe operatory jednocześnie (p sc =p ac =p hc =0.1). Wypełnij tabelę 1. C. Zbadaj wpływ różnych operatorów mutacji na skuteczność poszukiwań EA. Jako jedyny aktywny operator krzyżowania przyjmij krzyżowanie proste, p sc =0.3. Przeprowadź trzykrotnie obliczenia dla następujących aktywnych operatorów mutacji: tylko mutacja równomierna p um =0.03; tylko mutacja nierównomierna, (non-uniform mutation), p nm =0.03; tylko mutacja brzegowa (boundary mutation), p bm =0.03; wszystkie powyższe operatory jednocześnie (p um =p nm =p bm =0.01). Wypełnij tabelę 2. 5

Sprawozdanie Sprawozdanie ma być dostarczone wyłącznie w formie elektronicznej. Nazwa pliku wg wzorca: MH_lab4_Jan_Kowalski.doc/pdf. Strona pierwsza to strona tytułowa. W sprawozdaniu należy zamieścić (poza stroną tytułową): 1. Cel ćwiczenia. 2. Optymalizowane funkcje (w tym ich postaci graficzne) oraz ograniczenia na zmienne. 3. Parametry AE. 4. Skan/fotografię protokołu. 5. Wykresy wartości funkcji celu najlepszych osobników w kolejnych pokoleniach (po 12 na jednym wykresie) oraz wartości uśrednione z 3 przebiegów (po 4 na jednym wykresie), wygenerowane na podstawie posiadanych plików. 6. Wnioski z ćwiczenia z podziałem na wnioski dotyczące krzyżowania oraz mutacji. Literatura i źródła [1] J. Arabas: Wykłady z algorytmów ewolucyjnych. WNT, Warszawa, 2003. [2] Z. Michalewicz: Algorytmy genetyczne + struktury danych = programy ewolucyjne. WNT, Warszawa, 1996. [3] L. Rutkowski: Metody i techniki sztucznej inteligencji. PWN, Warszawa, 2006. [4] T. Gwiazda: Algorytmy genetyczne kompendium. Tom I: Operator krzyżowania dla problemów numerycznych, tom II: Operator mutacji dla problemów numerycznych. PWN, Warszawa, 2007. 6

METODY HEURYSTYCZNE Protokół do laboratorium 4: Wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE Imię i nazwisko Rok ak. Gr. Sem. Komp. Data Podpis prowadzącego 20 / ME3 I Tabela 1. Wyniki dla różnych operatorów krzyżowania L.p. 1 2 3 4 5 6 7 8 9 10 11 12 Rodzaj krzyżowania proste arytmetyczne heurystyczne wszystkie Wartość f. celu najlepszego osobnika x[1] x[2] Znaleziono w pokoleniu: Tabela 2. Wyniki dla różnych operatorów mutacji L.p. 1 2 3 4 5 6 7 8 9 10 11 12 Rodzaj mutacji równomierna nierównomierna brzegowa wszystkie Wartość f. celu najlepszego osobnika x[1] x[2] Znaleziono w pokoleniu: Notatki (na drugie stronie):