Rojová optimalizace v Matlabu



Podobné dokumenty
PSO OPTIMALIZACE V MATLABU


Biologicky inspirované výpočty: evoluční algoritmy

Obsah. Zelinka: UI v problémech globální optimalizace BEN technická literatura 3

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Swarm Intelligence. Moderní metody optimalizace 1

ACTA UNIVERSITATIS AGRICULTURAE ET SILVICULTURAE MENDELIANAE BRUNENSIS SBORNÍK MENDELOVY ZEMĚDĚLSKÉ A LESNICKÉ UNIVERZITY V BRNĚ

Rojová optimalizace v Matlabu

1. Úvod do genetických algoritmů (GA)

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

2. RBF neuronové sítě

FAKULTA ELEKTROTECHNICKÁ KATEDRA ELEKTROMAGNETICKÉHO POLE

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Jak pracovat s absolutními hodnotami

Dvoupásmová aktivní anténa s kruhovou polarizací

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.

3. Matice a determinanty

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

Anténní řada 2x2 pro přenos digitálního TV signálu v pásmu 4,4 až 5 GHz

OCHRANA VOJENSKÝCH OBJEKTŮ PROTI ÚČINKŮM VÝKONOVÝCH ELEKTROMAGNETICKÝCH POLÍ, SIMULACE EMC FILTRŮ

ENVIRONMENTÁLNÍ OPTIMALIZACE KOMŮRKOVÉ ŽELEZOBETONOVÉ DESKY

Ten objekt (veličina), který se může svobodně měnit se nazývá nezávislý.

2 Spojité modely rozhodování

ANALÝZA PLANÁRNÍCH STRUKTUR POMOCÍ METODY MOMENTŮ A JEJICH OPTIMALIZACE

8. Posloupnosti, vektory a matice

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Petr Chvosta. vlevo, bude pravděpodobnost toho, že se tyč na počátku intervalu τ B nachází nad vpravo

Analýza výsledků testu čtenářské gramotnosti v PRO /11

Regresní a korelační analýza

Cluster Analysis based on Bio-Inspired Algorithms

Modul 2 Nové metody a postupy hodnocení účinnosti podpory přírodovědné gramotnosti

ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE

Genetické algoritmy a jejich praktické využití

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

Rozvoj zaměstnanců metodou koučování se zohledněním problematiky kvality

6. T e s t o v á n í h y p o t é z

Prognóza poruchovosti vodovodních řadů pomocí aplikace Poissonova rozdělení náhodné veličiny

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

V praxi pracujeme s daty nominálními (nabývají pouze dvou hodnot), kategoriálními (nabývají více

SIMULACE INDUKČNÍHO OHŘEVU

+ ω y = 0 pohybová rovnice tlumených kmitů. r dr dt. B m. k m. Tlumené kmity

Funkce zadané implicitně

Konfigurace řídicího systému technikou Hardware In The Loop

MINISTERSTVO DOPRAVY ČR ODBOR POZEMNÍCH KOMUNIKACÍ ZPOMALOVACÍ PRAHY TECHNICKÉ PODMÍNKY. Schváleno MD - OPK č.j... s účinností od

Matematika I Reálná funkce jedné promìnné

1. Alternativní rozdělení A(p) (Bernoulli) je diskrétní rozdělení, kdy. p(0) = P (X = 0) = 1 p, p(1) = P (X = 1) = p, 0 < p < 1.

6 NÁVRH A EXPERIMENTÁLNÍ OVĚŘENÍ ELEKTROMAGNETICKÉHO AKTUÁTORU. František MACH

STUDIUM HLADINOVÉHO ELEKTROSTATICKÉHO

9. Úvod do teorie PDR

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

Bayesovská klasifikace digitálních obrazů

RNDr. Tomáš Pavlík, PhD. RNDr. Jiří Jarkovský, PhD. Doc. RNDr. Ladislav Dušek, PhD. Ústav zdravotnických informací a statistiky České republiky

Matematika pro studenty ekonomie

IMPLEMENTACE AUTOMATIZOVANÉHO MĚŘENÍ HRTF V MATLABU

Integrovaná dvoupásmová flíčkovo-monopólová anténa

Úloha - rozpoznávání číslic

Využití simplexového algoritmu v projektování výroby

Neuropočítače. podnět. vnímání (senzory)

Operativní řízení odtoku vody z nádrže za průchodu povodně Starý, M. VUT FAST Brno, Ústav vodního hospodářství krajiny

Heuristiky UNIVERZITA PALACKÉHO V OLOMOUCI KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY. Vypracovala:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VČELÍ ALGORITMUS BEES ALGORITHM

Vliv vzdělanostní úrovně na kriminalitu obyvatelstva

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU

VYBRANÉ PROBLÉMY ČASOVÉ OPTIMALIZACE ZDROJOVÉHO KÓDU V PROSTŘEDÍ MATLAB

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Analýza dynamické charakteristiky zkratové spouště jističe nn

spsks.cz Část druhá - Praxe Technologie řízení robotického ramena Zpracováno v rámci projektu CZ.1.07/3,2, 10/ financovaného z fondů EU

Matematika (KMI/PMATE)

Sociální sítě a náklady řešení problémů

Euklidovský prostor Stručnější verze

Vícepásmová anténa s fraktálním motivem

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE. Fakulta stavební MANUÁL K PROGRAMU POPÍLEK

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Využití modální analýzy pro návrh, posouzení, opravy, kontrolu a monitorování mostů pozemních komunikací

AdvAnch g Uživatelský manuál v. 1.0

Etapy tvorby lidského díla

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

OPTIMALIZACE. (přehled metod)

ANALYTICKÉ PROGRAMOVÁNÍ

EVA VOLNÁ MARTIN KOTYRBA MICHAL JANOŠEK VÁCLAV KOCIAN

Laserový skenovací systém LORS vývoj a testování přesnosti

Anténní systém pro DVB-T

NEXIS 32 rel Generátor fází výstavby TDA mikro

MODELOVÁNÍ TECHNOLOGICKÝCH PROCESŮ VE VÝUCE AUTOMATIZACE

Detekce obličeje v obraze s využitím prostředí MATLAB

ABSTRAKT KLÍČOVÁ SLOVA ABSTRACT KEYWORDS

R-5602 DYNBAL_V1 - SOFTWARE PRO VYHODNOCENÍ DYNAMICKÉ NEVÝVAHY V JEDNÉ ROVINĚ ING. JAN CAGÁŇ ING. JINDŘICH ROSA

PROKAZOVÁNÍ A OVĚROVÁNÍ SPOLEHLIVOSTI

Zadání vzorové úlohy výpočet stability integrálního duralového panelu křídla

Využití volně dostupných simulátorů pole v elektromagnetické kompatibilitě

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta strojního inženýrství Ústav mechaniky těles. Ing. Petr Krejčí

7. Analýza pohybu a stupňů volnosti robotické paže

Algoritmy pro spojitou optimalizaci

Poznámky k předmětu Aplikovaná statistika, 9.téma

D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E


Transkript:

Rektorysova soutěž, 2009 1 Rojová optimalizace v Matlabu Miloslav ČAPEK 1 1 Katedra elektromagnetického pole, České vysoké učení technické v Praze, Fakulta elektrotechniky, Technická 2, 166 27 Praha, Česká republika capekmi2@fel.cvut.cz Abstrakt. Příspěvek popisuje principy PSO optimalizace, její výhody i nevýhody. Mechanismus rojení částic byl implementován v prostředí Matlab. Jak bude ukázáno, využití je velice široké a nasazení metody je vysoce efektivní. Bylo testováno mnoho funkcí, většina se známým kanonickým předpisem a s přesně lokalizovatelným globálním minimem. Tyto funkce jsou krátce představeny, vč. výsledků optimalizace. Zmíníme se i o nastavení vstupních parametrů PSO, tzv. metaoptimalizaci a na závěr uvedeme jeden praktický příklad, jak je PSO optimalizace využívána na domovské katedře autora (optimalizace fraktálních patch antén s ohledem na minimální vyzařovací frekvenci dominantního módu struktury). Tento článek vznikl jako kompilát pro účely Rektorysovy soutěže; volně přejímá statě z [1] [6], což jsou vlastní práce autora. Takto přejaté části budou citovány jen volně. maticemi, disponuje celou řadou knihoven a lze se tedy soustředit přímo na řešený problém, umožňuje komfortní grafický i textový výstup. Velká část literatury obsahuje příklady právě z Matlabu, lze tedy porovnávat jednotlivá řešení a pro partikulární problémy využívat publikované segmenty kódu (např. [8]). Velkou výhodou je také možné propojení s Comsolem, ve kterém lze využít dutinového modelu pro modální řešení antén. Výsledná funkce, representovaná programem PSOptimizer 2, respektuje všechny výše uvedené požadavky. Podrobněji ji bude věnována část 2 a také části 4-5. Klíčová slova Particle swarm optimization (PSO), fitness funkce, testovací funkce, Matlab, Iterated function system (IFS) 1. Úvod Od roku 1995, kdy bylo PSO poprvé představeno [7], se objevila celá řada studií a výzkumů, které PSO využívají. Na základě potřeby testovat jejich závěry, ale i rozvíjet vlastní aktivity (zejm. spojené s IFS anténami, viz [4], [5], [6]), bylo rozhodnuto vyvinout vlastní aplikaci. Mezi požadavky byla prioritně rychlost algoritmu, jeho univerzálnost, možnost měnit jednotlivé parametry (iterace, počet agentů... ), dále schopnost rekurzivního volání 1, řešitelnost problémů libovolné dimenze a v neposlední řadě stabilita (zdaleka ne všechny scénáře zadané algoritmu mají řešení může jít např. o fyzikální omezení daného problému). Pro realizaci tohoto algoritmu bylo zvoleno prostředí Matlab, které obsahuje velice rychlé jádro pro práci s 1 Návratová hodnota funkce musí obsahovat nejen optimalizované údaje, ale i informace o nastavení PSO, jednotlivých generacích, konvergenci ke globálnímu minimu atd. Obr. 1. Pohyb jednotlivých agentů (včel) nad loukou 2. PSO algoritmus Nejprve se však krátce zmíníme o principu PSO. Optimalizace vychází z rojové inteligence pozorované např. u včelstev a napodobuje jejich chování. V některých aspektech je PSO podobná ACO 3, v jiných můžeme nalézt paralelu s GA 4. Souhrnně potom mluvíme o evolučních, nebo také heuristických algoritmech. Ve všech případech 2 Ale také programem PSOpost, určeným pro PSO postprocessing. 3 ACO Ant Colony Optimization 4 GA Genetic Algorithm

2 M. ČAPEK, ROJOVÁ OPTIMALIZACE V MATLABU jde o samo se organizující systémy vykazující silně kolektivní chování. Zásadní rozdíl však spočívá v přístupu k členu hejna (agentovi), nad kterým jsou definovány určité operace a disponuje částí znalostí, které má celý roj. Ve shodě s [11] můžeme chování agentů označit jako soutěživě-kooperativní: v průběhu optimalizace se střídají fáze, kdy mezi sebou agenti vzájemně soupeří a fáze, kdy spolupracují. Uživatel stanoví prostor (solution space, dále jen s.s.), nad kterým je definována optimalizovaná funkce a nad kterým hledá její minimum. V mnoha aplikacích nemá řešení mimo s.s. smysl, proto se snažíme udržet agenty v určeném prostoru (podrobněji rozebereme některé techniky níže). Každý agent si pamatuje svůj dosavadní nejlepší objev (pbest, proměnná p n id v (1)). Nejlepší objev celého hejna (gbest, p n gd ) je potom tím nejlepším ze všech osobních objevů. Chování jednotlivých agentů popisují následující dva vztahy. Nejprve uved me výpočet rychlosti agenta. Rychlost je stanovena v každé iteraci pro každého agenta zvlášt a ovlivňuje směr, jímž se pohybuje 5. Počet složek tohoto vektoru je rovný dimenzi (index d) řešeného problému. υ n+1 id = wυ n id + c 1 r n 1 (p n id χ n id) + c 2 r n 2 (p n gd χ n id) (1) V Matlabu je potřeba vsadit tuto rovnici do for cyklu, čímž je zajištěno procházení celého hejna (index i označuje agenty). Zabalením do dalšího for cyklu umožníme iterování celého problému od n = 1 do n = N (paralela k jednotlivým generacím u GA, zde se však agenti pouze pohybují nad s.s. nehrozí jim zánik, dokonce ani nevytváříme nové jedince). Dále je nutno objasnit význam zbylých proměnných a konstant. Koeficient w je často nazýván váhovací faktor (weighted factor). Může být po celou dobu optimalizace konstantní, nebo se může měnit (potom je zadávana dvojice parametrů w max a w min ). Klesající koeficient zabraňuje nepříjemným oscilacím a zároveň stimuluje hejno ke konvergenci nad nalezeným globálním minimem. Parametry c 1 a c 2 udávají, nakolik bude výsledná rychlost odvozena od osobního minima daného agenta a nakolik od společného globálního min. Jejich optimální velikost bude diskutována v části 7. Bez komentáře zůstaly již pouze hodnoty r n 1 a r n 2. V obou případech se jedná o náhodně generovaná čísla s normálním rozložením v rozsahu (0,1), pro tyto účely je v Matlabu k dispozici funkce rand(). Víme-li již, jakým směrem a jak rychle se pohybují agenti, můžeme aktualizovat jejich pozici: Vztahy uvedené výše žádným způsobem neomezují pohyb agentů, mohou tedy opustit s.s. Z toho důvodu bylo navrženo několik technik, které zajistí, aby se agenti nerozběhli daleko za hranice s.s. Mezi nejcitovanější a nejužívanější patří následující: Omezení maximální rychlosti agenta (υ n+1 id ) Ohraničující zdi: 1. Absorbční zed (Absorbing Wall, obr. 2a) 2. Odrazná zed (Reflecting Wall, obr. 2b) 3. Neviditelná zed (Invisible Wall, obr. 2c) První uvedená možnost, tedy omezení rychlosti agentů, byla využita např. v [10]. Rychlost je omezena i uvnitř s.s., což není zejm. pro prohledávání rozsáhlých uzemí příliš vhodné. Lepším řešením je použití jedné ze zdí. Ty popisují způsob, jakým je naloženo s agentem, pokud překročí povolené hranice. Neovlivňují průběh optimalizace uvnitř s.s. a navíc, pokud již agent opusil prohledávaný prostor, ho efektivně nasměrují zpět. Podrobněji bude popsána pouze zed z obr. 2c, využívaná funkcí PSOptimizer, ostatní jsou popsány např. v [9]. Jak můžeme vyčíst z obrázku, agentům je umožněno vyletět ze s.s., ovšem po jeho opuštění není vyhodnocována fitness funkce. To zapříčíní pozvolný návrat agentů zpět do s.s. Velkou předností je výrazná úspora výpočetního času, poněvadž jsou vyhodnocována pouze ta schémata, o která se skutečně zajímáme. I z tohoto důvodu se jedná o pravděpodobně nejlepší řešení pro většinu inženýrských problémů. Na závěr zrekapitulujme důležité parametry PSO optimalizace: Parametr a jeho význam v PSO c 1 poznávací parametr (cognitive rate) c 2 sociální parametr (social rate) w min váhovací koeficient (na konci optimalizace) w max váhovací koeficient (na začátku optimalizace) t časová konstanta (nejčastěji volena t = 1) it počet iterací (vliv velikosti iterací viz níže) ag počet agentů nad s.s. (viz níže) p n i individiální nalezené min. agenta (f min (x i )) p n g globální nalezené min. agenta f min (x i ) Tab. 1. Shrnutí parametrů χ n+1 id = χ n id + υ n+1 id t. (2) Rovnice (2) odpovídá pohybové rovnicí. Nové umístění agenta tedy získáváme jako součet koordinátů v minulé iteraci pozměněné o pohyb v současné iteraci. Protože t může obecně nabývat libovolných hodnot, lze přiřadit t = 1 (tedy diskrétní, jednotkový čas). 5 Resp. se bude pohybovat po vyhodnocení této iterace. Obr. 2. Typy zdí používané v PSO

Rektorysova soutěž, 2009 3 3. Implementace Jak již bylo uvedeno, optimalizace je implementována v prostředí Matlab. Pro části programu jsme užili lokálních funkcí, fitness funkce je řešena separátně (definuje ji uživatel pro konkrétní problém). V inicializační části je ověřeno, jsou-li hodnoty správně zadány, je stanovena počáteční generace agentů a vykresleno grafické rozhraní. Obr. 3. GUI PSOptimizeru GUI programu je navržen tak, aby byl jednoduchý 6, ale zároveň podrobně informoval o stávajícím stavu optimalizace. Text v levém rámu zobrazuje nastavené výchozí parametry, v pravé části potom aktuální průběh. Stupnice na ose y grafu zobrazujícího cost funkci je v (zde názornějším) logaritmickém měřítku. Tlačítko Exit ukončuje optimalizaci, nejdříve však po dokončení dané iterace. I v tomto případě jsou uloženy a vráceny výsledky, kterých bylo dosaženo. Vyjdeme-li ze základního tvaru volání funkce: res = PSOptimizer(PsoData, fitnessfunction,ag,it), kde ag je počet agentů, it počet iterací a řetězec fitness- Function obsahuje jméno mfile souboru s fitness funkcí. Pro navazující analýzu a zpracování dat, byly vytvořeny následující datové struktury: PsoData.data1 = [ ] PsoData.data2 = [ ] PsoData.data3 = [ ] PsoData.type = psopt PsoData.rank PsoData.bound{} = [ ] PsoData.cond{} = [ ] 6 Pokud je program volán opakovaně, nezatěžuje PC. 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.... Předně do funkce vstupují 3 sloty (PsoData.data1-3), ve kterých se mohou umístit optimalizovaná data. Velikost matic data1-3 je libovolná, vždy však musí být všechny tři matice definovány (alespoň jako prázdné). Počet slotů volíme tak, aby byl dostatečný pro řešení IFS antén (body základního útvaru, transformace a iterační matice). Obecně však není počet těchto slotů omezen, stejně tak jako jejich využití. Dalším polem je PsoData.type, které je fixně zadáno string řetězcem psopt. Pole je potřeba při identifikaci příchozích dat uvnitř funkce. PsoData.rank je nepovinný údaj, jenž koresponduje s dimenzí optimalizace. Na závěr zde figurují pole PsoData.bound, ve kterém jsou uloženy hranice 7 definující s.s. a také PsoData.cond, indexující optimalizované parametry 8. Matice PsoData.cond může mít libovolný počet řádek. Protože každá řádka označuje jednu optimalizovanou pozici v jedné z matic, lze takto svázat do jedné dimenze (Pso- Data.cond{dim}) několik optimalizovaných hodnot. Takové hodnoty jsou potom v rámci PSO spřaženy a jsou optimalizovány společně. Tento postup je ideální v případě, že potřebujeme mezi některými hodnotami zachovat fixní poměr (jejich rovnost). Uvedeným postupem zajistíme, že do funkce vstupují všechna uživatelská data (fitness funkce tedy může s těmito daty komplexně pracovat) a navíc ucelený údaj co a v jakých mezích se má optimalizovat. Výstupní pole obsahuje opět sloty 1-3, patřičné hodnoty jsou ale optimalizovány. Hodnota fitness funkce pro tyto je uvedena v res.score. Pole done referuje o zdárném ukončení PSO (res.done = 1), v opačném případě je res.done = 0 (určeno jako návěstí pro nadřazené programy). Res.options uvádí hodnoty, za kterých byla optimalizace dokončena a konečně res.history obsahuje většinu vnitřních stavů PSOptimizeru v každé iteraci 9. Zakončeme tuto část pohledem na pseudokód, převoditelný do libovolného programovacího jazyku: 7 Způsob zápisu: ProData.bound{dimenze}= [min max] pro danou dimenzi. 8 Formát je: PsoData.cond{dimenze} = a 1 b 1 c 1 a 2 b 2 c 2..., kde a odpovídá číslu datového slotu 1-3, b ukazuje na řádku daného slotu, c potom značí pozici na řádce (číslo sloupce). 9 Tyto pole lze využít např. pro vykreslení cost funkce (např. obr. 4 vpravo pro kvadratickou funkci), nebo pro vykreslení pozice jednotlivých agentů v dané iteraci (obr. 15).

4 M. ČAPEK, ROJOVÁ OPTIMALIZACE V MATLABU 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ů inicializace GUI tvorba (náhodného) hejna vyhodnocení 1. iterace for i = 1:iteraciCelkem úprava w actual update rychlosti agentů update pozice agentů for j = 1:agentůCelkem if agent(j) s.s. callff end end update pbest, gbest výpis informací end callff upraví PsoData podle aktuálních agentů volá f.f. s aktuálními daty (PsoData) agentům je přiřazen výsledek f.f. Tab. 2. Principiální schéma PSOptimizeru 4. Použité testovací funkce Strukturu PsoData musíme zohlednit při návrhu jakékoliv fitness funkce. Nikoliv pouze hlavičky, ale i při zpracování dat zaslaných PSO algoritmem na ohodnocení. Definice funkce by měla odpovídat následujícímu vzoru: function fitnessvalue = fitnessfunction(sign, tested data) String sign má vždy hodnotu eval, často ho využíváme pro označení volání 10. Proměnná fitnessvalue vrací zpět hodnotu, podle které se celý roj pohybuje (hodnota funkce v daném bodě, rezonanční frekvence dané struktury... ). Uvnitř tested data nalezneme sloty.data1-3 podobně jako v PsoData, v tomto případě obsahují aktuální hodnoty určené k vyhodnocení funkce. Díky volání externího mfilu, můžeme využívat PSOptimizer pro libovolné účely postačí dodržet předepsanou hlavičku f.f. (mfile) a data zadávat ve formě PsoData 11. Vzhledem k neexistenci řádného PSO toolboxu v Matlabu, může být využití PSOptimizeru dobrou volbou, nehledě na další možnosti přizpůsobení. Testované funkce Před praktickým nasazením programu je nutné ověřit funkčnost PSOptimizeru na analytických funkcích, u 10 Např. nadřazené specializované programy pro výpočet anténních struktur poznají, že probíhá optimalizace a nezavírají žádná grafická okna. 11 Využití PSO v anténní technice je obrovské. Od optimalizace zářičů, přes úpravy čoček, reflektorů a ohnisek, až po komplexní optimalizace celých systémů. kterých známe výsledek (tj. globální minima). Algoritmus byl prověřen následujícími funkcemi: Kvadratická 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ě členité (krajina, kterou se pohybují agenti) a jsou z velké části dostatečně popsány v literatuře, lze tedy verifikovat získané hodnoty. Algoritmus byl využit i pro optimalizaci jiných funkcí (Levy No.3, Mastersova, Schwefelova, 4. de Jongova... ), ve všech případech PSO podalo očekávané výsledky. Metodika využitá pro hodnocení výsledků optimalizace respektuje obvyklé postupy ([8] a další). Funkce 1 (kvadratická) f kv (x) = x 2 10 (3) Na této funkci demonstrujeme vliv neviditelné zdi 12. Pokud s.s. zvolíme pouze v rozsahu 2, 5, bude nalezené minimum rovno -6, a to i přes to, že jednotliví agenti mohou krátkodobě proniknout i blíže k nule na ose x. Situace je znázorněna na obr. 4. Obr. 4. Kvadratické fce v rozsahu x 2, 5 Funkce 2 (Rosenbrockova) f(x) = N i=1 ( 100(x i+1 x 2 i ) 2 + (x i 1) 2) (4) f ro (x, y) = 100(y x 2 ) 2 + (x 1) 2 (5) Funkce se široce uplatňuje ve většině optimalizační testů. Pro svou monotonii (obr. 5) lze využít i gradientní metody, nebot nehrozí uvíznutí v lokálním minimu. Globální mininum můžeme nalézt na souřadnicích x = 1, y = 1 a jeho hodnota je rovna f(x min, y min ) = 0. Podle vztahu (4) je

Rektorysova soutěž, 2009 5 Obr. 5. Rosenbrockova fce, s.s. 10, 10 10, 10 a cost fce funkce definována v N-rozměrném prostoru, my využijeme 2D přepisu (5). Obr. 6 ukazuje, jak rychle klesá chyba, s kterou je nalezeno globální minimum. Tuto rychlost lze výrazně ovlivnit nastavením parametrů w min a w max. Pokud váhovací koeficient s iterací klesá, klesá také příspěvek nově vypočtené rychlosti a agent je spíše udržován v současné pozici. Eliminujeme tím oscilace, při kterých agenti kmitají kolem nalezeného minima. Obr. 7. Fce Levy No.5, s.s. 10, 10 10, 10 a cost fce Funkce 4 (II. Ackleyho) ( f(x) = D 1 20 20 + e i=1 e 1 2 e 1 5 (x 2 i +x2 i+1 ) ( )) cos(2πx i)+cos(2πx i+1) Tato a obě následující funkce 5 a 6 mají obecný předpis, testovali jsme však pouze funkce s D = 2. Druhá Ackleyho funkce má jedno jasně zřetelné globální minimum na pozici (x 1 = 0, x 2 = 0), jeho hodnota je f(0, 0) = 0, obecně lze potom najít minima vždy na pozici (x 1, x 2,..., x n ) = (0, 0,..., 0), jeho hodnota je rovna nule. 2 (7) Obr. 6. Konvergence ke skutečnému minimu Rosenbrockovy fce Funkce 3 (Levy No.5) f l5 (x, y) = 5 ( ( )) i cos (i 1)x + i i=1 5 ( ( )) j cos (j + 1)y + j + j=1 +(x + 1.42513) 2 + (y + 0.80032) 2 Na prostoru 2, 2 2, 2 můžeme nalézt 760 lokálních a jedno globální minimum (souřadnice x = 1.3068, y = 1.4248). Velikost s.s. je úmyslně zvětšena na 10, 10 10, 10 (jako u Rosenbrockovy f.). Tato funkce dobře testuje odolnost vůči uvíznutí agentů v lokálních extrémech. Úspěšnost optimalizace pro různá nastavení ukazují tab. 7.2 až 7.5 a obr. 7. 12 Neviditelná zed se uplatňuje nepřímo tím, že neumožní vyhodnotit možné nižší minimum v rozsahu 2, 2. Vybraná pole PsoData pro tuto optimalizaci jsou rovna: PsoData.rank = 1; PsoData.cond{1} = [1 1 1]; PsoData.bound{1} = [2 5]. (6) Obr. 8. II. Ackleyho fce, s.s. 20, 20 20, 20 Funkce 5 (Ranova) f(x) = D 1 i=1 ( x i sin ( x i+1 + 1 x i ) cos ( x i+1 + 1 + x i ) + +(x i+1 + 1) cos ( x i+1 + 1 x i ) sin ( x i+1 + 1 + x i )) Ranova funkce je složitá již ve dvou-rozměrném prostoru plocha je modulována pomocí harmonických funkcí a to dostatečně komplikovaným způsobem (viz obrázek 9). Přesná poloha globálního minima se autorovy nepodařila zjistit, nicméně i tak můžeme sledovat konvergenci hejna a jeho tlumenou oscilaci ve směru x a y od bodu s globálním minimem. (8)

6 M. ČAPEK, ROJOVÁ OPTIMALIZACE V MATLABU funkčních hodnot v čase. Tento typ grafů je v anglické literatuře označován jako cost funkce a dává dobrou představu o průběhu optimalizace. Zajímavé jsou zejména růžové a fialová křivka. Na nich vidíme, že v případě zcela nevhodně nastavených parametrů nekonverguje hejno dostatečně. Obr. 9. Ranova fce, s.s. 50, 50 50, 50 Funkce 6 (Rastrigrinova) Obr. 11. Optimalizace fce Levy5 pro různá c 1 a c 2 (20 agentů, 150 iterací) f(x) = 2D D x 2 i 10 cos(2πx i ) (9) i=1 I tato funkce byla optimalizována pouze pro D = 2. Globální minimum nalezneme na pozici (x = 0, y = 0) a rovno 80. Pro n-rozměrný prostor, je minimum rovno 40n. Obr. 12. Optimalizace fce Levy5 pro různá c 1 a c 2 (20 agentů, 150 iterací) Následující tabulky demonstrují zásadní vliv parametrů c 1 a c 2 na konečný výsledek optimalizace. Úspěšnost algoritmu testujeme podmínkou, zda je nalezená hodnota menší než 176.1375 (Levy5, hodnota blízká známému globálnímu minimu, viz [8]). Obr. 10. Rastrigrinova fce, s.s. 5, 5 5, 5 5. Nastavení parametrů, výsledky Výsledek, stejně tak jako rychlost, s jakou je řešení nalezeno, lze významným způsobem ovlivnit vhodnou volbou parametrů z tabulky 1 13. Průběh jednotlivých optimalizací je v podstatě náhodný a jakékoliv údaje musíme získat jako průměr velkého počtu opakování (zpravidla 50). Celá procedura se tak stává časově náročnější. Nejprve uved me grafické průběhy. Jejich úkolem není zobrazit nalezenou hodnotu, sledujeme zde průběh 13 Konkrétně se budeme zabývat počtem iterací a velikostí hejna, a také koeficienty c 1 a c 2. Funkce Levy5 (10x10 s.s.) 50x, 20 agentů iter. úspěšnost [%] chyb čas [s] evalfun c 1 = 2.0, c 2 = 2.0, w min = 0.4, w max = 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 c 1 = 0.5, c 2 = 0.6, w min = 0.4, w max = 0.9 100 80% 10/50 387 2000 c 1 = 1.0, c 2 = 1.0, w min = 0.4, w max = 0.9 100 92% 4/50 387 2000 HP nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tab. 3. Success rate fce Levy5 (se změnou iterace), 20 agentů Z aplikačního hlediska jsou zajímavé dva údaje. První je ten, kdy je úspěšnost poprvé rovna 100%, tedy chvíle, kdy optimalizace vždy najde správný výsledek. Tento moment lze určit pouze pro již zmapované funkce. Druhý zajímavý

Rektorysova soutěž, 2009 7 Funkce Levy5 (10x10 s.s.) 50x, 45 agentů iter. úspěšnost [%] chyb čas [s] evalfun c 1 = 2.0, c 2 = 2.0, w min = 0.4, w max = 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 c 1 = 0.5, c 2 = 0.6, w min = 0.4, w max = 0.9 50 72% 14/50 362 2250 c 1 = 1.0, c 2 = 1.0, w min = 0.4, w max = 0.9 50 90% 5/50 363 2250 HP,nx6125 (Turion64 1.86GHz, 768MB 333MHz) Tab. 4. Success rate fce Levy5 (se změnou iterace), 45 agentů výsledek je ten s nejvyšší účinností v nejkratším možném čase 14. Vidíme tedy, že úspěšnost funkce lze významným způsobem zvýšit úpravou parametrů (c 1, c 2, ale i dalšími, kterými se zde nebudeme zabývat), což popisují některé studie. Bohužel optimalizované funkce mají různý charakter, a proto jsou tyto parametry voleny zpravidla na základě doporučení v referenční literatuře. Pro úplnost uved me i účinnost optimalizace při změně počtu agentů (tabulky 5 a 6, níže). Funkce Levy5 (10x10 s.s.) 50x, 150 iterací agen. úspěšnost [%] chyb čas [s] evalfun c 1 = 2.0, c 2 = 2.0, w min = 0.4, w max = 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. úspěšnost [%] chyb čas [s] evalfun c 1 = 2.0, c 2 = 2.0, w min = 0.4, w max = 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 c 1 = 0.5, c 2 = 0.6, w min = 0.4, w max = 0.9 45 76% 12/50 160 2250 c 1 = 1.0, c 2 = 1.0, w min = 0.4, w max = 0.9 45 92% 4/50 154 2250 c 1 = 1.5, c 2 = 1.5, w min = 0.4, w max = 0.9 45 90% 5/50 165 2250 Core2Quad 9450 64b (2.66GHz),12MB, 4GB 1333MHz Tab. 6. Success rate fce Levy5 (podle počtu agentů), 50 iterací malizace. Může být předmětem dalšího výzkumu, zda lze této závislosti využít k zefektivnění PSO. Obr. 13. Počet agentů mimo s.s. pro Rosenbrockovu a Levy5 funkci (20 agentů, 150 iterací) Tab. 5. Success rate fce Levy5 (podle počtu agentů), 150 iterací Počet agentů je zpravidla pevně stanoven (nejčastěji 20-25 jedinců). Zvýšit jejich počet je doporučeno u problémů, které jsou definovány na velmi rozlehlém s.s., anebo (zejména) pokud prohledávaný prostor obsahuje mnoho lokálních minim. Mnohem častěji je v případě problémů navýšen počet iterací, případně jsou pozměněny parametry c 1 a c 2. Na závěr krátce okomentujme obrázky 13 a 14. Vynášíme zde dva parametry, které popisují optimalizaci nezávisle na zkoumané funkci. Počet agentů mimo s.s., stejně tak jako jejich rozptyl 15, lze pro stejně velké s.s. vzájemně porovnávat. Na první pohled je patrné, že ač pro zcela rozdílné funkce jsou si průběhy dosti podobné a napovídají, jakým způsobem se pohybuje hejno během opti- 14 V přímé úměře odpovídá případu s nejmenším celkovým počtem vyhodnocení fitness funkce (v tabulce evalfun) ag 15 i=1 Definován: σ = ( pn g pn i ), kde a a g je celkový počet agentů. g Obr. 14. Rozptyl agentů, Rosenbrockova a Levy5 funkce (20 agentů, 150 iterací) Z níže prezentovaných výsledků je vidět, že návrh PSO algoritmu byl úspěšný a mnohdy dosahuje vyšší účinnosti než srovnatelné publikované algoritmy, viz [10]. To je dáno pravděpodobně použitím vhodného typu zdi a testováním pro relativně (v kontextu optimalizace) jednoduchých funkcí. 6. PSO postprocessing Ve většině případů zcela postačuje jako návratová hodnota velikost fitness funkce a parametry jí příslušné (tedy sloty.data1-3). Chceme-li však hlouběji proniknout do mechanismů PSO optimalizace a zejména pracujemeli s určitým problémem opakovaně vylepšit/zrychlit její

8 M. ČAPEK, ROJOVÁ OPTIMALIZACE V MATLABU průběh, je vhodné analyzovat výsledky podrobněji. Pro tyto případy vznikl nástroj PSOpost, obr. 15. Umožňuje následné vykreslení pozice agentů, vč. isočar prohledávané funkce. Další možností je vykreslení směrů (vektorů) pohybu agentů. Tak lze studovat chování jednotlivých členů hejna, ale i celého roje, pro jednotlivé funkce. Například na funkci zobrazené na obr. 15 se po jistém čase agenti pohybují jen v horizontálním a vertikálním směru kolem globálního minima. Můžeme sledovat vliv parametrů w min a w max na tlumení těchto oscilací. V jiném případě se mohou agenti příliš rozlétnout, pak je vhodné upřednostnit sociální parametr před poznávacím. Obecně se vzrůstajícím počtem parametrů rostou možnosti nastavení jakékoliv optimalizace. Na druhou stranu algoritmus s menším počtem parametrů (tj. stupňů volnosti, např. simulované žíhání) je transparentnější a jeho nastavení jednodušší. PSO je v tomto směru relativně složité, nebot obsahuje celou řadu parametrů, které musí být nastaveny v patřičných mezích. V opačném případě optimalizace nekonverguje dostatečně, či spíše vůbec. Většina parametrů je určena pouze na základě emperických znalostí a liší se podle zkušeností autorů kupříkladu pro parametry c 1 a c 2 se považuje za obecně platné pravidlo, že c 1 + c 2 4. Taková nastavení však většinou žádným způsobem nezohledňují průběh a chování f.f. a používají se zkrátka pouze proto, že fungují. Můžeme se tedy oprávněně tázat, jak najít ty nejvhodnější parametry PSO. Pro tuto techniku (optimalizaci optimalizace) se vžilo několik termínů, nejčastěji však označení metaoptimalizace. Aplikovat PSO na analytickou funkci pro několik různých nastavení a vybrat to nejlepší je jednou z množností. Obtížně ho ovšem budeme realizovat pro f.f., u které neznáme funkční předpis (viz část 8). Jinou možností je využití dalších informací, které nám jednotliví agenti a jejich chování poskytuje. Touto cestou se můžeme vydat díky programu PSOpost. Jiné možnosti vylepšení ukazují následující odstavce. 7.2. Stretched PSO Obr. 15. Nástroj PSOPost PSOpost také v reálném čase počítá všechny agenty mimo stanovený s.s., stejně jako rozptyl celého hejna. Tyto hodnoty jsou zaznamenány do grafů (v obrázku napravo), které jsme uvedli výše. Umožňují určit, zda již hejno skutečně našlo hodnotu, která se blíží reálnému globálními minimu. Nástroj není zdaleka dokončen a je v současné době určen pouze pro úlohy, které obsahují dva optimalizované parametry. V budoucnu bude možné tyto parametry zvolit. Bohužel tato problematika je dosti komplexní a její názorná demonstrace vyžaduje sofistikovanější médium než je tento článek (dostatečně názorná jsou videa). Větší pozornost této problematice věnujeme v souvisejí presentaci. 7. Metaoptimalizace, mutace PSO 7.1. Metaoptimalizace Klasické pojetí PSO je dostatečně efektivní, přesto existují funkce (Corana 4D, XOR, Freudenstein-Rothova a další), kde selhává. K. E. Parsopoulos a M. N. Vrahatis v [8] navrhli postup, který dosahuje i pro problematické funkce stoprocentní účinnosti. Největším problémem zmíněných funkcí je existence mnoha lokálních minim. Ty stojí v cestě agentům při hledání globálního minima 16. Pro další účely si můžeme lokální minimum popsat jako nejmenší hodnotu funkce f v okolí B bodu x: f(x) f(x), x B. (10) A právě všechny body x krom globálního minima si přejeme eliminovat. Ukazuje se, že stretching technika je vhodným nástrojem na potlačení těchto (vedlejších) minim. V podstatě jde o transformaci předpisu f(x), která je provedena ve dvou krocích. Ihned po objevení lokálního minima podle (10) převedeme funkci podle vztahů: ( G(x) = f(x) + γ 1 x x sign ( f(x) f(x) ) ) + 1 (11) a sign ( f(x) f(x) ) + 1 H(x) = G(x) + γ 2 tanh (µ ( )), (12) G(x) G(x) kde γ 1, γ 2 a µ jsou libovolně zvolené vysoké konstantní hodnoty a sign(x) splňuje podmínku: 1 pro x > 0 sign(x) = 0 pro x = 0 (13) 1 pro x < 0 Funkci (13) můžeme numericky modelovat pomocí 16 Pochopitelně lze situaci řešit zvýšením počtu agentů a iterací, ale tento postup není příliš efektivní, resp. jeho efektivita strmě klesá s rostoucí složitostí funkce.

Rektorysova soutěž, 2009 9 vztahu 17 : Obr. 16. Funkce Levy5: bez transformace, s G(x) a po H(x), zdroj: [8] sign(x) log sig(x) = 2 1 + exp ( λx ) λx = tanh, (14) 2 případně můžeme volat funkci sign v Matlabu. SPSO konverguje pro funkci Levy5 o 10-20% rychleji. Jak vidíme na obr. 16 uprostřed (po transformaci G(x), podle (11)) a vpravo (po transformaci G(x) i H(x), podle (12)), lokální minima jsou roztažena a rozmazána, zatímco globální minimum zůstalo nedotčeno. V takto upravené krajině se mohou agenti pohybovat mnohem snadněji. V současné podobě PSOptimizeru není stretched PSO využíváno všechny dosavadní úkoly spojené s optimalizací patch antén se ukázaly dostatečně řešitelné i pomocí klasického PSO v kombinaci s neviditelnou zdí, nicméně jeho pozdější nasazení je stále zvažováno. i počet rozměrů (dimenzi) řešené funkce. V důsledku se tak optimalizace stává řádově obtížnější. Realizace GSO je nenáročná díky tomu, že pouze slučuje dva již známe postupy, viz obr. 17. Jako největší obtíž se jeví vytvoření vlastního GA optimalizátoru, který komunikuje s PSO a zvolení vhodného formátu, s kterým GA i PSO dokáží pracovat. 8. Optimalizace IFS patch antén Předposlední část věnujeme praktické ukázce využití PSOptimizeru pro efektivní návrh patch antény. Cílem je navrhnout takovou patch 18 anténu, která by měla co nejnižší rezonanční frekvenci f r. Maximální rozměry zářiče jsou fixně zadány, úpravy lze tedy dosáhnou pouze změnou geometrie. Vlastní motiv je tvořen IFS fraktálem. Fraktální patche mají v kontextu anténní techniky několik velice zajímavých vlastností (vícepásmovost, lokalizaci proudů zvyšující směrovost, menší rozměry... ), proto jim věnujeme zvýšenou pozornost. 7.3. GSO algoritmus V roce 2006 byla publikována práce [12], zabývající se možností spojit GA a PSO. Tato metoda je označována jako GSO (Genetical Swarm Optimization). Obr. 17. Princip GSO optimalizace, na základě [12] Motivací bylo mj. zjištění, že v případě mimořádně složitých funkcí (10, 20 i více rozměrů s.s.) klesá účinnost PSO i GA k nule. Jejich spojení do GSO však poskytuje potřebnou flexibilitu a rapidně zvyšuje úspěšnost nalezení globálního minima. V každé iteraci jsou agenti nově vybíráni a upraveni pomocí PSO nebo GA, čímž kombinujeme dva odlišné evoluční přístupy. GSO je vhodné mít do budoucna na paměti, nebot s požadavkem optimalizaci komplexnějších funkcí jsme nuceni na jedné straně zvětšovat rozlohu s.s., na druhé straně se vzrůstajícím počtem podmínek 17 Rovnice (14) je široce využívána i v oblasti umělých neuronových sítí. Obr. 18. Příklad IFS patch motivu (1., 2. a 3. iterace) Systém iterovaných funkcí IFS 19 popisuje tvorbu syntetických fraktálů pomocí základního objektu a několika transformací, jimiž je tento objekt ve vzrůstajících iteracích dlážděn. Princip je odvozen z Banachovy věty o pevném bodu a využívá Hutchinsonův operátor. Pro účely tohoto článku je zásadní, že objekt je zcela popsán námi vytvořenými poli: FRC.base = [ ] FRC.tran = [ ] FRC.iter = [ od do celkem] FRC.type = pntstrns V proměnné typu FRC jsou jednoznačně uloženy body základního útvaru FRC.base 20, transformace ve tvaru [a b c d e f] a iterace v poli FRC.iter. Na úrovni IFS návrhu bychom se bez takového formátu ještě obešli, potřebujeme ho však v případě analýzy pomocí dutinového modelu a PSO optimalizace. Podrobněji se fraktálům věnuje [1], [2] a [13]. Máme-li vykreslenou strukturu, je potřeba ji dále zpracovat a ohodnotit fitness funkcí. Tou je v našem případě procedura na výpočet rezonanční frekvence. Protože přesný výpočet je časově náročný, využijeme aproximativní duti- 18 Plošná rezonanční struktura se zemní rovinou, v našem případě bez připojeného napájení. Jde o široce využívaný typ antén. Více v [14]. 19 Iterated function system 20 Jde o matici n 2, kde n odpovídá počtu bodů základního útvaru (nejméně však 3).

10 M. ČAPEK, ROJOVÁ OPTIMALIZACE V MATLABU Díky PSOptimizeru získáváme velký objem dat vhodných k pozdější analýze. Podíváme-li se na například na pokles rezonance dominantního módu se vzrůstající iterací (k poklesu dochází vždy) před a po optimalizaci, odhalíme, že tento trend je v obou případech stejný (obr. 22). Spolu s tím vyvstávájí otázky po konečné konvergenci frekvence (v nekonečné iteraci) a další. Obr. 19. Význam transformačních koeficientů nový model (Cavity Model), implementovaný v Comsol Multiphysics (přistupujeme z Matlabu). Celý program slouží jako fitness funkce pro PSOptimizer. Obr. 22. Pokles rezonanční frekvence s iterací Obr. 20. Zárič FRC-H před a po optimalizaci, vč. pozice agentů Před vlastní optimalizací je klíčový správný výběr parametrů a odpovídajích mezí, které nesmějí překročit. Pro 25 agentů, 150 iterací PSO algoritmu, a 3. iteraci fraktálu trvá optimalizace zpravidla kolem 2-3 hodin na výkonějším stroji (Core2Quad 9450, 12MB L2, 4GB DDR3). Výsledky můžeme vidět na obrázku 20, ukázku několika agentů jiné optimalizace ukazuje následující obrázek 21. Obr. 21. Ukázka několika agentů během optimalizace FRC-C Ukázali jsme, jak lze optimalizovat relativně komplikované struktury. Detailní řešení všech částí je popsáno v [2] a dalece přesahuje vymezený rozsah tohoto článku. V budoucnu bude možné optimalizovat antény nejen s ohledem na rezonanční frekvenci, ale budeme moci uvážit i směr vyzařování, popřípadě další klíčové parametry. 9. Závěr V příspěvku byla rozvedena implementace PSO algoritmu do Matlabu. Optimalizace byla popsána formálně i na konkrétních příkladech. Ukázali jsme, jakým způsobem ovlivňují jednotlivé parametry průběh optimalizace a jaké můžeme očekávat výsledky. Prostor byl věnován i popisu vstupních a výstupních polí, jejichž charakter spolu s přeindexováním hodnot uvnitř funkce umožňuje využívat PSOptimizer pro řešení celé řady problémů. Dále jsme se krátce věnovali možnosti modelovat průběh PSO, čímž by se výrazně zkrátila doba potřebná ke konvergenci do globálního minima. Přesný postup není v současné době dostatečně publikován v referenční literatuře a experimentálních dat není zatím dostatek pro formulaci vlastních závěrů. Pro hlubší srovnání je nutné implementovat další, odlišnou metodu optimalizace (zvažována je metoda SOMA, simulované žíhání, příp. výše uvedený GSO algoritmus). Teprvé poté můžeme porovnávat skutečnou efektivitu PSO. Na závěr jsme zmínili praktické využití celé metody v oblasti optimalizace fraktálních patch antén a nastínili další možný vývoj. Tento článek měl za cíl pouze revidovat partikulární úspěchy na poli rojové optimalizace.

Rektorysova soutěž, 2009 11 Poděkování Rád bych na tomto místě poděkoval RNDr. Němečkovi za zaslání pozvánky do soutěže, a také Ing. Hazdrovi, Ph.D., jenž se na celé, výše prezentované práci podílel. Svůj vděk bych rád vyjádřil i Prof. Ing. Mazánkovi, CSc. za vytvoření skvělých pracovních podmínek. Tento článek vznikl s podporou grantu DG 102/08/H018 Modelování a simulace elektromagnetického pole. postgraduální etapu, zaměřuje se na optimalizace (zejm. PSO), fraktální geometrii, patchové antény a teorii elektromagnetického pole. Pro tato témata vyvíjí aplikace v Matlabu. Cílem disertace je syntéza multipásmové patch antény. Reference [1] ČAPEK, M. Modální analýza mikropáskových patch antén. Praha: ČVUT-FEL, 2007, bakalářská práce. [2] ČAPEK, M. Nástroj pro modální analýzu fraktálových patch antén. Praha: ČVUT-FEL, 2009, diplomová práce. [3] ČAPEK, M., HAZDRA, P. PSO optimalizace v Matlabu. Technical Computing Prague, 2008. [4] ČAPEK, M. PSO Optimalization of IFS Fractal Patch Antennas in Poster 2009, Praha. [5] HAZDRA, P., ČAPEK, M. IFS Tool for Fractal Microstrip Patch Antenna Analysis in COMITE, Praha, 2008. [6] HAZDRA, P., ČAPEK, M., KRAČEK, 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. [10] GOLUBOVIĆ, R., M., OLĆAN, D., I. Antenna Optimization Using Particle Swarm Optimization Algorithm. Journal of Automatic Control, Vol. 16, pp.21 24, 2006. [11] ZELINKA, I., OPLATKOVÁ, Z., ŠEDA, M., OŠMERA, P., VČELAŘ, F. Evoluční výpočetní technika. Praha: BEN, 2009. [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. [13] TI SNOVSKÝ, P. Interaktivní editor afinních transformací. Brno: 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 ČAPEK se narodil v Českých Budějovicích roku 1985. Po dokončení bakalářské etapy r. 2007 na katedře elektromagnetického pole ČVUT-FEL pokračoval magistersskou etapou tamtéž. Studium zakončil r. 2009 diplomovou prací na téma Nástroj pro modální analýzu fraktálních patch antén. Nyní studuje