~ HEURISTIKE ~ Složen problem se često ne može rešiti tačno, zato koristimo približno rešenje!

Similar documents
Projektovanje paralelnih algoritama II

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Mathcad sa algoritmima

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

Red veze za benzen. Slika 1.

TEORIJA SKUPOVA Zadaci

Iskazna logika 1. Matematička logika u računarstvu. oktobar 2012

Fajl koji je korišćen može se naći na

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Operaciona istraživanja 2. Poglavlje 8 - Teorija igara

Kontinualni lokacijski modeli. Jelena Panić 748/15 Vidosava Antonović 819/15

Univerzitet u Beogradu

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Osobine metode rezolucije: zaustavlja se, pouzdanost i kompletnost. Iskazna logika 4

Rešavanje problema uspostavljanja uslužnih objekata primenom heurističkih metoda

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

Uvod u relacione baze podataka

Metrički prostori i Riman-Stiltjesov integral

Termodinamika. FIZIKA PSS-GRAD 29. studenog Copyright 2015 John Wiley & Sons, Inc. All rights reserved.

DISTRIBUIRANI ALGORITMI I SISTEMI

Univerzitet u Beogradu Matematički fakultet. Nina Radojičić REŠAVANJE NEKIH NP-TEŠKIH PROBLEMA DISKRETNE OPTIMIZACIJE. Master rad

PRIMENA FAZI LOGIKE ZA REŠAVANJE NP-TEŠKIH PROBLEMA RUTIRANJA VOZILA I

Univerzitet u Beogradu. Rešavanje problema optimalnog planiranja bežičnih meš mreža primenom metaheurističkih metoda

Konstrukcija i analiza algoritama

Mehurasto sortiranje Brzo sortiranje Sortiranje učešljavanjem Sortiranje umetanjem. Overviev Problemi pretraživanja Heš tabele.

Programiranje u realnom vremenu Bojan Furlan

Šta je to mašinsko učenje?

Primjena optimizacije kolonijom mrava na rješavanje problema trgovačkog putnika

ANALYTICAL AND NUMERICAL PREDICTION OF SPRINGBACK IN SHEET METAL BENDING

Kristina Popadić. Analiza preživljavanja sa primenama u zdravstvenom osiguranju - master rad -

Asian Journal of Science and Technology Vol. 4, Issue 08, pp , August, 2013 RESEARCH ARTICLE

Zadatci sa ciklusima. Zadatak1: Sastaviti progra koji određuje z ir prvih prirod ih rojeva.

KVADRATNE INTERPOLACIJSKE METODE ZA JEDNODIMENZIONALNU BEZUVJETNU LOKALNU OPTIMIZACIJU 1

AIR CURTAINS VAZDU[NE ZAVESE V H

BROJEVNE KONGRUENCIJE

LLL Seminari u okviru TEMPUS projekta

Ksenija Doroslovački KOMBINATORIKA INTERPRETIRANA FUNKCIJAMA I NJIHOVIM OSOBINAMA MASTER RAD. NOVI SAD jun 2008

Fraktali - konačno u beskonačnom

UNIVERZITET U BEOGRADU MATEMATIČKI FAKULTET

MREŽNI DIJAGRAMI Planiranje

Grafovi. Osnovni algoritmi sa grafovima. Predstavljanje grafova

Rešenja zadataka za vežbu na relacionoj algebri i relacionom računu

APPROPRIATENESS OF GENETIC ALGORITHM USE FOR DISASSEMBLY SEQUENCE OPTIMIZATION

NEURONSKE MREŽE 1. predavanje

O homomorfizam-homogenim geometrijama ranga 2

pretraživanje teksta Knuth-Morris-Pratt algoritam

Uvod u dinamičko programiranje

Andrea Rožnjik. VaR KAO MERA RIZIKA U OPTIMIZACIJI PORTFOLIA. - magistarska teza - Novi Sad, 2008.

Realizacija i ocjena MPPT algoritama u fotonaponskom sistemu napajanja

Karakterizacija problema zadovoljenja uslova širine 1

Metode rješavanja kvadratičnog problema pridruživanja

Algoritam za odre divanje ukupnog poravnanja dva grafa poravnanja parcijalnog ure daja

Quasi-Newtonove metode

Linearno uređena topologija

Konstrukcija i analiza algoritama

SINTAKSNA I ALGORITAMSKA NOTACIJA

PARALELNI ALGORITMI ZA PROBLEM GRUPIRANJA PODATAKA

ZANIMLJIVI ALGEBARSKI ZADACI SA BROJEM 2013 (Interesting algebraic problems with number 2013)

Algoritmi za pronalaºenje minimalnog pokrivaju eg stabla

An Algorithm for Computation of Bond Contributions of the Wiener Index

Metoda parcijalnih najmanjih kvadrata: Regresijski model

MATHEMATICAL ANALYSIS OF PERFORMANCE OF A VIBRATORY BOWL FEEDER FOR FEEDING BOTTLE CAPS

1.1 Algoritmi. 2 Uvod

Neke primene teorije fazi skupova i fazi logike u procesiranju slika

Umjetna inteligencija

UNIVERZITET U NOVOM SADU PRIRODNO-MATEMATIČKI FAKULTET DEPARTMAN ZA MATEMATIKU I INFORMATIKU

Funkcijske jednadºbe

Genetski algoritam Što ako trebamo pretražiti potpuni prostor stanja koji je toliko velik (možda i beskonačan) da je to neizvedivo u realnom vremenu?

Problemi transporta i analiza osetljivosti

Hamiltonovi grafovi i digrafovi

ALGORITAM FAKTORIZACIJE GNFS

Formule za udaljenost točke do pravca u ravnini, u smislu lp - udaljenosti math.e Vol 28.

A STUDY ON NATURAL CONVECTION HEAT TRANSFER IN COMPLEX BOUNDARIES

Nelder Meadova metoda: lokalna metoda direktne bezuvjetne optimizacije

LINEARNI MODELI STATISTIČKI PRAKTIKUM 2 2. VJEŽBE

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

Nekoliko kombinatornih dokaza

Metode izračunavanja determinanti matrica n-tog reda

TEHNIČKO REŠENJE. Algoritam za sinhronizaciju rada prediktora DRAM memorija

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

Đorđe Đorđević, Dušan Petković, Darko Živković. University of Niš, The Faculty of Civil Engineering and Architecture, Serbia

Neke klase maksimalnih hiperklonova

ANALYSIS OF THE RELIABILITY OF THE "ALTERNATOR- ALTERNATOR BELT" SYSTEM

VREMENSKE SERIJE U FINANSIJAMA: ARCH I GARCH

Oracle Spatial Koordinatni sustavi, projekcije i transformacije. Dalibor Kušić, mag. ing. listopad 2010.

Metode praćenja planova

Didaktički aspekti matematičkog modeliranja

Uvod u analizu (M3-02) 05., 07. i 12. XI dr Nenad Teofanov. principle) ili Dirihleov princip (engl. Dirichlet box principle).

MAGNETIC FIELD OF ELECTRICAL RADIANT HEATING SYSTEM

VELOCITY PROFILES AT THE OUTLET OF THE DIFFERENT DESIGNED DIES FOR ALUMINIUM EXTRUSION

Reinženjering poslovnih procesa Business Process Reengineering. Urednik serije/ Editor of serias: Alempije V.Veljović

O aksiomu izbora, cipelama i čarapama

IV razred- matematika. U prvoj nedelji septembra planirano je obnavljanje gradiva druge godine (3 èasa), a 4-tog èasa radi se inicijalni test.

UNIVERZITET U NIŠU PRIRODNO-MATEMATIČKI FAKULTET. mr Dragan Stevanović NEKE KOMPOZICIJE GRAFOVA I GRAFOVI SA CELOBROJNIM SPEKTROM

Algoritmi za mnoºenje i dijeljenje velikih. brojeva. Marko Pejovi UNIVERZITET CRNE GORE. Prirodno-matemati ki fakultet Podgorica. Podgorica, 2018.

O GLATKIM GRAFOVIMA KOMPATIBILNIM SA TEJLOROVIM OPERACIJAMA

Hamiltonov ciklus i Eulerova tura

PLANIRANJE SAOBRAĆAJA - Izvod iz vježbi -II dio-

Hamiltonov princip i parcijalne diferencijalne jednačine

DISKRETNI LOGARITAM. 1 Uvod. MAT-KOL (Banja Luka) ISSN (p), ISSN (o) Vol. XVII (2)(2011), 43-52

Transcription:

~ HEURISTIKE ~ Složen problem se često ne može rešiti tačno, zato koristimo približno rešenje! Heuristika je jedan vid rešavanja složenih problema. Umesto da se izlistaju sva rešenja nekog problema i među njima nađe najbolje rešenje, heuristikama se izdvaja rešenje koje je dovoljno dobro ili najbolje a da se nisu sva rešenja pronašla. Primer 1 (Heuristika za vožnju kroz Pariz) Pretpostavimo da ste u poseti prijatelju u Parizu i da ste iznajmili auto na aerodromu. Vaš cilj je da po što kraćoj putanji dođete od aerodroma do stana vašeg prijatelja. Rešenje: Posmatramo sledeći optimizacioni problem: Od svih mogućih putanja od aerodroma do stana prijatelja, izabrati najkraću. U zavisnosti od rasporeda ulica i njihove prohodnosti, problem može biti manje-više složen. Npr. Da su ulice Pariza međusobno paralelne i iste dužine, problem bi bio jednostavan. Kako ti nije slučaj sa Parizom, problem je složen. Heuristika bi, u ovom slučaju, dala rešenje po kome bismo se kretali samo po glavnim ulicama. Ovo nije najbolje rešenje, ali je dovoljno dobro. Primer 2 (Putovanje po Evropi) Pretpostavimo da želite da putuje po Evropi i da na tom putovanju obilazite sve glavne gradove a da troškovi puta budu minimalni. Rešenje: Problem je poznat kao problem Trgovačkog putnika (rastojanje između gradova se zameni troškovima puta između dva grada). Heuristika bi dala sledeće rešenje: Iz grada A kretati se ka onom gradu do kog su troškovi puta najjeftiniji. Primer 3 (Šah) Pretpostavimo da tokom igranja šaha, najčešće su situacije u kojima vi i protivnik jedan drugom pojedete figuru. Rešenje: Heuristika nam daje sledeće: Svakoj figuri dodeliti numeričku vrednost koja će predstavljati doprinost te figure igri i povlačiti poteze tako da prilikom uzajamnog gubljenja figura, figura koju vi imate, ima manju num.vrednost.

Neke poznate heuristike: - Genetski algoritmi - Simularno kaljenje - Tabu pretraživanje Ove metode se često nazivaju meta-heuristikama zato što su opštog tipa i mogu se, generalno, primeniti na svaki problem. Genetski algoritmi Genetski algoritmi su jedna vrsta evolucionih algoritama. Napravljeni su po uzoru na tehniku koja postoji u prirodi pa imaju osobine mutacije, selekcije i rekombinacije. Intuitivno, oslanjaju se na principe prirodne selekcije kako bi rešili složene opmtimizacione probleme. Osnovna ideja, genetskih algoritama je da svaki element prostora pretrage odgovara nekoj individui. Svaka individua predstavlja kandidata za rešenje problema. Pogodnost individue da bude kandidat za rešenje zavisi od toga koliko kvalitetno doprinosti tom rešenju. Na primer: U problemu trgovačkog putnika doprinos svake jedinke se odnosi na ukupne troškove puta. Evolucija počinje sa populacijom koja je proizvoljno generisana. Za svaku generaciju, procenjuje se koliko svaka jedinka odgovara rešenju, više individua se izdvaja (obično one najpovoljnije) i modifikuje (prekombinuje, mutira) kako bi oformilo novu generaciju. Nova generacija se koristi u sledećoj iteraciji algoritma.

Simularno kaljenje Simularno kaljenje (SA) je opšta meta-heuristika sa verovatnoćama. Koristi se za globalne optimizacione probleme u kojima se jako dobro aproksimira globalni optimum u velikom dopustivom skupu. U nekim slučajevima simularno kaljenje se smatra efikasnijim algoritmom od detaljnog pretraživanja, odnosno kada se smatra da je rešenje dovoljno dobro ako je pronađeno za neko fiksirano vreme i zadovoljava uslove problema. Kako su genetski algoritmi insipirisani prirodom, simularno kaljenje je insipirisano metalurgijom. Tehnika zagrevanja i kontrolisanog hlađenja koja se koristi u metalurgiji na neki način se simulira u ovom algoritmu. Kako izgleda algoritam SA: Svaka tačka S dopustivog skupa odgovara stanju nekog fizičkog sistema, a funkcija E(S) koju je potrebno minimizovati odgovara internoj energiji sistema. Zadatak je da se sistem prevede iz njegovog početnog stanja u stanje koje minimalno troši energiju. Na svakom koraku, SA heuristika razmatra stanja iz okoline trenutnog stanja S i, korišćenjem verovatnoće, odlučuje da li će se sistem menjati ili će ostati isti. Verovatnoće se računa tako da dovode sistem u stanje sa minimalnom energijom. Naravno, ovaj korak se ponavlja, sve dok sistem ne dostigne stanje koje se smatra dovoljno dobrim, ili dok se ne zadovolje neki drugi unapred zadati parametri (npr. program ne sme da radi duže od unapred određenog vremena t ili dok se ne potroši budžet raspoređen za pokretanje ovog problema). Okolina stanja sistema predstavlja skup sistema koji se dobijaju nakon transforimsanja trenutnog stanja u određenom pravcu. Na primer, kod problema trgovačkog putnika svako stanje predstavlja određenu permutaciju gradova koje će putnik obići. Okoline permutacija su, u stvari, permutacije u kojima su se dva grada međusobno zamenila. Prelazak sa jednog stanja u drugo nazivamo korakom i različiti koraci prave različite okoline. Traženje okoline sistema je jako bitno za optimizaciju zato što se konačno rešenje naći nakon nekoliko uzastopnih okolina. Jednostavne heuristike se pomeraju tako što traže najbolju okolinu, i zaustavljaju se kada dostignu rešenje u čijim se okolinama ne nalazi ni jedno bolje rešenje. Problem kod ovakvih algoritama je taj što okoline ne garantuju da će dovesti do najboljeg rešenja i, ukoliko se ne dostigne odgovarajuće rešenje, ovakav postupak ne garantuje da odgovarajuće rešenje ni ne postoji. Odnosno, algoritam vraća lokalna rešenja. Metaheuristke koriste okoline stanja sistema kako bi pretražile moguća stanja i mogu da pređu i u lošija okruženja kako bi pretražile sve mogućnosti, odnosno neće se zaustaviti u lokalnom minimumu. Verovatnoća, koja određuje u koju će okolinu sistem preći se računa na sledeći način: Posmatra se trenutno stanje S i kandidat za naredno stanje S, a zatim se računa verovatnoća p(e,e,t) koja zavisi od energije e=e(s), e =E(S ) oba sistema, i globalnog parametra T (temperatura). Funkcija verovatnoće p, treba da je pozitivna. Na ovaj način sprečavamo da se algoritam zaustavi u lokalnom minimumu koji je lošiji od globalnog. Kada T teži nuli, verovatnoća p(e,e,t) teži nuli ako je e >e, a pozitivna je inače.

Za dovoljno malo T sistem će forsirati kretanje ka sistemima niže energije i izbegavati one sisteme koji imaju veću energiju. Ako stavimo da je T=0 dobijamo greedy algoritam. U originalnom algoritmu SA, verovatnoća p(e,e,t) je jednaka nuli kada je e <e, odnosno procedura se uvek kreće ka nižim sistemima. Mnogi algoritmi i dalje koriste ovu implementaciju SA obzirom da taj uslov nije od presudnog značaja da algoritam radi. Pseudo kod: S S0; // inicijalno stanje e E(S); // inicijalna energija S_best S; // inicijalno najbolje stanje e_best e; k 0; // procena energije, broj iteracija WHILE k < k_max AND e > e_max // sve dok ima vremena i nismo nasli najbolje resenje T temperature(k/k_max) // izračunamo temperaturu S_new neighbour(s) // biramo okolinu e_new E(S_new) // izračunamo energiju okoline IF p(e, e_new, T) > random() THEN // da li da se preselimo? S S_new; // da, preći na novo stanje e e_new; IF e_new < e_best THEN // da li je novo stanje bolje? S_best S_new; // jeste, zapamti najbolje rešenje e_best e_new; k k+1 // još jedna procena RETURN S_best; // vrati najbolje nađeno rešenje. Primer SA (Problem trgovačkog putnika - TSP) Trgovački putnik treba da obiđe n gradova proizvoljno raspoređenih na [-1,1]x[-1,1]. Мinimizovati troškove puta (dužina pređenog puta, vreme trajanja puta,...). Svaki grad posetiti tačno jednom i vratiti se na početak putanje. Rešenje (teorijsko) Naći Hamiltonovu putanju kompletnog grafa i izabrati najkaću. Rešenje (SA) Obeležimo sa dc ( i, cj) = dc ( j, ci) rastojanje između dva grada Permutaciju obeležavamo sa π gde su gradovi Vi i Vi+ 1 s usedni i bira se tako da se minimizuje funkcije n 1 dv (, V ) + dv (, V). i= 1 i i+ 1 n 1

Posmatramo gradove [0 1 2 3 4 5 6 7]. Inicijalna permutacija [0 2 4 6 7 5 3 1] Uklonimo linkove ( V3, V1) i ( V4, V6). i pravimo novu permutaciju [0 2 4 3 5 7 6 1] Pomeranjem linkova ( Vi, V i + 1) i ( Vj, V j + 1) i formiranjem novih linkova ( Vi, V j ) i ( Vi+ 1, Vj+ 1) promena funkcije cilja se može izračunati na sledeći način: Δ C = d( V, V ) + d( V, V ) d( V, V ) d( V, V ) i j i+ 1 j+ 1 i i+ 1 j j+ 1 Šta sve treba računati? TI inicijalna temperatura C funkcija cilja TI mo ra biti dovoljno visoko kako ne bi uticalo na konačno rešenje. Ako je maksimalna razlika funkcije cilja između okolina poznata, TI se može izračunati tako da je verovatnoća izbora maksimalne razlike najveća: p e ΔC max / T in = Kako funkcioniše temperatura: - temperatura se povećava sve dok je količnik potencijanih i svih mogućih poteza veća od neke unapred date veličine - temperatura se smanjuje u zavisnosti od sledećih parametara o TL (temperature length) broj iteracija na datoj temperaturi o Cooling ratio (f) veličina na kojoj se temperatura smanjuje

Alternative: o veliki broj iteracija na par temperatura o mali broj iteracija na velikom broju temperatura Najčešće je hlađenje sporo i računa se po sledećoj formuli f( T) = at, 0.8 a 0.99. Koliko se dugo treba zadržavati na određenoj temperaturi? Broj iteracija na svakoj temperaturi zavisi od - veličine okoline - veličine prostora pretrage Broj iteracija može da varira od temperature do temperature - treba trošiti više vremena na nižim temperaturama (povećati TL kako se temperatura smanjuje) - ili po nekom unapred zadatom kriterijumu. Ekstremne situacije su kada se na svakoj temperaturi koristi samo jedna iteracija. Tada se temperatura smanjuje jako sporo f( T) = T /(1 + β ), β dovoljno malo U teoriji temperatura se smanjuje do nule, u praksi se smanjuje na neku minimalnu vrednost blisku nuli. Kriterijum za zaustavljanje: - dostignuta je minimalna temperatura - dostignut je broj iteracija - količnik dostupnih i mogućih poteza je manji od unapred zadate vrednosti Neka je n=15.

Local Search (Pseudo kod) S // proizvoljni početni skup je prazan WHIL E (true) IF ( v V / S ) SUCH THAT // sve dok nije kraj // uzimamo element iz skupa V/S koji val( S { v}) > val( S) // ako on popravlja rezultat S S + v ELSE // ubacujemo ga u S IF ( v S) SUCH THAT // ako ne popravlja rezultat i bolje je bez val ( S \{ v}) > val( S) // elementa v S S v // brišemo ga iz skupa S ELSE S is a local optimum // inače smo postigli optimum RETURN S Tabu Search (Pseudo kod) S S0 = InitialSet() S_ best S // proizvoljno bira početno rešenje // početno rešenje se smatra najboljim TabuList empty() // tabu lista je prazna WHILE (true) // sve dok nije kraj CandidateList empty() WHILE ( s _ Candidate Neighborhood( )) // uzima se kandidat iz okoline IF ( s_candidate TabuList ) // ako kandidat nije u tabu Listi CandidateList CandidateList + s_candidate // može da se razmatra s_candidate BestLocalSearch(CandidateList) // od svih kandidata iz okoline biramo najpovoljnijeg IF ( va l( s _ Candidate) > val( s _ Best) ) // ako je izabrani kandidat popravio rezultat TabuList featureddifferences // update-ujemo tabu listu S _ best s _ Candidate // kandidat postaje najbolji WHILE ( size( TabuList) > maxsizetabulist ) // ako tabu lista ima previše članova ukljanjamo one koji su prvi postavljeni expirefeatures(tabulist); RETURN S_best

Variable Neighborhood Search (Pseudo kod) k x k_min // broj pomeranja InitialSet () // proizvoljna početna vrednost WHILE (true) // sve dok nije kraj x' Shake(k,x) // pomeramo se za k mesta od originala x'' LocalSearch(x') // tražimo bolju vrednost u okolini tačke x IF ( valx ( '') > valx ( )) // ako je nova tačka povoljnija x x'' k k_min // pomeramo se u tačku x ELSE k k + k_ step // korak za udaljavanje od originala se povećava Ant Colony System (Pseudo kod) k k 0 // broj čvorova τ ( τ 0 ( // nivo privlačnosti čvora μ( k ) μ ( k) // nivo vidljivosti 0 WHILE (i<maxiteration) FOR ( each ant) DO ChoseProbabilisticallyTheNextStateToMove; // izbor na osnovu prethodnog AddThatMoveToTabuList; WHILE (each ant completed a solution) IF (Ant has completed a solution) Update attractivnes ( τ ( k) ) for each edge that ant traversed; IF (local best solution better then global solution) Save local best solution as global solution;

Ant System Algorithm for TSP (Pseudo kod) k k 0 // broj čvorova τ ( k) τ 0 ( k) // nivo fe rmiona PlaceEachAntOnARandomlyChosenCity; WHILE (i<maxiteration) FOR (each ant) MoveAntToNextCityByProbabilityFunction; E ND FOR ( each ant with a complete tour) EvaporatePheormones; ApplyPheromoneUpdate; IF (Ant k s tour is shorter then the global solution) Update global solution to ant k s tour; Bee Colony Optimization (Pseudo kod) a( n) a0 ( n) // prazna solucija za svaku pčelu WHILE (IterationIsNotEnd) // forward pass FOR (b=0; b<b; b++) FOR (k=0; k<nc; k++) EvaluateAllPossibleMoves; ChoseRandomOneMove; // backward pass EvaluateObjectiveFunctionValueForEachBee; ChoseLoyality; ForEachFollowerChoseARecruiter; EvaluateAllSolutionAndFindBest; Preuzet sa http://www.matf.bg.ac.rs/p/files/10-bco_presentation.pdf