Algorytmy stochastyczne laboratorium 03

Podobne dokumenty
PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

Algorytmy genetyczne dla problemu komiwojażera (ang. traveling salesperson)

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Techniki optymalizacji

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Wybrane podstawowe rodzaje algorytmów

Problemy z ograniczeniami

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Przekształcenia liniowe

Macierze. Rozdział Działania na macierzach

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy ewolucyjne Część II

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Algorytmy genetyczne

Algorytmika Problemów Trudnych

Metody przeszukiwania

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Algebra liniowa z geometrią

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

Prawdopodobieństwo i statystyka

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

KONKURS ZOSTAŃ PITAGORASEM MUM. Podstawowe własności figur geometrycznych na płaszczyźnie

Statystyka i eksploracja danych

Zadania optymalizacyjne

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

Wstęp do programowania

Digraf. 13 maja 2017

Algorytmy genetyczne

Sortowanie. Bartman Jacek Algorytmy i struktury

Zadania egzaminacyjne

Przestrzenie liniowe

Teoria grafów - Teoria rewersali - Teoria śladów

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Aby przygotować się do kolokwiów oraz do egzaminów należy ponownie przeanalizować zadania

Wykład 14. Elementy algebry macierzy

zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński

Procesy stochastyczne

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

Algorytmiczna teoria grafów

Wyznaczanie optymalnej trasy problem komiwojażera

Grafy Alberta-Barabasiego

Zaawansowane metody numeryczne

Temat: Algorytmy zachłanne

Zadania laboratoryjne i projektowe - wersja β

Matematyka stosowana i metody numeryczne

Zagadnienie transportowe

ALGORYTMY GENETYCZNE ćwiczenia

Algorytmy ewolucyjne (3)

Przykłady problemów optymalizacyjnych

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

TEORIA GRAFÓW I SIECI

Algorytmy genetyczne (AG)

Wyznaczniki. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 6. Wykład z algebry liniowej Warszawa, listopad 2013

Lista 4. Kamil Matuszewski 22 marca 2016

a) 7 b) 19 c) 21 d) 34

Programowanie liniowe

Matematyczne Podstawy Informatyki

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Optymalizacja systemów

3. Macierze i Układy Równań Liniowych

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Sortowanie topologiczne skierowanych grafów acyklicznych

Podejście zachłanne, a programowanie dynamiczne

Algebra liniowa. 1. Macierze.

Przykładowe zadania na egzamin z matematyki - dr Anita Tlałka - 1

Algorytmiczna teoria grafów Przepływy w sieciach.

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

ALGEBRA LINIOWA. Wykład 2. Analityka gospodarcza, sem. 1. Wydział Zarządzania i Ekonomii Politechnika Gdańska

Relacje. opracował Maciej Grzesiak. 17 października 2011

LUBELSKA PRÓBA PRZED MATURA

LXIII Olimpiada Matematyczna

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Algorytmy ewolucyjne 1

Algebra WYKŁAD 3 ALGEBRA 1

5. Rozwiązywanie układów równań liniowych

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Transkrypt:

Algorytmy stochastyczne laboratorium 03 Jarosław Piersa 10 marca 2014 1 Projekty 1.1 Problem plecakowy (1p) Oznaczenia: dany zbiór przedmiotów x 1,.., x N, każdy przedmiot ma określoną wagę w(x i ) i wartość v(x i ), plecak ma ograniczoną pojemność maxw, przedmiot może być zapakowany tylko jeden raz, ale może się znaleźć w dwóch różnych egzemplarzach na liście. Cel: wybrać podzbiór przedmiotów o maksymalnej wartości i mieszczący się w limicie wagowym maxw. Kodowanie: osobnik ō = [o 1,.., o N ], o i = 1 zabieramy x i do plecaka, krzyżowanie i mutacje: klasyczne... (plus naprawa niepoprawnego osobnika) w wypadku przekroczenia wagi usuwamy losowe przedmioty aż do zmieszczenia się w limicie. (lub kara) w wypadku przekroczenia wagi zmniejszamy wartość osobnika o c ( W ) 2, gdzie W = max(0, ( i w io i ) maxw ) = przekroczenie wagi. 1.2 Problem komiwojażera (2p) Dany jest graf G = (V, E), oraz wagi krawędzi w (w wersji prostej: w(e) = długość krawędzi). Oznaczenia: v V wierzchołek w grafie, e E krawędź w grafie, w(e) R + waga / długość krawędzi / odległość między miastami, jeżeli (v i, v j ) / E to można przyjąć w((v i, v j )) = określone, ale duże np w((v i, v j )) = max k l w((v k, v l )) po określonych wagach, Cel: znaleźć cykl w grafie o minimalnej długości 1.2.1 Reprezentacja ścieżkowa osobnika ō = [o 1, o 2, o 3, o 4 ], gdzie o i = 1..N numer miasta, odwiedzamy miast v i w i-tym kroku cyklu, np. ō = [3, 2, 4, 1] odpowiada cyklowi 3 2 4 1 3, UWAGA! ten sam cykl odpowiada osobnikom [2, 4, 1, 3], [4, 1, 3, 2],..., Mutacje: transpozycja (zamieniamy miejscami dwa losowe miasta), odwrócenie podciągu (odwracamy losowo wybrany fragment cyklu). Krzyżowanie PMX (ang. partialy mapped crossover): 1

wybieramy pod-odcinek: p = [p 1...p 2 p 3...p 4 p 5..p 6 ], q = [q 1...q 2 q 3...q 4 q 5..q 6 ] potomkowi ustawiamy pod-odcinek z q: r := [... q 3, q 4...] uzupełniamy głowę i ogon o miasta z p (zachłannie kopiujemy na wolne miejsca tam gdzie jest to możliwe): r := [p 1... q 3, q 4 p 5...] (tak aby nie zniszczyć cyklu!) uzupełniamy pozostałe miasta z p aby powstał poprawny cykl, r = [p 1 r 2 q 3, q 4 p 5 r 6 ], krzyżowanie nie wyprowadza poza zbiór poprawnych cykli! Analogicznie można utworzyć drugiego potomka r 2. Kolejne kroki PMX: p = [5, 7, 8 1, 4, 2 6, 3] q = [4, 3, 1 2, 6, 5 8, 7] r = [.,.,., 2, 6, 5.,.] (kopiujemy z q) r = [., 7, 8 2, 6, 5., 3] (kopiujemy z p) r = [1, 7, 8 2, 6, 5 4, 3](uzupełniamy nieodwiedzonymi z p) Krzyżowanie OX (order-based crossover): wybieramy pod-odcinek: p = [p 1...p 2 p 3...p 4 p 5..p 6 ], q = [q 1...q 2 q 3...q 4 q 5..q 6 ] wstawiamy potomkowi odcinek z q: r = [... q 3,...q 4...] uzupełniamy głowę i ogon o miasta z p ale zachowując kolejność odwiedzeń: r = [p 1... q 3,...q 4 p 5...], zaczynamy od pozycji p 5 (następna po wstawionym bloku z q) Podobnie można utworzyć drugiego potomka zamieniając role p i q. Kolejne kroki OX: p = [5, 3, 2 1, 4, 8 6, 7] q = [4, 3, 1 2, 6, 5 8, 7] r = [.,.,., 2, 6, 5.,.] (kopiujemy z q) r = [.,.,., 2, 6, 5 7,.] (kopiujemy z p) r = [.,.,., 2, 6, 5 7, 3] r = [1,.,., 2, 6, 5 7, 3] r = [1, 4,., 2, 6, 5 7, 3] r = [1, 4, 8, 2, 6, 5 7, 3] Krzyżowanie CX (cycle-based crossover): Pomysł: każde wystąpienie musi pochodzić od któregoś z rodziców pierwszą wolną pozycje bierzemy od jednego z rodziców (np p i ), na początku i = 1 jeżeli p i q i, to zablokowaliśmy możliwość wyboru q i, musimy zatem wziąć to miasto również z rodzica p z pozycji j, tj p j jeżeli zamknęliśmy cykl i potomek jest zakończony to zakończ. jeżeli zamknęliśmy cykl, ale osobnik nie jest zakończony do Pkt 2, ale wybierz wolną pozycję z drugiego rodzica (jak był p, to teraz q). jeżeli jeszcze nie zamknęliśmy cyklu to i := j i punkt 3. Kolejne kroki CX: p = [1, 3, 2, 5, 4, 8, 6, 7] q = [2, 3, 1, 4, 6, 5, 8, 7] 2

r = [1,...] (kopiujemy z p) r = [1,., 2,...] (koniec cyklu) r = [1, 3, 2,...] (następny cykl, jeden element) r = [1, 3, 2, 4...] (kopiujemy z q) r = [1, 3, 2, 4,., 5,...] r = [1, 3, 2, 4,., 5, 8,.] r = [1, 3, 2, 4, 6, 5, 8,.] (koniec cyklu) r = [1, 3, 2, 4, 6, 5, 8, 7] 1.2.2 Reprezentacja macierzowa osobnika reprezentacja: macierz kwadratowa A wymiaru N N, N = liczba miast, jeżeli miasto i leży na ścieżce przed miastem j to a ij = 1 / wersja tablicowa A[i, j] = 1, a i,i = 0 zawsze, relacja jest przechodnia zatem jeżeli a ij = 1 i a jk = 1 to również a ik = 1, w tablicy jest dokładnie N(N 1)/2jedynek Mutacja zamieniamy parę miast miejscami a ij := 1 a ij, a ji := 1 a ji. Krzyżowania: Rodzice P oraz Q potomek R, R = min(p, Q) (po współrzędnych), resztę dopełniamy losowo, jeżeli r ij = r ji = 0, to losowy z nich ustawiamy na 1, krzyżowanie może prowadzić poza zbiór poprawnych osobników. Krzyżowanie 1 przekrój Rodzice P oraz Q potomek R R = min(p, Q) (po współrzędnych) resztę dopełniamy losowo jeżeli r ij = r ji = 0, to losowy z nich ustawiamy na 1 Krzyżowanie 2 Blokowe Rodzice P oraz Q potomek R Potomek [ P R = I rand 1 rand tr Q II dwa bloki diagonalne z rodziców, pozostałe uzupełniamy ] może wygenerować potomka z poza zbioru (tzn. r ij = r jk = 1, ale r ik = 0) 3

1.3 Wyszukiwanie ścieżek na R 2 (2p) dana para punktów na płaszczyźnie: S = (x s, y s ), D = (x d, y d ) dane przeszkody na płaszczyźnie: np. zbiór kół: K i = ((x i, y i ), r i ), wielokątów wypukłych (np trójkątów, reprezentacja wektorowa) lub piskeli (rastrowa). a 3 a 2 D S a 1 a 4 Cel znaleźć ścieżkę z S do D o minimalnej długości bez ostrych zakrętów omijającą przeszkody (z pewnym marginesem bezpieczeństwa R) Reprezentacja osobnika lista punktów na R 2, O = [a 0 = S, a 1, a 2..., a k = D], długość listy może być zmienna, interpretacja: ścieżka S = a o a 1 a 2 a k = D, długość ścieżki: gdzie, oznacza zwykłą odległość k L(O) = a i 1, a i, i=1 margines bezpieczeństwa: niech { 0 jeżeli w promieniu R od punktu a nie ma żadnej przeszkody M(a) = R odległość do najbliższej przeszkody oraz dla całej ścieżki k 1 M(O) := M(a i ) i=1 gładkość(x i ) = π kąt pomiędzy sąsiednimi krawędziami α a i a i+1 a i 1 gładkość(o) = k 1 i=1 gładkość(x i) Krzyżowania: (dwoje rodziców P,Q dwoje potomków) złączenie początku ścieżki P i końca ścieżki Q, drugi potomek symetrycznie, punkt łączenia losowy, P i Q mogą mieć różne długości! 4

Mutacje: przesunięcie punktu pośredniego o wektor z rozkładu normalnego x = x + N([0, 0], I 2 ), przesunięcie punktu pośredniego do losowej pozycji z dopuszczalnego zakresu, dodanie / usunięcie wierzchołka pośredniego (uwaga! dodawanie pomiędzy losową parę może powodować niestabilności numeryczne, należy dodawać jeżeli segment drogi jest za długi, a usuwać gdy jest za krótki). 5