Metoda zasnovana na rojevima čestica Particle Swarm Optimization - PSO

Slides:



Advertisements
Similar presentations
Ma.
Advertisements

Programiranje kroz aplikacije
Provisioning Windowsa 10 na IoT, mobilnim i desktop uređajima
Programi zasnovani na prozorima
EXPLORE - testovi normalnosti
PONAVLJANJE CheckBox Koristi se za rešavanje zadataka gde je potrebno omogućiti uključivanje ili isključivanje jedne ili više opcija. Važna svojstva: –Checked.
Algoritamske/programske strukture
Algoritmi raspoređivanja
PROGRAMSKI PAKET LabVIEW AKVIZICIJA I OBRADA SLIKA
Struktura i princip rada računara
B+ stablo Ramakrishnan Raghu, Gehrke Johannes - Database Management Systems (2000)(2nd ed.)
Compression Plus Nonsteroidal Antiinflammatory Drugs, Aspiration, and Aspiration With Steroid Injection for Nonseptic Olecranon Bursitis ; RCT Joon Yub.
Java programiranje sa bazama podataka
Teorema o 4 boje(Four color theorem)
PROGRAMIRANJE MENIJA.
CheckBox RadioButton RadioGroup
-Mobilni IP-.
The Present Perfect Continuous Tense
Upitni jezik SQL.
Microsoft Office 2007 MS Office je programski paket koji sadrži više programa: MS Word – program za obradu teksta MS Excel – program za izradu tabela sa.
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
PROGRAMSKE PETLJE Milenković Gabrijela.
Konveksni omotač (red O(n log (n)))
Komponente izbora i kontejnerske komponente
Uvod u HTML Zoltan Geller 2017
XXIV Skup TRENDOVI RAZVOJA: “DIGITALIZACIJA VISOKOG OBRAZOVANJA” REPOZITORIJUMI - DIGITALNI RESURSI SAVREMENOG OBRAZOVANJA Kopaonik, februar,
Klauzule GROUP BY i HAVING
KREIRANJE OBJEKATA.
Java Script.
RAZGRANATA STRUKTURA Zadaci i rešenja
Reference ćelije i opsega
Razvoj Web aplikacija Ajax.
Elektrotehnički fakultet – Podgorica Operativni sistemi
14 UNUTRAŠNJE I ANONIMNE KLASE
Armin Teskeredzic Zagreb, Hrvatska,
Arrays and strings -1 (nizovi i znakovni nizovi)
LAPLACEOVA TRANSFORMACIJA
Mere položaja z vrednost (ili statndardna vrednost)
Tehničke osnove osiguranja lica Tablice smrtnosti Prof
Naredba Case Višestruko grananje.
Page Layout Podešavanje stranica.
Element form Milena Kostadinović.
MessageBox.
predavanja v.as.mr. Samir Lemeš
Pojmovi digitalnog zapisa
VEKTORSKI UPRAVLJAN ASINHRONI MOTOR
Organizacija invertovano-indeksnih datoteka
PROGRAMSKI JEZIK PASCAL
PRAĆENJE STATISTIKE POSEĆENOSTI WEB-PREZENTACIJE
32-bitni mikrokontroleri i primena - MS1BMP
MATEMATIČKI FAKULTET, UNIVERZITET U BEOGRADU
Osnovni simboli jezika Pascal
Sistemi zasnovani na skaniranju teksta
FAKULTET KEMIJSKOG INŽENJERSTVA I TEHNOLOGIJE
Virtualizacija poslovnih procesa metodom „Swimlane“ dijagrama
Tomislav Novak voditelj: doc.dr.sc. Domagoj Jakobović
Programiranje – Small Basic
Strukture podataka i algoritmi 5. VRIJEME IZVRŠAVANJA ALGORITMA
C++ WORKSHOP Šimec Tino - FOI.
Autor: Marko Pletikosa Mentor: doc.dr.sc. Domagoj Jakobović
Naredbe u php-u.
Programski jezik C++ - Vježbe - 5. dio
Programski jezik Python
Kratkotrajne veze žena i muškaraca
Izranjajuća Inteligencija
7. Baze podataka Postavke MS Accessa.
Ponavljanje Pisana provjera
INTERPOLACIJA PO DIJELOVIMA POLINOMIMA
Kako zaštititi privatnost na facebooku
Presentation transcript:

Metoda zasnovana na rojevima čestica Particle Swarm Optimization - PSO + Primer i poređenje PSO, SA and VNS metaheuristika dizajniranih za rešavanje jedne varijante problema BLUFLP MPIO 2015/2016.

Optimizacija zasnovana na rojevima cestica (Particle Swarm Optimization) 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.. )

Particle Swarm Optimization

Optimizacija zasnovana na rojevima čestica (Particle Swarm Optimization) Svaka čestica i=1,2,…,N odgovara jednom potencijalnom (dopustivom) rešenje u pretraživačkom prostoru i ima sledeće elemente 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!

Particle Swarm Optimization Neighborhood of a Particle

Particle Swarm Optimization Movement of a Particle and Velocity Update

Optimizacija zasnovana na rojevima čestica (Particle Swarm Optimization) PSO radi nad skupom čestica i=1,2,...,N koje čine roj. U fazi inicijalizacije generiše se početni roj (obično na slučajan način). U svakoj iteraciji, svaka čestica iz trenutne prelazi u narednu poziciju na osnovu svog iskustva i iskustva ostalih čestica i koristeći trenutni vektor brzine Ako je nova pozicija čestice bolja od najbolje (lokalne) pozicije čestice, vrši se njeno ažuriranje - Ako je nova pozicija čestice bolja od globalne najbolje pozicije, vrši se njeno ažuriranje Ako je zadovoljen kriterijum zaustavljanja, algoritam staje, a najbolja globalna pozicija čestice se uzima za aproksimaciju optimalnog rešenja

Particle Swarm Optimization ρ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)

Particle Swarm Optimization 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 segment [-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)

Primer: Dvonivoski lokacijski probem sa afinitetima klijenata (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

Primer: Dvonivoski lokacijski probem sa afinitetima klijenata 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 modela: 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

Matematička formulacija problema

Reformulacija problema

PSO, SA, VNS za rešavanje BLUFLP sa preferencama klijenata 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!

PSO, SA, VNS za rešavanje BLUFLP sa preferencama klijenata 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. Izračunaju se troškovi uspostavljanja skladišta (na osnovu indeksa i1,..., ik iz koda) Korak 7. Troškovi pridruživanja se saberu sa troškovima uspostavljanja skladišta

PSO algoritam za rešavanje BLUFLP sa preferencama klijenata Roj (swarm) se sastoji od S=60 čestica (particles) koje “lete” u M- dimenizionom prostoru Svakoj čestici i, i=1,2,...,S pridružuje se 1) trenutna pozicija xi tj. M-dimenizioni vektor koji odgovara jednom rešenju u prostoru pretrage 2) brzina čestice vi (može se shvatiti kao pravac kretanja čestice) 3) najbolja do sada posećena pozicija čestice bi 4) najbolja do sada posećena pozicija g na nivou celog roja

PSO algoritam za rešavanje BLUFLP sa preferencama klijenata Inicijalizacija: početne pozicije čestica se generišu na slučajan način najbolja lokalne pozicije čestica bi se postavljaju na početne pozicije računa se najbolja globalna pozicija roja g inicijalne brzine čestica se biraju na slučajan način iz (-vmax, vmax) Iterativni niz: U svakoj iteraciji svaka od čestica podešava svoj u brzinu na osnovu svoje trenutne brzine, koristeći sopstveno iskustvo (pozicijama bi) i iskustvu celog roja (pozicija g) Svaka čestica prelazi iz trenutne pozicije u narednu poziciju u pravcu dobijenog vektora brzine

PSO algoritam za rešavanje BLUFLP sa preferencama klijenata 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)

PSO algoritam za rešavanje BLUFLP sa preferencama klijenata Funkcija Sigmoid (v) koristi se u slučaju diskretnih problema Sigmoid (v) =1/(1+exp(-v)) Ova funkcija služi da bi normalizovala brzinu iz intervala [-vmax , vmax]u interval (0,1) Kako je pozicija čestice binarni kod potrebno je Na slucajan nacin se bira se u iz (0,1) Ako je u manje od odgovarajuće vrednosti Sigmoid funkcije , koordinata pozicije dobija vrednost 1, a 0 inače.

SA algoritam za rešavanje BLUFLP sa preferencama klijenata 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

SA algoritam za rešavanje BLUFLP sa preferencama klijenata 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

RVNS-VNS algoritam za rešavanje BLUFLP sa preferencama klijenata 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

RVNS-VNS algoritam za rešavanje BLUFLP sa preferencama klijenata 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 i poređenje 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