Heurystyki przeszukiwania lokalnego prezentacja

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Heurystyki przeszukiwania lokalnego

Sławomir Góra

Instytut Informatyki Uniwersytetu Wrocławskiego

Wrocław, 26 marca 2009

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

1

Wstęp

Algorytm pełnego przeglądu

Przestrzeń rozwiązań

2

Heurystyki

Definicje

Klasyfikacje

3

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt

Strategie wielostartu

Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Algorytm pełnego przeglądu

Przestrzeń rozwiązań

Algorytm pełnego przeglądu

skończony zbiór rozwiązań

najprostsza koncepcja – sprawdzić wszystkie możliwe rozwiązania

generator + ewaluator

czas liniowy... ale względem liczby rozwiązań

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Algorytm pełnego przeglądu

Przestrzeń rozwiązań

Liczba rozwiązań

Silnia

Zakładając, że potrafimy sprawdzić miliard rozwiązań na sekundę,
sprawdzenie 20! rozwiązań zajęłoby ok. 77 lat.

Komiwojażer

Liczba rozwiązań dopuszczalnych w problemie komiwojażera wynosi

n!

2

.

Praktyczne przykłady problemów komiwojażera:

zagadnienie z krystalografii rentgenowskiej – 14000 miast
wiercenie otworów w płytkach drukowanych – 17000 miast
projektowanie układów VSLI – około miliona miast

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Algorytm pełnego przeglądu

Przestrzeń rozwiązań

Liczba rozwiązań c.d.

Problem

Ogólny (niepermutacyjny) problem przepływowy, liczba możliwych
rozwiązań – (n!)

m

Fisher, 1973

W 1973 roku Fisher podał przykład danych n = 10, m = 10 (ft10), czyli
przestrzeń rozwiązań równa (10!)

10

4 · 10

65

.

Rozwiązanie optymalne opublikowano po 25 latach.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Definicje

Klasyfikacje

Definicje

Heurystyka

Heurystyka (gr. heuresis — odnaleźć, odkryć, heureka — znaleźć) –
w informatyce metoda znajdowania rozwiązań, dla której nie ma gwarancji
znalezienia rozwiązania optymalnego, a często nawet prawidłowego.

Intuicja

Nie jesteśmy w stanie przejrzeć całej przestrzeni rozwiązań, więc
zastosujmy jakąś praktyczną, „inteligentną”, opartą na doświadczeniu
bądź obserwacjach regułę postępowania, która skróci proces odkrycia
najlepszego lub przynajmniej zadowalającego nas rozwiązania.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Definicje

Klasyfikacje

Definicje c.d.

Metaheurystyka

Metaheurystyka – heurystyka „nadrzędna”, sterująca w procesie
iteracyjnego przeszukiwania heurystykami niższego rzędu.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Definicje

Klasyfikacje

Heurystyki przeszukiwania przestrzeni rozwiązań

zaburzeniowe i konstruktywne

systematyczne i lokalne

samotnego poszukiwacza i populacyjne

deterministyczne i losowe

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Proste przeszukiwanie lokalne

Wybierz rozwiązanie początkowe x i określ jego jakość.
Przyjmij x za najlepsze dotychczasowe rozwiązanie: x* = x.

do {

Wygeneruj zbiór rozwiązań z sąsiedztwa x.
Wybierz x’ - najlepsze z wygenerowanego zbioru.
Przypisz x’ jako rozwiązanie bieżące: x = x’.
Jeśli jakość x jest wyższa od jakości x*: x* = x.

}
while (warunek_stopu_algorytmu)

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Etapy przeszukiwania lokalnego

określanie rozwiązania początkowego – wiedza od eksperta lub
losowo

generowanie sąsiedztwa – ochrona przed cyklami

wybór bieżącego rozwiązania – funkcja kosztu

warunek końca algorytmu – kryterium akceptacji

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt

Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Różne rodzaje sąsiedztw

wektory 0-1: zmiana pojedynczej współrzędnej

permutacje: operacje swap (transpozycje, inwolucje), insert

grafy: wymiana krawędzi

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt

Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Metody ograniczania otoczeń

kryteria eliminacyjne, np. częściowy porządek na zbiorze elementów

bloki – podciągi elementów, w których zmiana kolejności nie
poprawia wartości funkcji celu

reprezentanci ruchów – pewne ruchy „lepsze” od innych

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt

Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Dwa ważne terminy

Eksploracja

Eksploracja przestrzeni rozwiązań mówi o jak „najszerszym” przeszukaniu
zbioru wszystkich rozwiązań w sensie sąsiedztwa, czyli jak daleko
odchodzimy od rozwiązania początkowego i w jak wielu kierunkach.
Szeroka eksploracja zmniejsza ryzyko „wpadania” w minima lokalne, ale
wiąże się z mniej dokładnym badaniem poszczególnych obszarów.

Eksploatacja

Eksploatacja, czy też intensyfikacja przeszukiwania określa dokładność
badania konkretnego obszaru przestrzeni rozwiązań, czyli np. jak wiele
elementów sąsiedztwa danego elementu bierzemy pod uwagę przy
wyborze najlepszego. Mocna intensyfikacja zwiększa prawdopodobieństwo
znalezienia optymalnego rozwiązania, ale tylko jeśli znajdziemy się
odpowiednio „blisko” niego.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje

Sąsiedztwo i koszt

Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Funkcja kosztu

Standardowe funkcje kosztu

Do obliczania jakości danego rozwiązania używa się funkcji kosztu –
charakterystycznej dla problemu, np. dla problemu szeregowania zadań
będzie to termin zakończenia ostatniego zadania.

Optymalizacje

Częste obliczanie funkcji kosztu może negatywnie wpłynąć na złożoność.
W trakcie przeszukiwania sąsiedztwa często lepszym pomysłem, niż
sprawdzanie wartości funkcji kosztu dla każdego elementu jest
porównanie kosztu dwóch sąsiednich elementów.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt

Strategie wielostartu

Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo
Przykładowe algorytmy

Strategie wielostartu

Wielostart (multi–start)

W przypadku problemów z dużą ilością minimów lokalnych, jeśli
zauważymy, że mimo upływu kolejnych iteracji nie poprawiamy
rozwiązania, to zaczynamy od nowa z losowym rozwiązaniem.

Wielostart ze zmodyfikowanego bieżącego rozwiązania (kick–start)

Jak wyżej, ale zaczynamy od nowa ze zmodyfikowanym rozwiązaniem.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu

Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo
Przykładowe algorytmy

Schemat

Wybierz rozwiązanie początkowe x i określ jego jakość.
poprzednie_najlepsze = {}
x* = algorytm_przeszukiwania_lokalnego(x)

do {

x’ = perturbacja(x*, poprzednie_najlepsze)
x*’ = algorytm_przeszukiwania_lokalnego(x’)
x* = wybierz_najlepszy(x*, x*’, poprzednie_najlepsze)

}
while (warunek_stopu_algorytmu)

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu

Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo
Przykładowe algorytmy

Funkcja perturbacji

nowy x* – dla kolejnego uruchomienia algorytmu

średnie zaburzenie – nie za słabe, nie za mocne

dopełnienie algorytmu

wykorzystanie poprzednich rozwiązań do określenia siły perturbacji

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu

Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo
Przykładowe algorytmy

Funkcja wybierz najlepszy

wykorzystanie poprzednich rozwiązań

unikanie zapętlania i minimów lokalnych

wybór niekoniecznie lepszego rozwiązania

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu

Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo
Przykładowe algorytmy

Podsumowanie iteracyjnego przeszukiwania lokalnego

wybór początkowego rozwiązania nie powinien wpływać na jakość
kolenych wyników

przeszukiwanie powinno być dopasowane do problemu

przeszukiwanie lokalne, perturbacja i wybór najlepszego elementu z
sąsiedztwa powinny „współpracować”

zwłaszcza te dwa ostatnie

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Schemat

Wybierz rozwiązanie początkowe x i określ jego jakość.
k = 1

do {

Wygeneruj x’ z k-tego sąsiedztwa x.
if (jakość x’ jest wyższa od jakości x)

x = x’
k = 1

else

k = k + 1

}
while (k < k_max)

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Przeszukiwanie ze zmiennym sąsiedztwem

Idea

Przyjmujemy, że dla dowolnego punktu x z przestrzeni rozwiązań istnieje
zbiór sąsiedztw N

1

(x ), ..., N

k

max

(x ) takich, że każde poprzednie jest

podzbiorem następnego. Dzięki temu możemy rozszerzać krąg
poszukiwań w kolejnych krokach, jeśli nie znajdujemy lepszego
rozwiązania w obecnym sąsiedztwie.

Metaheurystyczne zastosowanie

Przedstawiony schemat stanowi punkt wyjścia do pełnego algorytmu
przeszukiwania ze zmiennym sąsiedztwem, gdzie wykorzystuje się dwa
zbiory sąsiedztw.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Schemat

Wybierz rozwiązanie początkowe x i określ jego jakość.
l = 1

do {

Wygeneruj x’ z l-tego sąsiedztwa x.
przeszukaj_k_te_sasiedztwa(x’)
if (jakość x’ jest wyższa od jakości x)

x = x’
l = 1

else

l = l + 1

}
while (l < l_max)

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Pełne przeszukiwanie ze zmiennym sąsiedztwem

Idea

Pamiętamy, że N

1

(x ) ⊂ N

2

(x ) ⊂ ... ⊂ N

k

max

dla dowolnego x, gdzie N

k

max

stanowi całą przestrzeń rozwiązań. Zastosowanie dwóch zbiorów sąsiedztw
daje możliwość sprawdzania najbliższego sąsiedztwa kolejnych elementów,
nawet po przejście do sąsiedztw wyższego rzędu w pętli zewnętrznej.

Problem

Jeśli optima lokalne nie tworzą skupień, powyższy algorytm zbytnio
intensyfikuje przeszukiwania w jednym miejscu. W tego typu problemach
lepsze jest tzw. skrzywione przeszukiwanie ze zmiennym sąsiedztwem.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Skrzywione przeszukiwanie ze zmiennym sąsiedztwem

rozluźnienie kryterium akceptacji:
F (x

00

) = f (x

00

) − α · distance(x , x

00

)

możliwe bardziej złożone wzory

przeglądanie odleglejszych regionów

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne

Zmienne sąsiedztwo

Przykładowe algorytmy

Schemat

Wybierz rozwiązanie początkowe x i określ jego jakość.
x_opt = x; f_opt = f(x_opt); l = 1

do {

Wygeneruj x’ z l-tego sąsiedztwa x.
x’’ = przeszukaj_k_te_sasiedztwa(x’)
if (jakość x’’ jest wyższa od jakości x)

x_opt = x’; f_opt = f(x_opt)

if (F(x’’) jest lepsze od f(x)

x = x’’; l = 1

else

l = l + 1

}
while (l < l_max)

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo

Przykładowe algorytmy

Przykładowe algorytmy przeszukiwania lokalnego

Lin-Kernighan (1973): operator k-zmiany, kumulatywny
współczynnik przyrostu jakości, tabu

2-opt, 3-opt: dodatkowe warunki akceptacji

cała gama algorytmów opartych lub wykorzystujących procedury
typu local search – symulowane wyżarzanie, tabu search itp.

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo

Przykładowe algorytmy

Bibliografia

Metaheurystyki praktycznie; Krzysztof Trojanowski ; WIT 2005

Metaheurystyki, notatki do wykładu; Kazimierz Grygiel ; UW

Metody przyśpieszania przeglądania otoczeń w algorytmach
lokalnych przeszukiwań; Wojciech Bożejko, Mieczysław Wodecki ;
Opole 2006

Sławomir Góra

Heurystyki przeszukiwania lokalnego

background image

Wstęp

Heurystyki

Przeszukiwanie lokalne

Podstawowe informacje
Sąsiedztwo i koszt
Strategie wielostartu
Iteracyjne przeszukiwanie lokalne
Zmienne sąsiedztwo

Przykładowe algorytmy

Koniec

Dziękuję za uwagę.

Sławomir Góra

Heurystyki przeszukiwania lokalnego


Document Outline


Wyszukiwarka

Podobne podstrony:
wspomnienia z przeszlosci www prezentacje org
wspomnienia z przeszlosci www prezentacje org
wspomnienia z przeszlosci www prezentacje org
wspomnienia z przeszlosci www prezentacje org
wspomnienia z przeszlosci www prezentacje org
Prezentacja przeszkód małżeńskich i zgody kl 3 i 4
Prezentacja Rozwój lokalny i regionalny
Środowisko lokalne struktura, funkcja i znaczenie PREZENTACJA
Przeszłość nie wraca jak żywe zjawisko, prezentacje
instrumenty polityki lokalnej, Greta Poszwa - prezentacje, polityka regionaln
Mięso i drób w przeszłości prezentacja
Prezentacja zarządzanie rozwojem lokalnym i regionalnym
Przeszczepy Narządów Unaczynionych 2
prezentacja finanse ludnosci
prezentacja mikro Kubska 2
Religia Mezopotamii prezentacja
Prezentacja konsument ostateczna

więcej podobnych podstron