Optymalizacja. Przeszukiwanie tabu

Podobne dokumenty
Optymalizacja. Przeszukiwanie tabu

Optymalizacja. Przeszukiwanie lokalne

Metody Optymalizacji: Przeszukiwanie z listą tabu

Optymalizacja. Symulowane wyżarzanie

Optymalizacja. Wybrane algorytmy

Algorytmy metaheurystyczne podsumowanie

Tabu Search (Poszukiwanie z zakazami)

Techniki optymalizacji

Optymalizacja. Algorytmy dokładne

Optymalizacja. Algorytmy dokładne

Algorytmy zrandomizowane

Sortowanie topologiczne skierowanych grafów acyklicznych

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Techniki optymalizacji

Rozdział 9 PROGRAMOWANIE DYNAMICZNE

Uczenie sieci typu MLP

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Mrówka Pachycondyla apicalis

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

Techniki optymalizacji

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Algorytmy i struktury danych

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

PODEJMOWANIE DECYZJI W WARUNKACH NIEPEŁNEJ INFORMACJI

Luty 2001 Algorytmy (7) 2000/2001

Heurystyki w podejmowaniu decyzji

Wstęp do programowania

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Metody ilościowe w badaniach ekonomicznych

Znajdowanie największego i najmniejszego elementu w zbiorze n liczb całkowitych

Wstęp do programowania

ZASTOSOWANIE ALGORYTMÓW POSZUKIWANIA Z TABU DO OPTYMALIZACJI UKŁADANIA PLANU ZAJĘĆ

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Wybrane podstawowe rodzaje algorytmów

Planowanie drogi robota, algorytm A*

Przeszukiwanie lokalne

Algorytm selekcji Hoare a. Łukasz Miemus

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

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

RÓWNANIA NIELINIOWE Maciej Patan

Modelowanie procesów współbieżnych

ALHE Z11 Jarosław Arabas wykład 11

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Rozwiązywanie problemów metodą przeszukiwania

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

ALHE. prof. Jarosław Arabas semestr 15Z

Instrukcje cykliczne (pętle) WHILE...END WHILE

Matematyczne Podstawy Informatyki

Sieć Hopfielda. Sieci rekurencyjne. Ewa Adamus. ZUT Wydział Informatyki Instytut Sztucznej Inteligencji i Metod Matematycznych.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Ilość cyfr liczby naturalnej

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Pole wielokąta. Wejście. Wyjście. Przykład

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

P(F=1) F P(C1 = 1 F = 1) P(C1 = 1 F = 0) P(C2 = 1 F = 1) P(C2 = 1 F = 0) P(R = 1 C2 = 1) P(R = 1 C2 = 0)

Wstęp do programowania

Hyper-resolution. Śmieciarki w Manncheim

Algorytm memetyczny dla rzeczywistego problemu planowania tras pojazdów

Temat: Algorytmy zachłanne

Schemat programowania dynamicznego (ang. dynamic programming)

dr inż. Jarosław Forenc

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Zaawansowane programowanie

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Algorytmy dla maszyny PRAM

Metody przeszukiwania lokalnego

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Eksploracja danych. KLASYFIKACJA I REGRESJA cz. 2. Wojciech Waloszek. Teresa Zawadzka.

Wstęp do programowania

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Heurystyki. Strategie poszukiwań

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Elementy inteligencji obliczeniowej

Programowanie RAD Delphi

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Instrukcje iteracyjne (pętle)

Strategie ewolucyjne (ang. evolu4on strategies)

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

PSO Rój cząsteczek - Particle Swarm Optimization. Michał Szopiak

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Zasady Programowania Strukturalnego

Określanie ważności atrybutów. RapidMiner

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Algorytm. a programowanie -

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Optymalizacja ciągła

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

6. Pętle while. Przykłady

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Podstawy programowania

Metody Programowania

Transkrypt:

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! Ulepszony algorytm największego spadku (akceptacja ruchów niepolepszających, podzbiór sąsiedztwa V N) cykle! Lista tabu za dużo zakazanych ruchów! Poziom aspiracji akceptacja atrakcyjnych ruchów zakazanych Algorytm przeszukiwania tabu.

Przeszukiwanie tabu Główna idea wykorzystanie pamięci Zapamiętywanie rozwiązań lub ruchów (zmian)

Przykład zapamiętywania ruchów tabu (0) Struktura listy tabu: Wewnątrz numer kadencji (ilość iteracji tabu do końca). Iteracja 0 (punkt startowy, kryterium maksymalizacji) Rozwiązanie bieżące wartość=10

Przykład zapamiętywania ruchów tabu (1, 2) Iteracja 1 Rozwiązanie bieżące wartość=16 Iteracja 2 Rozwiązanie bieżące wartość=18

Przykład zapamiętywania ruchów tabu (3, 4) Iteracja 3 Rozwiązanie bieżące wartość=14 Super! Iteracja 4 Rozwiązanie bieżące wartość=20

Recency-based memory vs. frequency-based memory Częstość wystąpień poszczególnych ruchów może być wykorzystana do rozrzucenia obliczen po całej przestrzeni rozwiązań dopuszczalnych (dywersyfikacja). Ruchy często powtarzane uzyskują karę w przypadku, gdy nie polepszaja wartości rozwiązania. Zwykle częstość ta jest w jakiś sposób normalizowana (dzielenie przez wykonaną lub maksymalną liczbę iteracji). Dywersyfikacja jest przydatna tylko w określonych warunkach (np. gdy nie ma żadnych polepszeń). Iteracja 26. p = v kara za częstość

Przeszukiwanie tabu procedure PRZESZUKIWANIE TABU begin INICJALIZUJ(xstart, xbest, T ) x := xstart repeat GENERUJ(V N(x)) WYBIERZ(x ) //najlepsze f w V + aspiracja UAKTUALNIJ LISTĘ TABU(T ) if f (x ) f (xbest) then xbest := x x := x until WARUNEK STOPU end

Obserwacje Algorytm jest deterministyczny Autor TS: zły wybór strategiczny jest lepszy niż dobry wybór losowy (bo daje jakieś informacje, wiedza wzrasta) Nowość: zbiór V (lista kandydatów)

Lista kandydatów Po co: żeby w każdej iteracji nie przeglądać i nie oceniać całego sąsiedztwa Jaki podzbiór sąsiadów N ma być kandydatami V N? kandydaci = dobrzy sąsiedzi wyodrębnić regiony sąsiedztwa zawierające ruchy o pewnych pożądanych cechach...

Konstrukcja listy kandydatów. Strategia 1: Aspiracja plus próg jakości ruchu bazuje na historii przeszukiwania przeszukiwanie sąsiedztwa, aż do znalezienia sąsiada lepszego o pewną wartość progową (plus) liczba kandydatów rośnie aż do osiągnięcia wartości progowej wybieramy najlepszy znaleziony dotąd ruch Min ilość sąsiadów sprawdzonych Max poziom aspiracji może być zmienny w trakcie przeszukiwania strategia zwraca 1 lub więcej dobrych sąsiadów

Konstrukcja listy kandydatów. Strategia 2: Elitarna lista kandydatów (master list) Motywacja dobry ruch jeśli nie jest wykonany w bieżącej iteracji, będzie wciąż dobry w kilku następnych tworzenie master list sprawdzenie wszystkich lub większości ruchów, wybór k najlepszych (k jest parametrem) w następnych iteracjach aktualnie najlepszy ruch ze zbioru k ruchów jest wybierany do wykonania, aż jakość ruchu spadnie poniżej danego progu, lub zostanie osiągnięta pewna liczba iteracji

Kryteria aspiracji Cel: określić kiedy restrykcje tabu mogą zostać pominięte Pierwsze kryterium aspiracji: usunąć ograniczenie tabu wtedy, gdy ruch da rozwiązanie lepsze od znalezionego do tej pory Aspiracja domniemana Jeżeli wszystkie ruchy są tabu i nie są dozwolone przez inne kryteria, to wybierany jest ruch najmniej tabu Aspiracja wg kryterium Forma globalna ruch tabu jest akceptowany jeżeli c(x ) < best cost Forma regionalna (przestrzeń dzieli się na podregiony R) ruch tabu jest akceptowany jeżeli c(x ) < best cost(r)

Intensyfikacja i dywersyfikacja (exploitation and exploration) Intensyfikacja W dobrych rejonach Powrót do najlepszego rozwiązania znalezionego do tej pory Skrócenie listy Tabu (short term memory) Pamięć długotrwała (long term memory) każde rozwiązanie lub ruch to zbiór komponentów zapamiętywanie komponentów dobrych ruchów lub rozwiązań w czasie obliczeń w czasie intensyfikacji ruchy i rozwiązania włączają dobre komponenty Pamięć długotrwała daje możliwość uczenia się Dywersyfikacja Dla rzadko odwiedzanych rejonów Karanie często wykonywanych ruchów ucieczka z rejonu Mechanizmy te modyfikują jakoś funkcję celu: f = f + Int + Div