Local optimization
-
Upload
blaz-sovdat -
Category
Software
-
view
58 -
download
2
Transcript of Local optimization
UvodMetode
RezultatiLiteratura
Lokalna optimizacija
Blaz [email protected]
14. januar 2013
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Pregled
1 Uvod
2 Metode
3 Rezultati
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Pregled
1 Uvod
2 Metode
3 Rezultati
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Pregled
1 Uvod
2 Metode
3 Rezultati
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Intuitiven opis problema
Dan imamo seznam preferenc med plesalci, ki plesejo vplesnem klubu
Preferenca (Ana, Blaz, -) pomeni, da Ana noce plesatiblizu Blaza
Preferenca (Blaz, Ana, +) pomeni, da Blaz zeli plesati blizuAne
Ce je med Ano in Blazem k ljudi, dobimo k tock zaradi Aninepreference in −k tock zaradi Blazeve preference
Iscemo razporeditev plesalcev, ki maksimizira vsoto“preferencnih tock”
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Intuitiven opis problema
Dan imamo seznam preferenc med plesalci, ki plesejo vplesnem klubu
Preferenca (Ana, Blaz, -) pomeni, da Ana noce plesatiblizu Blaza
Preferenca (Blaz, Ana, +) pomeni, da Blaz zeli plesati blizuAne
Ce je med Ano in Blazem k ljudi, dobimo k tock zaradi Aninepreference in −k tock zaradi Blazeve preference
Iscemo razporeditev plesalcev, ki maksimizira vsoto“preferencnih tock”
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Intuitiven opis problema
Dan imamo seznam preferenc med plesalci, ki plesejo vplesnem klubu
Preferenca (Ana, Blaz, -) pomeni, da Ana noce plesatiblizu Blaza
Preferenca (Blaz, Ana, +) pomeni, da Blaz zeli plesati blizuAne
Ce je med Ano in Blazem k ljudi, dobimo k tock zaradi Aninepreference in −k tock zaradi Blazeve preference
Iscemo razporeditev plesalcev, ki maksimizira vsoto“preferencnih tock”
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Intuitiven opis problema
Dan imamo seznam preferenc med plesalci, ki plesejo vplesnem klubu
Preferenca (Ana, Blaz, -) pomeni, da Ana noce plesatiblizu Blaza
Preferenca (Blaz, Ana, +) pomeni, da Blaz zeli plesati blizuAne
Ce je med Ano in Blazem k ljudi, dobimo k tock zaradi Aninepreference in −k tock zaradi Blazeve preference
Iscemo razporeditev plesalcev, ki maksimizira vsoto“preferencnih tock”
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Intuitiven opis problema
Dan imamo seznam preferenc med plesalci, ki plesejo vplesnem klubu
Preferenca (Ana, Blaz, -) pomeni, da Ana noce plesatiblizu Blaza
Preferenca (Blaz, Ana, +) pomeni, da Blaz zeli plesati blizuAne
Ce je med Ano in Blazem k ljudi, dobimo k tock zaradi Aninepreference in −k tock zaradi Blazeve preference
Iscemo razporeditev plesalcev, ki maksimizira vsoto“preferencnih tock”
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Formalen opis problema
Dano imamo mnozico preferenc P := {〈p, r〉 : p, r ∈ S} , pricemer je S mnozica n plesalcev in f : S × S → Z2 preferencnafunkcija
Naj bo d : S × S → Zn razdalja med plesalci pri daniraporeditvi S
Iscemo S? := arg maxA∈SymS
∑〈p,r〉∈P
(−1)f (p,r)d(p, r)
Za neprazno mnozico S je Sym S grupa permutacij mnozice S
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Formalen opis problema
Dano imamo mnozico preferenc P := {〈p, r〉 : p, r ∈ S} , pricemer je S mnozica n plesalcev in f : S × S → Z2 preferencnafunkcija
Naj bo d : S × S → Zn razdalja med plesalci pri daniraporeditvi S
Iscemo S? := arg maxA∈SymS
∑〈p,r〉∈P
(−1)f (p,r)d(p, r)
Za neprazno mnozico S je Sym S grupa permutacij mnozice S
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Formalen opis problema
Dano imamo mnozico preferenc P := {〈p, r〉 : p, r ∈ S} , pricemer je S mnozica n plesalcev in f : S × S → Z2 preferencnafunkcija
Naj bo d : S × S → Zn razdalja med plesalci pri daniraporeditvi S
Iscemo S? := arg maxA∈SymS
∑〈p,r〉∈P
(−1)f (p,r)d(p, r)
Za neprazno mnozico S je Sym S grupa permutacij mnozice S
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Formalen opis problema
Dano imamo mnozico preferenc P := {〈p, r〉 : p, r ∈ S} , pricemer je S mnozica n plesalcev in f : S × S → Z2 preferencnafunkcija
Naj bo d : S × S → Zn razdalja med plesalci pri daniraporeditvi S
Iscemo S? := arg maxA∈SymS
∑〈p,r〉∈P
(−1)f (p,r)d(p, r)
Za neprazno mnozico S je Sym S grupa permutacij mnozice S
Blaz [email protected] Lokalna optimizacija
Problemski prostor
Vsega skupaj 399! = 160086307116559738155869925798757514626756457565007398646711114857005992922967078590696196618658161690735876437589642027120745407208793588072404971617007494843354135377095406066154855880767615610812537786121677226656934787295293329889991101773874178363226192550806087278026993983201987753863431668129069694725023374409414275815875828834913374670967078348380060934470394466978765779646756545675424549350157457563271478245865405680761395848801899028763255590217026083243137987131686080581096674871056010581499513879026589855942403498079792835159647491344925369568016515800543448680025803391561534522694855761493401748918989590240396787824784555716446448873404044136201133055019564546002121091038978073635688462008895936295056689750153498900363988015318027982295262581227520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ≈ 10866
razporeditev; za 109 razporeditev na sekundo se vedno ≈ 10849 let
UvodMetode
RezultatiLiteratura
Uporabljene metahevristike
Metode lokalne optimizacije [Luke, 2009] implementiram vC++
Zacetna Pythonska implementacija se izkaze za prepocasno
Hill Climbing, Hill Climbing with Random Restarts, IterativeLocal Search with Random Restarts in Simulated Annealing
Sledi hiter opis teh metod
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Uporabljene metahevristike
Metode lokalne optimizacije [Luke, 2009] implementiram vC++
Zacetna Pythonska implementacija se izkaze za prepocasno
Hill Climbing, Hill Climbing with Random Restarts, IterativeLocal Search with Random Restarts in Simulated Annealing
Sledi hiter opis teh metod
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Uporabljene metahevristike
Metode lokalne optimizacije [Luke, 2009] implementiram vC++
Zacetna Pythonska implementacija se izkaze za prepocasno
Hill Climbing, Hill Climbing with Random Restarts, IterativeLocal Search with Random Restarts in Simulated Annealing
Sledi hiter opis teh metod
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Uporabljene metahevristike
Metode lokalne optimizacije [Luke, 2009] implementiram vC++
Zacetna Pythonska implementacija se izkaze za prepocasno
Hill Climbing, Hill Climbing with Random Restarts, IterativeLocal Search with Random Restarts in Simulated Annealing
Sledi hiter opis teh metod
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n;ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π), postavi π := ρ
Ljubimo konveksnost
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n;ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π), postavi π := ρ
Ljubimo konveksnost
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n;ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π), postavi π := ρ
Ljubimo konveksnost
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n;ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π), postavi π := ρ
Ljubimo konveksnost
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing with Random Restarts
Ponavljaj spodnji postopek
Izberi kandidata za resitev π in zvedi Hill Climbing, ki zacne sπ
Vzemi najboljso najdeno resitev
Idej je, da Hill Climbing pozenemo na razlicnih delih prostora
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing with Random Restarts
Ponavljaj spodnji postopek
Izberi kandidata za resitev π in zvedi Hill Climbing, ki zacne sπ
Vzemi najboljso najdeno resitev
Idej je, da Hill Climbing pozenemo na razlicnih delih prostora
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing with Random Restarts
Ponavljaj spodnji postopek
Izberi kandidata za resitev π in zvedi Hill Climbing, ki zacne sπ
Vzemi najboljso najdeno resitev
Idej je, da Hill Climbing pozenemo na razlicnih delih prostora
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Hill Climbing with Random Restarts
Ponavljaj spodnji postopek
Izberi kandidata za resitev π in zvedi Hill Climbing, ki zacne sπ
Vzemi najboljso najdeno resitev
Idej je, da Hill Climbing pozenemo na razlicnih delih prostora
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Iterated Local Search with Random Restarts
Pametna razlicica Hill Climbing with Random Restarts(krajsam HCRR)
ILS najde lokalni optimum, nato poisce bliznji lokalni optimum
Intuicija je, da pogosto najdemo boljsi lokalni optimum blizutrenutnega lokalnega optimuma
Ta postopek pogosto deluje veliko boljse od nakljucnegaspreminjanja zacetnega stanja pri HCRR
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Iterated Local Search with Random Restarts
Pametna razlicica Hill Climbing with Random Restarts(krajsam HCRR)
ILS najde lokalni optimum, nato poisce bliznji lokalni optimum
Intuicija je, da pogosto najdemo boljsi lokalni optimum blizutrenutnega lokalnega optimuma
Ta postopek pogosto deluje veliko boljse od nakljucnegaspreminjanja zacetnega stanja pri HCRR
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Iterated Local Search with Random Restarts
Pametna razlicica Hill Climbing with Random Restarts(krajsam HCRR)
ILS najde lokalni optimum, nato poisce bliznji lokalni optimum
Intuicija je, da pogosto najdemo boljsi lokalni optimum blizutrenutnega lokalnega optimuma
Ta postopek pogosto deluje veliko boljse od nakljucnegaspreminjanja zacetnega stanja pri HCRR
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Iterated Local Search with Random Restarts
Pametna razlicica Hill Climbing with Random Restarts(krajsam HCRR)
ILS najde lokalni optimum, nato poisce bliznji lokalni optimum
Intuicija je, da pogosto najdemo boljsi lokalni optimum blizutrenutnega lokalnega optimuma
Ta postopek pogosto deluje veliko boljse od nakljucnegaspreminjanja zacetnega stanja pri HCRR
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Simulated Annealing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n in izberit > 0; ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π) ali rand(0,1)< exp ((Q(π)− Q (ρ) /t),postavi π := ρ; zamnjsaj t
Ideja ja, da na zacetku (velik t) iscemo lokalni optimum,kasneje (majhen t) pa veliko preiskujemo
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Simulated Annealing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n in izberit > 0; ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π) ali rand(0,1)< exp ((Q(π)− Q (ρ) /t),postavi π := ρ; zamnjsaj t
Ideja ja, da na zacetku (velik t) iscemo lokalni optimum,kasneje (majhen t) pa veliko preiskujemo
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Simulated Annealing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n in izberit > 0; ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π) ali rand(0,1)< exp ((Q(π)− Q (ρ) /t),postavi π := ρ; zamnjsaj t
Ideja ja, da na zacetku (velik t) iscemo lokalni optimum,kasneje (majhen t) pa veliko preiskujemo
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Simulated Annealing
Zacni z nakljucno permutacijo π ∈ Sym S za |S | = n in izberit > 0; ponavljaj spodnji postopek
Izracunaj Q(π), izberi dve nakljucni stevilir1, r2 ∈ [n] := {0, 1, . . . , n − 1} in ρ := π ∗ (r1, r2)
Ce je Q(ρ) > Q(π) ali rand(0,1)< exp ((Q(π)− Q (ρ) /t),postavi π := ρ; zamnjsaj t
Ideja ja, da na zacetku (velik t) iscemo lokalni optimum,kasneje (majhen t) pa veliko preiskujemo
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Implementacija
Vse opisane metode sem implementiral — glej plesna.h,plesna.cc in main.cc
Prevajamo g++ -std=c++0x -funroll-loops -O3 plesna.cc
main.cc -o main
Najprej preslikamo imena v cela stevila in delamo s polji zarazporeditve in vektorji std::tuple<3> za preference
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Najdene resitve
Koncne resitve sem generiral s simuliranim ohlajanjem
Naredim 10000000 iteraciji in postavim t := 1000000; v vsakiiteraciji t := t/0.000001
Pocasno pri vecjih vhodnih seznamih; zadnjih nekaj rezultatovgeneriranih z 10000 iteracijami in veliko manjsim t
Po ≈ 25h se program ne ustavi
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Najdene resitve
Koncne resitve sem generiral s simuliranim ohlajanjem
Naredim 10000000 iteraciji in postavim t := 1000000; v vsakiiteraciji t := t/0.000001
Pocasno pri vecjih vhodnih seznamih; zadnjih nekaj rezultatovgeneriranih z 10000 iteracijami in veliko manjsim t
Po ≈ 25h se program ne ustavi
Blaz [email protected] Lokalna optimizacija
UvodMetode
RezultatiLiteratura
Najdene resitve
Koncne resitve sem generiral s simuliranim ohlajanjem
Naredim 10000000 iteraciji in postavim t := 1000000; v vsakiiteraciji t := t/0.000001
Pocasno pri vecjih vhodnih seznamih; zadnjih nekaj rezultatovgeneriranih z 10000 iteracijami in veliko manjsim t
Po ≈ 25h se program ne ustavi
Blaz [email protected] Lokalna optimizacija
Literatura
Sean Luke. Essentials of Metaheuristics. Lulu, 2009. Available for free athttp://cs.gmu.edu/~sean/book/metaheuristics/.