43
Uvod Metode Rezultati Literatura Lokalna optimizacija Blaˇ z Sovdat [email protected] 14. januar 2013 Blaˇ z Sovdat[email protected] Lokalna optimizacija

Local optimization

Embed Size (px)

Citation preview

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

Problemski prostor

Problemski prostor

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

Problemski prostor

Slika : Nas problemski prostor za ples01.txt.

Problemski prostor

Slika : Nas problemski prostor za ples02.txt.

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/.