Techniki optymalizacji Algorytm kolonii mrówek Idea Smuga feromonowa 1
Sztuczne mrówki w TSP Sztuczna mrówka agent, który porusza się z miasta do miasta Mrówki preferują miasta połączone łukami z dużą ilością feromonu, tj. są blisko siebie Idea algorytmu kolonii mrówek dla TSP m mrówek startuje z losowo wybranych miast przemieszczają się do nowych miast, modyfikując smugę feromonową na przemierzanych krawędziach (local trail updating) po ukończeniu wszystkich tras mrówka, której trasa była najkrótsza modyfikuje krawędzie należące do jej trasy przez dodanie ilości feromonu odwrotnie proporcjonalnej do długości trasy (global trail updating) 2
Idea algorytmu kolonii mrówek dla TSP Idee zaczerpnięte z naturalnego zachowania mrówek 1. Preferencja ścieżek z wyższą zawartością fereomonu 2. Wyższy przyrost feromonu na krótszych ścieżkach 3. Komunikacja między mrówkami za pomocą smugi feromonowej Idee inne Mrówki potrafią określić odległość od miast Pamiętają odwiedzone miasta Implementacja idei Mrówka k w mieście r wybiera miasto s, które nie jest zapisane w jej pamięci M k Ilość feromonu na łuku (r,u) f. heurystyczna odwrotność odległości (r,u) Waga ważności smugi fer. i bliskości Wartość losowa z [0, 1] Zmienna losowa faworyzuje krótsze krawędzie z wyższą zawartością feromonu 3
Implementacja idei Prawdopodobieństwo przemieszczenia się mrówki k z miasta r do miasta s Uaktualnienie smugi feromonowej Globalne Nagradza krawędzie należące do krótszych tras Gdy mrówki ukończą trasy najlepsza mrówka pozostawia feromon na przebytych krawędziach Ilość feromonu odwrotnie proporcjonalna do długości trasy (Najkrótsza ścieżka) -1 4
Uaktualnienie smugi feromonowej Lokalne Każda przemierzana krawędź otrzymuje pewną ilość feromonu Przykładowe ustawienia parametrów Liczba miast Długość trasy - heurystyka NN Hybrydyzacja z lokalnym przeszukiwaniem Najlepsze wyniki dają metody hybrydowe Po zbudowaniu rozwiązania przez mrówkę uruchamiane jest lokalne przeszukiwanie 5
Techniki optymalizacji Algorytmy ewolucyjne Ewolucja biologiczna Dobór naturalny powoduje ewolucję populacji osobników Przekazywanie cech Przeżywanie najlepiej przystosowanych Mutacje Krzyżowanie 6
Związki między ewolucją biologiczną a optymalizacją Ewolucja biologiczna Osobnik Populacja Genotyp Fenotyp Mutacja Krzyżowanie Dobór naturalny Przystosowanie (fitness) Poprawa przystosowania Optymalizacja Rozwiązanie Zbiór rozwiązań Reprezentacja rozwiązania Wartość funkcji celu Konstrukcja nowego rozwiązania poprzez niewielką modyfikację innego rozwiązania Rekombinacja konstrukcja nowego rozwiązania poprzez połączenie cech dwóch rozwiązań Selekcja dobrych rozwiązań Funkcja celu Optymalizacja funkcji celu Algorytm ewolucyjny wygeneruj początkową populację X powtarzaj X 1 := Krzyżowanie (X) X 1 := Mutacja (X 1 ) X := Selekcja (X, X 1 ) dopóki warunek stopu Zwróć najlepsze wygenerowane rozwiązanie 7
Rzeczywiste kodowanie genów DNA Alfabet czteroliterowy cztery zasady A, G, T, C Binarne kodowanie rozwiązań algorytmy genetyczne Rozwiązanie reprezentowane jako ciąg zer i jedynek Zawsze możliwe (z pewną dokładnością), ale nie zawsze naturalne 8
Kodowanie binarne zmiennych liczbowych Np.: 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 x 1 x 2 x 3 x 4 Kodowanie binarne problem plecakowy Np.: 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 Pozycja dla każdego elementu 0 element nie został wybrany 1 element został wybrany 9
Kodowanie binarne problem komiwojażera Np.: 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 Pozycja dla każdego łuku 0 łuk nie znajduje się w rozwiązaniu 1 łuk znajduje się w rozwiązaniu Mówiąc inaczej macierz koincydencji rozwinięta w wektor Klasyczne krzyżowanie jednopunktowe 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 10
Krzyżowanie wielopunktowe 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 0 Krzyżowanie równomierne uniform crossover Każda pozycja niezależnie losowa z jednego z rodziców 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 11
Mutacja losowa zmiana rozwiązania Mutacja jednego bitu 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 Prawdopodobieństwo mutacji prawdopodobieństwo zmiany jednego bitu Np. 0,01 zmiana jednego bitu na 100 Selekcja ruletkowa Oblicz wartość dopasowania dla każdego rozwiązania eval x i Skalowanie funkcji celu do [0, Max] Oblicz całkowite dopasowanie F pop _ size Oblicz prawdopodobieństwo wyboru każdego rozwiązania eval x i pi F i 1 eval x i 12
Algorytm selekcji Powtarzaj pop_size razy wygeneruj liczbę losową r z przedziału [0,1) rozkład równomierny wybierz rozwiązanie j dla którego i j 1 i 1 p i r i j i 1 dopóki warunek stopu p i Dopuszczalne powtórzenia Przykład selekcji ruletkowej Rozwiązanie Ocena rozwiązania P i 1 2 0,087 2 4 0,174 3 1 0,043 4 5 0,217 5 8 0,348 6 3 0,130 Całkowite dopasowanie 23 13
Selekcja turniejowa Powtarzaj pop_size razy wybierz losowo K rozwiązań do turnieju rozkład równomierny wybierz najlepsze rozwiązanie z grupy turniejowej dopóki warunek stopu Dopuszczalne powtórzenia Przykład 14
Schematy 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 Wspólny schemat 0 1 1 0 * 1 * 1 1 * 0 1 * 0 0 0 Do ciągu o długości n pasuje 2 n schematów Rząd schematu Liczbę ustalonych pozycji - 0 lub 1 Rząd 12 0 1 1 0 * 1 * 1 1 * 0 1 * 0 0 0 Rząd 8 * * * * * 1 * 1 1 * 0 1 * 0 0 0 15
Długość definiująca schematu Odległość pomiędzy pierwszą a ostatnią pozycją ustaloną schematu Długość definiująca 14 * 1 1 0 * 1 * 1 1 * 0 1 * 0 0 * Długość definiująca 9 * * * * * 1 * 1 1 * 0 1 * 0 * * Wpływ operatorów ewolucyjnych na schematy Selekcja Dla selekcji ruletkowej średnia liczba rozwiązań pasujących do schematu S zmienia się w populacji tak, jak stosunek dopasowania schematu do średniego dopasowania populacji Krzyżowanie Większe szanse przeżycia mają krótsze schematy. Krzyżowanie równomierne w większym stopniu niszczy schematy Mutacja Większe szanse przeżycia maję schematy o mniejszym rzędzie 16
Ograniczenia w algorytmach genetycznych Krzyżowanie i mutacja może prowadzić do powstania rozwiązań niedopuszczalnych Np. dla problemu plecakowego przekroczenie pojemności plecaka Np. dla problemu komiwojażera zbiór łuków nie tworzący cyklu hamiltona Ograniczenia - Funkcja kary Rozwiązania niedopuszczalne są traktowane jak dopuszczalne, ale wartość funkcji celu zostaje pogorszona o wartość kary Kara jest w ogólności zależna od wielkości złamania ograniczeń, np. od przekroczenia pojemności plecaka Problemy Zbyt mała kara może spowodować ewolucję w kierunku rozwiązań niedopuszczalnych Zbyt duża kara może utrudniać dojście do dobrych rozwiązań 17
Ograniczenia - Procedury naprawy Niedopuszczalne rozwiązanie powstałe w wyniku krzyżowania/mutacji jest naprawiane przez dedykowaną heurystykę Procedura naprawy nie powinna zbyt mocno zmieniać rozwiązania Procedura naprawy może być kierowana funkcją celu Przykłady procedur naprawy Problem plecakowy Usuwanie elementów aż do osiągnięcia dopuszczalności Opcja usuwanie elementów o najgorszym stosunku wartości do wagi Problem komiwojażera Odbudowa cyklu hamiltona przy zachowaniu jak największej liczby łuków 18
Naturalne kodowanie - algorytmy ewolucyjne Liczby naturalne i rzeczywiste Listy Macierze Drzewa Zalety kodowania naturalnego Łatwiejsze krzyżowanie - rekombinacja Bardziej sensowne krzyżowanie zachowywanie ważnych cech rozwiązań Łatwiejsze zachowywanie ograniczeń 19
Rekombinacja Utworzenie nowego (lub kilku) nowego rozwiązania (potomka) na podstawie dwóch rodziców Potomek powinien łączyć (rekombinować) cechy rodziców Rekombinacja porządkowa dla list - OX Wybierz podciąg z rodzica 1 Skopiuj wybrany podciąg do potomka Usuń umieszczone już w potomku elementy z rodzica 2 Dodawaj kolejne elementy z rodzica 2 do potomka w kolejności występowania w rodzicu 2 20
Rekombinacja porządkowa dla list - OX Rodzic 1 Rodzic 2 2 1 7 8 3 5 4 6 2 7 5 6 3 1 4 8 Proto-potomek 8 3 5 4 2 7 6 1 2 7 6 8 3 5 4 1 Inny przykład rekombinacji porządkowej dla list powtarzaj dla każdej pozycji wylosuj rodzica 1 lub 2 wybierz z wylosowanego rodzica pierwszy element usuń wybrany element z obu rodziców dodaj wybrany element na koniec potomka 21
Przykład 2 1 7 8 3 5 4 6 2 7 5 6 3 1 4 8 2 1 7 8 3 5 4 6 7 5 6 3 1 4 8 2 7 1 8 3 5 4 6 5 6 3 1 4 8 2 7 5 1 8 3 4 6 6 3 1 4 8 2 7 5 1 Przykład c.d. 8 3 4 6 6 3 4 8 2 7 5 1 8 3 4 6 6 3 4 2 7 5 1 8 3 4 6 6 4 2 7 5 1 8 3 4 2 7 5 1 8 3 4 6 22
Kodowanie a rekombinacja Prostsze kodowanie i bardziej złożona rekombinacja lub Bardziej złożone kodowanie i prostsza rekombinacja Kodowanie pośrednie Dekodowanie rozwiązania Heurystyczna lub dokładna transformacja Kodowanie pośrednie operatory ewolucyjne Dokładna i naturalna reprezentacja rozwiązania Funkcja celu 23
Zalety kodowania pośredniego Łatwiejsze operatory rekombinacji/mutacji Łatwiejsze zapewnienie dopuszczalności rozwiązań Przykład - harmonogramowanie Kodowanie pośrednie lista priorytetowa zadań Heurystyka priorytetowa Harmonogram 2 7 5 1 8 3 4 6 24
Przykład problem plecakowy Kodowanie pośrednie lista elementów Dekodowanie dodawaj po kolei elementy do momentu wypełnienia plecaka Wynik dopuszczalne rozwiązanie Genetic Programming Hyper-Heuristic Ewolucji podlegają reguły/heurystyki/kod tworzenia rozwiązań (a nie same rozwiązania) Heurystyki te są oceniane na zbiorze instancji uczących, oceniane na zbiorze instancji testowych i stosowane do nowych instancji 25
Parametry algorytmów ewolucyjnych Liczba generacji czas obliczeń Wielkość populacji Mniejsza populacja szybsza zbieżność Większa populacja lepsza jakość w dłuższym czasie Hybrydowe algorytmy ewolucyjne Inne nazwy Algorytmy memetyczne Genetyczne przeszukiwanie lokalne 26
Hybrydowe algorytmy ewolucyjne Hybrydyzacja algorytmów ewolucyjnych i lokalnego przeszukiwania lub ogólniej heurystyk lokalnych Cel - połączenie zalet Szybkość i możliwość lokalnej poprawy rozwiązań przez przeszukiwanie lokalne Globalność algorytmów ewolucyjnych Rożne sposoby hybrydyzacji Najpierw PL potem AE AE startuje z bardzo dobrą populacją Najpierw AE potem PL AE znajduje globalnie dobry region eksplorowany dokładniej przez PL PL w trakcie AE Np. PL po każdej rekombinacji i mutacji 27
Algorytmy hybrydowe z punktu widzenia algorytmów ewolucyjnych Algorytm ewolucyjny pracujący na ograniczonym zbiorze rozwiązań tylko optima lokalne Mniejsza przestrzeń przeszukiwań bardziej efektywne działanie Przeszukiwanie lokalne zapewnia efektywne ograniczanie przestrzenie przeszukiwań AE do bardzo dobrych rozwiązań Algorytmy hybrydowe z punktu widzenia przeszukiwania lokalnego Rekombinacja zapewnia dobry punkt startowy dla przeszukiwania lokalnego Szybsza zbieżność do lokalnego optimum Zbieżność do lepszych rozwiązań 28
Lokalne przeszukiwanie w trakcie pracy algorytmu memetycznego Selekcja elitarna Wybór P najlepszych rozwiązań Możliwe unikanie powtarzających się rozwiązań kopii Możliwość hybrydyzacji z innymi mechanizmami (ruletkowa, turniejowa) częściowa elitarność Wybór L < P najlepszych rozwiązań. Pozostałe w inny sposób W przypadku zwykłych AE selekcja elitarna prowadzi do (zbyt) szybkiej zbieżności. Dodanie przeszukiwania lokalnego często eliminuje ten problem. 29