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

[email protected]

Wykład 8: Wyszukiwanie lokalne. Tabu search. 1. Wprowadzenie. Koncepcja wyszukiwania lokalnego. 2. Przykład: problem spełnialności (SAT). 3. Wyszukiwanie lokalne w optymalizacji.

4. Przykłady: pokrycie wierzchołkowe grafu (VCP), minimalne drzewo rozpinające (MST), problem komiwojażera (TSP).

5. Przykładowe operacje i definicje sąsiedztwa. 6. Ulepszenia i modyfikacje wyszukiwania lokalnego. 7. Algorytm wyszukiwania z listą tabu (TS). 8. Przykład : problem MST z ograniczeniami. 9. Podsumowanie. Zalety i wady wyszukiwania lokalnego.

Wprowadzenie Metoda wyszukiwania lokalnego (ang. local search) jest jedną z najbardziej intuicyjnych technik projektowania algorytmów.

Polega ona na niewielkich modyfikacjach rozwiązania początkowego (np. losowego), ocenie wszystkich uzyskanych w ten sposób rozwiązań pochodnych i wyborze najlepszego z nich jako nowego rozwiązania początkowego. Postępowanie jest kontynuowane do momentu, aż dalsza poprawa nie będzie już możliwa albo wyczerpał się czas przeznaczony na poszukiwanie rozwiązania. Przykładowe zastosowanie: decyzyjny problem spełnialności formuł boolowskich (SAT, z ang. satisfiability).

Problem spełnialności (SAT)

Algorytmy dla problemu SAT GSAT (Greedy SAT) i WalkSAT są algorytmami wyszukiwania lokalnego dla problemu spełnialności formuł boolowskich. Oba algorytmy mają zastosowanie do formuł boolowskich w postaci konjunkcyjnej normalnej. Punktem wyjścia jest losowe przyporządkowanie wszystkim zmiennym wartości logicznych “0” i ”1”. Algorytm kończy pracę, jeśli przyporządkowanie zapewnia wszystkim implicentom wartości “1”. W przeciwnym wypadku jedna ze zmiennych może zmienić swoją wartość na przeciwną. Postępowanie jest kontyuowane aż do pozytywnego rezultatu. WalkSAT i GSAT różnią się metodami wyboru zmiennej do zanegowania. GSAT wybiera tę zmienną, której negacja minimalizuje liczbę implicentów o wartości “0”. WalkSAT wybiera losowo implicent o wartości “0” przy aktualnym przyporządkowaniu a następnie neguje w tym implicencie losową zmienną, zmianiając wartość tego implicentu na “1”. GSAT i WalkSAT kontynuują swoje postępowanie aż cała formuła przyjmie wartość „1”. W przypadku braku postępu w zadanym czasie algorytmy mogą wystartować ponownie z nowym losowym przyporządkowaniem. W ten sposób mogą opuścić osiągniete minima lokalne (w SAT chodzi o optimum globalne!).

Wyszukiwanie lokalne w optymalizacji Wyszukiwanie lokalne jest bardzo popularną techniką stosowaną rozwiązywaniu problemów optymalizacyjnych.

Przestrzeń rozwiązań problemu jest przeszukiwana iteracyjnie. W każdym kroku przechodzimy od najlepszego znalezionego dotąd rozwiązania do kolejnego tymczasowego optimum, wyznaczonego w jego sąsiedztwie. Otoczenie (sąsiedztwo) bieżącego rozwiązania musi być odpowiednio zdefiniowane. Algorytm wyszukiwania lokalnego nie gwarantuje osiągnięcia optimum globalnego, najczęściej uzyskane rozwiazanie jest optymalne lokalnie.

Zastosowania do problemów optymalizacyjnych: pokrycie wierzchołkowe grafu (VCP), minimalne drzewo rozpinające (MST), problem komiwojażera (TSP).

Minima lokalne i globalne

Problem minimalnego drzewa rozpinającego (MST) - wyszukiwanie lokalne Usuwana jest jedna losowa krawędź drzewa i dodawana jest losowa krawędź zapewniająca spójność grafu. W wszystkich rozwiązań sąsiednich wybierane jest rozwiązania najlepsze.

Problem komiwojażera – operacja 2-opt Z trasy początkowej usuwamy 2 krawędzie : ab oraz cd. Trasy sąsiednie powstają przez dodanie dwóch nowych krawędzi, łączących powstałe odcinki ac oraz bd, tak aby nadal były ze sobą połaczone wszystkie miasta. Są to np. krawędzie ad i bc.

Problem komiwojażera (TSP) - wyszukiwanie lokalne za pomocą operacji 2-opt Trasa początkowa ma długość 25. W pierwszym kroku operacja 2-opt zamienia parę krawędzi ae i cd krawędziami ad i ce. Nowa trasa ma długość 23. W drugim kroku operacja 2-opt zamienia parę krawędzi ab i ce krawędziami ac i be. Otrzymana trasa ma długość 19.

Problem komiwojażera (TSP) - operacja 3-opt Z trasy początkowej usuwamy 3 krawędzie : ab, cd oraz ef. Trasy sąsiednie powstają przez dodanie trzech nowych krawędzi, łączących powstałe odcinki af, de oraz bc, tak aby nadal były ze sobą połaczone wszystkie miasta. Są to np. krawędzie ad, be i cf lub ad, bf i ce.

Problem komiwojażera (TSP) - wyszukiwanie lokalne za pomocą operacji 3-opt

Problem komiwojażera (TSP) - operacja 1-shift Z trasy początkowej usuwamy losową krawędź 78, oraz dwie krawędzie sąsiadujące z losowym wierzchołkiem 3 : 23 i 34. Trasa sąsiednia powstaje przez dodanie trzech nowych krawędzi: dwóch krawędzi łączących końce usuniętej krawędzi z wierzchołkiem 3 : 37 i 38 oraz krawędź 24, która jest bypassem omijającym wierzchołek 3.

Wyszukiwanie z listą tabu (Tabu Search) jako uogólnienie wyszukiwania lokalnego

Wyszukiwanie z listą tabu (Tabu Search) schemat blokowy

Wyszukiwanie z listą tabu (Tabu Search) algorytm

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Podsumowanie 1. Algorytm wyszukiwania lokalnego jest szczególnie cenny w optymalizacji kombinatorycznej. 2. Algorytm wyszukiwania lokalnego znajduje zwykle jedynie rozwiązanie przybliżone danego problemu. 3. Wyszukiwanie lokalne jest użyteczną techniką, która może być dalej ulepszana (np. algorytm wyszukiwania z listę tabu), albo stosowana jako uzupełniająca w bardziej zaawansowanych algorytmach łączących kilka różnych technik (w tzw. algorytmach hybrydowych).

Źródła przykładów i rysunków : 1. Aho A.V., Hopcroft J.E., Ullman J.D. : Algorytmy i struktury danych, Helion/Addison-Wesley 2003. 2. Sait S.M., Youssef H. : Iterative computer algorithms with applications in engineering, IEEE computer Society Press 1999. 3. Strony tematyczne w sieci.