Problemy optymalizacji przykłady problemów do optymalizacji Przykład 1 układ połączeń na płytce drukowanej Do optymalizacji 1) Rozmiar płytki 2) Długość połączeń 3) Czas wytwarzania Przykład 2 Najbardziej efektywny rozkład jazdy Problem matematycznie definiuje tzw. funkcja kosztu [celu] f( 1, 2,... N), której minimum poszukujemy
Przykład 3 Matematyczny opis zjawiska, które jak się wydaje podlega zależności liniowej y= + x Regresja liniowa Przykład 4: tor ruchu ciała jako zagadnienie optymalizacyjne zasada najmniejszego działania: P(t=t1)=P1 P(t=t0)=P0 Fizycznie realizowana trajektoria to ta na której S = min. Zamiast argumentu liczbowego funkcja. Wektor położeń jako argument po dyskretyzacji toru.
Optymalizacja: 1) funkcja kosztu [funkcja celu] : dana w postaci analitycznej (wzoru) lub nie przykłady na nie: funkcja kosztu szacowana w doświadczeniu regulacja anteny tv, optymalizacja lekarstw, funkcja kosztu wyliczana przy pomocy symulacji (np. aerodynamicznych do optymalizacji kształtu) 2) 3) 4) 5) ilość zmiennych (1, więcej, nieskończona) zmienne: ciągłe/dyskretne (nieskończenie lub skończenie wiele możliwych argumentów) statyczna (trasa najkrótsza) / dynamiczna [zależna od czasu najszybsza trasa dojazdu] funkcja gładka lub nie (możemy korzystać z pochodnej lub nie) zależnie od problemu możemy wybrać algorytm deterministyczny lub probabilistyczny dokładny lub heurystyczny
Zadanie jest najłatwiejsze gdy funkcja kosztu jest kwadratowa i dana wzorem analitycznym problem liniowy
1D: Jeśli funkcja f(x) nie jest kwadratowa, ale jej pochodna f (x) istnieje i jest znana można poszukać jej zer i wyznaczyć, w którym f minimalna Jeśli funkcja gładka, lecz pochodna nieznana można ją wyliczyć numerycznie lub pracować na samej funkcji Np. Metoda parabol 0.8 f (x ) f(x)=sin(x)/x 1.2 0.4 0.0 0 2 4 0.2 x 6 8 10 0.0 f' (x ) f (x)=cos(x)/x-sin(x)/x2-0.4-0.2 rysunek z rozdziału o metodzie Brenta z Numerical Recipes -0.4-0.6 0 2 4 6 8 10 x rozwiązywanie RNL w 2 i więcej D : problem trudny W 1D: można nawet przeszukać całą dziedzinę funkcji gładkiej i skoncentrować się na lokalnych minimach.
W wielu wymiarach: funkcja gładka zmiennej ciągłej 1) można minimalizować funkcję po każdej ze zmiennych po kolei 2) metoda największego spadku (wymaga znajomości pochodnych)
metoda downhill simplex, amoeba (Melder-Nead) - gdy pochodne nieznane lub nie do wykorzystania (np. oscylacje małej amplitudy) N+1 wierzchołków w N wymiarach pojedyncza iteracja: 1) ABC simpleks w i-tej iteracji (powiedzmy A-najgorszy, B-najlepszy 2) D odbicie przez BC (linia najgorszy / średnia pozostałych). 3)Jeśli f(d)<f(a) ekspansja do E. 4) Jeśli f(d) > f(a) ściągnięcie punkty F i G 5) Jeśli f(f)>f(a) i f(g)>f(a) simpleks się kurczy do najlepszego punktu H,I
Optymalizacja funkcji kosztu f bywa zadaniem trudnym gdy dziedzina f wielowymiarowa powierzchnia funkcji kosztu skomplikowana wiele minimów lokalnych, Wszystkie metody tradycyjne : znajdują lokalne (najbliższe) minimum funkcji gładkiej globalnego nie znajdą chyba, że przypadkiem niezastąpione: do znalezienia dokładnego położenia minimum, gdy znane jego otoczenie
optymalizacja kombinatoryczna: zmienna dyskretna Przykład: najkrótsza sieć (kanalizacyjna, energetyczna, światłowodowa) dla miast powiatowych województwa małopolskiego:
W realnych zastosowaniach nie tylko funkcja nieciągła (nie ma mowy o pochodnych): ale i zmienna dyskretna Przykład: najkrótsza sieć (kanalizacyjna, energetyczna, światłowodowa) dla miast powiatowych województwa małopolskiego: Województwo zakodowane w postaci grafu poszukiwane najkrótsze drzewo spinające. C 41 31 36 K 31 M 42 42 W S 65 43 57 NT 43 42 B 32 L T 45 23 NS 36 G
W realnych zastosowaniach nie tylko funkcja nieciągła (nie ma mowy o pochodnych): ale i zmienna dyskretna Przykład: najkrótsza sieć (kanalizacyjna, energetyczna, światłowodowa) dla miast powiatowych województwa małopolskiego: Województwo zakodowane w postaci grafu poszukiwane najkrótsze drzewo spinające. C 41 31 36 K 31 M 42 42 W S 65 43 42 B 43 57 NT Rozwiązanie: 32 L T 45 23 NS 36 G
W realnych zastosowaniach nie tylko funkcja nieciągła (nie ma mowy o pochodnych): ale i zmienna dyskretna Przykład: najkrótsza sieć (kanalizacyjna, energetyczna, światłowodowa) dla miast powiatowych województwa małopolskiego: Województwo zakodowane w postaci grafu poszukiwane najkrótsze drzewo spinające. C 41 31 36 K 31 M 42 42 W S 65 43 57 NT Problem równie łatwy jak regresja liniowa Rozwiązanie: rozwiązanie dane przez algorytm zachłanny Kruskula : tworzymy las dodając po kolei najkrótsze krawędzie tak aby nie utworzyć pętli dostaniemy najlepsze rozwiązanie 43 42 B 32 L T 45 23 NS 36 G
Limanowa-Nowy Sącz C 41 T 43 42 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
Wadowice-Chrzanów C 41 T 43 42 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
Myślenice-Kraków C 41 T 43 42 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
Bochnia-Limanowa C 41 T 43 B 42 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
Wadowice-Myślenice C 41 T 43 42 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
Nowy Sącz-Gorlice C 41 T 43 42 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS K NT
bezpośrednie połączenie CK już się nie przyda Kraków-Bochnia C 41 T K 42 43 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS NT
Myślenice-Nowy Targ C 41 T K 42 43 B 31 31 36 M 42 45 42 32 W L 65 43 23 S 36 G 57 NS NT
C 41 31 36 K 31 M 42 42 W S 65 43 42 B 43 57 32 L T 45 23 NS 36 G NT Algorytm zachłanny skuteczny więc - problem najkrótszego drzewa spinającego jest łatwy. Rozwiązanie: Złożoność dla najlepszej implementacji O( V log V ), V liczba wierzchołków
Inny ważny problem: najkrótsza trasa z A do B Problem najkrótszej drogi (przeszukiwanie grafu wszerz z oznaczaniem wierzchołków) Wierzchołki mają kolor, wagę i etykietę 0) Oznacz wszystkie wierzchołki kolorem białym. Przypisz wierzchołkowi startowemu wagę 0. 1) 2) Znajdź i zaczerń biały wierzchołek v o najmniejszej wadze Oznacz białych sąsiadów v jego wagą powiększoną o wagę wspólnej krawędzi (o ile nowa waga mniejsza od starej) oraz etykietą wierzchołka v Jeśli są jeszcze białe wierzchołki idź do 1 (złożoność V2) 3)
przykład: najkrótsze trasy z Gorlic do pozostałych miast 1) Gorlice malujemy na czarno, miastom sąsiednim nadajemy wagi odległości od Gorlic i indeks G. C 41 31 36 K M 42 42 W S 65 43 57 NT 43 42 B 32 L T 45 G 45 23 NS 36 G 36 G 3) Liczymy odległości do Gorlic sąsiadów Nowego Sącza C 41 T K 45 G 42 B 43 31 42 36 M 45 32 42 W L59 NS 65 43 23 S 36 G 57 NS 36 G NT 93 N S 2) Szukamy białego miasta o najmniejszej wadze i malujemy je na czarno (Nowy Sącz), wagę czarnego miasta ustalamy (mniejszej nie będzie) C 41 T K 45 G 42 B 43 31 42 36 M 45 32 42 W L 65 43 23 S 36 G 57 NS 36 G NT
4) Najmniejszą wagę ma teraz Tarnów, 5) Następnie Limanowa C C 41 89 T T45 G 42 B 43 31 do Bochni z Gorlic 91 L? 36 M 42 45 bliżej przez Tarnów niż 42 32 W L59 NS 101 L przez Limanową 65 43 23 S 36 G 57 NS 36 G NT 93 NS 41 89 T T K 45 G 42 B 43 42 36 M 45 32 42 L59 N S 65 43 23 36 G 57 NS 36 G NT 93 N S 31 W S 6) Bochnia C 7) Po Nowy Targu Myślenice, z nich bliżej do Wadowic 4 1 1 3 K1 B 31 W S K 36 M 42 89 T 42 B 43 C T 45 G 45 32 42 L59 NS 101 L 65 43 23 36 G 57 N S 36 G NT 93 NS 131B? do Myślenic jednak bliżej przez Limanową 4 1 1 3 K1 B 89 T T 45 G 42 B 43 31 42 31 36 M 45 32 42 W L59 N S 101 L 158 N T 65 23 43 137 M! 36 G 57 N S 36 G N T 93 N S
C 168 W ostatecznie 31 W 137 M Np.: z Chrzanowa do Gorlic trafimy po etykietach 4 1 1 3 K1 B 89 T T 45 G 4 3 42 B 31 42 36 M 45 32 42 L59 N S 101 L 65 43 23 36 G 57 NS 36 G NT 93 N S C 168 W 31 W 137 M Zamiast stosować algorytmu można zrobić model z nitek i koralików, potem naciągnąć koraliki oznaczające Chrzanów i Gorlice 4 1 1 3 K1 B 89 T T 45 G 42 B 43 31 42 36 M 45 32 42 L59 N S 101 L 65 43 23 36 G 57 NS 36 G NT 93 N S
Widzieliśmy, że dwa ważne problemy mają efektywne, deterministyczne, dokładne rozwiązanie Niektóre problemy są jednak obiektywnie trudne (nie istnieje algorytm o złożoności wielomianowej): wybór najkrótszej zamkniętej trasy przez wszystkie miasta (problem komiwojażera): Odwiedzić wszystkie miasta w cyklu zamkniętym w takiej kolejności aby pokonana trasa była najkrótsza. -algorytm deterministyczny rozwiązujący problem dokładny z wielomianową złożonością nie istnieje, gdy problem o dużym rozmiarze należy rozwiązać stosuje się heurystyki. Algorytm zachłanny dla komiwojażera: Klasyczny problem testowy dla algorytmów optymalizacyjnych ruszaj do najbliższego miasta, którego jeszcze nie odwiedziłeś. - rozsądny: wyeliminuje przynajmniej długie przejazdy bez zatrzymywania się
Zachłanne rozwiązanie nie jest optymalne (choć nie najgorsze) Rozwiązanie zachłanne: start ze Szczecina: 1 7 2.2 9 PL: 46 miast Najlepsze 153. Szukana jest permutacja - przejrzeć wszystkie N! - niewykonalne =5502622159812088949850305428800254892961651752960000000000 46! najlepszy algorytm dokładny O(2N) lepiej niż n!, ale wciąż zbyt wiele 246=70368744177664 Gdy problem zbyt trudny by go rozwiązać dokładnie przy pomocy algorytmu deterministycznego można zadowolić się przybliżonym (heurystycznym) lub próbować je poprawić przy pomocy MC
Problem obiektywnie trudny = gdy najlepszy deterministyczny algorytm nie zakończy swojego działania w skończonym czasie klasy złożoności obliczeniowej Problemy decyzyjne: z odpowiedzią tak/nie Problemy NP P NP-zupełne Schemat obowiązuje pod warunkiem że P NP NP można sprawdzić odpowiedź w czasie wielomianowym zadanie rozkładu na czynniki liczby 136117223861 nieznany jest wielomianowy algorytm (na komputer klasyczny) ale jeśli ktoś nam poda odpowiedź 104729 1299709 - szybko sprawdzimy. P problemy, w których istnieje algorytm o wielomianowej złożoności ( nie ma dowodu, że P NP.) NP zupełne (najtrudniejsze) można do nich sprowadzić dowolny problem z NP z nadkładem wielomianowym. Jeśli jeden z problemów NP.-zupełnych zostanie rozwiązany w czasie wielomianowym, to P=NP.
Problemy NP P NP-zupełne F Faktoryzacja jest na pewno NP, wydaje się, że nie jest P i że nie jest NP-zupełna. [ Wydaje się, że nie P na tyle, że standardowy w zakupach elektronicznych protokół klucza publicznego RSA] NP.-zupełne: problem spełnialności binarnego układu logicznego, problem komiwojażera, izomorfizmu grafów, kliki, kolorowania wierzchołków grafu i inne. W praktyce problemy, które nie są P stają się niemożliwe do dokładnego rozwiązania dla dużych rozmiarów zadania
najkrótsza trasa z A do B łatwy (bo wielomianowy algorytm znany) najkrótsza zamknięta trasa po wszystkich miastach trudny (bo algorytm wielomianowy nieznany i wydaje się, że nie istnieje) Inna znana para pozornie podobnych problemów o skrajnie różnej złożoności obliczeniowej: problem istnienia cyklu Eulera i cyklu Hamiltona w grafie Cykl (zamknięta ścieżka) Eulera Zadanie: zaplanować trasę spaceru :przejść po każdym moście dokładnie raz i wrócić do punktu wyjścia (przejść po wszystkich krawędziach grafu dokładnie raz i wrócić do punktu wyjścia)
3 stopień wierzchołka = liczba przyległych krawędzi 3 5 3
Cykl Eulera w grafie istnieje wtedy i tylko wtedy gdy wszystkie jego wierzchołki są stopnia parzystego 3 stopień wierzchołka = liczba przyległych krawędzi 3 5 3 przy każdym przejściu przez wierzchołek używamy 2 krawędzi zaczynamy spacer od dowolnego wierzchołka usuwając z grafu przebyte krawędzie, wrócimy do wierzchołka startowego bez rozspójniania grafu
Cykl Hamiltona (przejść po wszystkich wierzchołkach grafu dokładnie raz i wrócić do punktu wyjścia) problem NP-zupełny graf planarny (rzut środkowy dwunastościanu)
cykl Hamiltona dla dwunastościanu
Jeśli wiemy, że problem NP-zupełny, a rozmiar problemu duży poszukajmy rozwiązania przybliżonego Metoda dokładna nie zadziała w skończonym czasie. Jeśli nie wiemy jak - poszukajmy losowo. Lecz: Całkiem ślepe przeszukiwanie losowe nie różni się od przeglądania wszystkich rozwiązań: prawdopodobieństwo znalezienia najlepszego jest żadne, a i rozsądnego znikome. Problem komiwojażera dla 20 miast w pd-wsch Polsce Wszystkich permutacji jest 20!=2432902008176640000. Najlepsza trasa znaleziona po 1000 000 prób (długość 89.12 [j.umowne] ) Widać, że kiepska: 1) skrzyżowane trasy 2) krócej będzie Tarnów-Nowy Sącz-Kraków Katowice
Najlepsza trasa znaleziona po 1000 000 losowaniach (długość 89.12 [j.umowne] ) Algorytm zachłanny start z Częstochowy 68.73 Wniosek: do przeszukiwania losowego potrzebny nam jest przewodnik.
Przewodnik do przeszukiwania losowego - inspiracje przyrodnicze Przyrodnicze (naturalne) algorytmy optymalizacji 1) Dobór naturalny algorytmy genetycze 2) Wygrzewanie próbek dla usunięcia defektów algorytm symulowanego wyżarzania Deterministyczne: najlepsze rozwiązanie w ściśle określonym czasie Probabilistyczne: używają generatora liczb losowych tak zaplanowane, aby prawdopodobieństwo znalezienia ściśle najlepszego duże. Metody MC: starają się poprawić przybliżone rozwiązanie. Mogą doprowadzić do optymalnego rozwiązania, ale nie mamy ścisłej gwarancji, że osiągnięte rozwiązanie jest najlepsze. w praktyce akceptujemy: najlepsze rozwiązania jakie znamy. Liczby losowe: wykonanie kroku poszukiwania oraz wprowadzenie innowacji w przeszukiwaniu.
Algorytmy genetyczne Powstające przypadkowo (mutacje) cechy zwiększające szanse na sukces ewolucyjny są zachowywane w genach gatunku i wzmacniane przez naturalną selekcję. Ewolucja = wielki proces optymalizacyjny Funkcja przystosowania cecha nr Y cecha nr X
DNA Informacja genetyczna zapisana w sekwencji zasad w łańcuchu polinukleotydowym język czteroliterowy A, G, T, C (odpowiednio adenina, guanina, tymina i cytozyna). Słowa: trójliterowe (każde słowo jeden z 20 aminokwasów) Zdania ze słów: program produkcji białek (każde złożone z aminokwasów) Każda pojedyncza helisa zawiera pełną informację (Zasady wiążą się ściśle parami A-T, G-C) replikacja (w nowej helisie DNA, jest pół starej, szansa na błędy mutacje)
Typowy algorytm genetyczny: Definicja problemu: kodowanie zmiennych (genotyp), i rozkodowanie (fenotyp) + funkcja kosztu Populacja początkowa Każdy osobnik z populacji niesie pewien kod genetyczny = argument funkcji kosztu Selekcja naturalna Osobniki najgorzej przystosowane (o największym koszcie) wymierają Osobniki przystosowane na tyle dobrze by żyć - łączą się w pary Wydają na świat potomstwo o genach odziedziczonych po rodzicach Pewna liczba osobników poddana jest przypadkowej mutacji Wymiana genów losowa. korzystne cechy rodziców będą wzmacniane a słabsze eliminowane przez selekcję naturalną. Mutacje mają wprowadzać cechy których nie mają rodzice. Krzyżowanie genów i mutacje z użyciem Dopóki zbieżność nie została osiągnięta liczb losowych.
Funkcja kosztu Dowolna: Ciągła, dyskretna, analityczna, dana na siatce, dana przez doświadczenie Algorytmy genetyczne można zastosować do każdego problemu optymalizacyjnego (choć nie zawsze będą optymalne). Kodowanie zmiennych: Jeśli np. f(x,y) - funkcja parametrów rzeczywistych: x i y mogą być liczbami zmiennoprzecinkowymi (zmiennoprzecinkowy kod genetyczny) - można też x i y poddać kwantyzacji i pracować na bajtach 01001011 10101010 W problemie komiwojażera: zmienne kodowane jako permutacje liczb całkowitych (1,6,3,4,5,7,2) Naturalna selekcja: sortujemy osobniki wg funkcji kosztu: 5.29 5.8 5.8 6.51 7.51 7.7 7.75 usuwamy najgorsze
Łączenie w pary Mnóstwo możliwości tu jest miejsce na optymalizację 1) kolejno 5.29 5.8 5.8 6.51 2) losowo wg. rankingu kolejności np. 15.29 rodzic 50% potomstwa 25.8 30% 35.8 20% 46.51 10% 3) losowo wg. kosztu np.. zgodnie z rozkładem: (nr) f(nr) p(nr) (1) 5.29 (2) 5.8 (3) 5.8 (4) 6.51 35% 27% 27% 11% (5) 7.51 (6) 8 (7) 9 (8) 10 0 0 0 0 pstwo wylosowania osobnika i na rodzica: proporcjonalne do jego odległości od najlepszego spośród wymarłych najlepszy spośród wyeliminowanych w naszym przykładzie d=5
Stworzyć dyskretny generator losowy o zadanym rozkładzie dysponując generatorem o rozkładzie równomiernym z przedziału [0,1] i f p 1 2 3 4 35% 27% 27% 11% 5.29 5.8 5.8 6.51 Tworzymy dystrybuantę: rozkład pstwa, że wylosowany będzie osobnik o numerze i lub niższym 1 P(0)=0 P(1)=0.35 P(2)=0.62 P(3)=0.89 P(4)=1 4 3.5 2 1 0 Losujemy liczbę l z przedziału [0,1] z rozkładem równomiernym. Uznajemy, że wylosowany został osobnik i+1 (słownie i plus pierwszy), jeśli
Wymiana genów: 1) Binarna 01001011 10101010 jeden lub więcej, w ciągu lub osobno 2) Zmiennoprzecinkowe R1, R2: P=(1- )R1+ R2 : losowe z [0,1] R2 R1 P gdzieś na odcinku Losując inne dla każdej współrzędnej: R2 R1 P gdzieś na prostokącie
Mutacje: 1) Binarna 2) Zmiennoprzecinkowa 01001011 Losowe przesunięcie Np. odwrócenie bitu na losowo wybranej pozycji 3) Permutacja: przestawienie losowo wybranej pary [3 4 6 2 1 5]
Przykład: minimum funkcji (de Jonga) danej przepisem analitycznym (x,y) [0,10] [0,10] f(9.0385, 8.666)= -18.55 10 8 16 10 4-2 -8-1 4-2 0 y 6 4 2 0 0 2 4 x 6 8 10
Wylosowana populacja początkowa N=12 10 Pop. początkowa 8 16 10 4-2 -8-1 4-2 0 y 6 4 2 0 0 2 4 x 6 8 nr x y f(x,y) 1 2 3 4 5 6 6.01 5.91 5.82 0.89 8.99 7.26 8.91 5.11 8.09 5.60 6.52 9.66-13.64-9.955-9.745-6.407-5.492-0.141 7 8 9 10 11 12 0 2.97 2.62 8.76 9.67 5.14 0.85 4.26 7.43 9.95 1.89 3.98 0.92 1.80 3.74 5.24 6.97 9.42 10 fioletowe odrzucamy jako najgorzej przystosowane zielone będą przekazywać swoje geny dalej
Dobór w pary i potomstwo krzyżyki: rodzice dobór kolejnych par 10 8 16 10 4-2 -8-1 4-2 0 y 6 4 2 0 0 2 4 x 6 potomstwo (kropki) wylosowane w prostokącie, którego wierzchołki przeciwległe do rodzice 8 nr 1 2 3 4 5 6 x y 6.01 5.91 5.82 0.89 8.99 7.26 8.91 5.11 8.09 5.60 6.52 9.66 f(x,y) -13.64-9.955-9.745-6.407-5.492-0.141 10 xp = x xt+(1- x)xm gdzie x, y losowe z [0,1] yp = y yt+(1- y)ym
Dajmy się rozwijać populacji bez wprowadzania mutacji trzecie pokolenie 10 8 16 10 4-2 -8-1 4-2 0 4 2 0 10 8 16 10 4-2 -8-1 4-2 0 6 y y 6 0 2 4 x 6 8 10 4 2 0 pokolenie piąte 8 16 10 4-2 -8-1 4-2 0 6 y 10 pokolenie czwarte 0 2 4 x 6 8 10 4 2 0 0 2 4 x 6 8 10 Wybrany sposób wymiany genów: terytorium populacji kurczy się do jednego z minimów. globalne minimum nie zostało znalezione - populacja obsadza jedno z minimów lokalnych - szansa na zajęcie optymalnej niszy utracona w trzecim pokoleniu pokolenie
Mutacje Po wydaniu na świat potomstwa p=25% generacji ulega mutacjom. Mutacji unika najlepiej przystosowany organizm, bo go szkoda. Mutacja polega na przesunięciu punktu o wektor (dx,dy), przy czym dx i dy są losowe z przedziału [-2,2]. 30 pokolenie: 10 8 1 1 4 - y 6 4 2 Tak skonstruowany algorytm znajduje raczej okolice globalnego minimum dokładne położenie wyszukamy metodą tradycyjną 0 0 2 4 x 6 8 10
Liczebność populacji a optymalne prawdopodobieństwo mutacji
Algorytm genetyczny do rozwiązywania problemu komiwojażera Problem komiwojażera dla 20 miast w pd-wsch Polsce. Odległości: metryka euklidesowa nie drogowa (tak jak w przykładach poniżej) Rozwiązanie: permutacja miast np. (Opole,Katowice,Kraków,...,Opole)
Algorytm dla komiwojażera Jedno pokolenie: 1) populacja 96 osobników (tras): 48 najgorzej przystosowanych (najdłuższych) zastąpionych 48 potomstwem najlepiej przystosowanych (najkrótszych). 2) Wprowadzenie mutacji do 20% osobników Mutacji unika najlepiej przystosowany. W potomstwie mogą pojawić się duplikaty już istniejących osobników. Duplikaty nie wnoszą nic do bazy genów. Wszystkie zostają poddane przymusowej mutacji.
Lista długości tras: Nad kreską łączone w pary Pod kreską wymierają Krzyżowanie genów przy reprodukcji (krzyżowanie cykliczne): każdy osobnik: permutacja Rodzic 1: [3 4 6 2 1 5] Rodzic 2: [4 1 5 3 2 6] Losujemy pierwszy gen do wymiany: wylosowaliśmy pierwszy Rodzic 1: [4 4 6 2 1 5] Rodzic 2: [3 1 5 3 2 6] Rodzic 1 ma dwie 4. Wymieniamy starą. Rodzic 1: [4 1 6 2 1 5] Rodzic 2: [3 4 5 3 2 6] Rodzic 1 ma dwie 1. Wymieniamy starą. Rodzic 1: [4 1 6 2 2 5] Rodzic 2: [3 4 5 3 1 6] Rodzic 1 ma dwie 2. Wymieniamy starą. Rodzic 1: [4 1 6 3 2 5] geny potomstwa Rodzic 2: [3 4 5 2 1 6] Brak powtórzeń: wymiana zakończona
Dziedziczenie genów przykład: Dwa najlepsze osobniki w 50 pokoleniu 75.76706 73.35700 dziedziczy zalety Nieoptymalny: okolice Rzeszowa potomstwo dziedziczy wady Nieoptymalna: Częstochowa 76.22113 78.63119
Mutacja: wymiana pary losowo wybranych elementów w permutacji [3 4 6 2 1 5]
Rozwiązanie przy użyciu algorytmu genetycznego długość 64.1.
Algorytmy genetyczne-podsumowanie Optymalizują funkcje zmiennej ciągłej lub dyskretnej Funkcje wygenerowane numerycznie, eksperymentalnie lub dane analitycznie Stosowalne do skrajnie skomplikowanych powierzchni Nie wymagają znajomości ani istnienia pochodnych funkcji kosztu Jednocześnie przeszukują szeroki zakres zmiennych Radzą sobie z dużą ilością zmiennych Mogą wyprodukować całą listę lokalnych minimów, nie tylko globalne Nieźle się nadają do przetwarzania równoległego (gdy optymalizowana funkcja kosztowna numerycznie)
Przewodnik do przeszukiwania losowego - inspiracje przyrodnicze Przyrodnicze (naturalne) algorytmy optymalizacji MC 1) teoria doboru naturalnego algorytmy genetycze wygląd owada zoptymalizowany na drodze przypadkowego krzyżowania genów oraz mutacji z mechanizmem selekcji naturalnej 2) wzrost i hodowla kryształów, metalurgia algorytm symulowanego wygrzewania
atom węgla: węgiel -tworzy kierunkowe wiązania kowalencyjne Stabilne formy węgla: każda lokalne minimum energii diament E wiązania ( funkcja struktury układu)=e wiązania ( 10 23 położeń atomów) grafit E grafit diament
Wzrost kryształów jako proces optymalizacji E wiązania ( funkcja struktury układu)=e wiązania ( 10 23 położeń atomów) metoda Czochralskiego hodowli kryształów zarodek krystaliczny niska T roztopiony materiał ciut powyżej temperatury topnienia wysoka T http://www.fkf.mpg.de
Wzrost kryształów jako proces optymalizacji E wiązania ( funkcja struktury układu)=e wiązania ( 10 23 położeń atomów) metoda Czochralskiego wzrostu kryształów zarodek roztopiony materiał nieco powyżej temperatury topnienia zarodek wolno wyciągany roztopiony materiał stygnie i powoli krystalizuje jeśli odpowiednio wolno schładzany materiał krystalizuje w idealnej strukturze (o optymalnej energii wiązania) http://www.fkf.mpg.de jeśli zarodek zbyt szybko wyciągnięty: kryształ będzie złej jakości defekty [układ osiąga najbliższe minimum lokalne]
położenie atomu Struktura krystaliczna i defekty: wakansja dyslokacja krawędziowa Defekty powodują naprężenia wewnętrzne. Kryształ z defektami jest twardy. położenie międzywęzłowe energia kryształu przywrócenie idealnej struktury: wymaga pokonania bariery energetycznej W metalurgii: dla usunięcia defektów (usunięcia naprężeń i zmiany twardości metalu) kryształ nagrzewa się do wysokiej temperatury, potem powoli schładza. Bariera energetyczna pokonana dzięki energii dostarczonej w formie ciepła. [proces odwrotny do hartowania stali]
Symulowane wygrzewanie (simulated annealing) Kirkpatrick, Science 220 671 1983 praca wykonana w IBM przy optymalizacji fizycznego projektowania układów scalonych) Krystalizacja optymalizacja energii wiązania w funkcji położeń wielkiej liczby atomów. Idealne optimum osiągane, gdy układ powoli schładzany (tak aby zachowana chwilowo równowaga termiczna). Pomysł: optymalizacja funkcji wielu zmiennych naśladująca proces krystalizacji. Teoria z mechaniki statystycznej: zachowanie układów o bardzo wielu stopniach swobody w równowadze termicznej z otoczeniem algorytm Metropolisa. Kirkpatrick algorytm Metropolisa do symulacji własności układów w równowadze termicznej z otoczeniem
Symulowane wygrzewanie optymalizowana funkcja traktowana jak energia pewnego układu. Dostarczyć energii, potem powoli [równowaga] ją odebrać liczymy, że układ szczęśliwie znajdzie drogę do minimum globalnego Układ ugrzązł w lokalnym minimum Symululacja zachowania układu o dużej liczbie s.swobody w równowadze termicznej
Kirkpatrick symulowane wyżarzanie w(e)=cexp(-e/kt) - Metropolis z modyfikacją rozkładu pstwa w miarę działania algorytmu - zamiast grupy wędrowców - jeden Algorytm symulowanego wyżarzania dla optymalizacji E(P) Wystartuj w punkcie P, ustaw wysoką temperaturę T Przesuń P losowo P =P+dP P ' ' Nowy punkt akceptowany (P:=P ) zawsze gdy lepszy E(P )<E(P) (lepszy=bardziej prawdopodobny wg.r.b) gdy E(P )>E(P) prawdopodobieństwo zaakceptowania punktu zmniejszyć T Koniec jeśli T=0 gorszego P dane przez np. exp(-(e(p )-E(P)) / kt) (rozkład Boltzmana) p 1. 0 0. 8 0. 6 0. 4 0. 2 0. 0 e x p ( - E / k T ) k T = 1 k T = 0. 1 E k T = 1 0 Losujemy liczbę losową q wg rozkładu równomiernego, jeśli q < exp (-(E(P )-E(P)) / kt) P:=P Im niższe T, tym mniej chętnie akceptujemy przesunięcia w górę na skali energii P P '
Przykład 1: f(x)=sin(x)+x2/1000 Sposób zmiany temperatury: T=0.001 i2 gdzie i spada od 100 do 1 w każdej T wykonywana pewna liczba losowań (przesunięcia z przedziału [-2,2]) 2 T = 0.9 T = 0.1 Wysokie T punkt P wędruje między minimami Niskie T P uwięziony wokół jednego minimum 1 W wysokiej T przeszukiwany szeroki zakres zmiennych. W niższej algorytm bada dokładnie minimum, które może być globalne, jeśli schładzanie zostało odpowiednio wykonane. 0-1 -4 0-2 0 0 20 40 Techniczna uwaga: gdy zmieniamy T: najlepiej startować od najlepszego rozwiązania uzyskanego do tej pory.
Przykład 2. 10 8 Zastosowanie S.A. Dla funkcji testowej de Jonga: 16 10 4-2 -8-1 4-2 0 y 6 4 2 0 0 2 4 x 6 8 10 Położenia P w kolejnych iteracjach: T>5 T<5 1 0.0 0 T<1 1 0.0 0 1 0.0 0 8.0 0 8.0 0 6.0 0 6.0 0 4.0 0 4.0 0 2.0 0 2.0 0 0.0 0 0.0 0 8.0 0 6.0 0 4.0 0 2.0 0 0.0 0 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 1 0.0 0 0.0 0 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 1 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 1 0.0 0
zawężanie zakresu przeszukiwań z temperaturą: generowane ścieżki 10 1 0.0 0 ścieżka (100 kroków) dla T=4 8.0 0 8 16 10 4-2 -8-1 4-2 0 6 y 6.0 0 4 4.0 0 2 2.0 0 0 0.0 0 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 0 2 4 x 6 8 10 1 0.0 0 ścieżka (50 kroków) dla T=2 ścieżka (25 kroków) dla T=1 1 0.0 0 1 0.0 0 8.0 0 8.0 0 6.0 0 6.0 0 4.0 0 4.0 0 2.0 0 2.0 0 0.0 0 0.0 0 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 1 0.0 0 0.0 0 2.0 0 4.0 0 6.0 0 8.0 0 1 0.0 0
Przykład 3: Problem komiwojażera Generowanie P z P: P=[13645972] Losujemy pierwsze i ostatnie miasto Losowo zmieniamy kolejność P = [ 1 3 9 4 6 5 7 2 ] Strategia schładzania a wynik końcowy długość P 4 400 3 350 d lu g o s c tr a s y T Sposób zmiany T 2 1 0 zbyt szybkie schłodzenie [do najbliższego minimum lokalnego] Najlepsze rozwiązanie 300 250 200 0 20000 40000 60000 n u m e r ite r a c ji / 1 0 0 150 0 20000 40000 60000 n u m e r ite r a c ji / 1 0 0
Przykład 4: klaster jonowy http://www.physchem.co.za/bonding/graphics/grd60002.gif najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) d r dodatnio naładowane współrzędne r 1,r 2,... ujemnie naładowane współrzędne d 1,d 2,...
Przykład 4: klaster jonowy potencjał oddziaływania: załóżmy że promienie jonowe są równe 1 oddziaływanie jonów o różnym znaku o tym samym znaku 0. 4 0. 0-0. 4-0. 8 0 2 4 6 8 1 0 najprostsze przybliżenie: naładowane kule bilardowe (nie mogą się przenikać) d r dodatnio naładowane współrzędne r 1,r 2,... ujemnie naładowane współrzędne d 1,d 2,...
Weźmy 5 jonów dodatnich, pięc ujemnych, dwa wymiary fcja 20 zmiennych konfiguracje z symulacji, strzałki pokazują wyniki dla obniżanej temperatury d r -2.895126-4.778046-4.853392-6.856922-7.507789
-7.507789 minimum globalne ominięte minima lokalne -6.413611-7.130378