Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra
Transkrypt
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Metody optymalizacji Algorytmy genetyczne i ewolucyjne Materiały pomocnicze do ćwiczeń laboratoryjnych T8 Opracowanie: Piotr Hirsch, mgr inż. Kazimierz Duzinkiewicz, dr hab. inż. Tomasz Rutkowski, dr inż. Gdańsk, 05.2016 1. Wstęp Algorytmy genetyczne i ewolucyjne wywodzą się z próby naśladowania odpowiednich mechanizmów zachodzących w naturze. W szczególności, przekazywania przez organizmy pewnych, charakterystycznych dla nich cech (nabytych w wyniku wielopokoleniowego życia w pewnym środowisku) zapisanych w genach kolejnym pokoleniom w wyniku reprodukcji. Cechy te zapisane są w genach, które przechowywane są w chromosomach, które z kolei tworzą strukturę genotypu. Zestaw wartości odpowiadający danemu genotypowi nazywamy fenotypem. Podczas przekazywania cech dochodzi do modyfikacji genów za pomocą mechanizmów: Krzyżowania różniących się chromosomów obojga rodziców Mutacji pojedynczych genów w chromosomie Nowy organizm ma cechy swoich rodziców, ale i takie charakterystyczne dla siebie, które decydują o tym, czy jest dobrze czy źle przystosowane do życia w danym środowisku. Jeśli posiada korzystną kombinację genów (jest dobrze przystosowany), to prawdopodobnie przekaże swój materiał genetyczny potomstwu. Jeśli organizm posiada niekorzystną kombinację genów to trudno będzie mu żyć i przekazać swoje geny potomstwu. Przy tworzeniu koncepcji algorytmów ewolucyjnych skorzystamy z paradygmatu darwinowskiego: Środowisku życia osobników definiuje się na podstawie rozwiązywanego problemu. Żyje w nim populacja, stanowiąca potencjalne rozwiązanie rozpatrywanego problemu. Za pomocą odpowiednio zdefiniowanych funkcji przystosowania, możliwe jest ocenienie w jakim stopniu każdy z osobników jest przystosowany do środowiska. Osobniki wymieniają między sobą informacje (za pomocą operatorów krzyżowania) w celu generacji kolejnych, nowych rozwiązań (nowego pokolenia osobników). Spośród potencjalnych rozwiązań przeżywają tylko te, które są najlepiej przystosowane. W zależności od sposobu reprezentacji (kodowania) osobników (chromosomów) wyróżnia się histyorycznie następujące typy algorytmów ewolucyjnych: Wektory binarne – algorytmy genetyczne Wektory liczb zmiennoprzecinkowych – strategie ewolucyjne Algorytmy ewolucyjne/genetyczne nie przetwarzają bezpośrednio parametrów zadania optymalizacji, lecz ich zakodowaną postać. Przeszukiwanie przestrzeni rozwiązań dopuszczalnych prowadzone jest nie z jednego punktu, lecz z całej populacji. Przystosowanie osobników oceniane jest na podstawie jedynie funkcji celu (nie jest potrzebna znajomość jej pochodnej lub innych dodatkowych informacji). Wreszcie – algorytmy ewolucyjne/genetyczne stosują probabilistyczne, a nie deterministyczne reguły wyboru. 2. Klasyczny algorytm genetyczny Inicjalizacja: wybór żądanej liczby chromosomów K, reprezentowanych przez wektory binarne o długości L Ocena przystosowania: obliczenie funkcji przystosowania dla każdego chromosomu (osobnika) Warunek zatrzymania: np. przekroczenie czasu obliczeń, przekroczenie liczby generacji algorytmu, brak poprawy otrzymanego rozwiązania. Jeśli warunek zatrzymania zostaje spełniony, to algorytm się kończy i prezentowane jest najlepsze rozwiązanie Selekcja: na podstawie wyznaczonych wartości funkcji przystosowania dla poszczególnych chromosomów, wybiera się te, które będą brały udział w tworzeniu potomków w następnym pokoleniu (wybór populacji rodzicielskiej). Wybór odbywa się zazwyczaj zgodnie z zasadą naturalnej selekcji, tzn. największe szanse by zostać rodzicami mają chromosomy o największych funkcjach przystosowania. Jedną z popularnych metod selekcji jest metoda ruletki, w której każdemu chromosomowi odpowiada pewien wycinek koła, o wielkości zależnej od przystosowania danego osobnika. Następnie populacja rodzicielska jest tworzona poprzez losowanie, analogicznie do zasady działania ruletki. W wyniku takiego losowania niektóre osobniki mogą zostać wybrane wiele razy, a inne ani razu. Mozę się też zdarzyć, że najlepsze osobniki nie zostaną wybrane. Operatory genetyczne: dwa podstawowe operatory to krzyżowanie i mutacja. Mutacja polega na zmianie wartości losowego genu w chromosomie na przeciwną, z pewny niewielkim prawdopodobieństwem mutacji. Krzyżowanie zachodzi z dużym prawdopodobieństwem na parach z populacji rodzicielskiej. Jedne z możliwych metod krzyżowania to krzyżowanie jedno i dwupunktowe, polegające na losowaniu miejsca krzyżowania i podmianie materiału genetycznego: 3. Algorytmy ewolucyjne Algorytmy ewolucyjne posiadają pewne podstawowe podobieństwa do algorytmów genetycznych: oba algorytmy opierają się na populacjach potencjalnych rozwiązań, korzystają z zasady selekcji, przetwarzają osobniki najlepiej przystosowane. Jako podstawowe różnice wskazać można: inna reprezentacja kodowania chromosomów, wielkość tymczasowej populacji w algorytmach ewolucyjnych może się różnić od populacji początkowej, a selekcja dokonywana jest w sposób deterministyczny, poprzez wybranie najlepszych chromosomów (osobników) z populacji tymczasowej. Dodatkowo, w algorytmach ewolucyjnych najpierw następuje proces rekombinacji (działania operatorów genetycznych) a dopiero później selekcja. Oznacza to, że selekcja redukuje rozmiar populacji tymczasowej do populacji rodzicielskiej. Przykład strategii ewolucyjnej: W algorytmach ewolucyjnych krzyżowanie odbywać może się np. poprzez uśrednianie wartości genów dwóch osobników.