Tabu Search (Poszukiwanie z zakazami)

Podobne dokumenty
Metody Programowania

Metody Optymalizacji: Przeszukiwanie z listą tabu

Optymalizacja. Wybrane algorytmy

Optymalizacja. Przeszukiwanie lokalne

Techniki optymalizacji

Optymalizacja. Przeszukiwanie tabu

Przeszukiwanie lokalne

Metody przeszukiwania lokalnego

Wybrane podstawowe rodzaje algorytmów

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

Schemat programowania dynamicznego (ang. dynamic programming)

Optymalizacja. Przeszukiwanie tabu

Złożoność obliczeniowa

Algorytmy metaheurystyczne podsumowanie

Wstęp do Sztucznej Inteligencji

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

Automatyczne planowanie oparte na sprawdzaniu spełnialności

Planowanie drogi robota, algorytm A*

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

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

Zaawansowane programowanie

Algorytmy zrandomizowane

Techniki optymalizacji

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

SZTUCZNA INTELIGENCJA

Aproksymacja funkcji a regresja symboliczna

Metody optymalizacji dyskretnej

Heurystyki. Strategie poszukiwań

Dobór parametrów algorytmu ewolucyjnego

Rozdział 1 PROGRAMOWANIE LINIOWE

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

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

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy i struktury danych. Wykład 4

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

Algorytm genetyczny (genetic algorithm)-

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Teoria obliczeń i złożoność obliczeniowa

ALHE. prof. Jarosław Arabas semestr 15Z

ZAGADNIENIE TRANSPORTOWE

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Zadania laboratoryjne i projektowe - wersja β

Zadanie 1: Piętnastka

Obliczenia iteracyjne

Metody numeryczne I Równania nieliniowe

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Techniki optymalizacji

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

Algorytmy genetyczne

Problem Komiwojażera - algorytmy metaheurystyczne

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Przykłady problemów optymalizacyjnych

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Optymalizacja ciągła

Programowanie w VB Proste algorytmy sortowania

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

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

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

INTERPOLACJA I APROKSYMACJA FUNKCJI

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Przegląd metod optymalizacji wielowymiarowej. Funkcja testowa. Funkcja testowa. Notes. Notes. Notes. Notes. Tomasz M. Gwizdałła

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

Algorytmy sztucznej inteligencji

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Imię, nazwisko, nr indeksu

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory

METODY OPTYMALIZACJI. Tomasz M. Gwizdałła 2018/19

Zaawansowane programowanie

Metody przeszukiwania

1 Równania nieliniowe

Optymalizacja systemów

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Algorytm grupowania danych typu kwantyzacji wektorów

Metody optymalizacji dyskretnej. Metody przybliżone

Optymalizacja. Symulowane wyżarzanie

Algorytm wspinaczkowy dla zadania k-sat

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Rozwiązywanie problemów metodą przeszukiwania

Metody systemowe i decyzyjne w informatyce

Optymalizacja ciągła

Algorytmika Problemów Trudnych

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

Programowanie celowe #1

Wielokryteriowa optymalizacja liniowa cz.2

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Programowanie dynamiczne cz. 2

Zasady analizy algorytmów

Metody Rozmyte i Algorytmy Ewolucyjne

9.9 Algorytmy przeglądu

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

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

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Transkrypt:

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 obliczeniowych, bez gwarancji osiągalności i optymalności rozwiązania oraz bez określenia jakości rozwiązania (odległości od rozwiązania optymalnego). Metaheurystyka - ogólna metoda rozwiązywania dowolnych problemów obliczeniowych, które można opisać za pomocą zdefiniowanych przez tę metodę pojęć. Metaheurystyki definiują sposób tworzenia algorytmów do rozwiązywania konkretnych problemów. (+) akceptowalna złożoność (+) elastyczność ( ) realistyczne założenia (dokładne rozwiązanie - przybliżony model albo przybliżone rozwiązanie - dokładny model) Za twórcę uznawany jest Fred W. Glover, który w latach 70-tych opublikował kilka prac związanych z tym sposobem poszukiwania rozwiązania. Pytanie 1 Jak definiowana jest metaheurystyka Tabu Search?

Definicje Tabu Search 1. TS może być określona jako metoda dynamicznej zmiany sąsiedztwa danego rozwiązania, co oznacza że N(x) nie jest stałe (jednorazowo określone) dla każdego x, lecz może zmieniać się w zależności od informacji na temat rozwiązywanego problemu, zgromadzonych na wcześniejszych etapach poszukiwania. 2. TS jest metaheurystyką do rozwiązywania problemów optymalizacyjnych, opartą na iteracyjnym przeszukiwaniu przestrzeni rozwiązań, wykorzystującą (zmienne) sąsiedztwo pewnych rozwiązań, zapamiętującą niektóre ruchy (transformacje rozwiązań) i częstość ich występowania, w celu unikania minimów lokalnych i poszukiwania rozwiązań globalnie optymalnych w rozsądnym czasie. 3. TS rozumie się jako nakładanie ograniczeń i wykorzystanie tych ograniczeń w celu unikania minimów lokalnych i cykli (w poszukiwaniu) oraz przeszukiwania przestrzeni rozwiązań w obszarach obiecujących ze względu na możliwość znalezienia rozwiązań globalnie optymalnych.

Tabu Search - metoda ogólna rozwiązywania problemów optymalizacji kombinatorycznej. Zastosowanie TS wymaga: znajomości problemu, elementów charakterystycznych metody: funkcja oceny wartości ruchu - mval(x, y) - im jej wartość wyższa, tym rozwiązanie lepsze, lista ruchów zakazanych (tabu list), kryterium aspiracji, strategia dywersyfikacji, metoda zdarzeń krytycznych, warunek zakończenia. umiejętności przyporządkowania parametrów zadania do ww. elementów.

TS1 wygeneruj losowo rozwiązanie początkowe x 0 X x opt x 0 repeat znajdź w N(x 0 ) takie x, dla którego m val (x 0, x) jest największa x 0 x if f(x 0 ) > f(x opt ) then x opt x 0 until warunek zakończenia Pytanie 2 Jaka jest najprostsza funkcja oceny m val (x, y)?

TS1 wygeneruj losowo rozwiązanie początkowe x 0 X x opt x 0 repeat znajdź w N(x 0 ) takie x, dla którego m val (x 0, x) jest największa x 0 x if f(x 0 ) > f(x opt ) then x opt x 0 until warunek zakończenia Najprostsza funkcja oceny to np. m val (x, y) = f(x) f(y) Pytanie 3 Co przypomina ten algorytm? Pytanie 4 O co należy go uzupełnić, aby był efektywniejszy, skoro mówimy o przeszukiwaniu z zakazami?

Lista ruchów zakazanych tabu list = (atrybut 1, kadencja 1 ), (atrybut 2, kadencja 2 ),... ((atrybut n, kadencja n ) Ruch z x do y N(x) jest zakazany (przeszukiwanie z zakazami), jeżeli pewien jego atrybut znajduje się na liście ruchów zakazanych (tabu list). Kadencja określa liczbę iteracji, przez którą element (atrybut i, kadencja i ) znajduje się na liście tabu. Pytanie 5 Jak zatem zdefiniowane jest teraz sąsiedztwo?

Lista ruchów zakazanych tabu list = (atrybut 1, kadencja 1 ), (atrybut 2, kadencja 2 ),... ((atrybut n, kadencja n ) Ruch z x do y N(x) jest zakazany (przeszukiwanie z zakazami), jeżeli pewien jego atrybut znajduje się na liście ruchów zakazanych (tabu list). Kadencja określa liczbę iteracji, przez którą element (atrybut i, kadencja i ) znajduje się na liście tabu. Aktualna definicja sąsiedztwa: N (x) = {y y N(x) y tabu list}

TS2 wybierz lub wylosuj punkt startowy x 0 X x opt x 0 tabu list repeat znajdź x N (x 0 ), dla którego m val (x 0, x) jest największa x 0 x if f(x 0 ) > f(x opt ) then x opt x 0 zweryfikuj tabu list - dodaj nowe elementy element tabu list do kadencja i if kadencja i = 0 then usuń element(atrybut i, kadencja i ) z tabu list until warunek zakończenia Pytanie 6 Co zyskujemy, a czego nadal brakuje?

TS2 Zalety Wady zmniejsza ryzyko wpadnięcia w cykl - im dłuższe kadencje, tym zagrożenie mniejsze, umożliwia systematyczne przeszukiwanie z dala od punktu początkowego. część dobrych ruchów może zostać zakazanych (dlaczego?) trudność(?) w wyznaczaniu kadencji; jak wyznaczać ich długość?

Wyznaczanie kadencji Ogólne zalecenia dotyczące długości kadencji (potwierdzone empirycznie) 1. zależne od wielkości - im większy rozmiar instancji tym dłuższe kadencje, 2. im mniejszy średni współczynnik N (x) N(x), tym kadencje powinny być krótsze. Pytanie 7 Krótkie czy długie kadencje, jaki jest zysk, jakie różnice?

Długość kadencji a zachowanie algorytmu (krótka) większa dokładność przeszukiwania (Intensyfikacja), większe ryzyko wpadnięcia w cykl w okolicach lokalnego minimum. (długa) większy zakres przeszukiwania (Dywersyfikacja), gorsza jakość rozwiązań ze względu na brak dokładniejszego przeszukiwania sąsiedztwa. Pytanie 8 Jak ustalać długość kadencji?

Długość kadencji 1. Stała kadencja dla każdego elementu tabu list. 2. Ustalana losowo dla każdego elementu tabu list. 3. Wybierana cyklicznie z zadanego zbioru... np. (12, 8, 6, 4, 1). 4. Zależna od częstości wyboru elementu w h wcześniejszych ruchach. 5. Stała/losowa/cykliczna dla każdego typu elementu listy tabu. 6. inne sposoby Generalnie, metoda wyboru i długości kadencji zależne są problemu, instancji oraz wykonanych eksperymentów.

Kryterium aspiracji Zastosowanie tabu list może prowadzić do pomijania (zakazywania) niektórych znakomitych (ze względu na wartość funkcji celu) ruchów. Intuicja podpowiada, że czasem warto a nawet należy zrezygnować ze ścisłego podporządkowania się zasadom, jeśli ich złamanie prowadzi do znacznie lepszego rozwiązania. W przypadku metody Tabu Search zachowanie takie zostało nazwane kryterium aspiracji. Jest to pewien warunek, który mówi że jeśli w otoczeniu rozwiązania znalezione zostało znakomite rozwiązanie tabu (będące na tabu list), to właśnie to rozwiązanie jest brane jako kolejne. Kryterium aspiracji anuluje zakaz ruchu wynikający z tabu list. Pytanie 9 Jak ustala się kryterium aspiracji? Pytanie 10 Jak wygląda definicja sąsiedztwa z kryterium aspiracji?

Kryterium aspiracji 1. Ruch prowadzi do rozwiązania tabu (y) lepszego niż najlepsze dotąd znalezione (x opt ) - f(y) < f(x opt ) 2. Wartość ruchu do rozwiązania tabu (y) jest większa od pewnego parametru α. m val (x, y) α 3. Inne, wynikające z dotychczasowego przebiegu algorytmu lub wiedzy o problemie. Aktualna definicja sąsiedztwa: N (x) = {y y N(x) y tabu list Aspiration(x, y)}

TS3 z kryterium aspiracji wybierz lub wylosuj punkt startowy x 0 X x opt x 0 tabu list repeat znajdź x N (x 0 ), dla którego m val (x 0, x) jest największa x 0 x if f(x 0 ) > f(x opt ) then x opt x 0 zweryfikuj tabu list element tabu list do kadencja i if kadencja i = 0 then usuń element(atrybut i, kadencja i ) z tabu list until warunek zakończenia Pytanie 11 Jak zmniejszyć czasochłonność kroku 5? Pytanie 12 Jaki jest poziom dywersyfikacji i intensyfikacji w tym algorytmie?

Strategia wyboru rozwiązań - aspiration plus 1. Wyznaczany jest przedział d = (minm, maxm) przeglądanych rozwiązań. 2. Jeżeli m val (x, y) > Aspiration, wtedy przeglądanych jest jeszcze tylko P lus rozwiązań z zakresu d. 3. Kolejnym rozwiązaniem staje się to, dla którego m val (x, y) jest największa. Pytanie 13 Jak zwiększyć poziom dywersyfikacji?

Strategia dywersyfikacji Ot, procedura pozwalająca na przeszukiwanie różnych obszarów przestrzeni stanów. (rysunek... patrz tablica)

Pytanie 14 Co w przypadku słabości rozwiązania po k iteracjach?

Metoda zdarzeń krytycznych 1. Funkcja Crtitical Event() przyjmuje wartość true jeżeli wystąpiły warunki powodujące konieczność wygenerowania nowego rozwiązania startowego x 0, czyli jeżeli: przez k kolejnych iteracji nie zostało znalezione lepsze rozwiązanie? algorytm wykonał k iteracji od nowego rozwiązania startowego? przez k kolejnych iteracji przeglądane były rozwiązania bliskie rozwiązaniu startowemu? 2. Uruchomiana jest procedura generowania nowego rozwiązania startowego Restart(), mogącą wykorzystywać informacje/wiedzę zgromadzone w dotychczasowym przebiegu algorytmu.

TS4 wybierz lub wylosuj punkt startowy x 0 X x opt x 0 tabu list repeat x 0 AspirationP lus(x 0 ) if f(x 0 ) > f(x opt ) then x opt x 0 zweryfikuj tabu list element tabu list do kadencja i if kadencja i = 0 then usuń element(atrybut i, kadencja i ) z tabu list if CriticalEvents() then x 0 Restart() (Dywersyfikacja) if f(x 0 ) > f(x opt ) then x opt x 0 until warunek zakończenia

Uwagi podsumowujące (1) 1. warunek zakończenia: wykonanie zadanej liczby iteracji, uzyskanie wyniku optymalnego (?), satysfakcjonującego, wyczerpanie czasu (czym różni się od wykonania zadanej liczby iteracji?) 2. strategia wyboru rozwiązania może być inna niż AspirationP lus, jednak musi uwzględniać tabu list, kryterium aspiracji i wielkość sąsiedztwa.

Uwagi podsumowujące (2) 3. TS4 to jedynie pewien schemat (jak każdy(a) schemat/metoda metaheurystyczny(a). Implementacje różnią się (znacznie) w zależności od problemu, jego struktury, zauważonych/wykrytych własności problemu (w tym danych). 4. (do powyższego) szczególnie ważne są: odpowiednie zdefiniowanie ruchu m i i funkcji oceny jego wartości. 5. optymalne wartości parametrów dla konkretnego problemu (w większości przypadków) należy dobierać eksperymentalnie. 6. można łączyć metodę Tabu Search z innymi metodami (heurystykami)

Przykład 1 Problem SAT Problem spełnialności formuł logicznych (ang. SATisfability problem). Problem rozstrzygalny o złożoności O(2 n ), gdzie n to liczba zmiennych w formule. Najczęściej rozpatrywany w koniunkcyjnej postaci normalnej ang. CNF Conjuctional Normal Form. Kolejne klauzule zawierają (w CNF) zawierają nie więcej niż k literałów (alternatywa literałów (zmienna lub negacja zmiennej)) - mamy do czynienia z tzw. k SAT problemem. Problemy 1 SAT i 2 SAT mają rozwiązania czasie wielomianowym. Natomiast już problem 3 SAT jest NP-zupełny. Pytanie 1. Co oznacza albo do czego można wykorzystać informację, że problem jest NP-zupełny?

Przykład 1 Problem SAT Problem spełnialności formuł logicznych (ang. SATisfability problem). Problem rozstrzygalny o złożoności O(2 n ), gdzie n to liczba zmiennych w formule. Najczęściej rozpatrywany w koniunkcyjnej postaci normalnej ang. CNF Conjuctional Normal Form. Kolejne klauzule zawierają (w CNF) zawierają nie więcej niż k literałów (alternatywa literałów (zmienna lub negacja zmiennej)) - mamy do czynienia z tzw. k SAT problemem. Problemy 1 SAT i 2 SAT mają rozwiązania czasie wielomianowym. Natomiast już problem 3 SAT jest NP-zupełny. Oznacza to, że każdy problem z klasy NP jest do niego redukowalny przy pomocy redukcji wielomianowej.

Zadanie polega na rozwiązaniu problemu SAT dla n = 8 zmiennych. Dla formuły F poszukujemy takiego wartościowania boolowskiego zmiennych, aby F = true. Załóżmy, że wartościowanie początkowe to x = (0, 1, 1, 1, 0, 0, 0, 1) Załóżmy również, że istnieje pewna funkcja oceny, której wartość ma być maksymalizowana, czyli wszystkie klauzule muszą być spełnione. Pytanie 2. Jakie cechy powinno spełniać otocznie x?

Sąsiedztwo musi (cechy dobrego sąsiedztwa): zawierać co najmniej jedno rozwiązanie i nie obejmować całej przestrzeni rozwiązań, rozwiązania muszą niewiele różnić się od aktualnego rozwiązania, niezależnie od początkowego wyboru x 0 powinno być osiągalne każde rozwiązanie w X. W naszym przypadku otoczenie składać się będzie z rozwiązań osiąganych przez przełączenie jednego bitu w x. Załóżmy, że zmiana na 3 bicie daje nam najlepsze rozwiązanie (ze względu na wartość funkcji celu). Pytanie 3. Co działoby się dalej, gdybyśmy posługiwali się algorytmem wspinającym?

Rozwiązanie zostałoby bieżącym rozwiązaniem (punktem w przestrzeni rozwiązań). Wyznaczylibyśmy jego sąsiedztwo. Dwa powyższe kroki wykonywalibyśmy aż do osiągnięcia warunku zatrzymania. Osiągnęlibyśmy jakieś optimum lokalne (czy na pewno zawsze tylko lokalne? i kiedy na pewno globalne?) Załóżmy jednak, że dysponujemy algorytmem TS2. Mamy zatem tabu list o pewnej strukturze, w której zapamiętujemy liczby kadencji dla każdego elementu. Numer elementu wskazywany jest przez indeks. Wpisujemy ruch m i na tabu list. Lista wygląda następująco: [0, 0, 5, 0, 0, 0, 0, 0] Wykonujemy jeszcze kilka ruchów i otrzymujemy listę w postaci [3, 0, 1, 5, 0, 4, 2, 0] Pytanie 4. Jaka jest interpretacja tego zapisu?

W rezultacie otrzymujemy następujące rozwiązanie: x = (1, 1, 0, 0, 0, 1, 1, 1) Wartość funkcji oceny wynosi 33. Otoczenie x to zbiór wektorów: x 1 = (0, 1, 0, 0, 0, 1, 1, 1) x 2 = (1, 0, 0, 0, 0, 1, 1, 1) x 3 = (1, 1, 1, 0, 0, 1, 1, 1) x 4 = (1, 1, 0, 1, 0, 1, 1, 1) x 5 = (1, 1, 0, 0, 1, 1, 1, 1) x 6 = (1, 1, 0, 0, 0, 0, 1, 1) x 7 = (1, 1, 0, 0, 0, 1, 0, 1) x 8 = (1, 1, 0, 0, 0, 1, 1, 0) Dla każdego obliczana jest wartość funkcji oceny. Wybór rozwiązania ograniczany jest przez tabu list. Oznacza to, że niemożliwe są przełączenia bitów 1, 3-7. A co za tym idzie dostępne rozwiązania to: x 2, x 5 i x 8. Pytanie 5. Co jeśli wartość funkcji oceny dla ww. rozwiązań są niższe niż wartość bieżącego rozwiązania?

W przypadku posługiwania się algorytmem TS2 wykonywane będą kolejne iteracje programu. W momencie znalezienia rozwiązania o wartości znacząco wyższej od jakiegokolwiek wcześniej otrzymanego wyniku, rozwiązanie to zostanie pominięte ze względu na restrykcyjność algorytmu TS2 dotyczącą przestrzegania zasady nie brania pod uwagę ruchów z tabu list. Ponieważ mamy do czynienia z algorytmem (metodą) heurystyczną wolno nam (a nawet należy) wykorzystywać wiedzę o rozwiązywanym problemie oraz doświadczenie zdobyte przy okazji rozwiązywania tego typu lub innych problemów. 6 th sense też może być tu pomocny. Zatem, skoro intuicja i doświadczenie podpowiadają, że jeśli mamy okazję uzyskać znaczący postęp w rozwiązaniu ale wystąpić wbrew ustalonym ograniczeniom, to w przypadku metod metaheurystycznych, możemy to zrobić. Możemy zatem wykorzystać kryterium aspiracji jako szansę na znalezienie się bardziej obiecującym obszarze poszukiwań albo wręcz w bezpośredniej bliskości rozwiązania optymalnego. Pytanie 6. Czy w inny sposób można (oprócz użycia funkcji Critical Events) można zwiększyć elastyczność poszukiwań?

Inne sposoby zwiększania elastyczności poszukiwań. 1. zmiana deterministycznej procedury selekcji rozwiązań na probabilistyczną - lepsze rozwiązania mają większe szanse na wybranie. 2. zmiana horyzontu pamięci w zależności od rozpoznania obiecującego obszaru przestrzeni. 3. zmiana wielkości otoczenia (tylko co to daje i kiedy można/należy/warto to wykonać?). 4. zmiana horyzontu pamięci przez dostosowanie go do wielkości instancji - można pamiętać n ruchów, n 2 ruchów albo np. sqrtn ruchów. 5. dodanie pamięci częstości użycia, czyli uwzględnienie wiedzy (czy informacji?) dotyczącej częstości wykonywanych ruchów w horyzoncie znacznie większym niż tabu list. Czy częściej wykonywane ruchy są lepsze czy gorsze? 6. dodanie pamięci jakości wykonywanych ruchów - również ww. horyzoncie - tzw. aspiracja zgodna z kierunkiem poszukiwań. 7. można, jeśli istnieje konieczność wyboru ruchu z tabu list, wybierać ruch najstarszy - tzw. aspiracja zgodna z ruchem domyślnym. 8. itd. Pytanie 7. Jak wygląda struktura tabu list dla TSP?

Przykład 1 Problem TSP Po pierwsze, należy wybrać sposób generowania otoczenia. zamiana dwóch miast w rozwiązaniu x, zamiana dwóch krawędzi (2-interchange), zamiana trzech krawędzi (3-interchange), inne. Po drugie, jak definiujemy ruch tabu? jeden czy oba wierzchołki na tabu list, jedna czy obie krawędzie na tabu list, itd. Pytanie 8. Jak długa tabu list? Pytanie 9. Jakie kryterium aspiracji? Pytanie 10. Jakie wartości na liście aspiracyjnej?

Według Knox a (Tabu Search Performance on the Symmetric Traveling Salesman Problem. Computer Operations Research, Vol. 21, No. 8, pp. 867-876.) Długość tabu list wynosiła 3n, gdzie n to liczba miast w problemie. Sprawdzana trasa mogła pominąć wynik tabu, jeśli obie krawędzie przeszły pomyślnie test aspiracji porównujący długość trasy z wartościami aspiracyjnymi dla obu dodanych krawędzi; test był zdany jeśli długość trasy była mniejsza niż obie wartości aspiracyjne. Wartość na liście aspiracyjnej były kosztami podróży przed zmianą.