Optymalizacja Monte-Carlo - algorytmy inspirowane przyrodniczo (algorytmy genetyczne, symulowane wyżarzanie, stadne strategie obliczeniowe) Przykład 2 Przykład 1 Najbardziej efektywny rozkład jazdy układ połączeń na płytce drukowanej Do optymalizacji Rozmiar płytki Długość połączeń Czas wytwarzania Problem matematycznie definiuje tzw. funkcja kosztu [celu] f(x1,x2,...xn), której minimum poszukujemy
Przykład 3 Matematyczny opis zjawiska, które jak się wydaje podlega zależności liniowej y=a+bx 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.
przykłady na nie: funkcja kosztu szacowana w doświadczeniu Optymalizacja: funkcja kosztu [funkcja celu] : dana w postaci analitycznej (wzoru) lub nie przykłady na nie: funkcja kosztu szacowana w doświadczeniu (farmakologia) funkcja kosztu wyliczana przy pomocy symulacji (np. aerodynamicznych do optymalizacji kształtu) ilość zmiennych (1, więcej, nieskończona) 3) zmienne: ciągłe/dyskretne (nieskończenie lub skończenie wiele możliwych argumentów) 4) statyczna (trasa najkrótsza) / dynamiczna [zależna od czasu najszybsza trasa dojazdu] 5) funkcja gładka lub nie (możemy korzystać z jej lokalnego nachylenia czy nie) zależnie od problemu możemy wybrać algorytm deterministyczny lub probabilistyczny dokładny lub przybliżony
Zadanie jest najłatwiejsze gdy funkcja kosztu jest kwadratowa i dana wzorem analitycznym problem liniowy
lub pracować na samej funkcji 1D: Jeśli funkcja f(x) nie jest kwadratowa, ale jej pochodna f’(x) 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 f(x)=sin(x)/x f’(x)=cos(x)/x-sin(x)/x2 rysunek z rozdziału o metodzie Brenta z Numerical Recipes W 1D: można nawet przeszukać całą dziedzinę funkcji gładkiej i skoncentrować się na lokalnych minimach. rozwiązywanie RNL w 2 i więcej D : problem trudny
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 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 Optymalizacja funkcji kosztu f bywa zadaniem trudnym gdy dziedzina f wielowymiarowa „powierzchnia” funkcji kosztu skomplikowana wiele minimów lokalnych, Wszystkie metody tradycyjne (wyżej wymieniane): znajdują lokalne (najbliższe) minimum funkcji gładkiej. globalnego nie znajdą chyba, że (przypadkiem lub nie) startowaliśmy z okolic rozwiązania optymalnego niezastąpione: do znalezienia dokładnego położenia minimum, gdy znane jego otoczenie
optymalizacja kombinatoryczna: 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:
ale i zmienna dyskretna 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. 31
ale i zmienna dyskretna 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. 31 Rozwiązanie:
ale i zmienna dyskretna 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. 31 Problem równie łatwy jak regresja liniowa 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 a. zachłanny: kieruje się regułą maksymalnego zysku w najbliższym kroku (w szachach sukcesów nie odnosi) Rozwiązanie:
Limanowa-Nowy Sącz C 4 1 K T 4 2 B 4 3 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 31 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 5 2 3 4 3 S 3 6 G 5 7 N S N T
Wadowice-Chrzanów C 4 1 K T 4 2 B 4 3 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 31 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 5 2 3 4 3 S 3 6 G 5 7 N S N T
Myślenice-Kraków G T N S L B K M W C 3 6 4 5 2 7 1 31
Bochnia-Limanowa C G T N S L B K M W 3 6 4 5 2 7 1 31
Wadowice-Myślenice C 4 1 K T 4 2 B 4 3 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 31 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 5 2 3 4 3 S 3 6 G 5 7 N S N T
Nowy Sącz-Gorlice C 4 1 K T 4 2 B 4 3 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 31 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 5 2 3 4 3 S 3 6 G 5 7 N S N T
bezpośrednie połączenie CK już się nie przyda Kraków-Bochnia C 4 1 K 4 2 T B 4 3 31 3 1 4 2 3 6 M 3 2 4 5 W 4 2 L 6 5 2 3 4 3 S 3 6 G 5 7 N S N T
M-NT B-T G T N S L B K M W C 3 6 4 5 2 7 1 31
Algorytm zachłanny – skuteczny więc - problem najkrótszego 31 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 z wierzchołka A do wszystkich pozostałych w grafie (przeszukiwanie grafu wszerz z oznaczaniem wierzchołków) Każda krawędź ma wagę (długość). Wierzchołki nabierają koloru, wagi i etykiety w czasie działania algorytmu. waga wierzchołka B: długość najkrótszej spośród znalezionych do tej pory trasy z B do A 0) Oznacz wszystkie wierzchołki kolorem białym. Przypisz wierzchołkowi startowemu A wagę 0. Znajdź i zaczerń biały wierzchołek v o najmniejszej wadze Dla każdego B białego wierzchołka przyległego do v: jeśli waga B > waga v + waga krawędzi (v,B) waga B:=waga v + waga krawędzi (v,B) Jeśli są jeszcze białe wierzchołki idź do 1 (złożoność V2)
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. 2) Szukamy białego miasta o najmniejszej wadze i malujemy je na czarno (Nowy Sącz), wagę czarnego miasta ustalamy (mniejszej nie będzie) 3) sąsiedzi Nowego Sącza otrzymują próbne wagi i etykiety
4) Najmniejszą wagę ma teraz Tarnów, 5) Następnie Limanowa C 4 1 8 9 T K T 4 2 B 4 3 4 5 G 3 1 4 2 do Bochni z Gorlic bliżej przez Tarnów niż przez Limanową 3 6 M 9 1 L ? 3 2 4 5 W 4 2 1 1 L L 5 9 N S 6 5 2 3 4 3 S 3 6 5 7 G N S 3 6 G N T 9 3 N S 6) Bochnia 7) Po Nowy Targu – Myślenice, z nich bliżej do Wadowic do Myślenic jednak bliżej przez Limanową
Np.: z Chrzanowa do Gorlic trafimy po etykietach ostatecznie Np.: z Chrzanowa do Gorlic trafimy po etykietach Zamiast stosować algorytmu można zrobić model z nitek i koralików, potem naciągnąć koraliki oznaczające Chrzanów i Gorlice
Algorytm zachłanny dla komiwojażera: 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ę podejścia heurystyczne lub Monte Carlo Algorytm zachłanny dla komiwojażera: ruszaj do najbliższego miasta, którego jeszcze nie odwiedziłeś. - rozsądny: wyeliminuje przynajmniej długie przejazdy bez zatrzymywania się Klasyczny problem testowy dla algorytmów optymalizacyjnych
Zachłanne rozwiązanie nie jest optymalne (choć nie najgorsze) Rozwiązanie zachłanne: start ze Szczecina: Najlepsze PL: 46 miast Szukana jest permutacja - przejrzeć wszystkie N! - niewykonalne 46!=5502622159812088949850305428800254892961651752960000000000 najlepszy algorytm dokładny: złożoność rzędu 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 Schemat obowiązuje pod warunkiem że PNP P NP-zupełne NP – można sprawdzić odpowiedź w czasie wielomianowym zadanie rozkładu na czynniki pierwsze liczby 136117223861 nieznany jest wielomianowy algorytm (na komputer klasyczny) ale jeśli ktoś nam poda odpowiedź 1047291299709 - szybko sprawdzimy. P – problemy, w których istnieje algorytm o wielomianowej złożoności (nie ma dowodu, że PNP.) 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 bardzo, że protokół klucza publicznego RSA oparty na niewykonalności faktoryzacji w krótkim czasie] 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
Cykl (zamknięta ścieżka) Eulera najkrótsza trasa z A do B – problem łatwy (bo wielomianowy algorytm znany) najkrótsza trasa po wszystkich miastach – problem trudny (bo algorytm wielomianowy nieznany) Inna znana para pozornie podobnych problemów o skrajnie różnej złożoności obliczeniowej: problem istnienia cyklu Eulera i cyklu Hamiltona 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 (odwiedź wszystkie krawędzie grafu dokładnie raz)
przy każdym przejściu przez wierzchołek używamy 2 krawędzi 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 5 3 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 odwiedzić wszystkie wierzchołki bez powtarzania przemarszu przez żadną z krawędzi wracając do punktu wyjścia (nie trzeba korzystać z każdej krawędzi, co wcale nie ułatwia zadania, bo problem istnienia CH – 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 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 szukać- 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 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 Przewodnik do przeszukiwania losowego - inspiracje przyrodnicze Przyrodnicze (naturalne) algorytmy optymalizacji Ewolucyjne mechanizmy adaptacyjne – algorytmy genetycze Wygrzewanie próbek dla usunięcia defektów – algorytm symulowanego wygrzewania 3) Zachowanie insektów żyjących w społecznościach – optymalizacja metodą kolonii mrówek Metody MC: starają się poprawić przybliżone rozwiązanie. Mogą doprowadzić do optymalnego rozwiązania, ale ścisłej gwarancji nie mamy. W praktyce rozwiązanie bardzo dobre jest zazwyczaj wystarczająco dobre. Rola generatora liczb losowych: 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 (reprodukcja) i wzmacniane przez naturalną selekcję. Ewolucja = wielki proces optymalizacyjny Funkcja przystosowania cecha nr Y cecha nr X
Informacja genetyczna zapisana w sekwencji zasad w łańcuchu polinukleotydowym język czteroliterowy A, G, T, C (odpowiednio adenina, guanina, tymina i cytozyna). DNA 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 Każdy osobnik z populacji niesie pewien kod genetyczny = zbiór zmiennych funkcji kosztu Populacja początkowa Selekcja „naturalna” Osobniki najgorzej przystosowane (o największym koszcie) wymierają Osobniki przystosowane na tyle dobrze by żyć - łączą się w pary Wymiana genów - losowa. korzystne cechy rodziców będą wzmacniane a słabsze eliminowane przez selekcję naturalną. Wydają na świat potomstwo o genach odziedziczonych po rodzicach Pewna liczba osobników poddana jest przypadkowej mutacji Mutacje mają wprowadzać cechy których nie mają rodzice. Dopóki zbieżność nie została osiągnięta
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 jest to rozsądne). 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
2) losowo wg. rankingu kolejności np. Łączenie w pary wiele możliwości 1) kolejno 5.29 5.8 5.8 6.51 2) losowo wg. rankingu kolejności np. 1 rodzic 40% potomstwa 2 30% 3 20% 4 10% 5.29 5.8 5.8 6.51 3) losowo wg. kosztu np.. zgodnie z rozkładem: 5.29 35% 5.8 27% 5.8 27% 6.51 11% 7.51 najlepszy spośród wyeliminowanych
Stworzyć dyskretny generator losowy o zadanym rozkładzie dysponując generatorem o rozkładzie równomiernym ll z [0,1] i f p 1 5.29 35% 2 5.8 27% 3 5.8 27% 4 6.51 11% Tworzymy tablicę 1 2 3 4 P(0)=0 P(1)=0.11 P(2)=0.38 P(3)=0.65 P(4)=1 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: Binarna 01001011 10101010 – jeden lub więcej, w ciągu lub osobno 2) Zmiennoprzecinkowe R1, R2: P=(1-a)R1+aR2 : a –losowe (0,1) R1 R2 P gdzieś na odcinku Losując inne a dla każdej współrzędnej: 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
Wylosowana populacja początkowa N=12 Pop. początkowa nr x y f(x,y) 1 6.01 8.91 -13.64 2 5.91 5.11 -9.955 3 5.82 8.09 -9.745 4 0.89 5.60 -6.407 5 8.99 6.52 -5.492 6 7.26 9.66 -0.141 7 0 0.85 0.92 8 2.97 4.26 1.80 9 2.62 7.43 3.74 10 8.76 9.95 5.24 11 9.67 1.89 6.97 12 5.14 3.98 9.42 fioletowe odrzucamy jako najgorzej przystosowane zielone będą przekazywać swoje geny dalej
xp = bx xt+(1-bx)xm gdzie bx,by losowe [0,1] yp = by yt+(1-by)ym Dobór w pary i potomstwo krzyżyki: rodzice dobór parami nr x y f(x,y) 1 6.01 8.91 -13.64 2 5.91 5.11 -9.955 3 5.82 8.09 -9.745 4 0.89 5.60 -6.407 5 8.99 6.52 -5.492 6 7.26 9.66 -0.141 Potomstwo (kropki) wylosowane w prostokącie, którego wierzchołki przeciwległe do rodzice xp = bx xt+(1-bx)xm gdzie bx,by losowe [0,1] yp = by yt+(1-by)ym
Dajmy się rozwijać populacji bez wprowadzania mutacji trzecie pokolenie pokolenie czwarte pokolenie piąte pokolenie Wybrany sposób wymiany genów: terytorium populacji kurczy się do jednego z minimów. globalne minimum nie zostało znalezione - szansa na zajęcie optymalnej „niszy” utracona w trzecim pokoleniu
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: Tak skonstruowany algorytm znajduje raczej okolice globalnego minimum – dokładne położenie wyszukamy metodą tradycyjną
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 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.
Krzyżowanie genów przy reprodukcji (krzyżowanie cykliczne): Lista długości tras: Pod kreską wymierają Nad kreską łączone w pary 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] Rodzic 2: [3 4 5 2 1 6] geny potomstwa Brak powtórzeń: wymiana zakończona
Wymiana genów (przykład): Dwa najlepsze osobniki w 50 pokoleniu 75.76706 73.35700 dziedziczy zalety Nieoptymalny: Rzeszów, Krosno 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 Zasada: kopiowanie w nadmiarze + selekcja rozwiązań Optymalizują funkcje zmiennej ciągłej lub dyskretnej Funkcje wygenerowane numerycznie, zmierzone lub zadane 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żą liczbą zmiennych Mogą wyprodukować całą listę lokalnych minimów, nie tylko globalne Nieźle się nadają do przetwarzania równoległego