Upload
trandien
View
222
Download
0
Embed Size (px)
Citation preview
Algorytmy heurystyczneAlgorytmy przeszukiwania lokalnego
Piotr Gajowiak, Paweª Kacprzak
Instytut Informatyki Uniwersytetu Wrocªawskiego
8 czerwca 2011
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
De�nicja problemu
Funkcja kosztu f
Funkcja oceny, ewaluacyjna albo dopasowania. Ma typ f : S → R
Rozwi¡zanie optymalne
Dana jest przestrze« rozwi¡za« pewnego problemu oraz funkcja
kosztu f okre±lona na tej przestrzeni. Rozwi¡zanie jest optymalne,
gdy minimalizuje warto±¢ f .
Problem optymalizacyjny
Znale¹¢ rozwi¡zanie optymalne przy danej funkcji kosztu f .
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Reprezentacja rozwi¡zania
Rozwi¡zujemy te problemy, których rozwi¡zania mo»na
reprezentowa¢ w postaci wektorów.
Przykªad:
rozwi¡zanie problemu komiwoja»era < e1, e2, . . . , ek >
Wektory mo»na ªatwo zaburza¢ na wspóªrz¦dnych.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Reprezentacja rozwi¡zania
Rozwi¡zujemy te problemy, których rozwi¡zania mo»na
reprezentowa¢ w postaci wektorów.
Przykªad:
rozwi¡zanie problemu komiwoja»era < e1, e2, . . . , ek >
Wektory mo»na ªatwo zaburza¢ na wspóªrz¦dnych.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Reprezentacja rozwi¡zania
Rozwi¡zujemy te problemy, których rozwi¡zania mo»na
reprezentowa¢ w postaci wektorów.
Przykªad:
rozwi¡zanie problemu komiwoja»era < e1, e2, . . . , ek >
Wektory mo»na ªatwo zaburza¢ na wspóªrz¦dnych.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Jak nale»y my±lec o problemie?
Poj¦cia krajobrazu funkcji oceny
optima lokalne
zbocza
siodªa
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Jakie s¡ optima?
lokalne
globalne
Obszar przyci¡gania danego punktu
Fragment dziedziny, z którego przeszukiwanie u»ywaj¡c funkcji
oceny zawsze prowadzi do tego punktu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Paradygmaty poszukiwania rozwi¡zania
1 zaburzeniowe i konstruktywne
2 systematyczne i lokalne
Kombinacje paradygmatów:
konstruktywne systematyczne � to byªo ostatnio
zaburzeniowe lokalne � to b¦dzie dzisiaj
konstruktywne lokalne � o tym te» dzisiaj
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Paradygmaty poszukiwania rozwi¡zania
1 zaburzeniowe i konstruktywne
2 systematyczne i lokalne
Kombinacje paradygmatów:
konstruktywne systematyczne � to byªo ostatnio
zaburzeniowe lokalne � to b¦dzie dzisiaj
konstruktywne lokalne � o tym te» dzisiaj
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Paradygmaty poszukiwania rozwi¡zania
1 zaburzeniowe i konstruktywne
2 systematyczne i lokalne
Kombinacje paradygmatów:
konstruktywne systematyczne � to byªo ostatnio
zaburzeniowe lokalne � to b¦dzie dzisiaj
konstruktywne lokalne � o tym te» dzisiaj
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Paradygmaty poszukiwania rozwi¡zania
1 zaburzeniowe i konstruktywne
2 systematyczne i lokalne
Kombinacje paradygmatów:
konstruktywne systematyczne � to byªo ostatnio
zaburzeniowe lokalne � to b¦dzie dzisiaj
konstruktywne lokalne � o tym te» dzisiaj
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie lokalne
proces iteracyjny
ustala punkt pocz¡tkowy
przemieszcza si¦ po przestrzeni znajduj¡c coraz to lepsze
rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie lokalne
proces iteracyjny
ustala punkt pocz¡tkowy
przemieszcza si¦ po przestrzeni znajduj¡c coraz to lepsze
rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie lokalne
proces iteracyjny
ustala punkt pocz¡tkowy
przemieszcza si¦ po przestrzeni znajduj¡c coraz to lepsze
rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Algorytm podstawowy
procedure algorytm1
x = jakie±_pocz¡tkowe_rozwi¡zanie
optimum = x
do
{
S = n elementowy zbiór rozwi¡za« (s¡siadów x)
x = min(S)
if(x < optimum)
optimum = x
}
while(warunek_ko«ca_algorytmu);
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Gªówne elementy algorytmu
1 procedura generowania rozwi¡zania pocz¡tkowego
2 procedura generowania zbioru rozwi¡za« o rozmiarze n z
s¡siedztwa punktu x
3 procedura wyboru najlepszego rozwi¡zania z danego zbioru
4 procedura akceptacji rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Gªówne elementy algorytmu
1 procedura generowania rozwi¡zania pocz¡tkowego
2 procedura generowania zbioru rozwi¡za« o rozmiarze n z
s¡siedztwa punktu x
3 procedura wyboru najlepszego rozwi¡zania z danego zbioru
4 procedura akceptacji rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Gªówne elementy algorytmu
1 procedura generowania rozwi¡zania pocz¡tkowego
2 procedura generowania zbioru rozwi¡za« o rozmiarze n z
s¡siedztwa punktu x
3 procedura wyboru najlepszego rozwi¡zania z danego zbioru
4 procedura akceptacji rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Gªówne elementy algorytmu
1 procedura generowania rozwi¡zania pocz¡tkowego
2 procedura generowania zbioru rozwi¡za« o rozmiarze n z
s¡siedztwa punktu x
3 procedura wyboru najlepszego rozwi¡zania z danego zbioru
4 procedura akceptacji rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Wybór punktu pocz¡tkowego
wybór losowy
wiedza o zachowaniu funkcji oceny
wiedza od eksperta
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Wybór punktu pocz¡tkowego
wybór losowy
wiedza o zachowaniu funkcji oceny
wiedza od eksperta
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Wybór punktu pocz¡tkowego
wybór losowy
wiedza o zachowaniu funkcji oceny
wiedza od eksperta
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Generowanie nowego punktu przestrzeni
Jak wybieramy nowy punkt przestrzeni?
z s¡siedztwa bie»¡cego punktu
Co to jest s¡siedztwo?
de�niujemy operator s¡siedztwa
s¡ to wszystkie punkty, które mo»emy uzyska¢ z bie»¡cego przy
pomocy zde�niowanego operatora
Czy przegl¡damy wszystkie punkty s¡siedztwa?
dziedzina dyskretna � deterministycznie lub losowo
dziedzina ci¡gªa � losowo
Wa»ne: musi zabezpiecza¢ przed wpadni¦ciem w zamkni¦ty
cykl
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Generowanie nowego punktu przestrzeni
Jak wybieramy nowy punkt przestrzeni?
z s¡siedztwa bie»¡cego punktu
Co to jest s¡siedztwo?
de�niujemy operator s¡siedztwa
s¡ to wszystkie punkty, które mo»emy uzyska¢ z bie»¡cego przy
pomocy zde�niowanego operatora
Czy przegl¡damy wszystkie punkty s¡siedztwa?
dziedzina dyskretna � deterministycznie lub losowo
dziedzina ci¡gªa � losowo
Wa»ne: musi zabezpiecza¢ przed wpadni¦ciem w zamkni¦ty
cykl
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Generowanie nowego punktu przestrzeni
Jak wybieramy nowy punkt przestrzeni?
z s¡siedztwa bie»¡cego punktu
Co to jest s¡siedztwo?
de�niujemy operator s¡siedztwa
s¡ to wszystkie punkty, które mo»emy uzyska¢ z bie»¡cego przy
pomocy zde�niowanego operatora
Czy przegl¡damy wszystkie punkty s¡siedztwa?
dziedzina dyskretna � deterministycznie lub losowo
dziedzina ci¡gªa � losowo
Wa»ne: musi zabezpiecza¢ przed wpadni¦ciem w zamkni¦ty
cykl
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Generowanie nowego punktu przestrzeni
Jak wybieramy nowy punkt przestrzeni?
z s¡siedztwa bie»¡cego punktu
Co to jest s¡siedztwo?
de�niujemy operator s¡siedztwa
s¡ to wszystkie punkty, które mo»emy uzyska¢ z bie»¡cego przy
pomocy zde�niowanego operatora
Czy przegl¡damy wszystkie punkty s¡siedztwa?
dziedzina dyskretna � deterministycznie lub losowo
dziedzina ci¡gªa � losowo
Wa»ne: musi zabezpiecza¢ przed wpadni¦ciem w zamkni¦ty
cykl
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Dlaczego algorytm ma wad¦?
kroczy w kierunku lokalnego optimum (które nie koniecznie
jest optimum globalnym
problem: wiele lokalnym optimów
Jak sobie z tym poradzi¢?
jest kilka strategii
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Dlaczego algorytm ma wad¦?
kroczy w kierunku lokalnego optimum (które nie koniecznie
jest optimum globalnym
problem: wiele lokalnym optimów
Jak sobie z tym poradzi¢?
jest kilka strategii
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu (multi-start)
Idea:
wielokrotnie uruchamiamy ten sam algorytm z wielu punktów
poczatkowych
je±li zauwa»amy, »e bie»¡ce rozwi¡zanie pomimo du»ej ilo±ci
iteracji pozostaje niezmienione � przerywamy, zapami¦tujemy
je i zaczynamy z innego punktu pocz¡tkowego
Jak wybieramy nowy punkt pocz¡tkowy?
losujemy
Na koniec zwracamy najlepsze rozwi¡zanie ze wszystkich
uruchomie«.
Ta strategia te» ma swoje wady.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu (multi-start)
Idea:
wielokrotnie uruchamiamy ten sam algorytm z wielu punktów
poczatkowych
je±li zauwa»amy, »e bie»¡ce rozwi¡zanie pomimo du»ej ilo±ci
iteracji pozostaje niezmienione � przerywamy, zapami¦tujemy
je i zaczynamy z innego punktu pocz¡tkowego
Jak wybieramy nowy punkt pocz¡tkowy?
losujemy
Na koniec zwracamy najlepsze rozwi¡zanie ze wszystkich
uruchomie«.
Ta strategia te» ma swoje wady.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu (multi-start)
Idea:
wielokrotnie uruchamiamy ten sam algorytm z wielu punktów
poczatkowych
je±li zauwa»amy, »e bie»¡ce rozwi¡zanie pomimo du»ej ilo±ci
iteracji pozostaje niezmienione � przerywamy, zapami¦tujemy
je i zaczynamy z innego punktu pocz¡tkowego
Jak wybieramy nowy punkt pocz¡tkowy?
losujemy
Na koniec zwracamy najlepsze rozwi¡zanie ze wszystkich
uruchomie«.
Ta strategia te» ma swoje wady.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu (multi-start)
Idea:
wielokrotnie uruchamiamy ten sam algorytm z wielu punktów
poczatkowych
je±li zauwa»amy, »e bie»¡ce rozwi¡zanie pomimo du»ej ilo±ci
iteracji pozostaje niezmienione � przerywamy, zapami¦tujemy
je i zaczynamy z innego punktu pocz¡tkowego
Jak wybieramy nowy punkt pocz¡tkowy?
losujemy
Na koniec zwracamy najlepsze rozwi¡zanie ze wszystkich
uruchomie«.
Ta strategia te» ma swoje wady.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu ze zmody�kowanego bie»¡cegopoªo»enia (kick-start)
podobna do poprzedniej
zamiast losowa¢ zaburzamy aktualny punkt
Jak silnie zaburza¢?
na tyle silnie, aby opu±cic minimum lokalne
nie za mocno, aby nie stracic informacji o bie»¡cym punkcie �
mog¡ by¢ cenne
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Strategia wielostartu ze zmody�kowanego bie»¡cegopoªo»enia (kick-start)
podobna do poprzedniej
zamiast losowa¢ zaburzamy aktualny punkt
Jak silnie zaburza¢?
na tyle silnie, aby opu±cic minimum lokalne
nie za mocno, aby nie stracic informacji o bie»¡cym punkcie �
mog¡ by¢ cenne
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search)
przypomina poprzedni¡ strategie, ale
od teraz najlepsze rozwi¡zania to zbiór
korzysta z trzech procedur
algorytm przeszukiwania lokalnego � to ju» znamy
perturbacja
wybór najlepszego
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search)
przypomina poprzedni¡ strategie, ale
od teraz najlepsze rozwi¡zania to zbiór
korzysta z trzech procedur
algorytm przeszukiwania lokalnego � to ju» znamy
perturbacja
wybór najlepszego
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search)
przypomina poprzedni¡ strategie, ale
od teraz najlepsze rozwi¡zania to zbiór
korzysta z trzech procedur
algorytm przeszukiwania lokalnego � to ju» znamy
perturbacja
wybór najlepszego
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search)
przypomina poprzedni¡ strategie, ale
od teraz najlepsze rozwi¡zania to zbiór
korzysta z trzech procedur
algorytm przeszukiwania lokalnego � to ju» znamy
perturbacja
wybór najlepszego
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search)
przypomina poprzedni¡ strategie, ale
od teraz najlepsze rozwi¡zania to zbiór
korzysta z trzech procedur
algorytm przeszukiwania lokalnego � to ju» znamy
perturbacja
wybór najlepszego
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Iteracyjne przeszukiwanie lokalne (iterated local search) c.d.
procedure algorytm2
x = jakie±_rozwi¡zanie_pocz¡tkowe
poprzednie_najlepsze_rozwi¡zania = {}
x* = algorytm1(x)
do
{
x' = perturbacja(x*,
poprzednie_najlepsze_rozwi¡zania)
x*' = algorytm1(x')
x* = wybor_najlepszego(x*, x*',
poprzednie_najlepsze_rozwi¡zania)
}
while(warunek_ko«ca_algorytmu)
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura perturbacji
ma dopeªnia¢ dziaªanie algorytmu przeszukiwania lokalnego
nie mo»e by¢ zbyt silnia, bo to nie multi-start
nie mo»e tylko wprost mody�kowa¢, bo to kick-start
siªa zmienia si¦ w czasie i zale»y od zbioru najlepszych
rozwi¡za« � dostosowuje si¦ do aktualnych potrzeb
Jak dobiera¢ siª¦?
je±li w zbiorze najlepszych rozwi¡za« elementy nie ró»ni¡ si¦
zbytnio to zwi¦kszamy siª¦
i odwrotnie
mo»emy te» dokonywa¢ zaburze« na podstawie wi¦cej ni»
jednego (ostatniego) rozwi¡zania
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura wybór najlepszego
Czy najlepszy jest zawsze najlepszy?
niekoniecznie
mo»emy odrzuci¢ nowe rozwi¡zanie, nawet gdy jest lepsze, lecz
znajduje sie dostatecznie blisko poprzedniego
lub odwrotnie, zaakceptowa¢ gorsze je±li znajduje si¦ w maªo
eksplorowanej cz¦±ci przestrzeni
Wa»na jest wzajemna relacja mi¦dzy perturbacj¡ a wyborem
najlepszego. Nie chcemy, »eby perturbacja zostaªa zneutralizowana
przez wybór najlepszego, inaczej mo»emy znów utkn¡¢ w jednym
miejscu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura wybór najlepszego
Czy najlepszy jest zawsze najlepszy?
niekoniecznie
mo»emy odrzuci¢ nowe rozwi¡zanie, nawet gdy jest lepsze, lecz
znajduje sie dostatecznie blisko poprzedniego
lub odwrotnie, zaakceptowa¢ gorsze je±li znajduje si¦ w maªo
eksplorowanej cz¦±ci przestrzeni
Wa»na jest wzajemna relacja mi¦dzy perturbacj¡ a wyborem
najlepszego. Nie chcemy, »eby perturbacja zostaªa zneutralizowana
przez wybór najlepszego, inaczej mo»emy znów utkn¡¢ w jednym
miejscu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura wybór najlepszego
Czy najlepszy jest zawsze najlepszy?
niekoniecznie
mo»emy odrzuci¢ nowe rozwi¡zanie, nawet gdy jest lepsze, lecz
znajduje sie dostatecznie blisko poprzedniego
lub odwrotnie, zaakceptowa¢ gorsze je±li znajduje si¦ w maªo
eksplorowanej cz¦±ci przestrzeni
Wa»na jest wzajemna relacja mi¦dzy perturbacj¡ a wyborem
najlepszego. Nie chcemy, »eby perturbacja zostaªa zneutralizowana
przez wybór najlepszego, inaczej mo»emy znów utkn¡¢ w jednym
miejscu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura wybór najlepszego
Czy najlepszy jest zawsze najlepszy?
niekoniecznie
mo»emy odrzuci¢ nowe rozwi¡zanie, nawet gdy jest lepsze, lecz
znajduje sie dostatecznie blisko poprzedniego
lub odwrotnie, zaakceptowa¢ gorsze je±li znajduje si¦ w maªo
eksplorowanej cz¦±ci przestrzeni
Wa»na jest wzajemna relacja mi¦dzy perturbacj¡ a wyborem
najlepszego. Nie chcemy, »eby perturbacja zostaªa zneutralizowana
przez wybór najlepszego, inaczej mo»emy znów utkn¡¢ w jednym
miejscu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Procedura wybór najlepszego
Czy najlepszy jest zawsze najlepszy?
niekoniecznie
mo»emy odrzuci¢ nowe rozwi¡zanie, nawet gdy jest lepsze, lecz
znajduje sie dostatecznie blisko poprzedniego
lub odwrotnie, zaakceptowa¢ gorsze je±li znajduje si¦ w maªo
eksplorowanej cz¦±ci przestrzeni
Wa»na jest wzajemna relacja mi¦dzy perturbacj¡ a wyborem
najlepszego. Nie chcemy, »eby perturbacja zostaªa zneutralizowana
przez wybór najlepszego, inaczej mo»emy znów utkn¡¢ w jednym
miejscu.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Podstumowanie itercyjnego przeszukiwania lokalnego
tworzenie rozwi¡zania pocz¡tkowego nie powinno wpªywa¢ na
jako±¢ uzyskiwanych wyników
algorytm1 powinien by¢ dopasowany specjalnie do
rozwi¡zywanego problemu
perturbacja i wybór najlepszego powinny od siebie zale»e¢
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem
Motywacja: trudno±ci¡ w znalezieniu optimum globalnego mo»e by¢
operator s¡siedztwa, gdy» faworyzuje pewne fragmenty dziedziny.
wprowadzamy operator s¡siedztwa, który b¦dzie zmieniaª si¦ w
czasie
ka»de poprzednie s¡siedztwo jest podzbiorem nast¦pnego
gdy nie mo»emy znale¹¢ lepszego punktu w k-tym s¡siedztwie
poszukajmy w k + 1 gdzie k + 1 ≤ kmax
Dlaczego nie szuka¢ odrazu dla kmax?
wraz ze wzrostem k ro±nie zªo»ono±¢, wi¦c staramy zawsze
najpierw skorzysta¢ z s¡siedztwa ni»szego rz¦du
dla ka»dego k1 < k2, k1 jest przeszukiwane cz¦±ciej ni» k2 �
intuicyjnie oznacza to, »e cz¦±ciej przegl¡damy te bli»sze
s¡siedztwa, bo w rzeczywisto±ci optima zazwyczaj s¡
zgromadzone blisko siebie
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przeszukiwanie ze zmiennym s¡siedztwem c.d.
procedure algorytm3
x = jakie± rozwi¡zanie pocz¡tkowe
k = 1
do
{
x' = element z k-tego s¡siedztwa x
if(x' < x)
x = x', k = 1
else
k++
}
while(k < k_max)
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Uogólnione przeszukiwanie ze zmiennym s¡siedztwem
procedure algorytm4
x = jakie± rozwi¡zanie pocz¡tkowe
l = 1
do
{
x' = element z l-tego s¡siedztwa x
algorytm3(x')
if(x' < x)
x = x', l = 1
else
l++
}
while(l < l_max)
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Skrzywione przeszukiwanie ze zmiennym s¡siedztwem
Co, gdy optima s¡ rozproszone?
podobnie jak wcze±niej
chcemy da¢ szans¦ gorszym rozwi¡zaniom, aby przeszuka¢ ich
s¡siedztwa, je±li s¡ dostatecznie oddalone od bie»¡cego
Idea:
mody�kujemy funkcj¦ oceny
dla zadania minimalizacji jako±¢ nowego rozwi¡zania chcemy
pomniejszy¢
f ′(y) = f (y)− α||x , y ||α � staªa, wspóªczynnik wagowy, ||x , y || � odlegªo±¢ mi¦dzy
rozwi¡zaniami w przestrzeni
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Skrzywione przeszukiwanie ze zmiennym s¡siedztwem
procedure algorytm5
x = jakies rozwiazanie poczatkowe
x_opt = x, f_opt = f(x_opt)
l = 1
do {
x' = element z k-tego sasiedztwa x
x'' = algorytm1(x')
if(x'' < x)
x_opt = x''
f_opt = f(x_opt)
if(f(x'') - a||x,x''|| < f(x))
x = x''
l = 1
else
l++
} while(l < l_max)
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Przykªady konkretnych algorytmów
algorytm A*
algorytm Lin-Kernighan
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne
Dzi¦kujemy za uwag¦.
Piotr Gajowiak, Paweª Kacprzak Algorytmy heurystyczne