Techniki optymalizacji algorytmy metaheurystycznefc.put.poznan.pl/materials/104-to-ls.pdf ·...

Post on 01-Mar-2019

229 views 0 download

Transcript of Techniki optymalizacji algorytmy metaheurystycznefc.put.poznan.pl/materials/104-to-ls.pdf ·...

Techniki optymalizacji algorytmy metaheurystyczne

Zakres przedmiotu – część AJ

Wprowadzenie

Dokładne i heurystyczne algorytmy optymalizacji

Przeszukiwanie lokalne

Metaheurystyki oparte na lokalnym przeszukiwaniu

Symulowane wyżarzanie

Przeszukiwanie tabu

Iteracyjne przeszukiwanie lokalne

Zakres przedmiotu – część AJ

Algorytmy populacyjne

Algorytmy kolonii mrówek

Algorytmy ewolucyjne

Hybrydowe algorytmy ewolucyjne

Ograniczenia w algorytmach metaheurysycznych

Konstrukcja algorytmów metaheurystycznych

Wielokryterialne algorytmy metaheurystyczne

Sformułowanie problemu optymalizacji – myślenie w kategoriach celów

Myślenie regułowe

Co zrobić aby...?Co zrobić jeżeli...?

Optymalizacja

•Jakie są moje cele? Co chcę osiągnąć?

•Jakie decyzje mogę podjąć?

•Jakie ograniczenia muszę uwzględnić?

•Jak ocenić wpływ decyzjina cele?

Przykład – ustalanie lokalizacji towarów w zautomatyzowanym magazynie

Myślenie regułowe

Co zrobić aby...?Co zrobić jeżeli...?

Jeżeli towar jest często zamawiany,to należy go umieścić blisko obszarukompletowania

Przykład – ustalanie lokalizacji towarów w zautomatyzowanym magazynie

•Średnia długość drogi podczas kompletowania zlecenia powinna być jak najkrótsza.

•Przydział towarów do lokalizacjiw magazynie

•Przydział każdego produktu.•Ograniczenia technologiczne

•Funkcja nieliniowa służąca do obliczania średniej długości drogi

•Jakie są moje cele? Co chcę osiągnąć?

•Jakie decyzje mogę podjąć?

•Jakie ograniczenia muszę uwzględnić?

•Jak ocenić wpływ decyzjina cele?

Elementy zagadnienia optymalizacji

•Jakie są moje cele? Co chcę osiągnąć?

•Jakie decyzje mogę podjąć?

•Jakie ograniczenia muszę uwzględnić?

•Jak ocenić wpływ decyzjina cele?

•Kryteria. Funkcje celu

•Zmienne decyzyjne

•Ograniczenia. Przestrzeń rozwiązań dopuszczalnych

•Sposób obliczania funkcji celu:•Analityczny•Symulacyjny

Przykład – ustalanie lokalizacji towarów w zautomatyzowanym magazynie

•Kryteria. Funkcje celu

•Zmienne decyzyjne

•Ograniczenia. Przestrzeń rozwiązań dopuszczalnych

•Sposób obliczania funkcji celu:•Analityczny•Symulacyjny

•Średnia długość drogi podczas kompletowania zlecenia.

•Przydział towarów do lokalizacjiw magazynie

•Przydział każdego produktu.•Ograniczenia technologiczne

•Funkcja nieliniowa

Współczesna optymalizacja a badania operacyjne

Ogromny rozwój metod i narzędzi optymalizacji. Znacznie szerszy zakres zastosowania.

Badania operacyjne koncentrowały się na ciągłych problemach liniowych

Integracja z rozwiązaniami informatycznymi, np. wykorzystanie danych

Różnorodne związki ze sztuczną inteligencją

Problem optymalizacji

minimalizuj/maksymalizuj z = f(x)

przy ograniczeniach (p.o)

x S

Problem optymalizacji

minimalizuj z = f(x)

=

maksymalizuj z’ = -f(x)

Problem programowania matematycznego

Jeżeli rozwiązanie jest zdefiniowane jako wektor zmiennych:

x Rn, t.j. x = {x1,…, xn}

a ograniczenia jako zbiór równości/nierówności:

x S gl(x) ≤ / ≥ / = 0, j=1,…,L

mamy do czynienia z problemem programowania matematycznego

Rodzaje problemów programowania matematycznego

Jeżeli funkcja celu i ograniczenia są liniowe liniowy problem programowania matematycznego

Jeżeli funkcja celu lub co najmniej jedno ograniczenie są nieliniowe nieliniowy problem programowania matematycznego

Rodzaje problemów programowania matematycznego

Jeżeli zmienne są ciągłe ciągły problem programowania matematycznego

Jeżeli zmienne są dyskretne dyskretny problem programowania matematycznego

Jeżeli zmienne są mieszane ciągłe i dyskretne mieszany problem programowania matematycznego

Rodzaje problemów programowania matematycznego

Jeżeli zmienne są całkowitoliczbowe całkowitoliczbowy problem programowania matematycznego

Jeżeli zmienne są binarne binarny problem programowania matematycznego

Problem optymalizacji kombinatorycznej

Dyskretny i skończony zbiór rozwiązań

Struktura kombinatoryczna?

Zawsze da się zdefiniować jako binarny/dyskretny problem programowania matematycznego…

… ale nie zawsze warto

Problem optymalizacji kombinatorycznej

Problem optymalizacji kombinatorycznej jest problemem minimalizacji bądź

maksymalizacji i charakteryzuje się zbiorem instancji

Instancja jest parą (S, f)

S oznacza skończony zbiór wszystkich możliwych rozwiązań

f jest odwzorowaniem definiowanym jako

f : S R

Rozwiązanie (globalnie) optymalne

W przypadku minimalizacji rozwiązanie xopt S które spełnia

f (xopt) f(x) dla wszystkich x S

W przypadku maksymalizacjirozwiązanie xopt S które spełnia

f (xopt) f(x) dla wszystkich x S

Klasyfikacja algorytmówoptymalizacji

algorytmy dokładne przeszukiwanie wyczerpujące (exhaustive),

podziału i ograniczeń (B&B),

programowanie dynamiczne

algorytmy heurystyczne specjalizowane

metaheurystyczne:

• losowego przeszukiwania (random search)

• lokalnego przeszukiwania i odmiany• symulowane wyżarzanie

• przeszukiwanie tabu

• genetyczne/ewolucyjne

• mrówkowe, świetlikowe…

• hybrydy

• …

Klasyfikacja algorytmów (2)

Ponadto w obu klasach można wyróżnić

algorytmy ogólne (general algorithms) –niezależne od rozwiązywanego problemu (np. B&B, metaheurystyki)

oraz algorytmy dopasowywane (tailored algorithms) – wykorzystujące specyficzną wiedzę o problemie (np. heurystyki priorytetowe w szeregowaniu)

Dlaczego problemy mogą być trudne do rozwiązania

Duża liczba możliwych rozwiązań przeszukanie całej przestrzeni rozwiązań dopuszczalnych w celu znalezienia najlepszego jest nierealne

Problem jest złożony (złożoność obliczeniowa),użycie modeli uproszczonych i rezultaty są bezużyteczne

Funkcja oceny jest obarczona niepewnością

Potencjalne rozwiązania mocno ograniczoneznalezienie jednego dopuszczalnego jest problemem

Dlaczego problemy mogą być trudne do rozwiązania

Duża liczba możliwych rozwiązań przeszukanie całej przestrzeni rozwiązań dopuszczalnych w celu znalezienia najlepszego jest nierealne

Problem jest b. złożony,użycie modeli uproszczonych i rezultaty są bezużyteczne

Funkcja oceny jest obarczona niepewnością

Potencjalne rozwiązania mocno ograniczoneznalezienie jednego dopuszczalnego jest problemem

Duża liczba rozwiązań

Problem spełnienia wyrażenia logicznego (SAT) np. problem 100 zmiennych

(dwie możliwości dla zmiennej, 100 zmiennych)

TRUExxxxxxxF ...)()()( 342313342313

30100 102 S

Duża liczba rozwiązań

Problem komiwojażera (TSP – travelling salesperson problem)

Liczba rozwiązań (n-1)! / 2

Liczba wierzchołków

Liczba rozwiązań

5 12

10 181440

20 6,08E+16

50 3,04E+62

100 4,67E+155

Dlaczego problemy mogą być trudne do rozwiązania

Duża liczba możliwych rozwiązań przeszukanie całej przestrzeni rozwiązań dopuszczalnych w celu znalezienia najlepszego jest nierealne

Problem jest b. złożony,użycie modeli uproszczonych i rezultaty są bezużyteczne

Funkcja oceny jest obarczona niepewnością

Potencjalne rozwiązania mocno ograniczoneznalezienie jednego dopuszczalnego jest problemem

Modelowanie problemu

PROBLEM MODEL ROZWIĄZANIE

Model - przybliżenie rzeczywistości

Rozwiązanie problem

Np. Problem transportowy z nieliniową i nieciągłąfunkcją celu

Dwa sposoby rozwiązania

uprościć model, żeby pasował do tradycyjnego modelu i metody rozwiązania

wykorzystać nietradycyjne podejście

Dlaczego problemy mogą być trudne do rozwiązania

Duża liczba możliwych rozwiązań przeszukanie całej przestrzeni rozwiązań dopuszczalnych w celu znalezienia najlepszego jest nierealne

Problem jest b. złożony,użycie modeli uproszczonych i rezultaty są bezużyteczne

Funkcja oceny jest obarczona niepewnością

Potencjalne rozwiązania mocno ograniczoneznalezienie jednego dopuszczalnego jest problemem

Dlaczego problemy mogą być trudne do rozwiązania

Duża liczba możliwych rozwiązań przeszukanie całej przestrzeni rozwiązań dopuszczalnych w celu znalezienia najlepszego jest nierealne

Problem jest b. złożony,użycie modeli uproszczonych i rezultaty są bezużyteczne

Funkcja oceny jest obarczona niepewnością

Potencjalne rozwiązania mocno ograniczone

Przykłady problemów kombinatorycznych

Problem komiwojażera (TSP)

Problem komiwojażera (TSP)

Problem komiwojażera (TSP)

Problem kwadratowego przydziału (QAP)

Dane

Odległości pomiędzy możliwymi lokalizacjami

Przepływy pomiędzy czynnościami

Przykład – lokalizacja personelu medycznego

Problem kwadratowego przydziału (QAP)

1

3

2

b12

b13

b23

Problem podziału grafu (GPP)

Dane:

Graf G(V, E) składający się z n wierzchołków

V = { v1, v2, ... vn} oraz zbiór niezorientowanych łuków E łączących pary wierzchołków.

Problem podziału grafu (GPP)

Eij – macierz połączeń

Eij = 1 jeśli vi jest połączony z vj

0 w przeciwnym wypadku

Eij = Eji

Problem podziału grafu (GPP)

Należy dokonać podziału grafu G na dwa rozłączne podzbiory V1 i V2 , takie, że V1 V2 = V

Liczba połączeń pomiędzy zbiorami wynosi

21 ,

21 ],[VjVi

ijEVVC

Problem podziału grafu (GPP)

Problem marszrutyzacji

pojazdów (VRP)

Należy odwiedzić wszystkie wierzchołki

korzystając ze zbioru pojazdów

© 1997-2007 Andrzej Jaszkiewicz. Wyłącznie

Co jest potrzebne do zaprojektowania algorytmu

Reprezentacja rozwiązania

Cel

Funkcja oceny

Reprezentacja rozwiązania

Ciąg binarny

Reprezentacja zmiennoprzecinkowa, np. programowanie nieliniowe

Permutacja, np. TSP, QAP

Macierz

Drzewo

Exhaustive search

Wymaga wygenerowania i sprawdzenia każdego rozwiązania dopuszczalnego – wady oczywiste

Zaleta – proste

Jedyne wymaganie – systematyczny sposób przeszukiwania S

Jak to zrobić, zależy od reprezentacji

Exhaustive search

0000 – 0

0001 – 1

0010 – 2

0011 – 3

...

Ale można inaczej dzieląc S. Jak?

Exhaustive search (2)

Wielokrotny podział na dwie przestrzenie, x1 = T, x1 = F, ...

x1=T x1=F

x2=T x2=F x2=T x2=F

Exhaustive search - TSP

Permutacja dopuszczalna, np. nie

1-2-3-1-4

Liczba permutacji – n!

Rekurencyjne generowanie permutacji ustalenie pierwszej pozycji

generowanie (n-1)! permutacji dla ustalonej pierwszej pozycji ...

Branch & Bound

Przeszukiwanie losowe

Powtarzaj

Wygeneruj losowe rozwiązanie x

Do spełnienia warunków stopu

Zwróć najlepsze znalezione rozwiązanie

Heurystyki zachłanne (greedy)

Konstrukcja rozwiązania poprzez dodawania kolejnych elementów np. wierzchołków (łuków)

W każdym kroku dodawany jest jeden, najlepszy element

Heurystyki zachłanne (greedy)

Utwórz rozwiązanie początkowe, np.x := Ø

powtarzaj

dodaj do x lokalnie najlepszy element nie wchodzący jeszcze w skład rozwiązania

dopóki nie utworzono pełnego rozwiązania

Przykłady heurystyk zachłannych

NN (Nearest Neighbor) Iteracyjne dodawanie do trasy najbliżej leżącego miasta.

Greedy cycle Trasa jest budowana tak, że zawsze tworzy cykl

Hamiltona. W każdej iteracji dodawany jest jeden najkrótszy łuk z pozostałych dostępnych.

Clarke-Wright (dla VRP) Na początku każde miasto połączone z bazą, potem

iteracyjna eliminacja takiego połączenia z bazą (przejazd bezpośrednio do miasta), która da największe oszczędności

NN przykład

NN przykład

NN przykład

NN przykład

NN przykład

NN przykład

NN przykład

NN przykład

NN przykład

Greedy cycle przykład

Greedy cycle przykład

Greedy cycle przykład

Greedy cycle przykład

Greedy cycle przykład

Greedy cycle przykład

Greedy cycle przykład

NN przykład

GRASPGreedy Randomized Adaptive Search Procedure

T.A. Feo, M.G.C. Resende, Greedy Randomized Adaptive Search Procedures, Journal of Global Optimization 6, 109-133, 1995. http://www.research.att.com/~mgcr/papers.html

Wadą heurystyk zachłannych jest ich determinizm, wystartowane z tego samego punktu (np. NN z tego samego wierzchołka), tworzą to samo rozwiązanie

GRASP łączy zachłanność z losowością

GRASPKonstrukcja dobrego rozwiązania

Dokładanie pojedynczych elementów do rozwiązania

Uporządkowana ograniczona lista kandydatów według tzw. funkcji zachłannej, która bierze pod uwagę elementy znajdujące się już w rozwiązaniu

Wybór losowy jednego z najlepszych kandydatów z listy (zwykle nie jest to ten najlepszy)

Zachłanna procedura z elementem losowym

Utwórz rozwiązanie początkowe, np.x := Ø

powtarzajzbuduj ograniczoną listę kandydatów RCL

(restricted candidate list) najlepszych elementów nie wchodzących jeszcze w skład rozwiązania

dodaj do x losowo wybrany element z RCL

dopóki nie utworzono pełnego rozwiązania

Konstrukcja ograniczonej listy kandydatów RCL

Pierwsza faza c(e) – koszt przyrostu f. celu związany z

włączeniem elementu e E do rozwiązania

cmin, cmax – najmniejszy i największy koszt przyrostu

RCL jest budowana z elementów o najmniejszym przyroście

Ograniczenie ze względu na ilość (p elementów)

ze względu na jakość ()• c(e) [cmin, cmin + (cmax - cmin )]

• = 0? = 1?

Regret heuristics

Rozważmy wszystkie możliwe uporządkowane rosnąco koszty wstawienia dwóch elementów: A: 10, 11, 12, 13, 13, 14

B: 20, 40, 45, 50, 50, 50

Który element należałoby wybrać? Zgodnie z zasadą zachłanną A…

… ale wtedy może się okazać, że stracimy opcję wstawienia B z kosztem 20 i zostanie nam tylko koszt 40 lub więcej

Regret heuristics

k-żal (k-regret) to suma różnic pomiędzy najlepszym, a k kolejnymi opcjami wstawienia

Wybieramy element o największym żalu

Wstawiamy go w najlepsze miejsce

Regret heuristics

A

B

Techniki optymalizacji

Przeszukiwanie lokalne

Idea sąsiedztwa

S

x

N(x)

Definicja sąsiedztwa

x S

zbiór N(x) S rozwiązań, które leżą „blisko” rozwiązania x

funkcja odległości

dist: S S R

sąsiedztwo

N(x) = {y S : dist(x, y) }

każde rozwiązanie y N(x) jest nazywane rozwiązaniem sąsiednim lub po prostu sąsiadem x

Definicja sąsiedztwa (2)

zakładamy, że y N(x) x N(y)

N(x) można uzyskać z x wykonując jedenruch (modyfikację) m z pewnego zbiorumożliwych ruchów M(x)

ruch m jest pewną transformacją, którazastosowana do rozwiązania x dajerozwiązanie y

Sąsiedztwo można więc zdefiniowaćnastępująco:

N(x) = {y S : m M(x) | y = m(x)}

Cechy sąsiedztwa

ograniczenie na rozmiar• dla każdego x jego N(x) zawiera co najmniej jedno

rozwiązanie y rożne od x

• nie może obejmować całej przestrzeni rozwiązań dopuszczalnych (nie może być dokładna)

podobieństwo sąsiadów• y N(x) niewiele różni się od x, tak by przejście

(elementarny ruch) od x do y nie wymagało za każdym razem konstruowania nowego rozwiązania „od podstaw”

równouprawnienie• niezależnie od wyboru rozwiązania początkowego

powinno być osiągalne każde rozwiązanie należące do S

1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9

1 – 2 – 8 – 4 – 5 – 6 – 7 – 3 – 9

Przykład sąsiedztwa - TSP

k-zamiana (ang. k-swap, k-opt)• N(x) – zbiór rozwiązań powstałych przez

usunięcie k miast i wstawienie ich w innej kolejności

2-zamiana

|N(x)| = n(n-1)/2

1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9

1 – 2 – 8 – 4 – 5 – 6 – 7 – 3 – 9

Sąsiedztwo TSPwymiana miast

N2(3, 8)

1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9

1 – 2 – 8 – 7 – 6 – 5 – 4 – 3 – 9

Sąsiedztwo TSPwymiana łuków

N2(3, 8)

2-opt i 3-opt

Sąsiedztwo QAP

zamiana lokalizacji

1-2-3 1-3-2

1

3

2

b12

b13

b2

3

1

3

2

b12

b2

3

b13a12

a23

a13

Sąsiedztwo GPP

Podejście alternatywne -generowanie rozwiązań niedopuszczalnych |V1| |V2|.

F(V1, V2) = + (|V1| - |V2|)2

21 , VjViijE

- dodatnia stała (kara za niedopuszczalny podział).

Sąsiedztwo – wszystkie takie podziały (V’1, V’2), że

V’1 = V1 {x} i V’2 = V2 \{x} lub V’1 = V1 \{y} i V’2 = V2 {y},

x V2, y V1.

Przeszukiwanie lokalneEksploracja sąsiedztwa x

1. Wybierz rozwiązanie w S i oceń je, zdefiniuj jako rozwiązanie bieżące

2. Dokonaj generacji nowego rozwiązania z rozwiązania bieżącego i oceń je

3. Jeśli nowe rozwiązanie jest lepsze zdefiniuj jako rozwiązanie bieżące, w przeciwnym wypadku odrzuć

4. Powtarzaj kroki 2 i 3 dopóki można uzyskać poprawę

Lokalne optimum

xmin jest lokalnym minimum jeśli

f(xmin) f(y), dla wszystkich y N(xmin)

xmax jest lokalnym maksimum jeśli

f(xmax) f(y), dla wszystkich y N(xmax)

Lokalne przeszukiwanie

Wersja zachłanna(greedy)

Wygeneruj rozwiązanie x

powtarzaj

dla każdego y N(x) w losowej kolejności

jeżeli f(y) > f(x) to

x := y

dopóki nie znaleziono lepszego rozwiązania

Wersja stroma (steepest)

Wygeneruj rozwiązanie x

powtarzaj

znajdź najlepsze

rozwiązanie y N(x)

jeżeli f(y) > f(x) to

x := y

dopóki nie znaleziono lepszego rozwiązania

Efektywność lokalnego przeszukiwania

więcej rozwiązań jest ocenianych niżakceptowanych

wersja stroma

wersja zachłanna

ocena rozwiązań sąsiednich jest operacją krytyczną z punktu widzenia efektywności algorytmu

Efektywność lokalnego przeszukiwania

Bezpośrednia implementacja algorytmów LS okazuje się dla wielu typowych problemów bardzo nieefektywna

Rozwiązania należące do sąsiedztwa są jawnie konstruowane przed ich oceną –kosztowna operacja

Większość ocenionych rozwiązań nie zostaje akceptowana - nie warto ich jawnie konstruować, wystarczy znać ich wartość f. celu

Efektywność lokalnego przeszukiwania

Czy można obliczyć wartość f. celu bez konstrukcji rozwiązania?

fm(x)

Efektywne przeglądanie sąsiedztwa (delta)

Ocenia się ruchy(zmianę f. celu), nie rozwiązania!

Rozwiązania sąsiednie nie muszą być jawnie konstruowane!

Dopiero tu modyfikowane jest rozwiązanie

Wersja stroma

Wygeneruj rozwiązanie x

powtarzaj

znajdź najlepszy ruch m M(x)

jeżeli f(m(x)) > f(x) to

x := m(x)

dopóki nie znaleziono lepszego rozwiązania

Ocena ruchów –problem komiwojażera (TSP)

Ocena ruchu:

Różnica kosztów dwóch dodawanych i dwóch usuwanych łuków

Problem marszrutyzacji pojazdów – (vehicle routing problem VRP)

Należy odwiedzić wszystkie wierzchołki korzystając ze zbioru pojazdów

© 1997-2007 Andrzej Jaszkiewicz. Wyłącznie

Rozwiązanie i lokalny ruch/modyfikacja rozwiązania

Ruch to przesunięcie wierzchołka pomiędzy trasami

Ruch modyfikuje zawsze tylko dwie trasy

Koncepcja sąsiedztwa

Sąsiedztwo N(x) – zbiór rozwiązań, które można uzyskać lokalnie modyfikując x

Ruch m – lokalna modyfikacja x do y, y = m(x)

M(x) – zbiór ruchów, które można zastosować do

x

N(x) = {y S : m M(x)|y = m(x)}

Ruchy powinny modyfikować rozwiązania lokalnie

w przestrzeni rozwiązań i funkcji celu

Rozmiar M(x) (N(x)) powinien być dużo mniejszy od całej przestrzeni rozwiązań

Lokalne przeszukiwanie w wersji stromej

Wygeneruj rozwiązanie x

powtarzaj

znajdź najlepsze rozwiązanie yN(x)

jeżeli f(y) > f(x) to

x := y (zaakceptuj y)

dopóki nie znaleziono lepszego rozwiązania po przejrzeniu całego sąsiedztwa

Złożoność jednej iteracji lokalnego przeszukiwania przy najprostszej implementacji

W – liczba wierzchołków

T – liczba pojazdów/tras

Liczba ruchów |M(x)| = W(T-1)

Nakład na stworzenie rozwiązania sąsiedniego – T- tyle tras jest tworzonych w rozwiązaniu sąsiednim

Złożoność jednej iteracji – T W(T-1)

Zakładamy, że utworzenie trasy od podstaw jest tak samo czasochłonne jak jej modyfikacja – traktowane jako operacja elementarna – jednostka czasu

Efektywne ocenianie ruchów (delta)

Większość ruchów jest tylko oceniana, a nie wykonywana

Ocena ruchu wymaga zmodyfikowania dwóch tras

Nakład na ocenienie ruchu – 2 (modyfikowane są dwie trasy)

Złożoność jednej iteracji – 2 W(T-1)

Wykorzystanie ocen ruchów z poprzednich iteracji

Dla yN(x) z reguły N(x)N(y)=

lub |N(x)N(y)| <<|N(x)|

Ale M(x)M(y) może być liczny tzn. wiele ruchów pozostaje taka sama po wykonaniu ruchu

Wykorzystanie ocen ruchów, z poprzednich iteracji

Oceny wszystkich ruchów nie dotyczących tras A i B pozostają te same

Ruch zaakceptowany

w poprzedniej iteracji

A

B

Ruch oceniony

w poprzedniej iteracji

Wykorzystanie ocen ruchów z poprzednich iteracji dla VRP

Każdy ruch modyfikuje tylko dwie trasy

Wszystkie ruchy pomiędzy niezmodyfikowanymi trasami pozostają takie same

W zmodyfikowanych trasach znajduje się średnio 2W /T wierzchołków. Każdy z nich możemy przesunąć do jednej zT – 1 tras

W pozostałych trasach znajduje się średnio W -2W / T wierzchołków. Każdy z nich możemy przesunąć do jednej z dwóch zmienionych tras (pozostałe ruchy już oceniliśmy)

Po zaakceptowaniu nowego rozwiązania, należy więc ocenić średnio tylko (2W/T )(T-1) +2(W -2W / T) 4W ruchów

Złożoność jednej iteracji 8 W (zmienionych tras)

Efekt

Poprawa efektywności (z wyjątkiem pierwszej iteracji) w stosunku do wersji podstawowejT W(T-1) / 8 W = T (T-1) / 8

Technicznie oznacza cache’owanie

ocen ruchów

Pomijanie złych ruchów na podstawie reguł heurystycznych

Technika znana także pod nazwą candidate moves – ruchy kandydackie

W sąsiedztwie ocenia się ruchy kandydackie

Pozostałe ruchy pomija się lub ocenia się z niewielkim prawdopodobieństwem

Pomijanie złych ruchów na podstawie reguł heurystycznych

TSP – dla każdego wierzchołka tworzymy listę N’ << N najbliższych wierzchołków

Ruchy kandydackie wprowadzają tylko łuki prowadzące do najbliższych wierzchołków

Standardowe przeglądanie sąsiedztwa TSP – wymiana dwóch łuków

Wersja steepest

Dla każdego wierzchołka n1 od 0 do N-1

Dla każdego wierzchołka n2 od n1+1 do N-1

jeżeli łuki n1-następnik(n1) i n2-następnik(n2) nie są sąsiednie

Sprawdź czy ruch (n1, n2) przynosi poprawę i jest najlepszym dotąd znalezionym

Przeglądanie sąsiedztwa TSP z ruchami kandydackimi– wymiana dwóch łuków

Wersja steepest

Dla każdego wierzchołka n1 od 0 do N-1

Dla każdego łuku kandydackiego n1-n2

sprawdź wszystkie ruchy polegające do dodaniu łuku n1-n2 i usunięciu jednego z obecnych łuków łączących n1

Ruchy kandydackie w TSP

n1

n2

Pomijanie złych ruchów na podstawie reguł heurystycznych

W VRP można rozważać tylko ruchy pomiędzy blisko położonymi trasami

0

100

200

300

400

500

600

700

0 100 200 300 400 500 600

Base

Dumping sites

Route of vehicle 1

Route of vehicle 2

Route of vehicle 3

Ruchy kandydackie w TSP na podstawie znanych rozwiązań

Generujemy pewną liczbę rozwiązań stosując heurystykę lub lokalne przeszukiwanie bez ruchów kandydackich

Każdy łuk, który wystąpi choć raz w jednym z tych rozwiązań staje się łukiem kandydackim

Pomijanie złych ruchów na podstawie reguł heurystycznych

Ruchy złe i kandydackie mogą być identyfikowane na podstawie działania metody wyższego rzędu

Pamięć długoterminowa w

Lista dobrych łuków w TSP

Lista łuków występujących w ruchach przynoszących poprawę

Wykorzystanie informacji z operatorów rekombinacji

Np. do ruchów kandydackich zalicza się ruchy wprowadzające łuki występujące u dowolnego z rodziców (nawet jeżeli nie znalazły się one w potomku)

Techniki zaawansowane

Np. przeglądanie sąsiedztwa o rozmiarze wykładniczym w czasie wielomianowym

Wygeneruj rozwiązanie x

powtarzaj

znajdź najlepszy ruch m M(x)

jeżeli f(m(x)) > f(x) to

x := m(x)

dopóki nie znaleziono lepszego

rozwiązania

Problem optymalizacji

Wady lokalnego przeszukiwania

kończą działanie w optimum lokalnym (poza przypadkiem dokładnej struktury sąsiedztwa)

• dokładne sąsiedztwa są w większości przypadków nie praktyczne ponieważ sprowadzają się do kompletnego przeszukania przestrzeni rozwiązań dopuszczalnych,

jakość rozwiązań w dużej mierze zależy od wyboru rozwiązania startowego

• dla większości problemów nie ma żadnych wskazań do tego jak odpowiednio wybrać rozwiązanie startowe

Zalety lokalnego przeszukiwania

są elastyczne

można stosować dla każdego problemu optymalizacji kombinatorycznej

Unikanie wad algorytmów lokalnego przeszukiwania

wprowadzenie bardziej złożonej definicji sąsiedztwa w celu możliwości przeszukania większej części przestrzeni rozwiązań dopuszczalnych

ograniczone akceptowanie pogorszeń funkcji celu

wykonanie algorytmu lokalnego przeszukiwania dla dużej liczby rozwiązań startowych

dobre rozwiązania startowe

Multiple start local search – Lokalne przeszukiwanie z różnych punktów startowych

Powtarzaj

Wygeneruj zrandomizowane rozwiązanie startowe x

Lokalne przeszukiwanie (x)

Do spełnienia warunków stopu

Zwróć najlepsze znalezione rozwiązanie

Variable neighborhood Local Search -Lokalne przeszukiwanie ze zmiennym sąsiedztwem

Obserwacje:

Lokalne optimum dla pewnego typu sąsiedztwa nie musi być lokalnym optimum dla innego typu sąsiedztwa

Globalne optimum jest lokalnym optimum dla wszystkich możliwych sąsiedztw

Variable neighborhood Local Search -Lokalne przeszukiwanie ze zmiennym sąsiedztwem

Wejście – lista sąsiedztw (N1,N2,…)

Wygeneruj rozwiązanie początkowe x

Dla wszystkich sąsiedztw N=(N1,N2,…)

x := Lokalne przeszukiwanie (x, N)

Iterated local search - Iteracyjne przeszukiwanie lokalne

Wygeneruj rozwiązanie początkowe x

x := Lokalne przeszukiwanie (x)

Powtarzaj

Perturbacja (x)

y := Lokalne przeszukiwanie (x)

Jeżeli f(y) > f(x) to

x := y

Do spełnienia warunków stopu

Perturbacja

Zrandomizowana modyfikacja wykraczająca poza bieżące sąsiedztwo – nieosiągalna w jednym ruchu, np.:

Złożenie kilku ruchów

Większy ruch (np. wymania większej

liczby łuków dla TS)

Iterated local search - Iteracyjne przeszukiwanie lokalne

Rozwiązanie

początkowe

Perturbacja

Lokalne

przeszukiwanie

Adaptive multistart local search

Po każdym uruchomieniu przeszukiwania lokalnego aktualizowana jest tablica częstości występowania poszczególnych łuków w lokalnych optimach

Nowe rozwiązania startowe są tworzone przy wykorzystaniu tych danych –większe prawdopodobieństwo wybrania częstych łuków

Large-scale neighborhood search

Ruch polega na złożeniu dwóch metod:

Destroy

Repair

W ogólności mogą one powodować duże zmiany rozwiązania

Large-scale neighborhood search

Destroy – niszczy część rozwiązania

Np. usuwa część wierzchołków z tras problemu VRP

Często łączenie losowości z wyborem

heurystycznym – staramy się usuwać wierzchołki (fragmenty tras), które mogą być źle przydzielone

Repair – ukierunkowana (funkcją celu) naprawa rozwiązania Może to być heurystyka lub nawet metoda dokładna

Adaptive (Large-scale neighborhood) local search

Możemy wykonywać wiele różnych typów ruchów (operatorów)

Ich prawdopodobieństwo jest automatycznie modyfikowane na podstawie efektów stosowania poszczególnych operatorów (np. prawdopodobieństwa uzyskania nowego lepszego rozwiązania)

Kryteria stopu

Liczba iteracji / czas obliczeń

Kryterium dynamiczne – brak poprawy w zadanej liczbie iteracji / zadanym czasie obliczeń

Techniki optymalizacji

Symulowane wyżarzanie

Wyżarzanie

wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje

powolne zmniejszanie temperatury do chwili, w której cząsteczki ułożą się wzajemnie i osiągną (ang. ground state) temperaturę zerową

Algorytm Metropolis

Metropolis i in. (1953) - algorytm statystycznego symulowania (Monte Carlo) zmian ciała stałego w gorącej kąpieli aż do stanu termicznej równowagi

Losowa generacja sekwencji stanów ciała stałego:

• stan i ciała stałego i jego energia Ei,

• perturbacja (małe zniekształcenie) następny stan. Energia następnego stanu wynosi Ej.

• jeśli Ej - Ei 0, stan j jest akceptowany jako stan bieżący

• w przeciwnym wypadku, stan j jest akceptowany z pewnym prawdopodobieństwem:

Tk

EE

B

jiexp T – temperatura kąpieli

kB – stała Boltzmanna

Analogie do optymalizacji

System fizycznyProblem optymalizacji

stan

energia

stan stały

temperatura

szybkie schładzanie

powolne schładzanie

rozwiązanie

koszt

optimum

parametr kontrolny T

lokalna optymalizacja

symulowanie wyżarzanie

Symulowane wyżarzanieSimulated annealing, Monte Carlo annealing, probabilistic hill climbing, stochastic relaxation

Zastosowanie algorytmu Metropolis do optymalizacji kombinatorycznej.

Lokalne przeszukiwanie –wersja zachłanna

Wygeneruj rozwiązanie x

powtarzaj

dla każdego y N(x) w losowej kolejności

jeżeli f(y) > f(x) to

x := y

dopóki nie znaleziono lepszego rozwiązania

Kryterium akceptacji (maksymalizacja)

x, y – rozwiązania

kryterium akceptacji określa czy yuzyskane x i jest akceptowane

)f()f(

T

ff

)f()f(

c xyxy

xy

yP jesli

)()(exp

jesli1

}accept {

Wpływ temperatury

Wysoka temperatura, p1, random walk – błądzenie przypadkowe

Niska temperatura, p0 dla gorszych rozwiązań, lokalne przeszukiwanie (z akceptacją ruchów nie zmieniających funkcji celu)

Procedura SWwygeneruj rozwiązanie x

T := T0

powtarzaj

powtarzaj L razy

Wygeneruj losowe y N(x)

jeżeli f(y) > f(x) to

x := y

w przeciwnym wypadku

jeżeli exp ((f(y) - f(x)) / T) > random [0,1)

x := y

obniż T

dopóki T <= TK

Zwróć najlepsze wygenerowane rozwiązanie

Zbieżność algorytmu SW

Można uzyskać takie L i Tk, które zapewniają zbieżność SW do opt.

Dobre przybliżenie SW

• generowanie homogenicznych łańcuchów Markowa skończonej długości dla skończonej sekwencji malejących wartości parametru kontrolnego

Łańcuch Markowa

Łańcuch Markowa jest sekwencją prób (rozwiązań), w której prawdopodobieństwo wyniku danej próby zależy od wyniku poprzedniej próby.

Łańcuch Markowa jest niehomogeniczny jeśli prawdopodobieństwo przejścia zależy od numeru próby k. Jeśli nie zależy łańcuch Markowa jest homogeniczny.

Sposób chłodzenia określa

skończona sekwencja wartości parametru kontrolnego, tj.

• początkowa wartość parametru kontrolnego T0

• funkcja dekrementacji parametru kontrolnego

• końcowa wartość parametru kontrolnego

skończona liczba przejść dla każdej wartości parametru kontrolnego, tj.

• skończona długość każdego homogenicznego łańcucha Markowa

Sposób chłodzenia Kirkpatricka,

Gelatta i Vecchi’ego

Wartość początkowa parametru kontrolnego• Wartość c0 powinna być odpowiednio wysoka by

zapewnić akceptację wszystkich przejść (początkowy współczynnik akceptacji jest bliski 1).

• Zależy od problemu (patrz formuła: f, T0)

• Np. f = 1000, p 0,98 dla T0 = 250

• Podgrzewanie

Zmniejszanie wartości parametru kontrolnego

Tk+1 = Tk, k = 1, 2, ...

Tk+1 = k T0

jest stałą mniejszą ale bliską 1. (0.8 – 0.99)

Sposób chłodzenia Lk = L

Długość łańcucha Markowa

Powinna być odpowiednia, tak by algorytm mógł „odwiedzić” wszystkich swoich sąsiadów przynajmniej raz (osiągnąć stan równowagi termicznej na każdym poziomie temperatury). Związek ze średnim rozmiarem sąsiedztwa.

Ponieważ prawdopodobieństwo akceptacji zmniejsza się w czasie, można by się spodziewać, że Lk dla Tk 0 . Dlatego istnieje pewne ograniczenie na długość łańcucha Markowa dla małych Tk.

Wartość końcowa parametru kontrolnego

Algorytm kończy działanie, gdy wartość funkcji celu otrzymanego rozwiązania w ostatniej próbie łańcucha Markowa nie uległa zmianie dla kilku kolejnych łańcuchów

Algorytm Great Deluge –Wielka powódź

wygeneruj rozwiązanie x

Poziom wody P := P0

powtarzaj

powtarzaj L razy

Wygeneruj losowe y N(x)

jeżeli f(y) > P to

x := y

podwyższ P

dopóki P <= PK

Zwróć najlepsze wygenerowane rozwiązanie

Great Deluge

Techniki optymalizacji

Przeszukiwanie „tabu”

Obserwacje

Lokalne optima nie muszą być dobrymi rozwiązaniami

Lokalne optima mogą się grupować, leżeć blisko siebie

Lokalne przeszukiwanie –wersja stroma

Wersja stroma

wygeneruj rozwiązanie x

powtarzaj

znajdź najlepszy ruch m M(x)

jeżeli f(m(x)) > f(x) to

x := m(x)

dopóki nie znaleziono lepszego rozwiązania

Czy można z tego

zrezygnować?

Przeszukiwanie „tabu”

Główna idea – wykorzystanie pamięci

Zapamiętywanie rozwiązań czy ruchów

Najprostszy sposób unikania cykli

Zapamiętuj wszystkie odwiedzone dotąd rozwiązania

Rozwiązania te stają się zakazane –Tabu

Dla poprawy efektywności można zachowywać wartości haszowe i wyszukiwanie przez połowienie

Może prowadzić do „krążenia” wokół bardzo podobnych rozwiązań

Lista Tabu

Lista K ostatnich ruchów (elementów ruchów), które są zakazane

Algorytm przeszukiwania Tabu – Tabu search

wygeneruj rozwiązanie x

lista Tabu T:=Ø

powtarzaj

znajdź najlepszy ruch m M(x)|mT

x := m(x)

uaktualnij listę Tabu (T, m)

dopóki warunek stopu

Zwróć najlepsze wygenerowane rozwiązanie

Lista Tabu – kolejka FiFo

(a,b)

(c,d) (a,b)

(e,bf (c,d) (a,b)

(g,h) (e,f) (c,d) (a,b)

(a,b)

(c,d)

(e,f)

(g,h)

(i,j)

(k,l) (i,j) (g,h) (e,f) (c,d)

Stopnie swobody

Co przechowywać na liście Tabu?

Ruchy

Składowe ruchów

Jak blokować ruchy?

Dokładne dopasowanie

Ruchy odwrotne

Ruchy częściowo się pokrywające

Długość listy Tabu

Ruchy na liście Tabu

Wymiana dwóch łuków

Pary łuków

Wymiana dwóch wierzchołków

Pary wierzchołków

Składowe ruchów na liście Tabu

Wymiana dwóch łuków

Poszczególne łuki

Wymiana dwóch wierzchołków

Poszczególne wierzchołki

Blokowanie ruchów –dokładne dopasowanie

Zakazane są tylko ruchy znajdujące się na liście Tabu, lub odwrotne

Stosunkowy mały zakres ograniczeń

Wymaga dłuższej listy Tabu

Blokowanie ruchów - ruchy częściowo się pokrywające

Np. ruch (a,b), blokuje wszystkie ruchy, w których występuje a lub b

Naturalne przy przechowywaniu składowych ruchów

Stosunkowy duży zakres ograniczeń

Wymaga krótszej listy Tabu

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

Reactive Tabu Search – automatyczne modyfikowanie długości listy Tabu

Stałe, powolne zmniejszanie długości listy

Co L iteracji zmniejszana jest długość listy Tabu

Zwiększanie długości listy w przypadku wpadnięcia w cykl

Wymaga zachowywania odwiedzonych rozwiązań

Kryteria aspiracji

Lista Tabu może blokować zbyt wiele ruchów/rozwiązań

Ruchy/rozwiązania Tabu, które są bardzo dobre – spełniają kryteria aspiracji –mogą zostać zaakceptowane

Najprostsze kryterium aspiracji –akceptuj rozwiązania lepsze od najlepszego znalezionego dotąd, nawet jeżeli są Tabu

Takie rozwiązania na pewno nie zostały dotąd odwiedzone

Naturalny sposób powstania algorytmu

Algorytmnajwiększego

spadku Ulepszony alg.największego

spadku

Lista „tabu”

Poziomaspiracji

Przeszukiwanie„tabu”

niezdolność wyjścia z lok. opt.

akceptacja ruchów niepolepszających, wybór najlepszego rozwiązania z V*

akceptacja atrakcyjnych ruchów zakazanych

cykle

za dużo zakazanych ruchów

Przykład zapamiętywania ruchów „tabu”

Pamięć długoterminowa –long term memory

Np.:

Tablica częstości występowania poszczególnych łuków w odwiedzanych rozwiązaniach

Tablica częstości ruchów przynoszących poprawę

Zastosowania pamięci długoterminowej

Restarty – tworzenie nowych rozwiązań:

Dywersyfikacja – rozwiązania startowe odległe od dotychczas odwiedzanych

Intensyfikacja – rozwiązania startowe podobne do najlepszych dotąd odwiedzanych

Definiowanie ruchów kandydackich