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 iI
Afiniteti (prioriteti, preference) klijenata su zadati matricom
G=[gij], gij ≥ 0 , iI, jJ
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