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 15:00-16:30 Slajdy dostępne pod adresem: http://www.cs.put.poznan.pl/wkotlowski/ Przy opracowaniu korzystałem ze slajdów prof. A. Jaszkiewicza. 25.01.2013 1 / 25
Spis treści 1 Lokalne przeszukiwanie przypomnienie 2 Przeszukiwanie z listą tabu 3 Zagadnienia na egzamin 2 / 25
Spis treści 1 Lokalne przeszukiwanie przypomnienie 2 Przeszukiwanie z listą tabu 3 Zagadnienia na egzamin 3 / 25
Przypomnienie klasyfikacja algorytmów Algorytmy dokładne znajdują rozwiązanie optymalne. dedykowane dla specyficznych problemów programowanie dynamiczne podziału i ograniczeń (B&B) przeszukiwanie wyczerpujące Algorytmy aproksymacyjne znajdują rozwiązanie przybliżone, dają gwarancję, jak blisko optimum jesteśmy. dedykowane dla specyficznych problemów NP-trudnych z tego powodu rzadko używane w praktyce Algorytmy heurystyczne znajdują optimum lokalne, bez gwarancji jego jakości. lokalne przeszukiwanie ulepszone lokalne przeszukiwanie (symulowane wyżarzanie, przeszukiwanie tabu) algorytmy populacyjne (genetyczne, mrówkowe, itp.) hybrydy 4 / 25
Przypomnienie klasyfikacja algorytmów Algorytmy dokładne znajdują rozwiązanie optymalne. dedykowane dla specyficznych problemów programowanie dynamiczne podziału i ograniczeń (B&B) przeszukiwanie wyczerpujące Algorytmy aproksymacyjne znajdują rozwiązanie przybliżone, dają gwarancję, jak blisko optimum jesteśmy. dedykowane dla specyficznych problemów NP-trudnych z tego powodu rzadko używane w praktyce Algorytmy heurystyczne znajdują optimum lokalne, bez gwarancji jego jakości. lokalne przeszukiwanie ulepszone lokalne przeszukiwanie (symulowane wyżarzanie, przeszukiwanie tabu) algorytmy populacyjne (genetyczne, mrówkowe, itp.) hybrydy 4 / 25
Przypomnienie algorytm przeszukiwania lokalnego Wybierz rozwiązanie startowe x 0 w X (skonstruuj lub losowo). Powtarzaj k = 1, 2,...: 1 Dokonaj generacji nowego rozwiązania w sąsiedztwie y = N(x k 1 ). 2 Jeśli y jest lepsze od x k 1, tzn. f(y) < f(x k 1 ), wybierz y jako rozwiązanie bieżące, x k = y, w przeciwnym wypadku odrzuć y i przyjmij x k = x k 1. dopóki nie można poprawić rozwiązania bieżącego x k 1 (minimum lokalne) 5 / 25
Modyfikacje przeszukiwania lokalnego Wprowadzenie bardziej złożonej definicji sąsiedztwa w celu przeszukania większej części przestrzeni rozwiązań dopuszczalnych. kosztowne obliczeniowo! Dobre rozwiązanie startowe. zwykle bardzo trudno je skonstruować! Wykonanie algorytmu lokalnego przeszukiwania wielokrotnie. Wykonanie algorytmu lokalnego przeszukiwania wielokrotnie. Ograniczone akceptowanie pogorszeń funkcji celu (SA). Zapamiętywanie i unikanie rozwiązań już odwiedzonych (TS). 6 / 25
Modyfikacje przeszukiwania lokalnego Wprowadzenie bardziej złożonej definicji sąsiedztwa w celu przeszukania większej części przestrzeni rozwiązań dopuszczalnych. kosztowne obliczeniowo! Dobre rozwiązanie startowe. zwykle bardzo trudno je skonstruować! Wykonanie algorytmu lokalnego przeszukiwania wielokrotnie. Wykonanie algorytmu lokalnego przeszukiwania wielokrotnie. Ograniczone akceptowanie pogorszeń funkcji celu (SA). Zapamiętywanie i unikanie rozwiązań już odwiedzonych (TS). 6 / 25
Spis treści 1 Lokalne przeszukiwanie przypomnienie 2 Przeszukiwanie z listą tabu 3 Zagadnienia na egzamin 7 / 25
Motywacje Algorytm przeszukiwania lokalnego wykonuje ruch tylko, gdy prowadzi to do obniżenia funkcji celu. = zbiega do najbliższego minimum lokalnego. Lokalne optima nie muszą być dobrymi rozwiązaniami. Lokalne optima mogą się grupować, leżeć blisko siebie. 8 / 25
Pomysł Lokalne przeszukiwanie wersja stroma (steepest) Wybierz rozwiązanie startowe x 0. Powtarzaj k = 1, 2,...: 1 Wybierz y jako najlepsze rozwiązanie w N(x k 1 ), tj. wybierz takie y, że f(y) f(x) dla wszystkich x N(x k 1 ). 2 Jeśli f(y) < f(x k 1 ) to przyjmij x k = y. dopóki nie można poprawić rozwiązania bieżącego x k 1. 9 / 25
Pomysł Wersja stroma (steepest) Wybierz rozwiązanie startowe x 0. Powtarzaj k = 1, 2,...: 1 Wybierz y jako najlepsze rozwiązanie w N(x k 1 ), tj. wybierz takie y, że f(y) f(x) dla wszystkich x N(x k 1 ). 2 Jeśli f(y) < f(x k 1 ) to przyjmij x k = y. dopóki nie można poprawić rozwiązania bieżącego x k 1. A jeśli zrezygnować z konieczności obniżenia funkcji celu w nowym rozwiązaniu? 10 / 25
Pomysł Wersja stroma (steepest) Wybierz rozwiązanie startowe x 0. Powtarzaj k = 1, 2,...: 1 Wybierz y jako najlepsze rozwiązanie w N(x k 1 ), tj. wybierz takie y, że f(y) f(x) dla wszystkich x N(x k 1 ). 2 Jeśli f(y) < f(x k 1 ) to przyjmij x k = y. dopóki nie można poprawić rozwiązania bieżącego x k 1. A jeśli zrezygnować z konieczności obniżenia funkcji celu w nowym rozwiązaniu? Ryzyko wpadnięcia w cykle jak tego uniknąć? 10 / 25
Przeszukiwanie z listą tabu (tabu search) Główna idea Umożliwiaj ruchy pogarszające funkcję celu (jeśli nie ma innej możliwości), ale zapamiętuj wykonane już ruchy, aby nie wpaść w cykl! 11 / 25
Przeszukiwanie z listą tabu (tabu search) Główna idea Umożliwiaj ruchy pogarszające funkcję celu (jeśli nie ma innej możliwości), ale zapamiętuj wykonane już ruchy, aby nie wpaść w cykl! Zapamiętuj wykonane ruchy ruchy takie stają się zakazane (tabu) W celu poprawy efektywności zwykle lista ma maksymalną długość K (ostatnio wykonanych ruchów) Szybkie przeszukiwanie listy: zwykle haszowanie 11 / 25
Tabu search Rozpocznij od pustej listy tabu T =. Wybierz rozwiązanie startowe x 0. Inicjuj najlepszy napotkany ruch jako x := x 0. Powtarzaj k = 1, 2,...: 1 Wybierz y jako najlepsze rozwiązanie w N(x k 1 ), tj. wybierz takie y że f(y) f(x) dla wszystkich x N(x k 1 ). 2 Przyjmij x k := y, niezależnie od tego, czy y poprawia czy pogarsza funkcję celu. 3 Dodaj ruch x k y do listy tabu T, wyrzuć najstarszy ruch, jeśli T > K. 4 Jeśli f(x k ) < f(x ) to x := x k. Zwróć x. 12 / 25
Szczegóły Co przechowywać na liście ruchów? 13 / 25
Szczegóły Co przechowywać na liście ruchów? ruchy składowe ruchów 13 / 25
Szczegóły Co przechowywać na liście ruchów? ruchy składowe ruchów Jak blokować ruchy? 13 / 25
Szczegóły Co przechowywać na liście ruchów? ruchy składowe ruchów Jak blokować ruchy? dokładne dopasowanie ruchy odwrotne ruchy częściowo się pokrywające 13 / 25
Szczegóły Co przechowywać na liście ruchów? ruchy składowe ruchów Jak blokować ruchy? dokładne dopasowanie ruchy odwrotne ruchy częściowo się pokrywające Jak długa lista tabu? 13 / 25
Szczegóły co przechowywać na liście ruchów? (TSP) Przykład (TSP): wymiana dwóch miast 14 / 25
Szczegóły co przechowywać na liście ruchów? (TSP) Przykład (TSP): wymiana dwóch miast Przechowujemy cały ruch: para rozwiązań (x, y). Przechowujemy tylko parę miast, które uległy wymianie. 14 / 25
Szczegóły co przechowywać na liście ruchów? (TSP) Przykład (TSP): wymiana dwóch miast Przechowujemy cały ruch: para rozwiązań (x, y). Przechowujemy tylko parę miast, które uległy wymianie. Przykład (TSP): wymiana trzech miast 14 / 25
Szczegóły co przechowywać na liście ruchów? (TSP) Przykład (TSP): wymiana dwóch miast Przechowujemy cały ruch: para rozwiązań (x, y). Przechowujemy tylko parę miast, które uległy wymianie. Przykład (TSP): wymiana trzech miast Przechowujemy cały ruch: para rozwiązań (x, y). Przechowujemy trójkę miast, która uległy wymianie. Przechowujemy osobno każdą parę miast, które uległy wymianie. 14 / 25
Szczegóły jak blokować ruchy (TSP) Dokładne dopasowanie 15 / 25
Szczegóły jak blokować ruchy (TSP) Dokładne dopasowanie Zakazane tylko ruchy z listy tabu lub odwrotne. Stosunkowo mało ograniczeń potrzebna długa lista tabu. 15 / 25
Szczegóły jak blokować ruchy (TSP) Dokładne dopasowanie Zakazane tylko ruchy z listy tabu lub odwrotne. Stosunkowo mało ograniczeń potrzebna długa lista tabu. Częściowe dopasowanie 15 / 25
Szczegóły jak blokować ruchy (TSP) Dokładne dopasowanie Zakazane tylko ruchy z listy tabu lub odwrotne. Stosunkowo mało ograniczeń potrzebna długa lista tabu. Częściowe dopasowanie Ruch (x, y) blokuje wszystkie ruchy zawierające x lub y (blokowanie rozwiązań). Naturalne przy przechowywaniu składowych ruchów. Dużo ograniczeń wymaga krótkiej listy tabu. 15 / 25
Szczegóły długość listy tabu Krótka lista 16 / 25
Szczegóły długość listy tabu Krótka lista Bardziej agresywny algorytm. Ryzyko wpadnięcia w cykl. 16 / 25
Szczegóły długość listy tabu Krótka lista Bardziej agresywny algorytm. Ryzyko wpadnięcia w cykl. Długa lista 16 / 25
Szczegóły długość listy tabu Krótka lista Bardziej agresywny algorytm. Ryzyko wpadnięcia w cykl. Długa lista Ryzyko pomijania zbyt wielu ruchów. Może nawet uniemożliwiać dojście do lokalnego optimum. 16 / 25
Szczegóły długość listy tabu Krótka lista Bardziej agresywny algorytm. Ryzyko wpadnięcia w cykl. Długa lista Ryzyko pomijania zbyt wielu ruchów. Może nawet uniemożliwiać dojście do lokalnego optimum. Kryterium aspiracji: akceptuj rozwiązania lepsze od najlepszego dotąd, nawet jeśli są na liście tabu. 16 / 25
Tabu search Algorytm przeszukiwania lokalnego steepest niezdolność wyjścia z lokalnego optimum cykle Ulepszony alg. Steepest (akceptacja ruchów niepolepszających, wybór najlepszego rozwiązania) Lista tabu Przeszukiwanie tabu za dużo zakazanych ruchów Poziom aspiracji (akceptacja atrakcyjnych ruchów zakazanych) 17 / 25
Przykład zapamiętywania ruchów tabu 18 / 25
Przykład zapamiętywania ruchów tabu 18 / 25
Przykład zapamiętywania ruchów tabu 18 / 25
Spis treści 1 Lokalne przeszukiwanie przypomnienie 2 Przeszukiwanie z listą tabu 3 Zagadnienia na egzamin 19 / 25
Programowanie liniowe (PL) Umiejętność zapisania zadania z treścią jako problem PL. Zamiana minimalizacji wartości bezwzględnej na PL. Zamiana problemu minimaksowego na PL. Rozwiązanie graficzne problemu PL (na płaszczyźnie). Własności algorytmu simplex (ale nie trzeba umieć rozwiązywać PL tą metodą). Zapisanie problemu dualnego, interpretacja zmiennych dualnych. 20 / 25
Metody regresji Zrozumienie trzech metod regresji (LS, LAD, MM) wraz z ich zaletami i wadami. Rozwiązanie prostych problemów regresji LS, LAD, MM (typu: przykład nad slajdzie 13 z wykładu o regresji) 21 / 25
Metody klasyfikacji Metoda minimalizacji błędu 0/1 zalety i wady. Regresja logistyczna postać funkcji logistycznej, własności. Metoda Cauchy ego i Newtona dla regresji logistycznej jeśli będzie, to w zadanie zostaną podane wzory (nie uczyć się na pamięć!). Funkcja zawiasowa jej postać, własności. Rozwiązanie prostych problemów klasyfikacji z błędem 0/1, logistycznym, zawiasowym. 22 / 25
Stochastyczny gradient Idea metody, różnica w stosunku do metody spadku wzdłuż gradientu (Cauchy ego), zalety i wady. Policzeniu kroku w metodzie stochastycznego gradientu z prostą funkcją błędu (np. zawiasowy)! 23 / 25
Heurystyki Minima lokalne, globalne, wypukłość (bez dowodów). Zalety i wady metod: greedy, steepest, SA, TS. Umiejętność wykonania kroku dla każdej z tych metod dla zadanego problemu przy odpowiednio zdefiniowanym sąsiedztwie. 24 / 25
Koniec na dzisiaj :) 25 / 25