Algorytmy heurystyczne - Algorytmy przeszukiwania...

Post on 27-Feb-2019

222 views 0 download

Transcript of Algorytmy heurystyczne - Algorytmy przeszukiwania...

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