ˇ z, 2009 Rektorysova souteˇ
1
Rojov´a optimalizace v Matlabu 1 ˇ Miloslav CAPEK 1
ˇ Katedra elektromagnetick´eho pole, Cesk´ e vysok´e uˇcen´ı technick´e v Praze, Fakulta elektrotechniky, ˇ Technick´a 2, 166 27 Praha, Cesk´ a republika
[email protected]
Abstrakt. Pˇr´ıspˇevek popisuje principy PSO optimalizace, jej´ı v´yhody i nev´yhody. Mechanismus rojen´ı cˇ a´ stic byl implementov´an v prostˇred´ı Matlab. Jak bude uk´az´ano, vyuˇzit´ı je velice sˇirok´e a nasazen´ı metody je vysoce efektivn´ı. Bylo testov´ano mnoho funkc´ı, vˇetˇsina se zn´am´ym kanonick´ym pˇredpisem a s pˇresnˇe lokalizovateln´ym glob´aln´ım minimem. Tyto funkce jsou kr´atce pˇredstaveny, vˇc. v´ysledk˚u optimalizace. Zm´ın´ıme se i o nastaven´ı vstupn´ıch parametr˚u PSO, tzv. metaoptimalizaci a na z´avˇer uvedeme jeden praktick´y pˇr´ıklad, jak je PSO optimalizace vyuˇz´ıv´ana na domovsk´e katedˇre autora (optimalizace frakt´aln´ıch patch ant´en s ohledem na minim´aln´ı vyzaˇrovac´ı frekvenci dominantn´ıho m´odu struktury). Tento cˇ l´anek vznikl jako kompil´at pro u´ cˇ ely Rektorysovy soutˇezˇe; volnˇe pˇrej´ım´a statˇe z [1] – [6], coˇz jsou vlastn´ı pr´ace autora. Takto pˇrejat´e cˇ a´ sti budou citov´any jen volnˇe.
maticemi, disponuje celou rˇadou knihoven a lze se tedy soustˇredit pˇr´ımo na ˇreˇsen´y probl´em, umoˇznˇ uje komfortn´ı grafick´y i textov´y v´ystup. Velk´a cˇ a´ st literatury obsahuje pˇr´ıklady pr´avˇe z Matlabu, lze tedy porovn´avat jednotliv´a ˇreˇsen´ı a pro partikul´arn´ı probl´emy vyuˇz´ıvat publikovan´e segmenty k´odu (napˇr. [8]). Velkou v´yhodou je tak´e moˇzn´e propojen´ı s Comsolem, ve kter´em lze vyuˇz´ıt dutinov´eho modelu pro mod´aln´ı ˇreˇsen´ı ant´en. V´ysledn´a funkce, representovan´a programem PSOptimizer2 , respektuje vˇsechny v´ysˇe uveden´e poˇzadavky. Podrobnˇeji ji bude vˇenov´ana cˇ a´ st 2 a tak´e cˇ a´ sti 4-5.
Kl´ıcˇ ov´a slova Particle swarm optimization (PSO), fitness funkce, testovac´ı funkce, Matlab, Iterated function system (IFS)
´ 1. Uvod Od roku 1995, kdy bylo PSO poprv´e pˇredstaveno [7], se objevila cel´a ˇrada studi´ı a v´yzkum˚u, kter´e PSO vyuˇz´ıvaj´ı. Na z´akladˇe potˇreby testovat jejich z´avˇery, ale i rozv´ıjet vlastn´ı aktivity (zejm. spojen´e s IFS ant´enami, viz [4], [5], [6]), bylo rozhodnuto vyvinout vlastn´ı aplikaci. Mezi poˇzadavky byla prioritnˇe rychlost algoritmu, jeho univerz´alnost, moˇznost mˇenit jednotliv´e parametry (iterace, poˇcet agent˚u . . . ), d´ale schopnost rekurzivn´ıho vol´an´ı1 , ˇreˇsitelnost probl´em˚u libovoln´e dimenze a v neposledn´ı ˇradˇe stabilita (zdaleka ne vˇsechny sc´en´aˇre zadan´e algoritmu maj´ı ˇreˇsen´ı – m˚uzˇ e j´ıt napˇr. o fyzik´aln´ı omezen´ı dan´eho probl´emu). Pro realizaci tohoto algoritmu bylo zvoleno prostˇred´ı Matlab, kter´e obsahuje velice rychl´e j´adro pro pr´aci s 1 N´ avratov´a hodnota funkce mus´ı obsahovat nejen optimalizovan´e u´ daje, ale i informace o nastaven´ı PSO, jednotliv´ych generac´ıch, konvergenci ke glob´aln´ımu minimu atd.
Obr. 1. Pohyb jednotliv´ych agent˚u (vˇcel) nad loukou“ ”
2. PSO algoritmus Nejprve se vˇsak kr´atce zm´ın´ıme o principu PSO. Optimalizace vych´az´ı z rojov´e inteligence pozorovan´e napˇr. u vˇcelstev a napodobuje jejich chov´an´ı. V nˇekter´ych aspektech je PSO podobn´a ACO3 , v jin´ych m˚uzˇ eme nal´ezt paralelu s GA4 . Souhrnnˇe potom mluv´ıme o evoluˇcn´ıch, nebo tak´e heuristick´ych algoritmech. Ve vˇsech pˇr´ıpadech 2 Ale
tak´e programem PSOpost, urˇcen´ym pro PSO postprocessing. – Ant Colony Optimization 4 GA – Genetic Algorithm 3 ACO
ˇ ´ OPTIMALIZACE V MATLABU M. CAPEK, ROJOVA
2
jde o samo se organizuj´ıc´ı syst´emy vykazuj´ıc´ı silnˇe kolektivn´ı chov´an´ı. Z´asadn´ı rozd´ıl vˇsak spoˇc´ıv´a v pˇr´ıstupu k cˇ lenu hejna (agentovi), nad kter´ym jsou definov´any urˇcit´e operace a disponuje cˇ a´ st´ı znalost´ı, kter´e m´a cel´y roj. Ve shodˇe s [11] m˚uzˇ eme chov´an´ı agent˚u oznaˇcit jako soutˇezˇ ivˇe-kooperativn´ı: v pr˚ubˇehu optimalizace se stˇr´ıdaj´ı f´aze, kdy mezi sebou agenti vz´ajemnˇe soupeˇr´ı a f´aze, kdy spolupracuj´ı. Uˇzivatel stanov´ı prostor (solution space, d´ale jen s.s.), nad kter´ym je definov´ana optimalizovan´a funkce a nad kter´ym hled´a jej´ı minimum. V mnoha aplikac´ıch nem´a ˇreˇsen´ı mimo s.s. smysl, proto se snaˇz´ıme udrˇzet agenty v urˇcen´em prostoru (podrobnˇeji rozebereme nˇekter´e techniky n´ızˇ e). Kaˇzd´y agent si pamatuje sv˚uj dosavadn´ı nejlepˇs´ı objev (pbest, promˇenn´a pnid v (1)). Nejlepˇs´ı objev cel´eho hejna (gbest, pngd ) je potom t´ım nejlepˇs´ım ze vˇsech osobn´ıch objev˚u. Chov´an´ı jednotliv´ych agent˚u popisuj´ı n´asleduj´ıc´ı dva vztahy. Nejprve uved’me v´ypoˇcet rychlosti agenta. Rychlost je stanovena v kaˇzd´e iteraci pro kaˇzd´eho agenta zvl´asˇt’ a ovlivˇnuje smˇer, j´ımˇz se pohybuje5 . Poˇcet sloˇzek tohoto vektoru je rovn´y dimenzi (index d) ˇreˇsen´eho probl´emu. n+1 n υid = wυid + c1 r1n (pnid − χnid ) + c2 r2n (pngd − χnid ) (1)
V Matlabu je potˇreba vsadit tuto rovnici do for cyklu, cˇ´ımˇz je zajiˇstˇeno proch´azen´ı cel´eho hejna (index i oznaˇcuje agenty). Zabalen´ım do dalˇs´ıho for cyklu umoˇzn´ıme iterov´an´ı cel´eho probl´emu od n = 1 do n = N (paralela k jednotliv´ym generac´ım u GA, zde se vˇsak agenti pouze pohybuj´ı nad s.s. – nehroz´ı jim z´anik, dokonce ani nevytv´aˇr´ıme nov´e jedince). D´ale je nutno objasnit v´yznam zbyl´ych promˇenn´ych a konstant. Koeficient w je cˇ asto naz´yv´an v´ahovac´ı faktor (weighted factor). M˚uzˇ e b´yt po celou dobu optimalizace konstantn´ı, nebo se m˚uzˇ e mˇenit (potom je zad´avana dvojice parametr˚u wmax a wmin ). Klesaj´ıc´ı koeficient zabraˇnuje nepˇr´ıjemn´ym oscilac´ım a z´aroveˇn stimuluje hejno ke konvergenci nad nalezen´ym glob´aln´ım minimem. Parametry c1 a c2 ud´avaj´ı, nakolik bude v´ysledn´a rychlost odvozena od osobn´ıho minima dan´eho agenta a nakolik od spoleˇcn´eho glob´aln´ıho min. Jejich optim´aln´ı velikost bude diskutov´ana v cˇ a´ sti 7. Bez koment´aˇre z˚ustaly jiˇz pouze hodnoty r1n a r2n . V obou pˇr´ıpadech se jedn´a o n´ahodnˇe generovan´a cˇ´ısla s norm´aln´ım rozloˇzen´ım v rozsahu (0,1), pro tyto u´ cˇ ely je v Matlabu k dispozici funkce rand(). V´ıme-li jiˇz, jak´ym smˇerem a jak rychle se pohybuj´ı agenti, m˚uzˇ eme aktualizovat jejich pozici: n+1 χn+1 = χnid + υid ∆t. id
Vztahy uveden´e v´ysˇe zˇ a´ dn´ym zp˚usobem neomezuj´ı pohyb agent˚u, mohou tedy opustit s.s. Z toho d˚uvodu bylo navrˇzeno nˇekolik technik, kter´e zajist´ı, aby se agenti nerozbˇehli daleko za hranice s.s. Mezi nejcitovanˇejˇs´ı a nejuˇz´ıvanˇejˇs´ı patˇr´ı n´asleduj´ıc´ı: n+1 • Omezen´ı maxim´aln´ı rychlosti agenta (υid )
• Ohraniˇcuj´ıc´ı zdi: 1. Absorbˇcn´ı zed’ (Absorbing Wall, obr. 2a) 2. Odrazn´a zed’ (Reflecting Wall, obr. 2b) 3. Neviditeln´a zed’ (Invisible Wall, obr. 2c) Prvn´ı uveden´a moˇznost, tedy omezen´ı rychlosti agent˚u, byla vyuˇzita napˇr. v [10]. Rychlost je omezena i uvnitˇr s.s., coˇz nen´ı zejm. pro prohled´av´an´ı rozs´ahl´ych uzem´ı pˇr´ıliˇs vhodn´e. Lepˇs´ım ˇreˇsen´ım je pouˇzit´ı jedn´e ze zd´ı. Ty popisuj´ı zp˚usob, jak´ym je naloˇzeno s agentem, pokud pˇrekroˇc´ı povolen´e hranice. Neovlivˇnuj´ı pr˚ubˇeh optimalizace uvnitˇr s.s. a nav´ıc, pokud jiˇz agent opusil prohled´avan´y prostor, ho efektivnˇe nasmˇeruj´ı zpˇet. Podrobnˇeji bude pops´ana pouze zed’ z obr. 2c, vyuˇz´ıvan´a funkc´ı PSOptimizer, ostatn´ı jsou pops´any napˇr. v [9]. Jak m˚uzˇ eme vyˇc´ıst z obr´azku, agent˚um je umoˇznˇeno vyletˇet ze s.s., ovˇsem po jeho opuˇstˇen´ı nen´ı vyhodnocov´ana fitness funkce. To zapˇr´ıcˇ´ın´ı pozvoln´y n´avrat agent˚u zpˇet do s.s. Velkou pˇrednost´ı je v´yrazn´a u´ spora v´ypoˇcetn´ıho cˇ asu, ponˇevadˇz jsou vyhodnocov´ana pouze ta sch´emata, o kter´a se skuteˇcnˇe zaj´ım´ame. I z tohoto d˚uvodu se jedn´a o pravdˇepodobnˇe nejlepˇs´ı ˇreˇsen´ı pro vˇetˇsinu inˇzen´yrsk´ych probl´em˚u. Na z´avˇer zrekapitulujme d˚uleˇzit´e parametry PSO optimalizace: Parametr a jeho v´yznam v PSO c1 pozn´avac´ı parametr (cognitive rate) c2 soci´aln´ı parametr (social rate) wmin v´ahovac´ı koeficient (na konci optimalizace) wmax v´ahovac´ı koeficient (na zaˇca´ tku optimalizace) ∆t cˇ asov´a konstanta (nejˇcastˇeji volena ∆t = 1) it poˇcet iterac´ı (vliv velikosti iterac´ı viz n´ızˇ e) ag poˇcet agent˚u nad s.s. (viz n´ızˇ e) pni individi´aln´ı nalezen´e min. agenta (fmin (xi )) png glob´aln´ı nalezen´e min. agenta fmin (xi ) Tab. 1. Shrnut´ı parametr˚u
(2)
Rovnice (2) odpov´ıd´a pohybov´e rovnic´ı. Nov´e um´ıstˇen´ı agenta tedy z´ısk´av´ame jako souˇcet koordin´at˚u v minul´e iteraci pozmˇenˇen´e o pohyb v souˇcasn´e iteraci. Protoˇze ∆t m˚uzˇ e obecnˇe nab´yvat libovoln´ych hodnot, lze pˇriˇradit ∆t = 1 (tedy diskr´etn´ı, jednotkov´y cˇ as). 5 Resp.
se bude pohybovat po vyhodnocen´ı t´eto iterace. Obr. 2. Typy zd´ı pouˇz´ıvan´e v PSO
ˇ z, 2009 Rektorysova souteˇ
3
3. Implementace
res.data1 = [ ] res.data2 = [ ] res.data3 = [ ] res.done res.score res.type = ’optim’ res.history.populPosition = [ ] res.history.iter = [ ] res.history.value = [ ] res.history.psoDta = [ ] res.options. ...
Jak jiˇz bylo uvedeno, optimalizace je implementov´ana v prostˇred´ı Matlab. Pro cˇ a´ sti programu jsme uˇzili lok´aln´ıch funkc´ı, fitness funkce je ˇreˇsena separ´atnˇe (definuje ji uˇzivatel pro konkr´etn´ı probl´em). V inicializaˇcn´ı cˇ a´ sti je ovˇeˇreno, jsou-li hodnoty spr´avnˇe zad´any, je stanovena poˇca´ teˇcn´ı generace agent˚u a vykresleno grafick´e rozhran´ı.
Obr. 3. GUI PSOptimizeru
GUI programu je navrˇzen tak, aby byl jednoduch´y6 , ale z´aroveˇn podrobnˇe informoval o st´avaj´ıc´ım stavu optimalizace. Text v lev´em r´amu zobrazuje nastaven´e v´ychoz´ı parametry, v prav´e cˇ a´ sti potom aktu´aln´ı pr˚ubˇeh. Stupnice na ose y grafu zobrazuj´ıc´ıho cost funkci je v (zde n´azornˇejˇs´ım) logaritmick´em mˇeˇr´ıtku. Tlaˇc´ıtko Exit ukonˇcuje optimalizaci, nejdˇr´ıve vˇsak po dokonˇcen´ı dan´e iterace. I v tomto pˇr´ıpadˇe jsou uloˇzeny a vr´aceny v´ysledky, kter´ych bylo dosaˇzeno. Vyjdeme-li ze z´akladn´ıho tvaru vol´an´ı funkce:
res = PSOptimizer(PsoData,’fitnessFunction’,ag,it),
kde ag je poˇcet agent˚u, it poˇcet iterac´ı a ˇretˇezec fitnessFunction obsahuje jm´eno mfile souboru s fitness funkc´ı. Pro navazuj´ıc´ı anal´yzu a zpracov´an´ı dat, byly vytvoˇreny n´asleduj´ıc´ı datov´e struktury: PsoData.data1 = [ ] PsoData.data2 = [ ] PsoData.data3 = [ ] PsoData.type = ’psopt’ PsoData.rank PsoData.bound{} = [ ] PsoData.cond{} = [ ]
6 Pokud
je program vol´an opakovanˇe, nezatˇezˇ uje PC.
Pˇrednˇe do funkce vstupuj´ı 3 sloty (PsoData.data1-3), ve kter´ych se mohou um´ıstit optimalizovan´a data. Velikost matic data1-3 je libovoln´a, vˇzdy vˇsak mus´ı b´yt vˇsechny tˇri matice definov´any (alespoˇn jako pr´azdn´e). Poˇcet slot˚u vol´ıme tak, aby byl dostateˇcn´y pro ˇreˇsen´ı IFS ant´en (body z´akladn´ıho u´ tvaru, transformace a iteraˇcn´ı matice). Obecnˇe vˇsak nen´ı poˇcet tˇechto slot˚u omezen, stejnˇe tak jako jejich vyuˇzit´ı. Dalˇs´ım polem je PsoData.type, kter´e je fixnˇe zad´ano string ˇretˇezcem psopt. Pole je potˇreba pˇri identifikaci pˇr´ıchoz´ıch dat uvnitˇr funkce. PsoData.rank je nepovinn´y u´ daj, jenˇz koresponduje s dimenz´ı optimalizace. Na z´avˇer zde figuruj´ı pole PsoData.bound, ve kter´em jsou uloˇzeny hranice7 definuj´ıc´ı s.s. a tak´e PsoData.cond, indexuj´ıc´ı optimalizovan´e parametry8 . Matice PsoData.cond m˚uzˇ e m´ıt libovoln´y poˇcet ˇra´ dek. Protoˇze kaˇzd´a ˇra´ dka oznaˇcuje jednu optimalizovanou pozici v jedn´e z matic, lze takto sv´azat do jedn´e dimenze (PsoData.cond{dim}) nˇekolik optimalizovan´ych hodnot. Takov´e hodnoty jsou potom v r´amci PSO spˇraˇzeny a jsou optimalizov´any spoleˇcnˇe. Tento postup je ide´aln´ı v pˇr´ıpadˇe, zˇ e potˇrebujeme mezi nˇekter´ymi hodnotami zachovat fixn´ı pomˇer (jejich rovnost). Uveden´ym postupem zajist´ıme, zˇ e do funkce vstupuj´ı vˇsechna uˇzivatelsk´a data (fitness funkce tedy m˚uzˇ e s tˇemito daty komplexnˇe pracovat) a nav´ıc ucelen´y u´ daj co a v jak´ych mez´ıch se m´a optimalizovat. V´ystupn´ı pole obsahuje opˇet sloty 1-3, patˇriˇcn´e hodnoty jsou ale optimalizov´any. Hodnota fitness funkce pro tyto je uvedena v res.score. Pole done referuje o zd´arn´em ukonˇcen´ı PSO (res.done = 1), v opaˇcn´em pˇr´ıpadˇe je res.done = 0 (urˇceno jako n´avˇest´ı pro nadˇrazen´e programy). Res.options uv´ad´ı hodnoty, za kter´ych byla optimalizace dokonˇcena a koneˇcnˇe res.history obsahuje vˇetˇsinu vnitˇrn´ıch stav˚u PSOptimizeru v kaˇzd´e iteraci9 . Zakonˇceme tuto cˇ a´ st pohledem na pseudok´od, pˇrevoditeln´y do libovoln´eho programovac´ıho jazyku: 7 Zp˚ usob z´apisu: ProData.bound{dimenze}=
[min max] pro danou di-
menzi. a1 b1 c1 a b c 2 2 8 Form´ at je: PsoData.cond{dimenze} = 2 , kde a .. .. .. . . . odpov´ıd´a cˇ´ıslu datov´eho slotu 1-3, b ukazuje na ˇra´ dku dan´eho slotu, c potom znaˇc´ı pozici na ˇra´ dce (ˇc´ıslo sloupce). 9 Tyto pole lze vyuˇ z´ıt napˇr. pro vykreslen´ı cost funkce (napˇr. obr. 4 vpravo pro kvadratickou funkci), nebo pro vykreslen´ı pozice jednotliv´ych agent˚u v dan´e iteraci (obr. 15).
ˇ ´ OPTIMALIZACE V MATLABU M. CAPEK, ROJOVA
4
krok 1. krok 2. krok 3. krok 4. krok 5. krok 6. krok 7. krok 8. krok 9. krok 10. krok 11. krok 12. krok 13. krok 14. krok 15. krok 16. krok 1. krok 2. krok 3.
PSOptimizer kontrola vstupn´ıch parametr˚u inicializace GUI tvorba (n´ahodn´eho) hejna vyhodnocen´ı 1. iterace for i = 1:iteraciCelkem u´ prava wactual update rychlosti agent˚u update pozice agent˚u for j = 1:agent˚uCelkem if agent(j) ∈ s.s. callFF end end update pBest, gBest v´ypis informac´ı end callFF uprav´ı PsoData podle aktu´aln´ıch agent˚u vol´a f.f. s aktu´aln´ımi daty (PsoData) agent˚um je pˇriˇrazen v´ysledek f.f.
Tab. 2. Principi´aln´ı sch´ema PSOptimizeru
4. Pouˇzit´e testovac´ı funkce Strukturu PsoData mus´ıme zohlednit pˇri n´avrhu jak´ekoliv fitness funkce. Nikoliv pouze hlaviˇcky, ale i pˇri zpracov´an´ı dat zaslan´ych PSO algoritmem na ohodnocen´ı. Definice funkce by mˇela odpov´ıdat n´asleduj´ıc´ımu vzoru: function fitnessValue = fitnessFunction(sign, tested data)
kter´ych zn´ame v´ysledek (tj. glob´aln´ı minima). Algoritmus byl provˇeˇren n´asleduj´ıc´ımi funkcemi: • Kvadratick´a funkce • Rosenbrockova funkce (Rosenbrock’s saddle) • Funkce Levy No.5 (Levy’s function No.5) • Ackleyho funkce II (Ackley’s function II) • Ranova funkce (Rana’s function) • Rastrigrinova funkce (Rastrigrin’s function) Funkce jsou rozd´ılnˇe cˇ lenit´e (krajina, kterou se pohybuj´ı agenti) a jsou z velk´e cˇ a´ sti dostateˇcnˇe pops´any v literatuˇre, lze tedy verifikovat z´ıskan´e hodnoty. Algoritmus byl vyuˇzit i pro optimalizaci jin´ych funkc´ı (Levy No.3, Mastersova, Schwefelova, 4. de Jongova . . . ), ve vˇsech pˇr´ıpadech PSO podalo oˇcek´avan´e v´ysledky. Metodika vyuˇzit´a pro hodnocen´ı v´ysledk˚u optimalizace respektuje obvykl´e postupy ([8] a dalˇs´ı). Funkce 1 (kvadratick´a) fkv (x) = x2 − 10
(3)
Na t´eto funkci demonstrujeme vliv neviditeln´e zdi12 . Pokud s.s. zvol´ıme pouze v rozsahu h2, 5i, bude nalezen´e minimum rovno -6, a to i pˇres to, zˇ e jednotliv´ı agenti mohou kr´atkodobˇe proniknout i bl´ızˇ e k nule na ose x. Situace je zn´azornˇena na obr. 4.
String sign m´a vˇzdy hodnotu ’eval’, cˇ asto ho vyuˇz´ıv´ame pro oznaˇcen´ı vol´an´ı10 . Promˇenn´a fitnessValue vrac´ı zpˇet hodnotu, podle kter´e se cel´y roj pohybuje (hodnota funkce v dan´em bodˇe, rezonanˇcn´ı frekvence dan´e struktury . . . ). Uvnitˇr tested data nalezneme sloty .data1-3 podobnˇe jako v PsoData, v tomto pˇr´ıpadˇe obsahuj´ı aktu´aln´ı hodnoty urˇcen´e k vyhodnocen´ı funkce. D´ıky vol´an´ı extern´ıho mfilu, m˚uzˇ eme vyuˇz´ıvat PSOptimizer pro libovoln´e u´ cˇ ely – postaˇc´ı dodrˇzet pˇredepsanou hlaviˇcku f.f. (mfile) a data zad´avat ve formˇe PsoData11 . Vzhledem k neexistenci ˇra´ dn´eho PSO toolboxu v Matlabu, m˚uzˇ e b´yt vyuˇzit´ı PSOptimizeru dobrou volbou, nehledˇe na dalˇs´ı moˇznosti pˇrizp˚usoben´ı.
Obr. 4. Kvadratick´e fce v rozsahu x ∈ h2, 5i
Funkce 2 (Rosenbrockova) f (x) =
N X
100(xi+1 − x2i )2 + (xi − 1)2
(4)
i=1
Testovan´e funkce Pˇred praktick´ym nasazen´ım programu je nutn´e ovˇeˇrit funkˇcnost PSOptimizeru na analytick´ych funkc´ıch, u 10 Napˇr. nadˇrazen´ e specializovan´e programy pro v´ypoˇcet ant´enn´ıch struk-
tur poznaj´ı, zˇ e prob´ıh´a optimalizace a nezav´ıraj´ı zˇ a´ dn´a grafick´a okna. 11 Vyuˇ zit´ı PSO v ant´enn´ı technice je obrovsk´e. Od optimalizace z´aˇriˇcu˚ , pˇres u´ pravy cˇ oˇcek, reflektor˚u a ohnisek, aˇz po komplexn´ı optimalizace cel´ych syst´em˚u.
fro (x, y) = 100(y − x2 )2 + (x − 1)2
(5)
Funkce se sˇiroce uplatˇnuje ve vˇetˇsinˇe optimalizaˇcn´ı test˚u. Pro svou monotonii (obr. 5) lze vyuˇz´ıt i gradientn´ı metody, nebot’ nehroz´ı uv´ıznut´ı v lok´aln´ım minimu. Glob´aln´ı mininum m˚uzˇ eme nal´ezt na souˇradnic´ıch x = 1, y = 1 a jeho hodnota je rovna f (xmin , ymin ) = 0. Podle vztahu (4) je
ˇ z, 2009 Rektorysova souteˇ
5
Obr. 5. Rosenbrockova fce, s.s. ∈ h−10, 10i×h−10, 10i a cost fce
funkce definov´ana v N-rozmˇern´em prostoru, my vyuˇzijeme 2D pˇrepisu (5). Obr. 6 ukazuje, jak rychle kles´a chyba, s kterou je nalezeno glob´aln´ı minimum. Tuto rychlost lze v´yraznˇe ovlivnit nastaven´ım parametr˚u wmin a wmax . Pokud v´ahovac´ı koeficient s iterac´ı kles´a, kles´a tak´e pˇr´ıspˇevek novˇe vypoˇcten´e rychlosti a agent je sp´ısˇe udrˇzov´an v souˇcasn´e pozici. Eliminujeme t´ım oscilace, pˇri kter´ych agenti kmitaj´ı kolem nalezen´eho minima.
Obr. 7. Fce Levy No.5, s.s. ∈ h−10, 10i × h−10, 10i a cost fce
Funkce 4 (II. Ackleyho) D−1 P f (x) = 20 + e − i=1
−e
1 2
20 s 1 e5
(x2 +x2 ) i i+1 2
− (7)
cos(2πxi )+cos(2πxi+1 )
Tato a obˇe n´asleduj´ıc´ı funkce 5 a 6 maj´ı obecn´y pˇredpis, testovali jsme vˇsak pouze funkce s D = 2. Druh´a Ackleyho funkce m´a jedno jasnˇe zˇreteln´e glob´aln´ı minimum na pozici (x1 = 0, x2 = 0), jeho hodnota je f (0, 0) = 0, obecnˇe lze potom naj´ıt minima vˇzdy na pozici (x1 , x2 , . . . , xn ) = (0, 0, . . . , 0), jeho hodnota je rovna nule.
Obr. 6. Konvergence ke skuteˇcn´emu minimu Rosenbrockovy fce
Funkce 3 (Levy No.5) fl5 (x, y) =
5 P
i cos (i − 1)x + i × i=1 5 P × j cos (j + 1)y + j +
(6)
j=1
+(x + 1.42513)2 + (y + 0.80032)2 Na prostoru h−2, 2i × h−2, 2i m˚uzˇ eme nal´ezt 760 lok´aln´ıch a jedno glob´aln´ı minimum (souˇradnice x = −1.3068, y = −1.4248). Velikost s.s. je u´ myslnˇe zvˇetˇsena na h−10, 10i × h−10, 10i (jako u Rosenbrockovy f.). Tato funkce dobˇre testuje odolnost v˚ucˇ i uv´ıznut´ı agent˚u v lok´aln´ıch extr´emech. ´ esˇnost optimalizace pro r˚uzn´a nastaven´ı ukazuj´ı tab. 7.2 Uspˇ aˇz 7.5 a obr. 7.
12 Neviditeln´ a zed’ se uplatˇnuje nepˇr´ımo t´ım, zˇ e neumoˇzn´ı vyhodnotit moˇzn´e niˇzsˇ´ı minimum v rozsahu h−2, 2i. Vybran´a pole PsoData pro tuto optimalizaci jsou rovna: PsoData.rank = 1; PsoData.cond{1} = [1 1 1]; PsoData.bound{1} = [2 5].
Obr. 8. II. Ackleyho fce, s.s. ∈ h−20, 20i × h−20, 20i
Funkce 5 (Ranova) f (x) =
D−1 P
p xi sin |xi+1 + 1 − xi | × i=1 p × cos |xi+1 + 1p+ xi | + +(xi+1 + 1) cos |xi+1 + 1 − xi | × p × sin |xi+1 + 1 + xi |
(8)
Ranova funkce je sloˇzit´a jiˇz ve dvou-rozmˇern´em prostoru – plocha je modulov´ana pomoc´ı harmonick´ych funkc´ı a to dostateˇcnˇe komplikovan´ym zp˚usobem (viz obr´azek 9). Pˇresn´a poloha glob´aln´ıho minima se autorovy nepodaˇrila zjistit, nicm´enˇe i tak m˚uzˇ eme sledovat konvergenci hejna a jeho tlumenou oscilaci ve smˇeru x a y od bodu s glob´aln´ım minimem.
ˇ ´ OPTIMALIZACE V MATLABU M. CAPEK, ROJOVA
6
funkˇcn´ıch hodnot v cˇ ase. Tento typ graf˚u je v anglick´e literatuˇre oznaˇcov´an jako cost funkce a d´av´a dobrou pˇredstavu o pr˚ubˇehu optimalizace. Zaj´ımav´e jsou zejm´ena r˚uzˇ ov´e a fialov´a kˇrivka. Na nich vid´ıme, zˇ e v pˇr´ıpadˇe zcela nevhodnˇe nastaven´ych parametr˚u nekonverguje hejno dostateˇcnˇe.
Obr. 9. Ranova fce, s.s. ∈ h−50, 50i × h−50, 50i Obr. 11. Optimalizace fce Levy5 pro r˚uzn´a c1 a c2 (20 agent˚u, 150 iterac´ı)
Funkce 6 (Rastrigrinova) f (x) = 2D
D X
x2i − 10 cos(2πxi )
(9)
i=1
I tato funkce byla optimalizov´ana pouze pro D = 2. Glob´aln´ı minimum nalezneme na pozici (x = 0, y = 0) a rovno −80. Pro n-rozmˇern´y prostor, je minimum rovno −40n.
Obr. 12. Optimalizace fce Levy5 pro r˚uzn´a c1 a c2 (20 agent˚u, 150 iterac´ı)
N´asleduj´ıc´ı tabulky demonstruj´ı z´asadn´ı vliv parametr˚u ´ esˇnost c1 a c2 na koneˇcn´y v´ysledek optimalizace. Uspˇ algoritmu testujeme podm´ınkou, zda je nalezen´a hodnota menˇs´ı neˇz −176.1375 (Levy5, hodnota bl´ızk´a zn´am´emu glob´aln´ımu minimu, viz [8]).
Obr. 10. Rastrigrinova fce, s.s. ∈ h−5, 5i × h−5, 5i
˚ v´ysledky 5. Nastaven´ı parametru, V´ysledek, stejnˇe tak jako rychlost, s jakou je rˇeˇsen´ı nalezeno, lze v´yznamn´ym zp˚usobem ovlivnit vhodnou volbou parametr˚u z tabulky 113 . Pr˚ubˇeh jednotliv´ych optimalizac´ı je v podstatˇe n´ahodn´y a jak´ekoliv u´ daje mus´ıme z´ıskat jako pr˚umˇer velk´eho poˇctu opakov´an´ı (zpravidla 50). Cel´a procedura se tak st´av´a cˇ asovˇe n´aroˇcnˇejˇs´ı. Nejprve uved’me grafick´e pr˚ubˇehy. Jejich u´ kolem nen´ı zobrazit nalezenou hodnotu, sledujeme zde pr˚ubˇeh 13 Konkr´ etnˇe
se budeme zab´yvat poˇctem iterac´ı a velikost´ı hejna, a tak´e koeficienty c1 a c2 .
Funkce Levy5 (10x10 s.s.) 50x, 20 agent˚u iter. u´ spˇesˇnost [%] chyb cˇ as [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 50 5% 48/50 187 1000 100 78% 11/50 378 2000 150 92% 4/50 571 3000 300 100% 0/50 1258 6000 500 100% 0/50 2308 10000 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 100 80% 10/50 387 2000 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 100 92% 4/50 387 2000 HP nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tab. 3. Success rate fce Levy5 (se zmˇenou iterace), 20 agent˚u
Z aplikaˇcn´ıho hlediska jsou zaj´ımav´e dva u´ daje. Prvn´ı je ten, kdy je u´ spˇesˇnost poprv´e rovna 100%, tedy chv´ıle, kdy optimalizace vˇzdy najde spr´avn´y v´ysledek. Tento moment lze urˇcit pouze pro jiˇz zmapovan´e funkce. Druh´y zaj´ımav´y
ˇ z, 2009 Rektorysova souteˇ
7
Funkce Levy5 (10x10 s.s.) 50x, 45 agent˚u iter. u´ spˇesˇnost [%] chyb cˇ as [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 50 16% 42/50 370 2250 100 98% 1/50 711 4500 150 98% 1/50 1083 6750 300 100% 0/50 2328 13500 500 100% 0/50 > 4000 22500 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 50 72% 14/50 362 2250 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 50 90% 5/50 363 2250 HP ,nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tab. 4. Success rate fce Levy5 (se zmˇenou iterace), 45 agent˚u
v´ysledek je ten s nejvyˇssˇ´ı u´ cˇ innost´ı v nejkratˇs´ım moˇzn´em cˇ ase14 . Vid´ıme tedy, zˇ e u´ spˇesˇnost funkce lze v´yznamn´ym zp˚usobem zv´ysˇit u´ pravou parametr˚u (c1 , c2 , ale i dalˇs´ımi, kter´ymi se zde nebudeme zab´yvat), coˇz popisuj´ı nˇekter´e studie. Bohuˇzel optimalizovan´e funkce maj´ı r˚uzn´y charakter, a proto jsou tyto parametry voleny zpravidla na z´akladˇe doporuˇcen´ı v referenˇcn´ı literatuˇre. Pro u´ plnost uved’me i u´ cˇ innost optimalizace pˇri zmˇenˇe poˇctu agent˚u (tabulky 5 a 6, n´ızˇ e). Funkce Levy5 (10x10 s.s.) 50x, 150 iterac´ı agen. u´ spˇesˇnost [%] chyb cˇ as [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 5 44% 28/50 84 750 10 64% 18/50 121 1500 20 92% 4/50 198 3000 30 100% 0/50 276 4500 45 100% 0/50 370 6750 Core2Quad 9450 64b (2.66GHz),12MB, 4GB 1333MHz
Funkce Levy5 (10x10 s.s.) 50x, 50 iterac´ı agen. u´ spˇesˇnost [%] chyb cˇ as [s] evalFun c1 = 2.0, c2 = 2.0, wmin = 0.4, wmax = 0.9 5 0% 50/50 32 250 10 0% 50/50 42 500 20 2% 49/50 65 1000 30 6% 47/50 88 1500 45 12% 44/50 118 2250 c1 = 0.5, c2 = 0.6, wmin = 0.4, wmax = 0.9 45 76% 12/50 160 2250 c1 = 1.0, c2 = 1.0, wmin = 0.4, wmax = 0.9 45 92% 4/50 154 2250 c1 = 1.5, c2 = 1.5, wmin = 0.4, wmax = 0.9 45 90% 5/50 165 2250 Core2Quad 9450 64b (2.66GHz),12MB, 4GB 1333MHz Tab. 6. Success rate fce Levy5 (podle poˇctu agent˚u), 50 iterac´ı
malizace. M˚uzˇ e b´yt pˇredmˇetem dalˇs´ıho v´yzkumu, zda lze t´eto z´avislosti vyuˇz´ıt k zefektivnˇen´ı PSO.
Obr. 13. Poˇcet agent˚u mimo s.s. pro Rosenbrockovu a Levy5 funkci (20 agent˚u, 150 iterac´ı)
Tab. 5. Success rate fce Levy5 (podle poˇctu agent˚u), 150 iterac´ı
Poˇcet agent˚u je zpravidla pevnˇe stanoven (nejˇcastˇeji 20-25 jedinc˚u). Zv´ysˇit jejich poˇcet je doporuˇceno u probl´em˚u, kter´e jsou definov´any na velmi rozlehl´em s.s., anebo (zejm´ena) pokud prohled´avan´y prostor obsahuje mnoho lok´aln´ıch minim. Mnohem cˇ astˇeji je v pˇr´ıpadˇe probl´em˚u nav´ysˇen poˇcet iterac´ı, pˇr´ıpadnˇe jsou pozmˇenˇeny parametry c1 a c2 . Na z´avˇer kr´atce okomentujme obr´azky 13 a 14. Vyn´asˇ´ıme zde dva parametry, kter´e popisuj´ı optimalizaci nez´avisle na zkouman´e funkci. Poˇcet agent˚u mimo s.s., stejnˇe tak jako jejich rozptyl15 , lze pro stejnˇe velk´e s.s. vz´ajemnˇe porovn´avat. Na prvn´ı pohled je patrn´e, zˇ e – aˇc pro zcela rozd´ıln´e funkce – jsou si pr˚ubˇehy dosti podobn´e a napov´ıdaj´ı, jak´ym zp˚usobem se pohybuje hejno bˇehem opti14 V pˇr´ım´ e u´ mˇerˇe odpov´ıd´a pˇr´ıpadu s nejmenˇs´ım celkov´ym poˇctem vyhodnocen´ı fitness funkce (v tabulce evalFun) P 15 Definov´ an:
σ=
ag n n i=1 (kpg k−kpi k) ag
, kde ag je celkov´y poˇcet agent˚u.
Obr. 14. Rozptyl agent˚u, Rosenbrockova a Levy5 funkce (20 agent˚u, 150 iterac´ı)
Z n´ızˇ e prezentovan´ych v´ysledk˚u je vidˇet, zˇ e n´avrh PSO algoritmu byl u´ spˇesˇn´y a mnohdy dosahuje vyˇssˇ´ı u´ cˇ innosti neˇz srovnateln´e publikovan´e algoritmy, viz [10]. To je d´ano pravdˇepodobnˇe pouˇzit´ım vhodn´eho typu zdi a testov´an´ım pro relativnˇe (v kontextu optimalizace) jednoduch´ych funkc´ı.
6. PSO postprocessing Ve vˇetˇsinˇe pˇr´ıpad˚u zcela postaˇcuje jako n´avratov´a hodnota velikost fitness funkce a parametry j´ı pˇr´ısluˇsn´e (tedy sloty .data1-3). Chceme-li vˇsak hloubˇeji proniknout do mechanism˚u PSO optimalizace a – zejm´ena pracujemeli s urˇcit´ym probl´emem opakovanˇe – vylepˇsit/zrychlit jej´ı
ˇ ´ OPTIMALIZACE V MATLABU M. CAPEK, ROJOVA
8
pr˚ubˇeh, je vhodn´e analyzovat v´ysledky podrobnˇeji. Pro tyto pˇr´ıpady vznikl n´astroj PSOpost, obr. 15. Umoˇznˇ uje n´asledn´e vykreslen´ı pozice agent˚u, vˇc. isoˇcar prohled´avan´e funkce. Dalˇs´ı moˇznost´ı je vykreslen´ı smˇer˚u (vektor˚u) pohybu agent˚u. Tak lze studovat chov´an´ı jednotliv´ych cˇ len˚u hejna, ale i cel´eho roje, pro jednotliv´e funkce. Napˇr´ıklad na funkci zobrazen´e na obr. 15 se po jist´em cˇ ase agenti pohybuj´ı jen v horizont´aln´ım a vertik´aln´ım smˇeru kolem glob´aln´ıho minima. M˚uzˇ eme sledovat vliv parametr˚u wmin a wmax na tlumen´ı tˇechto oscilac´ı. V jin´em pˇr´ıpadˇe se mohou agenti pˇr´ıliˇs rozl´etnout, pak je vhodn´e upˇrednostnit soci´aln´ı parametr pˇred pozn´avac´ım.
verguje dostateˇcnˇe, cˇ i sp´ısˇe v˚ubec. Vˇetˇsina parametr˚u je urˇcena pouze na z´akladˇe emperick´ych znalost´ı a liˇs´ı se podle zkuˇsenost´ı autor˚u – kupˇr´ıkladu pro parametry c1 a c2 se povaˇzuje za obecnˇe platn´e pravidlo, zˇ e c1 + c2 ≤ 4. Takov´a nastaven´ı vˇsak vˇetˇsinou zˇ a´ dn´ym zp˚usobem nezohledˇnuj´ı pr˚ubˇeh a chov´an´ı f.f. a pouˇz´ıvaj´ı se zkr´atka pouze proto, zˇ e funguj´ı“. ” M˚uzˇ eme se tedy opr´avnˇenˇe t´azat, jak naj´ıt ty nejvhodnˇejˇs´ı parametry PSO. Pro tuto techniku (optimalizaci optimalizace) se vˇzilo nˇekolik term´ın˚u, nejˇcastˇeji vˇsak oznaˇcen´ı metaoptimalizace. Aplikovat PSO na analytickou funkci pro nˇekolik r˚uzn´ych nastaven´ı a vybrat to nejlepˇs´ı je jednou z mnoˇznost´ı. Obt´ızˇ nˇe ho ovˇsem budeme realizovat pro f.f., u kter´e nezn´ame funkˇcn´ı pˇredpis (viz cˇ a´ st 8). Jinou moˇznost´ı je vyuˇzit´ı dalˇs´ıch informac´ı, kter´e n´am jednotliv´ı agenti a jejich chov´an´ı poskytuje. Touto cestou se m˚uzˇ eme vydat d´ıky programu PSOpost. Jin´e moˇznosti vylepˇsen´ı ukazuj´ı n´asleduj´ıc´ı odstavce.
7.2. Stretched PSO Klasick´e pojet´ı PSO je dostateˇcnˇe efektivn´ı, pˇresto existuj´ı funkce (Corana 4D, XOR, Freudenstein-Rothova a dalˇs´ı), kde selh´av´a. K. E. Parsopoulos a M. N. Vrahatis v [8] navrhli postup, kter´y dosahuje i pro problematick´e funkce stoprocentn´ı u´ cˇ innosti.
Obr. 15. N´astroj PSOPost
PSOpost tak´e v re´aln´em cˇ ase poˇc´ıt´a vˇsechny agenty mimo stanoven´y s.s., stejnˇe jako rozptyl cel´eho hejna. Tyto hodnoty jsou zaznamen´any do graf˚u (v obr´azku napravo), kter´e jsme uvedli v´ysˇe. Umoˇznˇ uj´ı urˇcit, zda jiˇz hejno skuteˇcnˇe naˇslo hodnotu, kter´a se bl´ızˇ´ı re´aln´emu glob´aln´ımi minimu. N´astroj nen´ı zdaleka dokonˇcen a je v souˇcasn´e dobˇe urˇcen pouze pro u´ lohy, kter´e obsahuj´ı dva optimalizovan´e parametry. V budoucnu bude moˇzn´e tyto parametry zvolit. Bohuˇzel tato problematika je dosti komplexn´ı a jej´ı n´azorn´a demonstrace vyˇzaduje sofistikovanˇejˇs´ı m´edium neˇz je tento cˇ l´anek (dostateˇcnˇe n´azorn´a jsou videa). Vˇetˇs´ı pozornost t´eto problematice vˇenujeme v souvisej´ı presentaci.
7. Metaoptimalizace, mutace PSO 7.1. Metaoptimalizace Obecnˇe se vzr˚ustaj´ıc´ım poˇctem parametr˚u rostou moˇznosti nastaven´ı jak´ekoliv optimalizace. Na druhou stranu algoritmus s menˇs´ım poˇctem parametr˚u (tj. stupˇnu˚ volnosti, napˇr. simulovan´e zˇ´ıh´an´ı) je transparentnˇejˇs´ı a jeho nastaven´ı jednoduˇssˇ´ı. PSO je v tomto smˇeru relativnˇe sloˇzit´e, nebot’ obsahuje celou ˇradu parametr˚u, kter´e mus´ı b´yt nastaveny v patˇriˇcn´ych mez´ıch. V opaˇcn´em pˇr´ıpadˇe optimalizace nekon-
Nejvˇetˇs´ım probl´emem zm´ınˇen´ych funkc´ı je existence mnoha lok´aln´ıch minim. Ty stoj´ı v cestˇe agent˚um pˇri hled´an´ı glob´aln´ıho minima16 . Pro dalˇs´ı u´ cˇ ely si m˚uzˇ eme lok´aln´ı minimum popsat jako nejmenˇs´ı hodnotu funkce f v okol´ı B bodu x: f (x) ≤ f (x), ∀x ∈ B. (10) A pr´avˇe vˇsechny body x krom glob´aln´ıho minima si pˇrejeme eliminovat. Ukazuje se, zˇ e stretching technika je vhodn´ym n´astrojem na potlaˇcen´ı tˇechto (vedlejˇs´ıch) minim. V podstatˇe jde o transformaci pˇredpisu f (x), kter´a je provedena ve dvou kroc´ıch. Ihned po objeven´ı lok´aln´ıho minima podle (10) pˇrevedeme funkci podle vztah˚u: G(x) = f (x) + γ1 kx − xk sign f (x) − f (x) + 1 (11) a sign f (x) − f (x) + 1 H(x) = G(x) + γ2 , tanh µ G(x) − G(x)
(12)
kde γ1 , γ2 a µ jsou libovolnˇe zvolen´e vysok´e konstantn´ı hodnoty a sign(x) splˇnuje podm´ınku: 1 pro x > 0 0 pro x = 0 sign(x) = (13) −1 pro x < 0 Funkci (13) m˚uzˇ eme numericky modelovat pomoc´ı 16 Pochopitelnˇ e
lze situaci ˇreˇsit zv´ysˇen´ım poˇctu agent˚u a iterac´ı, ale tento postup nen´ı pˇr´ıliˇs efektivn´ı, resp. jeho efektivita strmˇe kles´a s rostouc´ı sloˇzitost´ı funkce.
ˇ z, 2009 Rektorysova souteˇ
9
i poˇcet rozmˇer˚u (dimenzi) ˇreˇsen´e funkce. V d˚usledku se tak optimalizace st´av´a ˇra´ dovˇe obt´ızˇ nˇejˇs´ı.
Obr. 16. Funkce Levy5: bez transformace, s G(x) a po H(x), zdroj: [8]
Realizace GSO je nen´aroˇcn´a d´ıky tomu, zˇ e pouze sluˇcuje dva jiˇz zn´ame postupy, viz obr. 17. Jako nejvˇetˇs´ı obt´ızˇ se jev´ı vytvoˇren´ı vlastn´ıho GA optimaliz´atoru, kter´y komunikuje s PSO a zvolen´ı vhodn´eho form´atu, s kter´ym GA i PSO dok´azˇ´ı pracovat.
vztahu17 : sign(x) ≈ log sig(x) =
λx 2 ∼ tanh , (14) = 1 + exp−λx 2
pˇr´ıpadnˇe m˚uzˇ eme volat funkci sign v Matlabu. SPSO konverguje pro funkci Levy5 o 10-20% rychleji. Jak vid´ıme na obr. 16 uprostˇred (po transformaci G(x), podle (11)) a vpravo (po transformaci G(x) i H(x), podle (12)), lok´aln´ı minima jsou roztaˇzena a rozmaz´ana, zat´ımco glob´aln´ı minimum z˚ustalo nedotˇceno. V takto upraven´e krajinˇe“ se mohou agenti pohybovat mnohem snadnˇeji. ” V souˇcasn´e podobˇe PSOptimizeru nen´ı stretched PSO vyuˇz´ıv´ano – vˇsechny dosavadn´ı u´ koly spojen´e s optimalizac´ı patch ant´en se uk´azaly dostateˇcnˇe ˇreˇsiteln´e i pomoc´ı klasick´eho PSO v kombinaci s neviditelnou zd´ı, nicm´enˇe jeho pozdˇejˇs´ı nasazen´ı je st´ale zvaˇzov´ano.
7.3. GSO algoritmus V roce 2006 byla publikov´ana pr´ace [12], zab´yvaj´ıc´ı se moˇznost´ı spojit GA a PSO. Tato metoda je oznaˇcov´ana jako GSO (Genetical Swarm Optimization).
8. Optimalizace IFS patch ant´en Pˇredposledn´ı cˇ a´ st vˇenujeme praktick´e uk´azce vyuˇzit´ı PSOptimizeru pro efektivn´ı n´avrh patch ant´eny. C´ılem je navrhnout takovou patch18 ant´enu, kter´a by mˇela co nejniˇzsˇ´ı rezonanˇcn´ı frekvenci fr . Maxim´aln´ı rozmˇery z´aˇriˇce jsou fixnˇe zad´any, u´ pravy lze tedy dos´ahnou pouze zmˇenou geometrie. Vlastn´ı motiv je tvoˇren IFS frakt´alem. Frakt´aln´ı patche maj´ı v kontextu ant´enn´ı techniky nˇekolik velice zaj´ımav´ych vlastnost´ı (v´ıcep´asmovost, lokalizaci proud˚u zvyˇsuj´ıc´ı smˇerovost, menˇs´ı rozmˇery . . . ), proto jim vˇenujeme zv´ysˇenou pozornost.
Obr. 18. Pˇr´ıklad IFS patch motivu (1., 2. a 3. iterace)
Syst´em iterovan´ych funkc´ı IFS19 popisuje tvorbu syntetick´ych frakt´al˚u pomoc´ı z´akladn´ıho objektu a nˇekolika transformac´ı, jimiˇz je tento objekt ve vzr˚ustaj´ıc´ıch iterac´ıch dl´azˇ dˇen. Princip je odvozen z Banachovy vˇety o pevn´em bodu a vyuˇz´ıv´a Hutchinson˚uv oper´ator. Pro u´ cˇ ely tohoto cˇ l´anku je z´asadn´ı, zˇ e objekt je zcela pops´an n´ami vytvoˇren´ymi poli: FRC.base FRC.tran FRC.iter FRC.type
Obr. 17. Princip GSO optimalizace, na z´akladˇe [12]
Motivac´ı bylo mj. zjiˇstˇen´ı, zˇ e v pˇr´ıpadˇe mimoˇra´ dnˇe sloˇzit´ych funkc´ı (10, 20 i v´ıce rozmˇer˚u s.s.) kles´a u´ cˇ innost PSO i GA k nule. Jejich spojen´ı do GSO vˇsak poskytuje potˇrebnou flexibilitu a rapidnˇe zvyˇsuje u´ spˇesˇnost nalezen´ı glob´aln´ıho minima. V kaˇzd´e iteraci jsou agenti novˇe vyb´ır´ani a upraveni pomoc´ı PSO nebo GA, cˇ´ımˇz kombinujeme dva odliˇsn´e evoluˇcn´ı pˇr´ıstupy. GSO je vhodn´e m´ıt do budoucna na pamˇeti, nebot’ s poˇzadavkem optimalizaci komplexnˇejˇs´ıch funkc´ı jsme nuceni na jedn´e stranˇe zvˇetˇsovat rozlohu s.s., na druh´e stranˇe se vzr˚ustaj´ıc´ım poˇctem podm´ınek 17 Rovnice
(14) je sˇiroce vyuˇz´ıv´ana i v oblasti umˇel´ych neuronov´ych s´ıt´ı.
= = = =
[] [] [ od do celkem] ’pntstrns’
V promˇenn´e typu FRC jsou jednoznaˇcnˇe uloˇzeny body z´akladn´ıho u´ tvaru FRC.base20 , transformace ve tvaru [a b c d e f ] a iterace v poli FRC.iter. Na u´ rovni IFS n´avrhu bychom se bez takov´eho form´atu jeˇstˇe obeˇsli, potˇrebujeme ho vˇsak v pˇr´ıpadˇe anal´yzy pomoc´ı dutinov´eho modelu a PSO optimalizace. Podrobnˇeji se frakt´al˚um vˇenuje [1], [2] a [13]. M´ame-li vykreslenou strukturu, je potˇreba ji d´ale zpracovat a ohodnotit fitness funkc´ı. Tou je v naˇsem pˇr´ıpadˇe procedura na v´ypoˇcet rezonanˇcn´ı frekvence. Protoˇze pˇresn´y v´ypoˇcet je cˇ asovˇe n´aroˇcn´y, vyuˇzijeme aproximativn´ı duti18 Ploˇsn´ a rezonanˇcn´ı struktura se zemn´ı rovinou, v naˇsem pˇr´ıpadˇe bez pˇripojen´eho nap´ajen´ı. Jde o sˇiroce vyuˇz´ıvan´y typ ant´en. V´ıce v [14]. 19 Iterated function system 20 Jde o matici n × 2, kde n odpov´ıd´ a poˇctu bod˚u z´akladn´ıho u´ tvaru (nejm´enˇe vˇsak 3).
ˇ ´ OPTIMALIZACE V MATLABU M. CAPEK, ROJOVA
10
D´ıky PSOptimizeru z´ısk´av´ame velk´y objem dat vhodn´ych k pozdˇejˇs´ı anal´yze. Pod´ıv´ame-li se na napˇr´ıklad na pokles rezonance dominantn´ıho m´odu se vzr˚ustaj´ıc´ı iterac´ı (k poklesu doch´az´ı vˇzdy) pˇred a po optimalizaci, odhal´ıme, zˇ e tento trend je v obou pˇr´ıpadech stejn´y (obr. 22). Spolu s t´ım vyvst´av´aj´ı ot´azky po koneˇcn´e konvergenci frekvence (v nekoneˇcn´e iteraci) a dalˇs´ı.
Obr. 19. V´yznam transformaˇcn´ıch koeficient˚u
nov´y model (Cavity Model), implementovan´y v Comsol Multiphysics (pˇristupujeme z Matlabu). Cel´y program slouˇz´ı jako fitness funkce pro PSOptimizer.
Obr. 22. Pokles rezonanˇcn´ı frekvence s iterac´ı
Obr. 20. Z´ariˇc FRC-H pˇred a po optimalizaci, vˇc. pozice agent˚u
Pˇred vlastn´ı optimalizac´ı je kl´ıcˇ ov´y spr´avn´y v´ybˇer parametr˚u a odpov´ıdaj´ıch mez´ı, kter´e nesmˇej´ı pˇrekroˇcit. Pro 25 agent˚u, 150 iterac´ı PSO algoritmu, a 3. iteraci frakt´alu trv´a optimalizace zpravidla kolem 2-3 hodin na v´ykonˇejˇs´ım stroji (Core2Quad 9450, 12MB L2, 4GB DDR3). V´ysledky m˚uzˇ eme vidˇet na obr´azku 20, uk´azku nˇekolika agent˚u jin´e optimalizace ukazuje n´asleduj´ıc´ı obr´azek 21.
Uk´azali jsme, jak lze optimalizovat relativnˇe komplikovan´e struktury. Detailn´ı ˇreˇsen´ı vˇsech cˇ a´ st´ı je pops´ano v [2] a dalece pˇresahuje vymezen´y rozsah tohoto cˇ l´anku. V budoucnu bude moˇzn´e optimalizovat ant´eny nejen s ohledem na rezonanˇcn´ı frekvenci, ale budeme moci uv´azˇ it i smˇer vyzaˇrov´an´ı, popˇr´ıpadˇe dalˇs´ı kl´ıcˇ ov´e parametry.
9. Z´avˇer V pˇr´ıspˇevku byla rozvedena implementace PSO algoritmu do Matlabu. Optimalizace byla pops´ana form´alnˇe i na konkr´etn´ıch pˇr´ıkladech. Uk´azali jsme, jak´ym zp˚usobem ovlivˇnuj´ı jednotliv´e parametry pr˚ubˇeh optimalizace a jak´e m˚uzˇ eme oˇcek´avat v´ysledky. Prostor byl vˇenov´an i popisu vstupn´ıch a v´ystupn´ıch pol´ı, jejichˇz charakter – spolu s pˇreindexov´an´ım hodnot uvnitˇr funkce – umoˇznˇ uje vyuˇz´ıvat PSOptimizer pro ˇreˇsen´ı cel´e ˇrady probl´em˚u. D´ale jsme se kr´atce vˇenovali moˇznosti modelovat pr˚ubˇeh PSO, cˇ´ımˇz by se v´yraznˇe zkr´atila doba potˇrebn´a ke konvergenci do glob´aln´ıho minima. Pˇresn´y postup nen´ı v souˇcasn´e dobˇe dostateˇcnˇe publikov´an v referenˇcn´ı literatuˇre a experiment´aln´ıch dat nen´ı zat´ım dostatek pro formulaci vlastn´ıch z´avˇer˚u. Pro hlubˇs´ı srovn´an´ı je nutn´e implementovat dalˇs´ı, odliˇsnou metodu optimalizace (zvaˇzov´ana je metoda SOMA, simulovan´e zˇ´ıh´an´ı, pˇr´ıp. v´ysˇe uveden´y GSO algoritmus). Teprv´e pot´e m˚uzˇ eme porovn´avat skuteˇcnou efektivitu PSO. Na z´avˇer jsme zm´ınili praktick´e vyuˇzit´ı cel´e metody v oblasti optimalizace frakt´aln´ıch patch ant´en a nast´ınili dalˇs´ı moˇzn´y v´yvoj. Tento cˇ l´anek mˇel za c´ıl pouze revidovat partikul´arn´ı u´ spˇechy na poli rojov´e optimalizace.
Obr. 21. Uk´azka nˇekolika agent˚u bˇehem optimalizace FRC-C
ˇ z, 2009 Rektorysova souteˇ
11
Podˇekov´an´ı R´ad bych na tomto m´ıstˇe podˇekoval RNDr. Nˇemeˇckovi za zasl´an´ı pozv´anky do soutˇezˇ e, a tak´e Ing. Hazdrovi, Ph.D., jenˇz se na cel´e, v´ysˇe prezentovan´e pr´aci pod´ılel. Sv˚uj vdˇek bych r´ad vyj´adˇril i Prof. Ing. Maz´ankovi, CSc. za vytvoˇren´ı skvˇel´ych pracovn´ıch podm´ınek. Tento cˇ l´anek vznikl s podporou grantu DG 102/08/H018 – Modelov´an´ı a simulace elektromagnetick´eho pole.
Reference ˇ [1] CAPEK, M. Mod´aln´ı anal´yza mikrop´askov´ych patch ant´en. Praha: ˇ CVUT-FEL, 2007, bakal´aˇrsk´a pr´ace. ˇ [2] CAPEK, M. N´astroj pro mod´aln´ı anal´yzu frakt´alov´ych patch ant´en. ˇ Praha: CVUT-FEL, 2009, diplomov´a pr´ace. ˇ [3] CAPEK, M., HAZDRA, P. PSO optimalizace v Matlabu. Technical Computing Prague, 2008. ˇ [4] CAPEK, M. PSO Optimalization of IFS Fractal Patch Antennas in Poster 2009, Praha. ˇ [5] HAZDRA, P., CAPEK, M. IFS Tool for Fractal Microstrip Patch Antenna Analysis in COMITE, Praha, 2008. ˇ ˇ [6] HAZDRA, P., CAPEK, M., KRACEK, J. Optimization Tool for Fractal Patches Based on the IFS Algorithm. EuCAP, Berl´ın, 2009. [7] KENNEDY, J., EBERHART, R. Particle Swarm Optimization. IEEE, 1995. [8] PASOPOULOS, K., E., PLAGIANAKOS, V., P., MAGOULAS, G., D., VRAHATIS, M., N. Stretching Technique for Obtaining Global Minimizers Through Particle Swarm Optimization. [Online]. Available: http://www.mat.univie.ac.at/neum/glopt/mss/ParPM01.pdf [9] ROBINSON, J., RAHMAT-SAMII, Y. Particle Swarm Optimization in Electromagnetics. IEEE Trans-AP, vol. 52, no. 2, pgs. 397-407, 2004. ´ R., M., OLCAN, ´ [10] GOLUBOVIC, D., I. Antenna Optimization Using Particle Swarm Optimization Algorithm. Journal of Automatic Control, Vol. 16, pp.21–24, 2006. ˇ ˇ ´ Z., SEDA, [11] ZELINKA, I., OPLATKOVA, M., OSMERA, P., ˇ ˇ F. Evoluˇcn´ı v´ypoˇcetn´ı technika. Praha: BEN, 2009. VCELA R, [12] GANDELLI, A., GRIMACCIA, F., MUSSETTA, M., PIRINOLI, P., ZICH, R., E. Genetical Swarm Optimization: an Evolutionary Algorithm for Antenna Design. AUTOMATIKA 47 (2006) 3 − 4, str.105 − 112. ˘ ´ P. Interaktivn´ı editor afinn´ıch transformac´ı. Brno: [13] TISNOVSK Y, VUT, 1999. [14] JAMES, J., R., HALL, P., S. Handbook of Microstrip Antennas vol.1. London: Peter Peregrinus Ltd., 1989. [15] The MATLAB website. [Online]. Available: http://www.mathworks.com/ [16] The COMSOL website. [Online]. Available: http://www.comsol.com/
Autor. . . ˇ Miloslav CAPEK se narodil v ˇCesk´ych Budˇejovic´ıch roku 1985. Po dokonˇcen´ı bakal´aˇrsk´e etapy r. 2007 na katedˇre elektromagnetick´eho pole ˇ CVUT-FEL pokraˇcoval magistersskou etapou tamt´ezˇ . Studium zakonˇcil r. 2009 diplomovou prac´ı na t´ema N´astroj pro mod´aln´ı anal´yzu frakt´aln´ıch patch ant´en. Nyn´ı studuje
postgradu´aln´ı etapu, zamˇerˇuje se na optimalizace (zejm. PSO), frakt´aln´ı geometrii, patchov´e ant´eny a teorii elektromagnetick´eho pole. Pro tato t´emata vyv´ıj´ı aplikace v Matlabu. C´ılem disertace je synt´eza multip´asmov´e patch ant´eny.