PSO + primer

Download Report

Transcript PSO + primer

+ Primer i poređenje PSO,SA and VNS
metaheuristika dizajniranih za rešavanje
jedne varijante problema BLUFLP
MPIO 2013/2014
 Population-based metaheuristic
 Zasnovana je na ponašanju čestica u rojevima koje se kreću u
dopustivom prostoru rešenja
 Svaka čestica odgovara jednom potencijalnom rešenju i kreće se
koristeći svoje iskustvo iz prethodnih pozicija, ali i iskustva drugih
čestica (celog roja ili podskupa-okoline čestice)
 Sve čestice istovremeno pokušavaju da poprave svoje pozicije
 Uključeni su stohastički elementi i brojni parametri (promena
brzine, kognitivnog učenja, socijalnog učenja, slučajnost, itd.. )
Inicijalizacija: Na slučajan način generisati čestice i=1,2,...,N koje čine roj čestica
Svakoj čestici se pridružuje njena trenutna pozicija (jedno rešenje u pretraživačkom
prostoru) i brzina
Svaka čestica pamti svoju najbolju poziciju i najbolju poziciju na nivou roja
Iterativni korak: n = 1, 2, . . .
- Svaka čestica iz trenutne prelazi u narednu poziciju na osnovu svog
iskustva i iskustva ostalih čestica
- Ako je nova pozicija čestice bolja od lokalne najbolje pozicije čestice, vrši se ažuriranje
- Ako je nova pozicija čestice bolja od globalne najbolje pozicije, vrši se ažuriranje
Kraj: Ako je zadovoljen kriterijum zaustavljanja staje se, a najbolja globalna pozicija se
uzima za aproksimaciju optimalnog rešenja
Svaka čestica i=1,2,…,N odgovara jednom potencijalnom (dopustivom)
rešenje u pretraživačkom prostoru i ima sledeće elemente (vektore)
xi=trenutna pozicija čestice (trenutno rešenje)
vi=brzina, tačnije gradijent (pravac) u kojem bi se čestica kretala bez
drugih uticaja
pi=najbolja pozicija čestice do sada (local best solution)
pg=najbolje rešenje celog roja (global best solution) ili
najbolje rešenje okoline čestice roja (neighborhood best solution)
Dve strategije: korišćenje iskustva celog roja ili
korišćenje iskustva okoline čestice
Okolina čestice se može definisati na različite načine!
ρ1, ρ2 =slučajno izabrane konstante iz [0,1]
C1=koeficijent kognitivnog učenja (uticaj iskustva čestice)
C2= koeficijent socijalnog učenja (uticaj iskustva roja/okoline)
Promena brzine čestice
Standardni pristup:
Unapređeni pristup:
ρ1, ρ2 =slučajno izabrane konstante iz [0,1]
C1=koeficijent kognitivnog učenja (uticaj iskustva čestice)
C2= koeficijent socijalnog učenja (uticaj iskustva roja/okoline)
vrednosti vi se ograničavaju na [-Vmax, +Vmax]
ω = parametar inercije (inertia weight) koji kontroliše uticaj prethodnih brzina
čestice na trenutnu, ω se obično bira iz (0,1)
za veće vrednosti ω pojačavamo global exploration (diversifikujemo pretragu)
za manje vrednosti ω pojačavamo local exploration (inteziviramo lokalnu pretragu)
Bilevel Uncapacitated Facility Location Problem
With Clients’ Preferences
Notacija:
I={1,….,M} skup potencijalnih lokacija za snabdevača
J={1,….,N} skup lokacija klijenata
C=[cij] matrica troškova; cij ≥ 0 su troškovi pridruživanja klijenta j
snabdevaču i
fi su troškovi uspostavljanja skladišta na lokaciji iI



Afiniteti (prioriteti, preference) klijenata su zadati matricom
G=[gij], gij ≥ 0 , iI, jJ
Afiniteti su definisani na sledeći način:
Ako je gi1j ≤ gi2j , znači da klijent j preferira snabdevača i1
u odnosu na snabdevača i2
Promenljive:
dva skupa binarnih promenljivih
yi =1, ako je snabdevač uspostavljen na lokaciji i , 0 inače
xij =1, ako klijenta j opslužuje snabdevač i, 0 inače

Implementirane su tri metaheuristike PSO, SA i VNS za rešavanje
ovog problema

Metaheuristike su testirane na instancama velikih dimenzija i
upoređivani su rezultati i performanse heuristika u pogledu
a) kvaliteta rešenja
b) brzine izvršavanja

Zajedničko kodiranje i računanje funkcije cilja

Rešenje je kodirano binarnim nizom dužine M
za M=10 primer koda je 0100110101 (izgrađena su
skladišta/uspostavljeni snabdevači na lokacijama 2,5,6,8 i 10)

Nema nekorektnih kodova!
Računanje funkcije cilja se odvija u nekoliko koraka:
Korak 1. Iz koda se dobijaju indeksi i1,..., ik izgrađenih skladišta
Korak 2. Za svakog klijenta j niz potencijalnih skladišta se sortira u
rastućem poretku prema preferencama datog klijenta koje se dobijaju iz
matrice G
Korak 3. Formira se matrica sortiranih preferenci Gs
Korak 4. Za svakog klijenta j prolazimo kroz j-tu vrstu matrice Gs tražeći
indeks prvog izgrađenog skladišta, i klijenta j pridružujemo tom
skladištu
Korak 5. Troškovi pridruživanja se dodaju na sumu troškova
pridruživanja (inicijalno postavljena na nulu)
Korak 6. Troškovi uspostavljanja skladišta se dodaju na sumu trоškova
pridruživanja



Roj (swarm) se sastoji od S=60 čestica (particles) koje “lete” u Mdimenizionom prostoru
Svakoj čestici i, i=1,2,...,S je predstavljena pridružuje se
1) trenutna pozicija xi tj. M-dimenizioni vektor koji odgovara jednom
rešenju u prostoru pretrage
(početne pozicije se generišu na slučajan način)
2) najbolja do sada “posećena” pozicija bi (lokalni minimum)
3) brzina čestice vi
4) najbolja do sada“posećena” pozicija g na nivou celog roja (globalni
minimum)
U svakoj iteraciji svaka od čestica podešava svoj pravac (flying
direction) prema sopstvenom iskustvu (pozicijama bi) i iskustvu celog
roja (pozicija g)
Pravac kretanja čestice zavisi od
- kognitivnog parametra (cognitive learning parameter) φ p
- socijalnog parametra (social learning parameter) φ g
- parametar inercije (inertia weight parameter) ω


Funkcija Sigmoid (v)=1/(1+exp(-v)) služi da bi normalizovala
brzinu u interval (0,1) ; koristi se za diskretne probleme

Ako se u datoj iteraciji čestica pomerila na bolju (lokalnu)
poziciju, ažurira se najbolja lokalna pozicija i eventualno najbolja
globalna pozicija

Kriterujum zaustavljanja: najbolje rešenje se nije promenilo
tokom određenog broja PSO iteracija (max non-improving
iterations)

Inicijalna faza SA:
Inicijalizuje se početno rešenje ω (binarni niz dužine M)
Početno rešenje se generiše na slučajan način
Inicijalizuju se SA parametri
- početna temperatura
- raspored “hlađenja”
- broj iteracija SA koji se izvršava pri svakoj temperaturi,...

U svakoj iteraciji SA generišemo rešenje ω’ iz okoline tekućeg rešenja
ω invertovanjem slučajno izabranog bita
Kriterijumi za prihvatanje novog rešenja ω’ iz okoline tekućeg rešenja ω:

Potezi koji vode ka poboljšanju funkcije cilja se uvek prihvataju

Potezi koji ne vode ka poboljšanju funkcije cilja se prihvataju sa
određenom verovatnoćom (koja zavisi od trenutne temperature i od
stepena degradacije funkcije cilja)

Temperatura se snižava nakon dobijanja poboljšanja ili nakon
određenog broja iteracija

Kriterujum zaustavljanja: najbolje rešenje se nije promenilo tokom
određenog broja SA iteracija
Definicija okoline:
Rešenje x pripada k-toj okolini rešenja x’ (i obrnuto)
ukoliko se njihovi kodovi razlikuju u tačno k bitova

RVNS faza:
- Početno rešenje x (binarni niz dužine M) se generiše na slučajan način
- U svakoj iteraciji RVNS generišemo rešenje x’ iz okoline tekućeg rešenja
x invertovanjem slučajno izabranog bita
- Inverzije koje vode ka poboljšanju funkcije cilja se prihvataju i azurira
se najbolje rešenje
 Kriterujum zaustavljanja: dostignut maksimalan broj RVNS iteracija


Najbolje rešenje dobijeno RVNS algoritmom je početno rešenje VNS
algoritma
VNS faza:
-Početno rešenje x dobijeno je iz RVNS faze
- Postavljamo red okoline na k=1
- U svakoj iteraciji VNS slučajno biramo rešenje x’ iz k-te okoline
tekućeg rešenja x (Shaking phase)
- U okolini rešenja x’ tražimo najbolje rešenje x” (Local Search phase)
- Ako je novo rešenje x” bolje od najboljeg poznatog, pomeramo se do
njega, ažuriramo najbolje rešenje i k vraćamo na 1
- Ukoliko nije, zadržavamo se na x i povećavamo red okoline k=k+1


Kriterujum zaustavljanja: dostignut maksimalan broj VNS iteracija bez
poboljšanja
Testiranja su izvršenja na modifikovnim test instancama iz literature
(ORLIB za UFLP, M* za multi-level UFLP)


Sva testiranja na istoj konfiguraciji

Do 2000 klijenata i 2000 potencijalnih lokacija za skladišta

Parametri za PSO, SA, RVNS-VNS su eksperimentalno određeni

Instance su rešavane i CPLEX solverom