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

Podobne dokumenty
LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji 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

Algorytmy genetyczne

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

ALGORYTMY GENETYCZNE ćwiczenia

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

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

Algorytmy ewolucyjne NAZEWNICTWO

Metody Rozmyte i Algorytmy Ewolucyjne

Wstęp do Sztucznej Inteligencji

Algorytmy ewolucyjne 1

SZTUCZNA INTELIGENCJA

Zadania laboratoryjne i projektowe - wersja β

Algorytm genetyczny (genetic algorithm)-

Dobór parametrów algorytmu ewolucyjnego

METODY HEURYSTYCZNE wykład 3

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

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

Algorytmy genetyczne w optymalizacji

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

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

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

Strategie ewolucyjne (ang. evolu4on strategies)

ALHE Z11 Jarosław Arabas wykład 11

METODY HEURYSTYCZNE wykład 3

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

Algorytmy genetyczne

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy genetyczne

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

6. Klasyczny algorytm genetyczny. 1

Algorytmy genetyczne (AG)

Algorytmy genetyczne

Równoważność algorytmów optymalizacji

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

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

Problemy z ograniczeniami

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Generowanie i optymalizacja harmonogramu za pomoca

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

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

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

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

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Techniki optymalizacji

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Standardowy algorytm genetyczny

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

SZTUCZNA INTELIGENCJA

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

Obliczenia Naturalne - Algorytmy genetyczne

Strategie ewolucyjne (ang. evolution strategies)

Obliczenia ewolucyjne - plan wykładu

SZTUCZNA INTELIGENCJA

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

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

ĆWICZENIE 5: Sztuczne sieci neuronowe

Zaawansowane programowanie

Algorytmy ewolucyjne

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

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

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

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

Algorytmy ewolucyjne `

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

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Tomasz Pawlak. Zastosowania Metod Inteligencji Obliczeniowej

Programowanie genetyczne, gra SNAKE

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

METODY HEURYSTYCZNE 3

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Optymalizacja. Wybrane algorytmy

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

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

Program "FLiNN-GA" wersja 2.10.β

PRZEWODNIK PO PRZEDMIOCIE

Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych

Na poprzednim wykładzie:


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

LABORATORIUM 7: Problem komiwojażera (TSP)

Rój cząsteczek. Particle Swarm Optimization. Adam Grycner. 18 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Programowanie genetyczne - gra SNAKE

Algorytmy ewolucyjne Część II

Algorytmy genetyczne w interpolacji wielomianowej

KARTA MODUŁU KSZTAŁCENIA

ZASTOSOWANIE ALGORYTMU GENETYCZNEGO DO WYZNACZANIA OPTYMALNYCH DECYZJI STERUJĄCYCH

Obliczenia Naturalne - Strategie ewolucyjne

LABORATORIUM 6: Problem komiwojażera (TSP) cz. 1. opracował: dr inż. Witold Beluch

Techniki ewolucyjne - algorytm genetyczny i nie tylko

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

ALGORYTM EWOLUCYJNY DLA PROBLEMU SZEREGOWANIA ZADAŃ W SYSTEMIE PRZEPŁYWOWYM

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

Zastosowanie technologii nvidia CUDA do zrównoleglenia algorytmu genetycznego dla problemu komiwojażera

Transkrypt:

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl OBLICZENIA EWOLUCYJNE LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE opracował: dr inż. Witold Beluch witold.beluch@polsl.pl Gliwice 2012

OBLICZENIA EWOLUCYJNE LABORATORIUM 3 2 Cel ćwiczenia Wykonując ćwiczenia laboratoryjne przeprowadzisz badania, w wyniku których określisz wpływ różnych operatorów krzyżowania na skuteczność poszukiwań optimum za pomocą algorytmu ewolucyjnego (AE). Sprawdzisz działanie algorytmu dla wybranych funkcji celu stosując zarówno każdy z dostępnych w programie Evolutionary Algorithms operatorów krzyżowania osobno jak i wszystkie jednocześnie. Trochę teorii Krzyżowanie jest operatorem genetycznym, który tworzy osobniki potomne z wykorzystaniem osobników rodzicielskich. Zazwyczaj dwa osobniki rodzicielskie przyczyniają się do powstania dwóch osobników potomnych, choć istnieje bardzo wiele różnych operatorów krzyżowania istnieją np. wersje z wieloma osobnikami rodzicielskimi czy też z jednym potomkiem 1. Z krzyżowaniem jest związany parametr zwany prawdopodobieństwem krzyżowania p c określający, jaka część osobników z populacji pomocniczej (wybranej w procesie reprodukcji) zostanie poddana krzyżowaniu. Dla każdego osobnika jest generowana liczba pseudolosowa r z przedziału [0,1]. Jeśli r < p c to dany osobnik zostaje wybrany do krzyżowania. Następnie wybrane osobniki są losowo kojarzone w pary. W następnym etapie tworzone są (różnie dla różnych operatorów krzyżowania) osobniki potomne. Poniżej omówiono tylko te operatory krzyżowania, które zostały zaimplementowane w programie Evolutionary Algorithms. Krzyżowanie proste Krzyżowanie proste (jednopunktowe) jest operatorem krzyżowania, który może być stosowany zarówno w przypadku kodowania binarnego jak i rzeczywistoliczbowego. Jest to historycznie najstarszy operator krzyżowania zastosowany w algorytmie J. Hollanda [5]. Krzyżowanie proste należy do grupy operatorów krzyżowania wymieniającego, tj. takich, które nie modyfikują wartości poszczególnych genów, a jedynie dokonują ich przetasowania, składając osobniki potomne z genów osobników rodzicielskich. Dla wybranej pary osobników X 1 i X 2 losuje się punkt rozcięcia c, będący liczbą całkowitą ze zbioru {1,2,...,n-1}, gdzie n jest długością osobnika. Następnie zamienia się fragmenty osobników od punktu rozcięcia tworząc osobniki potomne Y 1 i Y 2 : Y 1 = [X 1 1,..., X 1 c, X 2 c+1,, X 2 n] Y 2 = [X 2 1,..., X 2 c, X 1 c+1,, X 1 n] Krzyżowanie arytmetyczne Krzyżowanie arytmetyczne należy do grupy operatorów krzyżowania zmieniających wartości genów osobników rodzicielskich i jako taki nie może być stosowany w przypadku kodowania binarnego. Zapewne domyślasz się, co jest tego przyczyną? Powstałe w wyniku krzyżowania osobniki charakteryzują się tym, że wartości poszczególnych genów zawierają się w przedziale pomiędzy wartościami odpowiednich genów osobników rodzicielskich. 1 W tomie 1 serii sześciu książek Algorytmy genetyczne. Kompendium Tomasza Gwiazdy [4] opisano ok. 180 różnych operatorów krzyżowania dla problemów kodowanych zarówno liczbami binarnymi jak i rzeczywistymi...

OBLICZENIA EWOLUCYJNE LABORATORIUM 3 3 W przypadku krzyżowania arytmetycznego w pierwszym etapie generuje się liczbę pseudolosową k z przedziału [0,1]. Następnie tworzy się osobniki potomne zgodnie ze schematem: Y 1 = X 1 + k (X 2 - X 1 ) Y 2 = X 2 + X 1 - Y 1 Należy zauważyć, że przyjęcie k = 0.5 powoduje powstanie dwóch identycznych osobników potomnych o wartościach poszczególnych genów równych średniej arytmetycznych odpowiednich genów osobników rodzicielskich. Oczywiście nie wydaje się to być dobrym pomysłem, jako że wówczas dwa takie same osobniki wskazują na to samo miejsce w przestrzeni poszukiwań 1. Krzyżowanie heurystyczne Krzyżowanie heurystyczne jest operatorem w swym działaniu nieco podobnym do krzyżowania arytmetycznego, również powodując modyfikację genów osobników rodzicielskich (choć nie ich uśrednienie). W związku z tym jest również operatorem, który nie może być stosowany w przypadku kodowania binarnego. Operator krzyżowania heurystycznego jest dość nietypowy, gdyż tworzy maksymalnie jednego potomka. Powyższe stwierdzenie oznacza, że może w ogóle nie utworzyć osobnika potomnego. Osobnik potomny jest tworzony jako liniowa kombinacja genów osobników rodzicielskich: Y = X 2 + k (X 2 - X 1 ) gdzie k jest liczbą pseudolosową z przedziału [0,1] a rodzic X 2 jest nie gorszy niż rodzic X 1 (wartość funkcji celu f(x 2 ) f(x 1 ). Jeśli utworzony potomek nie jest dopuszczalny wówczas generuje się nową wartość k i tworzy innego potomka. Jeżeli po m próbach 2 operator nie utworzy osobnika dopuszczalnego to potomek nie jest w ogóle tworzony. W takim przypadku zaleca się dodatkowo skorzystanie z innego operatora krzyżowania. Program Evolutionary Algorithms Program Evolutionary Algorithms został opisany (w zakresie algorytmów ewolucyjnych) w instrukcji do laboratorium numer 1. 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). 1 Przestrzeń poszukiwań (ang. search space) to zbiór wszystkich możliwych rozwiązań danego problemu. 2 Parametr m nazywany jest też wskaźnikiem cierpliwości krzyżowania heurystycznego.

OBLICZENIA EWOLUCYJNE LABORATORIUM 3 4 Do wykonania Przeprowadź obliczenia dla następujących funkcji: Funkcja nr 1: ( ( )) ( x x y y ) f1( x, y ) = 8 / 1+ sqr ( x 6) ( x 6) + ( y 6) ( y 6) + Ograniczenia na zmienne: 0 < x < 10, 0 < y < 10. ( ) + 5 / 1+ sqr ( 3) ( 3) + ( 3) ( 3) Funkcja nr 2 (funkcja Rastrigina 1 ): ( ( π )) y ( π y ) ( ) f2( x, y) = 30 x x 10 cos(2 x) y 10 cos(2 ) Ograniczenia na zmienne: 5 < x < 5, -5< y < 5. A. Wpisz funkcję nr 1 oraz: Przyjmij liczebność populacji (population size) równą 20 i liczbę pokoleń (Last generation) równą 50. Wprowadź następujące parametry: mutacja równomierna (uniform mutation), p um =0.03; pozostałe operatory mutacji nieaktywne; funkcja kary: kara śmierci (death penalty); selekcja: turniejowa (tournament selection), p ts =0.1. Przeprowadź trzykrotnie obliczenia dla następujących operatorów krzyżowania: Wypełnij tabelę 1. jedynie krzyżowanie proste (simple crossover), p sc =0.3; jedynie krzyżowanie arytmetyczne (arithmetic crossover), p ac =0.3; jedynie krzyżowanie heurystyczne (heuristic crossover), p hc =0.3; wszystkie powyższe (p sc =0.1, p ac =0.1, p hc =0.1). Dla każdego wiersza tabeli oprócz wpisania do niej odpowiednich wartości skopiuj do dowolnego folderu (na dysku lub przenośnym nośniku danych) plik z najlepszymi osobnikami w danym pokoleniu (bes_popu.dat). Jeśli zapomnisz zapisać plik dla danego wiersza tabeli powtórz obliczenia i zapisz odpowiedni plik, gdyż wyniki w tabeli muszą się zgadzać z plikami. 1 Funkcja Rastrigina (tu: dla 2 zmiennych) jest jedną z typowych funkcji testowych, tj. takich, na których testuje się działanie różnych algorytmów optymalizacji między innymi algorytmów ewolucyjnych. Funkcja ta ma wiele ekstremów, w tym jedno globalne (w oryginale w punkcie x i =0, i=1...n o wartości 0). W niniejszym przykładzie wykorzystano funkcję Rastrigina z przeciwnym niż normalnie znakiem w oryginalnej funkcji poszukuje się jej minimum lokalnego, a jak pamiętasz algorytmy ewolucyjne ze swej natury poszukują maksimum globalnego. Ponadto do oryginalnej funkcji dodano stałą wartość równą 50, by (w związku z wymogami programu) sprostać założeniu, że funkcja celu jest dodatnia w całej dziedzinie.

OBLICZENIA EWOLUCYJNE LABORATORIUM 3 5 B. Wpisz funkcję nr 2 oraz: Przyjmij liczebność populacji (population size) równą 30 i liczbę pokoleń (Last generation) równą 100. Wprowadź następujące parametry: mutacja równomierna (uniform mutation), p um =0.03; pozostałe operatory mutacji nieaktywne; funkcja kary: kara śmierci (death penalty); selekcja: turniejowa (tournament selection), p ts =0.1. Przeprowadź trzykrotnie obliczenia dla następujących operatorów krzyżowania: Wypełnij tabelę 2. jedynie krzyżowanie proste (simple crossover), p sc =0.3; jedynie krzyżowanie arytmetyczne (arithmetic crossover), p ac =0.3; jedynie krzyżowanie heurystyczne (heuristic crossover), p hc =0.3; wszystkie powyższe (p sc =0.1, p ac =0.1, p hc =0.1). Sprawozdanie Sprawozdanie ma być dostarczone wyłącznie w formie elektronicznej. Nazwa pliku wg wzorca: OE_lab3_Jan_Iksinski.doc/pdf. Strona pierwsza to strona tytułowa. W sprawozdaniu należy zamieścić: 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) wygenerowane na podstawie posiadanych plików oraz wartości uśrednione z 3 przebiegów (po 4 na jednym wykresie). 6. Wnioski z ćwiczenia z podziałem na wnioski dotyczące funkcji 1, funkcji nr 2 oraz wnioski wspólne dla obu funkcji. 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. T. 1. Operator krzyżowania dla problemów numerycznych. Wydawnictwo Naukowe PWN, 2007. [5] J. H. Holland: Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence, MIT Press, Cambridge, 1992 (1975).

OBLICZENIA EWOLUCYJNE Protokół do laboratorium 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE Imię i nazwisko Rok ak. Gr. Sem. Komp. Data Podpis prowadzącego 20 / AB3 I Tabela 1. Wyniki dla funkcji pierwszej (dwumodalnej) L.p. Rodzaj krzyżowania Wartość f. celu najlepszego osobnika x[1] x[2] Znaleziono w pokoleniu: 1 2 proste 3 4 5 arytmetyczne 6 7 8 heurystyczne 9 10 11 p+a+h 12 Tabela 2. Wyniki dla funkcji drugiej (wielomodalnej) L.p. Rodzaj krzyżowania Wartość f. celu najlepszego osobnika x[1] x[2] Znaleziono w pokoleniu: 1 2 proste 3 4 5 arytmetyczne 6 7 8 heurystyczne 9 10 11 p+a+h 12 Notatki (na drugiej stronie):