Przeszukiwanie z tabu ( )
|
|
- Angelika Stefańska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Seminarium: Algorytmy heurystyczne IIUWr 2010/2011 Przemysław Gospodarczyk Przeszukiwanie z tabu ( ) opracowanie Wersja Zmiany Autor Data 1.0 Pierwsza wersja Przemysław Gospodarczyk
2 Spis treści 1. Teoria Historia Tabu Search i nowe trendy Definicja Tabu Search i ogólna idea Tabu Search schemat ogólny algorytmu Struktury sąsiedztwa Kryterium aspiracji Wykorzystanie pamięci długoterminowej, pojęcia dywersyfikacji i intensyfikacji 5 2. Probabilistic Tabu Search 5 3. Reactive Tabu Search 6 4. Tabu Cycle Method 6 5. Iterated Tabu Search Algorytm Zapamiętywanie rozwiązań Wybór kandydatów do zoptymalizowania Rekonstrukcja rozwiązania Opis problemu QAP Opis problemu i specyfikacja Źródło danych Zastosowanie połączenia Tabu Search z algorytmem ewolucyjnym do rozwiązania problemu QAP Algorytm Schemat ogólny zastosowanego algorytmu Inicjowanie populacji Tabu Search jako heurystyka usprawniająca Wybór rodziców i generowanie nowego zbioru rozwiązań Zamiana pokolenia Własne usprawnienia Obsługa programu Kompilacja i uruchamianie Wywołanie i parametry algorytmów Testy Oznaczenia Komentarz do testów
3 1. Teoria 1.1. Historia Tabu Search i nowe trendy Fred Glover w roku 1977 przedstawił pracę dotyczącą m.in. wykorzystania pamięci krótkotrwałej i długotrwałej w przeszukiwaniu lokalnym. Pamięć długotrwała miała służyć do zapamiętania najbardziej atrakcyjnych elementów przestrzeni przeszukiwań podczas, gdy pamięć krótkotrwała służyła do pamiętania ostatnich ruchów i miała ulegać nadpisywaniu w kolejnych iteracjach przeszukiwania. Wyżej wymienione pomysły stały się podstawą do działania Tabu Search i w roku 1986 Fred Glover wydał pierwszą pracę dotyczącą tej heurystyki. Co ciekawe Michael Hansen, również w 1986 roku wydał swoją pracę na temat podobnej heurystyki. Heurystyka o nazwie Steepest Ascent Mildest Descent Heuristic powstała niezależnie od pracy Freda Glovera. W ciągu lat powstało bardzo wiele różnych usprawnień, o które można wzbogacić Tabu Search. Niektóre z nich opisałem w tej pracy. Ostatnie trendy to hybrydyzacja algorytmów heurystycznych, która zazwyczaj przejawia się dodawaniem Tabu Search do algorytmów ewolucyjnych, które rozwijają się bardzo sprawnie i dają coraz lepsze rezultaty. Szczególnie techniki generujące już w pierwszych iteracjach informacje specyficzne o problemie i wykorzystujące je w praktyce (lepsze niż losowe rozwiązanie startowe, krzyżowanie fragmentów najlepszych rozwiązań znalezionych przez TS, wiedząc, że pewne pozycje w wektorze rozwiązań powinny być wypełnione w określony sposób lub zależą od siebie) są obecnie najbardziej wykorzystywane. Nie bez znaczenia dla rozwoju Tabu Search jest również możliwość zrównoleglania (każdy procesor niezależnie może modyfikować dane mu rozwiązanie) Definicja Tabu Search i ogólna idea Przeszukiwanie z tabu jest metahuerystyką do rozwiązywania problemów optymalizacyjnych, opartą na iteracyjnym przeszukiwaniu przestrzeni rozwiązań, wykorzystując sąsiedztwo pewnych elementów tej przestrzeni oraz zapamiętując przy tym przeszukiwaniu ostatnie ruchy, dopóki nie zostanie spełniony warunek końcowy. Ruchy zapisywane są w postaci atrybutów przejścia (parametry opisujące jednoznacznie wykonany ruch) na liście (zwanej też czasami zbiorem) tabu. Obecność danego ruchu na liście tabu jest tymczasowa (zazwyczaj na określoną liczbę iteracji od ostatniego użycia) i oznacza, że danego ruchu nie można wykonać przez określoną liczbę iteracji chyba, że ruch spełnia tzw. kryterium aspiracji (ang. aspiration criterion). Lista tabu ma za zadanie wykluczyć (w praktyce jednak jedynie zmniejszyć) prawdopodobieństwo zapętleń przy przeszukiwaniu i zmusić algorytm do przeszukiwania nowych, niezbadanych regionów przestrzeni przeszukiwań. Przeszukiwanie z tabu zmniejsza nieco szybkość zbieżności poprzez zamienianie danego rozwiązania z najlepszym jego sąsiadem, bez względu na to, czy sąsiad jest od niego lepszy, czy gorszy. Pozytywnym aspektem tego podejścia jest jednak możliwość szybszego wyjścia z regionu przyciągania ekstremum lokalnego, które niekoniecznie musi być globalnie optymalne (w szczególności, może być czasami bardzo odległe od optymalnego). Zazwyczaj warunkiem końcowym przeszukiwania jest zadana z góry liczba iteracji do wyko- 3
4 nania, brak zmiany globalnie najlepszego rozwiązania w określonej liczbie iteracji z rzędu (co może być również motywacją do wygenerowania nowego rozwiązania startowego i rozpoczęcia algorytmu od początku z pewną wiedzą nabytą w poprzednim wykonaniu) lub jeżeli osiągniemy zadaną z góry wartość funkcji celu. Pojęcie metaheurystyki zostało wymyślone przez Freda Glovera w roku 1986 i oznacza heurystykę nadrzędną (co sugeruje podrzędność innych w stosunku do tej), która dzięki swojej ogólności potrafi sterować innymi, odpowiednio dopasowanymi na potrzeby danego problemu optymalizacyjnego. Tabu Search jest więc ideą, a nie konkretnym algorytmem rozwiązującym konkretny problem optymalizacji Tabu Search schemat ogólny algorytmu //losowe rozwiązanie startowe s = best = RANDOM SOLUTION() //inicjowanie listy tabu t = [] //pętla trwa dopóki nie zostaną spełnione określone warunki końcowe WHILE NOT(TERMINATION CONDITION) { //wykonanie kroku s = SELECT(NEIGHBORS(s),t)) //aktualizowanie listy tabu t = UPDATE TABU(s,t) //najlepsze rozwiązanie zapamiętujemy if (f(best) < f(s)) { best = s } } return best 1.4. Struktury sąsiedztwa Ze względu na przestrzeń rozwiązań należy zdefiniować relację sąsiedztwa na parach elementów tej przestrzeni, która obejmuje całą dziedzinę przestrzeni przeszukiwań. Definicja relacji zależy oczywiście od przestrzeni i formatu rozwiązań (np. rozwiązaniami mogą być wektory binarne, wektory liczb rzeczywistych, permutacje zbioru liczb naturalnych itp...). Przykładowo, jeżeli rozważamy przestrzeń permutacji zbioru n elementowego to możemy rozważyć 3 możliwe strategie przejścia dla permutacji π =< π(0), π(1),..., π(n 1) >: - insert(i,j) przeniesienie j-tego elementu na pozycję i-tą, - swap(i,j) zamiana miejscami i-tego elementu z j-tym, 4
5 - invert(i,j) odwrócenie kolejności w podciągu zaczynającym się na i-tej pozycji i kończącym się na pozycji j-tej. W powyższych przejściach argumenty i,j nazywamy atrybutami przejścia, które jednoznacznie pozwalają identyfikować przejście Kryterium aspiracji Czasami zabranianie pewnych ruchów, mimo, że nie prowadzi do zapętleń, to może spowodować ogólną stagnację przy przeszukiwaniu lub wręcz całkowicie uniemożliwić ruch (sytuacja, gdy wszyscy sąsiedzi są na liście tabu). Spełnienie kryterium aspiracji pozwala na złamanie tabu, czyli wykonanie ruchu pomimo, że jego atrybuty znajdują się na liście ruchów zabronionych. Najprostszym i najczęściej stosowanym kryterium aspiracji jest zezwolenie na wykonanie ruchu, jeżeli prowadzi on bezpośrednio do uzyskania najlepszego znanego globalnie rozwiązania. Inne ciekawsze, ale znacznie bardziej skomplikowane kryteria aspiracji opierają się na wyspecjalizowanych metodach badających możliwości powstania cyklu po wykonaniu danego ruchu (co udało się efektywnie zaimplementować naukowcom w latach 1989, 1991) Wykorzystanie pamięci długoterminowej, pojęcia dywersyfikacji i intensyfikacji Podstawowym pomysłem strategii Tabu Search jest wykorzystanie pamięci długoterminowej do przechowywania najlepszego globalnie rozwiązania, które na koniec algorytmu zostaje zwrócone jako wynik działania heurystyki. Istnieje wiele innych pomysłów na wykorzystanie pamięci długoterminowej przy przeszukiwaniu przestrzeni rozwiązań, których cechą wspólną jest chęć utworzenia statystyki o korzystnych ruchach z przeszłych iteracji. Statystykę można wykorzystać do bardziej inteligentnych i wyspecjalizowanych strategii, które pozwalają na zaspokajanie dwóch istotnych kryteriów: - intensyfikacji, czyli zagęszczenia próbkowania obszaru, jeżeli w tym obszarze znajdują się dobre rozwiązania; - dywersyfikacji, czyli rozproszenia przeszukiwania, aby nie pominąć wszystkich podobszarów. Pomysłem na egzekwowanie powyższych pomysłów może być też funkcja kary, która zależy od częstotliwości wykonywania danego ruchu i zaburza wartości funkcji celu. 2. Probabilistic Tabu Search Metoda na ogół mniej skuteczna niż klasyczny Tabu Search, ale dużo wydajniejsza i przydatna, gdy funkcja celu jest skomplikowana i liczy się długo oraz, gdy przestrzeń przeszukiwania jest duża (oraz, co za tym idzie, być może sąsiedztwo). Probabilistic Tabu Search sprawdza tylko losowy podzbiór sąsiadów (zamiast wszystkich). 5
6 Ponadto randomizacja jest silnym mechanizmem anty-cyklowym, co pozwala skracać listę tabu. W związku z tym, że łatwo przeoczyć w ten sposób dobre rozwiązania, mimo że są one blisko, warto co kilka iteracji przeprowadzać kilka iteracji klasycznego Tabu Search (Glover i Laguna, 1993). Ewentualnie po zakończeniu działania Probabilistic Tabu Search, można włączyć klasyczny Tabu Search na kilka iteracji, aby zoptymalizować otrzymane rozwiązanie, tak by było przynajmniej optimum lokalnym. Pełny opis metody można znaleźć w [5]. 3. Reactive Tabu Search Metoda pozwala dynamicznie sterować długością listy tabu w trakcie działania algorytmu za cenę pamięciożerności i zwiększonej złożoności obliczeniowej. Pamiętając wszystkie dotychczasowe rozwiązania wraz z numerem iteracji, w pamięci długotrwałej, algorytm sprawdza powtarzalność uzyskiwanych rozwiązań. Jeżeli rozwiązania zaczynają się powtarzać, to algorytm w kolejnych iteracjach wolniej redukuje listę (co powoduje zwiększenie jej długości) niedopuszczając do powstania cyklów i uciekając z regionu przyciągania ekstremum lokalnego. Przypadek, gdy listę można skrócić zachodzi, gdy rozwiązania nie powtarzają się. Aby zmniejszyć złożoność, stosuje się haszowanie i kompresję (do rozróżnienia m rozwiązań wystarczy log(m) bitów). Pełny opis metody można znaleźć w [6]. 4. Tabu Cycle Method Metoda dzieli w trakcie działania listę tabu na grupy, gdzie k-ta grupa zawiera elementy dodane w określonym przedziale iteracji. Ruchy w grupie najmłodszej nr. 0, zwanej Buffer Group są zabronione na stałe. Algorytm pozwala na łamanie tabu dla starszych grup, z częstotliwością zależną od współczynnika T C(k) = n k + 1, gdzie k jest numerem grupy, a n liczbą grup. Współczynnik T C(k) mówi o tym, co ile iteracji wolno łamać tabu w grupie k-tej. Ponadto wprowadza się współczynnik CC(k) inkrementowany o 1 w każdej iteracji, w której nie następuje łamanie tabu w grupie k-tej. Jeżeli nastąpiło złamanie tabu, to h k CC(h) = CC(h) T C(h). W zależności od wyżej wymienionych współczynników, poszczególnym grupom nadawane są następujące statusy: - OFF grupie nigdy nie wolno łamać tabu, przypadek dla CC(k) < T C(K); - ON grupie wolno łamać tabu co T C(K) iteracji, przypadek CC(k) T C(K); - FREE na grupę nie jest nałożone żadne tabu, przypadek, gdy grupa jest ON i każda starsza od niej też jest ON. 6
7 Jeżeli dozwolony ruch dla grupy k-tej nie jest wykonany to: CC(k) = min(cc(k)+1, at C(k)), gdzie a jest odpowiednio dobranym współczynnikiem, który pilnuje jak dużą wielokrotność TC można osiągnąć (czasami CC(k) staje się tak duży, że grupy są ON lub wręcz FREE zbyt długo). Pełny opis metody można znaleźć w pracy autorstwa Glovera i Laguny z 1997 roku. 5. Iterated Tabu Search 5.1. Algorytm Uproszczony schemat ogólny algorytmu w pseudokodzie (w szczególności pewne metody nie zostały jawnie zdefiniowane i algorytm należy samodzielnie dospecyfikować, ze względu na specyfikę danego problemu): //losowe rozwiązanie startowe s = RANDOM SOLUTION() //wywołanie klasycznego Tabu Search na rozwiązaniu startowym s = TABU SEARCH(s) //zapamiętujemy najlepsze dotychczasowe rozwiązanie jako s* s* = s //pętla trwa dopóki nie zostaną spełnione określone warunki końcowe WHILE NOT(TERMINATION CONDITION) { //wybieranie rozwiązania do zoptymalizowania s = CANDIDATE ACCEPTANCE(s, s, s*, s,...) //rekonstrukcja wybranego rozwiązania s = RECONSTRUCTION(s) //wywołanie klasycznego Tabu Search na wybranym rozwiązaniu s = TABU SEARCH(s ) //najlepsze rozwiązanie zapamiętujemy if (f(s*) < f(s )) { s* = s } } return s* Oryginalna wersja omówionego w tej pracy algorytmu pochodzi z pracy [8] Zapamiętywanie rozwiązań Algorytm ITS zawsze zapamiętuje najlepsze znane do tej pory rozwiązanie jako s*. Reszta rozwiązań, która okazuje się słabsza, a w szczególności pewne rozwiązania pośrednie, również mogą być warte zapamiętywania (w zależności od strategii wyboru kandydatów do zoptymalizowania), ale trzymanie tych rozwiązań nie jest obowiązkowe. 7
8 5.3. Wybór kandydatów do zoptymalizowania Wybór, którego należy dokonać to pewien kompromis między intensyfikacją a dywersyfikacją przeszukiwania. Najprostszy pomysł polega na wyborze najlepszego znanego rozwiązania (s* w schemacie algorytmu) i może prowadzić (szczególnie przy słabszej metodzie rekonstrukcji) do intensyfikacji. Pomysł może sprzyjać również szybszej zbieżność. Inne pomysły, które wymagają pamiętania rozwiązań pośrednich, jak np. losowe wybieranie może prowadzić do dywersyfikacji. Często stosuje się też metodę WYA (skrót od ang. where are you ) polega na wyborze kolejnych optimów z poprzedniej iteracji, bez względu na ich jakość z globalnego punktu widzenia. Wszystkie inteligentniejsze metody wyboru rozwiązań wymagają znacznie bardziej wyspecjalizowanych metod, które dotyczą bardziej zaawansowanych algorytmów ewolucyjnych np. BOA (ang. Bayesian optimization algorithm), ECGA (ang. Extended Compact Genetic Algorithm), PBIL (ang. Population Based Incremental Learning). Pierwsze dwa dają już po kilku iteracjach pewną specyficzną wiedzę na temat zadania, pozwalają zlokalizować zależności między genami i wykorzystać uzyskaną wiedzę do dokonywania bardziej świadomych wyborów. Omawianie tych algorytmów przekracza znacznie temat tej pracy Rekonstrukcja rozwiązania Wybór metody rekonstrukcji rozwiązania to kolejny kompromis między intensyfikacją a dywersyfikacją przeszukiwania. Z jednej strony rekonstrukcja musi być na tyle silna, aby umożliwić skuteczną ucieczkę z regionu przyciągania ekstremum lokalnego. Z drugiej strony zależy nam na tym, aby nie tracić wiedzy o dobrych rozwiązaniach (jeżeli zaburzymy rozwiązanie zbyt mocno to algorytm stanie się zbyt losowy). 6. Opis problemu QAP 6.1. Opis problemu i specyfikacja Kwadratowy problem przydziału (ang. Quadratic assignment problem QAP) to jeden z najważniejszych NP-trudnych problemów optymalizacji kombinatorycznej. Przedstawiona poniżej interpretacja tego problemu jest jedną z wielu znanych. Dysponujemy zbiorami N fabryk i N lokacji oraz dwoma kwadratowymi macierzami rozmiaru N (macierz d odległości między każdą parą lokacji i macierz f wag między każdą parą fabryk), gdzie N jest parametrem algorytmu (liczbą naturalną). Zadanie polega na przypisaniu każdej z fabryk do jednej z lokacji (każdą do innej) tak, aby zminimalizować sumę iloczynów dystansów między lokacjami i odpowiadających wag. W praktyce chodzi o minimalizację pewnej funkcji celu: 8
9 N N min d[i][j] f[p[i]][p[j]] (1) p Π i=1 j=1 gdzie p jest wektorem przypisania. Wektor przypisania jest w rzeczywistości permutacją liczb naturalnych z zakresu [0,N), gdzie na i-tym polu odpowiadającym i-tej lokacji znajduje się numer fabryki, która jest przypisana do tej lokacji Źródło danych Wszystkie zestawy danych testowych w postaci plików o rozszerzeniu.dat pochodzą z serwisu QAPLIB - A Quadratic Assignment Problem Library (adres [2]). Struktura pliku z danymi składa się z trzech części: - liczba naturalna N; - poprzedzona pustym wierszem zawartość macierzy f (w każdej z N linijek jeden wiersz macierzy); - poprzedzona pustym wierszem zawartość macierzy d (w każdej z N linijek jeden wiersz macierzy). Serwis udostępnia ponadto najlepsze znane rozwiązania dla wszystkich udostępnionych testów. 7. Zastosowanie połączenia Tabu Search z algorytmem ewolucyjnym do rozwiązania problemu QAP 7.1. Algorytm Oryginalna wersja omówionego w tej pracy algorytmu pochodzi z pracy [1], wersja opisana w tej pracy została zaimplementowana na nowo, interpretując i rozszerzając pomysły z wersji oryginalnej Schemat ogólny zastosowanego algorytmu Uproszczony schemat ogólny algorytmu w pseudokodzie (w szczególności, w kodzie źródłowym nazwy poszczególnych metod i ich parametry są inne): //czyta dane z pliku READ DATA(file) //inicjuje obie populacje (zróżnicowaną i najlepszą) INIT BOTH POPULATIONS(DIV POP, BEST POP) //heurystyka Tabu Search 9
10 BEST POP UPDATE(BEST POP) //warunkiem końcowym jest osiągnięcie zadanej liczby iteracji FOR (i = 0; i < MAX-ITER; i++) { //jeżeli w poprzedniej iteracji nie dodano żadnego nowego rozwiązania if (!added) { //inicjujemy na nowo zróżnicowaną populację INIT DIV POPULATION(DIV POP) } // krzyżowanie osobników (krok zrównoleglony, osobno dla każdej pary) CHILDREN = CROSSOVER(DIV POP, BEST POP) // podmiana starego pokolenia na nowe (DIV POP, BEST POP) = REPLACEMENT(CHILDREN, DIV POP, BEST POP) //heurystyka Tabu Search BEST POP UPDATE(BEST POP) } Inicjowanie populacji Generujemy startowy zbiór rozwiązań wykorzystując wiedzę o typie problemu. Pewna z góry ustalona liczba mówi nam ile chcemy rozwiązań najlepszej jakości, a ile najbardziej różnorodnych (one rozszerzają nam przestrzeń poszukiwań i zmniejszają prawdopodobieństwo zbieżności do ekstremum lokalnego). Można stosować wyspecjalizowane heurystyki, ulepszające zbiór startowy. Wykorzystano tzw. metodę Glovera, która gwarantuje pewien poziom zróżnicowania w zbiorze rozwiązań (w przeciwieństwie do podejścia czysto losowego). Wygenerowane przez metodę wektory są poprawne i nie trzeba ich naprawiać. Jako ziarno wykorzystujemy 1 losowy, poprawny wektor x. Na podstawie ziarna tworzymy nowe rozwiązanie. Dane: - b naturalne, mniejsze od N; - s pozycja startowa, na początku równa b. Algorytm: Rozwiązanie x budujemy dodając najpierw element x[s], potem kolejno x[s + b], x[s + 2b],..., x[s + rb], gdzie r jest tak dobrane, że s+rb nie przekracza N. Kiedy dojdziemy do końca ziarna, to pozycja startowa zmniejsza się o 1 i cała operacja się powtarza aż nie zapełnimy całego wektora x (musimy odwiedzić wszystkie pozycje w x). 10
11 Tabu Search jako heurystyka usprawniająca Dla najlepszej populacji wygenerowanych osobników stosujemy metodę przeszukiwania tabu Erica Taillarda dla QAP. Heurystyka oblicza możliwe zamiany lokacji 2 firm, wykorzystując prostą listę tabu (ruchy niedozwolone). Aby zmusić algorytm do przeszukiwania niezbadanych fragmentów przestrzeni, wymieniane są ze sobą tylko te elementy, które nie były wymieniane przez kilka ostatnich iteracji (na podstawie listy tabu). Jeżeli jednak, zabroniona zmiana doprowadza do wyprodukowania najlepszego nieznanego do tej pory przez algorytm rozwiązania, to zamiana się dokonuje, mimo obecności na liście tabu (ang. aspiration criterion) Wybór rodziców i generowanie nowego zbioru rozwiązań Wszystkie rozwiązania ze zbioru łączymy w pary (metoda każdy z każdym). Stosujemy metodę path-relinking. Wektorami wiodącymi, zostają te, które są lepsze w swojej parze (lepiej optymalizują f. celu), potomek jest inicjowany wektorem niewiodącym. Iterujemy wektory. Jeżeli na napotkanej pozycji wektory rodziców nie różnią się, to odpowiadająca pozycja w potomku jest pozostawiana. Jeżeli na napotkanej pozycji wektory rodziców różnią się oraz pozycja ta w potomku nie była wcześniej zmieniana to do potomka przepisywana jest wartość z wektora wiodącego (pod warunkiem, że nie zwiększa wartości funkcji celu). Jeżeli pozycja była już rozważana to nie ulega zmianie (algorytm nigdy nie robi zamiany wstecz) Zamiana pokolenia Niech R1 to zbiór najlepszych rozwiązań oraz niech R2 to zbiór najbardziej zróżnicowanych rozwiązań. Nowe rozwiązanie wchodzi do R1, jeżeli jest lepsze niż najgorsze z tego zbioru i nie ma jego kopii ani w R1 ani w R2. Nowe rozwiązanie wchodzi do R2, jeżeli jest bardziej zróżnicowane niż najmniej zróżnicowane z tego zbioru i nie ma jego kopii ani w R1 ani w R2. Różnorodność rozwiązania x jest zdefiniowana jako dystans między tym rozwiązaniem, a wszystkimi rozwiązaniami z R Własne usprawnienia N x 1 R 1 d(x, x 1 ) = x x 1 (2) i=1 D(x, R 1 ) = d(x, x 1 ) (3) x 1 R 1 Populacja zróżnicowana jest inicjowana na nowo, jeżeli w ciągu pięciu kolejnych iteracji nie znaleziono nowego minimum. Różnorodność rozwiązania x jest zdefiniowana jako dystans między tym rozwiązaniem, a 11
12 wszystkimi rozwiązaniami z R1 oraz z R2. Zapobiega to zbieżności populacji zróżnicowanej do określonych wartości, bo nowe przedziały przeszukiwania rozwiązania zależą teraz także od populacji najlepszej Obsługa programu Kompilacja i uruchamianie Program został napisany w całości w języku C++ przy użyciu zestawu narzędzi programistycznych Dev-C++ w wersji Nie gwarantuję, że przy innej wersji zintegrowanego środowiska programistycznego, a w szczególności innej wersji kompilatora języka C++ program będzie działał poprawnie. Aplikacja była testowana pod systemem Windows XP Professional z zainstalowanym dodatkiem Service Pack 2 i jest przeznaczona wyłącznie dla systemów operacyjnych Microsoft Windows. Kod źródłowy implementacji znajduje się w całości w pliku main.cpp Wywołanie i parametry algorytmów Przed uruchomieniem algorytmu można ustawić następujące parametry (jako stałe zdefiniowane na początku kodu źródłowego): - wielkość populacji zróżnicowanej i najlepszej (stała P, domyślnie P = 50) łączna wielkość populacji wynosi więc 2P; - liczba iteracji (stała MAX ITER, domyślnie MAX ITER = 500). Pozostałe parametry dostarczane są wraz z plikiem z danymi, jego struktura została omówiona w jednym z poprzednich działów tej pracy. Przykładowe wywołanie skompilowanego programu: Projekt.exe < plik.dat, gdzie plik.dat to plik z danymi o odpowiedniej strukturze Testy Wyniki algorytmu Test Rozmiar MAX ITER MIN ITER P T %best known %opt Wil * % 3.4% Inst * % brak danych Sko100c * % 5.73% Sko100f * % 6.43% Esc * % 96.86% Tho * % 6.3% Tai150b * % 12.66% Inst * % brak danych Tai256c * % 2.03% 12
13 Oznaczenia Test nazwa testu. N rozmiar testu. MAX ITER liczba wszystkich iteracji, jakie wykonał algorytm. MIN ITER minimalna liczba iteracji, jakich potrzebuje algorytm do znalezienia najlepszego rozwiązania. P suma rozmiarów populacji. T liczba iteracji bez poprawy najlepszego rozwiązania, która skutkuje wygenerowaniem populacji zróżnicowanej na nowo. %best known procent o jaki gorsze jest rozwiązanie algorytmu od najlepszego znanego rozwiązania. %opt procent o jaki gorsze jest najlepsze znane rozwiązanie od optymalnego Komentarz do testów Badanie pokazało, że zastosowanie Tabu Search jako wspomagania innych heurystyk do rozwiązywania NP-trudnych, kombinatorycznych problemów takich jak QAP znajduje swoje uzasadnienie w praktyce. Algorytm we wszystkich opisanych testach znalazł rozwiązania niewiele gorsze od najlepszych znanych (w jednym przypadku udało się wyrównać najlepszy znany wynik). Ponadto na podstawie wyników ze strony QAP można zauważyć, że nie istnieje obecnie ani jeden algorytm heurysytyczny, który radziłby sobie wzorowo ze wszystkimi testami (najlepsze znane rezultaty są osiągane przez wiele implementacji, różnych algorytmów, nie tylko ewolucyjnych i Tabu Search). 13
14 Literatura [1] T. James, C. Rego, F. Glover Sequential and Parallel Path-Relinking Algorithms for the Quadratic Assignment Problem, IEEE Computer Society 2005; [2] (ostatni dostęp ); [3] gintaras/qproblem.html (ostatni dostęp ); [4] M.Laguna Exploration of Metaheuristic Optimization: Tabu Search, Scatter Search and Path Relinking ; [5] F.Glover, M.Laguna Tabu Search ; [6] R.Battiti, G. Tecchiolli The Reactive Tabu Search, ORSA Journal on Computing Vol.6, No. 2 (1994); [7] M.Laguna Implementing and Testing the Tabu Cycle and Conditional Probability Methods, Leeds School of Business University of Colorado Boulder,(2005); [8] A. Misevicius, A. Lenkevicius, D. Rubliauskas Iterated Tabu Search: An Improvement To Standrard Tabu Search, Information Technology and Control, 2006, Vol. 35, No
Optymalizacja. Przeszukiwanie lokalne
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x
Optymalizacja. Przeszukiwanie tabu
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Naturalny sposób powstania algorytmu Algorytm optymalizacji lokalnej Niezdolność wyjścia z lokalnych
Optymalizacja. Przeszukiwanie tabu
dr inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Naturalny sposób powstania algorytmu Algorytm największego spadku niezdolność wyjścia z lokalnych optimów!
Optymalizacja. Wybrane algorytmy
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem
Metody Optymalizacji: Przeszukiwanie z listą tabu
Metody Optymalizacji: Przeszukiwanie z listą tabu Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: wtorek
Algorytm genetyczny (genetic algorithm)-
Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie
Optymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)
Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne) 1 2 Wstęp Termin zaproponowany przez Pablo Moscato (1989). Kombinacja algorytmu ewolucyjnego z algorytmem poszukiwań lokalnych, tak że algorytm poszukiwań
Techniki optymalizacji
Techniki optymalizacji Dokładne algorytmy optymalizacji Maciej Hapke maciej.hapke at put.poznan.pl Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem minimalizacji
znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
Tabu Search (Poszukiwanie z zakazami)
Tabu Search (Poszukiwanie z zakazami) Heurystyka - technika znajdująca dobre rozwiązanie problemu (np. optymalizacji kombinatorycznej) przy rozsądnych (akceptowalnych z punktu widzenia celu) nakładach
Algorytmy metaheurystyczne podsumowanie
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem
Przeszukiwanie lokalne
Przeszukiwanie lokalne 1. Klasyfikacja algorytmów 2. Przeszukiwanie lokalne 1. Klasyfikacja algorytmów Algorytmy dokładne znajdują rozwiązanie optymalne, 1. Klasyfikacja algorytmów Algorytmy dokładne znajdują
6. Pętle while. Przykłady
6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!
Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego
Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Piotr Rybak Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Piotr Rybak (Migacz UWr) Odkrywanie algorytmów kwantowych 1 / 17 Spis
Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski
Podejście memetyczne do problemu DCVRP - wstępne wyniki Adam Żychowski Na podstawie prac X. S. Chen, L. Feng, Y. S. Ong A Self-Adaptive Memeplexes Robust Search Scheme for solving Stochastic Demands Vehicle
PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA
PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana
Wybrane podstawowe rodzaje algorytmów
Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Programowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
ZASTOSOWANIE ALGORYTMÓW POSZUKIWANIA Z TABU DO OPTYMALIZACJI UKŁADANIA PLANU ZAJĘĆ
Studia i Materiały Informatyki Stosowanej, Tom 2, Nr 2, 2010 str. 59-66 ZASTOSOWANIE ALGORYTMÓW POSZUKIWANIA Z TABU DO OPTYMALIZACJI UKŁADANIA PLANU ZAJĘĆ Eliza Witczak Uniwersytet Kazimierza Wielkiego
Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane
Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne
SZTUCZNA INTELIGENCJA
SZTUCZNA INTELIGENCJA WYKŁAD 13. PROBLEMY OPTYMALIZACYJNE Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska PROBLEMY OPTYMALIZACYJNE Optymalizacja poszukiwanie
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Programowanie dynamiczne cz. 2
Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy
Zadanie 5 - Algorytmy genetyczne (optymalizacja)
Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania
Optymalizacja systemów
Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji
Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP
Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP Łukasz Strąk lukasz.strak@gmail.com Uniwersytet Śląski, Instytut Informatyki, Będzińska 39, 41-205 Sosnowiec 9 grudnia
Dobór parametrów algorytmu ewolucyjnego
Dobór parametrów algorytmu ewolucyjnego 1 2 Wstęp Algorytm ewolucyjny posiada wiele parametrów. Przykładowo dla algorytmu genetycznego są to: prawdopodobieństwa stosowania operatorów mutacji i krzyżowania.
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Optymalizacja ciągła
Optymalizacja ciągła 5. Metody kierunków poparwy (metoda Newtona-Raphsona, metoda gradientów sprzężonych) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.03.2019 1
Maciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000
Wstęp do programowania
Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej
ALHE. prof. Jarosław Arabas semestr 15Z
ALHE prof. Jarosław Arabas semestr 15Z Wykład 5 Błądzenie przypadkowe, Algorytm wspinaczkowy, Przeszukiwanie ze zmiennym sąsiedztwem, Tabu, Symulowane wyżarzanie 1. Błądzenie przypadkowe: Pierwszym krokiem
Zaawansowane programowanie
Zaawansowane programowanie wykład 3: inne heurystyki prof. dr hab. inż. Marta Kasprzak Instytut Informatyki, Politechnika Poznańska Heurystyką nazywamy algorytm (metodę) zwracający rozwiązanie przybliżone.
Techniki optymalizacji
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żą
Algorytm grupowania danych typu kwantyzacji wektorów
Algorytm grupowania danych typu kwantyzacji wektorów Wstęp Definicja problemu: Typowe, problemem często spotykanym w zagadnieniach eksploracji danych (ang. data mining) jest zagadnienie grupowania danych
Priorytetyzacja przypadków testowych za pomocą macierzy
Priorytetyzacja przypadków testowych za pomocą macierzy W niniejszym artykule przedstawiony został problem przyporządkowania priorytetów do przypadków testowych przed rozpoczęciem testów oprogramowania.
Algorytmy ewolucyjne (3)
Algorytmy ewolucyjne (3) http://zajecia.jakubw.pl/nai KODOWANIE PERMUTACJI W pewnych zastosowaniach kodowanie binarne jest mniej naturalne, niż inne sposoby kodowania. Na przykład, w problemie komiwojażera
Zadania laboratoryjne i projektowe - wersja β
Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki
0 + 0 = 0, = 1, = 1, = 0.
5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,
Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).
Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze
Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek
Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania
Seminarium Zakładowe IDSS. Równoległe obliczenia metaheurystyczne z wykorzystaniem klastra obliczeniowego
Seminarium Zakładowe IDSS Równoległe obliczenia metaheurystyczne z wykorzystaniem klastra obliczeniowego Krzysztof Kowalczykiewicz Marek Kubiak Dawid Weiss Przemysław Wesołek Motywacje raz jeszcze... Zagospodarowanie
Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I
Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje:
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych
Algorytmy genetyczne
Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą
Problemy z ograniczeniami
Problemy z ograniczeniami 1 2 Dlaczego zadania z ograniczeniami Wiele praktycznych problemów to problemy z ograniczeniami. Problemy trudne obliczeniowo (np-trudne) to prawie zawsze problemy z ograniczeniami.
mgr inż. Magdalena Deckert Poznań, r. Metody przyrostowego uczenia się ze strumieni danych.
mgr inż. Magdalena Deckert Poznań, 30.11.2010r. Metody przyrostowego uczenia się ze strumieni danych. Plan prezentacji Wstęp Concept drift i typy zmian Algorytmy przyrostowego uczenia się ze strumieni
Automatyczny dobór parametrów algorytmu genetycznego
Automatyczny dobór parametrów algorytmu genetycznego Remigiusz Modrzejewski 22 grudnia 2008 Plan prezentacji Wstęp Atrakcyjność Pułapki Klasyfikacja Wstęp Atrakcyjność Pułapki Klasyfikacja Konstrukcja
Algorytmy genetyczne
9 listopada 2010 y ewolucyjne - zbiór metod optymalizacji inspirowanych analogiami biologicznymi (ewolucja naturalna). Pojęcia odwzorowujące naturalne zjawiska: Osobnik Populacja Genotyp Fenotyp Gen Chromosom
Zadanie 1: Piętnastka
Informatyka, studia dzienne, inż. I st. semestr VI Sztuczna Inteligencja i Systemy Ekspertowe 2010/2011 Prowadzący: mgr Michał Pryczek piątek, 12:00 Data oddania: Ocena: Grzegorz Graczyk 150875 Marek Rogalski
Optymalizacja systemów
Optymalizacja systemów Laboratorium Zadanie nr 3 Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania
Analiza stanów gry na potrzeby UCT w DVRP
Analiza stanów gry na potrzeby UCT w DVRP Seminarium IO na MiNI 04.11.2014 Michał Okulewicz based on the decision DEC-2012/07/B/ST6/01527 Plan prezentacji Definicja problemu DVRP DVRP na potrzeby UCB Analiza
ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ
ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ Maciej Patan Uniwersytet Zielonogórski WSTEP Zadanie minimalizacji bez ograniczeń f(ˆx) = min x R nf(x) f : R n R funkcja ograniczona z dołu Algorytm rozwiazywania Rekurencyjny
Klasyczne zagadnienie przydziału
Klasyczne zagadnienie przydziału Można wyodrębnić kilka grup problemów, w których zadaniem jest odpowiednie rozmieszczenie posiadanych zasobów. Najprostszy problem tej grupy nazywamy klasycznym zagadnieniem
Kompresja danych Streszczenie Studia Dzienne Wykład 10,
1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny
Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek
Problem zapożyczania kanałów z wykorzystaniem narzędzi optymalizacji Wprowadzenie Rozwiązanie problemu przydziału częstotliwości prowadzi do stanu, w którym każdej stacji bazowej przydzielono żądaną liczbę
Algorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
6. Klasyczny algorytm genetyczny. 1
6. Klasyczny algorytm genetyczny. 1 Idea algorytmu genetycznego została zaczerpnięta z nauk przyrodniczych opisujących zjawiska doboru naturalnego i dziedziczenia. Mechanizmy te polegają na przetrwaniu
Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania
Techniki optymalizacji
Techniki optymalizacji Wprowadzenie Maciej Hapke maciej.hapke at put.poznan.pl Literatura D.E. Goldberg Algorytmy genetyczne i zastosowania, WNT, 1995 Z. Michalewicz Algorytmy genetyczne + struktury danych
Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633
Grupowanie Grupowanie 7 6 5 4 y 3 2 1 0-3 -2-1 0 1 2 3 4 5-1 -2-3 -4 x Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633 Wprowadzenie Celem procesu grupowania jest podział zbioru
3. Macierze i Układy Równań Liniowych
3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x
LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania
Metody numeryczne w przykładach
Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach
Temat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych
Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych Artykuł przeznaczony jest dla osób związanych z testowaniem, programowaniem, jakością oraz wytwarzaniem oprogramowania, wymaga jednak
Algorytmy heurystyczne w UCB dla DVRP
Algorytmy heurystyczne w UCB dla DVRP Seminarium IO na MiNI 24.03.2015 Michał Okulewicz based on the decision DEC-2012/07/B/ST6/01527 Plan prezentacji Definicja problemu DVRP UCB na potrzeby DVRP Algorytmy
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Strategie ewolucyjne (ang. evolu4on strategies)
Strategie ewolucyjne (ang. evolu4on strategies) Strategia ewolucyjna (1+1) W Strategii Ewolucyjnej(1 + 1), populacja złożona z jednego osobnika generuje jednego potomka. Kolejne (jednoelementowe) populacje
Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.
Algorytmy genetyczne jako metoda wyszukiwania wzorców Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż. Marcin Borkowski Krótko i na temat: Cel pracy Opis modyfikacji AG Zastosowania
Mrówka Pachycondyla apicalis
Mrówka Pachycondyla apicalis Mrówki Pachycondyla apicalis wystepują w lasach południowego Meksyku, północnej Argentyny i Kostaryki. Wystepuja zarówno w lasach wilgotnych jak i suchych. Mrówki te polują
Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski
Systemy mrówkowe Opracowali: Dawid Strucker, Konrad Baranowski Wprowadzenie Algorytmy mrówkowe oparte są o zasadę inteligencji roju (ang. swarm intelligence). Służą głównie do znajdowania najkrótszej drogi
Metoda eliminacji Gaussa. Autorzy: Michał Góra
Metoda eliminacji Gaussa Autorzy: Michał Góra 9 Metoda eliminacji Gaussa Autor: Michał Góra Przedstawiony poniżej sposób rozwiązywania układów równań liniowych jest pewnym uproszczeniem algorytmu zwanego
Generowanie i optymalizacja harmonogramu za pomoca
Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska
Metody Programowania
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie
Rozwiązywanie układów równań liniowych
Rozwiązywanie układów równań liniowych Marcin Orchel 1 Wstęp Jeśli znamy macierz odwrotną A 1, to możęmy znaleźć rozwiązanie układu Ax = b w wyniku mnożenia x = A 1 b (1) 1.1 Metoda eliminacji Gaussa Pierwszy
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Metoda poszukiwania TABU w zastosowaniu do optymalizacji harmonogramu dostaw sieci dystrybucji towarów. Przykład przemysłu meblarskiego
Metoda poszukiwania TABU w zastosowaniu do optymalizacji harmonogramu dostaw sieci dystrybucji towarów. Przykład przemysłu meblarskiego POLLOCO Olgierd Dziamski Olgierd.Dziamski@gs1pl.org 23-11-2005 1
Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott
Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu
1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie
Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?
Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz
Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.
Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2011-10-11 1 Modelowanie funkcji logicznych
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Techniki optymalizacji
Techniki optymalizacji Metaheurystyki oparte na algorytmach lokalnego przeszukiwania Maciej Hapke maciej.hapke at put.poznan.pl GRASP Greedy Randomized Adaptive Search Procedure T.A. Feo, M.G.C. Resende,
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest
Metody przeszukiwania
Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki
Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Obliczenia ewolucyjne (EC evolutionary computing) lub algorytmy ewolucyjne (EA evolutionary algorithms) to ogólne określenia używane
Programowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka
Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu
Optymalizacja systemów
Optymalizacja systemów Laboratorium Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania binarnego.
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Algorytmy ewolucyjne NAZEWNICTWO
Algorytmy ewolucyjne http://zajecia.jakubw.pl/nai NAZEWNICTWO Algorytmy ewolucyjne nazwa ogólna, obejmująca metody szczegółowe, jak np.: algorytmy genetyczne programowanie genetyczne strategie ewolucyjne
Przeciążanie operatorów
Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz