VYSOK ´
E U ˇ
CEN´I TECHNICK ´
E V BRN ˇ
E
BRNO UNIVERSITY OF TECHNOLOGYFAKULTA INFORMA ˇ
CN´ICH TECHNOLOGI´I
´
USTAV PO ˇ
C´ITA ˇ
COV ´
YCH SYST ´
EM ˚
U
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMSVARIACE EVOLU ˇ
CN´IHO SOMA ALGORITMU
PRO DYNAMICK ´
E ´
ULOHY
BAKAL ´
A ˇ
RSK ´
A PR ´
ACE
BACHELOR’S THESIS
AUTOR PR ´
ACE
JAN POKORN ´
Y
AUTHOR
VYSOK ´
E U ˇ
CEN´I TECHNICK ´
E V BRN ˇ
E
BRNO UNIVERSITY OF TECHNOLOGYFAKULTA INFORMA ˇ
CN´ICH TECHNOLOGI´I
´
USTAV PO ˇ
C´ITA ˇ
COV ´
YCH SYST ´
EM ˚
U
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER SYSTEMSVARIACE EVOLU ˇ
CN´IHO SOMA ALGORITMU
PRO DYNAMICK ´
E ´
ULOHY
VARIATION OF THE EVOLUTIONARY ALGORITHM FOR DYNAMIC PROBLEMS
BAKAL ´
A ˇ
RSK ´
A PR ´
ACE
BACHELOR’S THESIS
AUTOR PR ´
ACE
JAN POKORN ´
Y
AUTHOR
VEDOUC´I PR ´
ACE
Doc. Ing. JOSEF SCHWARZ, CSc.
SUPERVISOR
Abstrakt
Tato pr´ace se zab´yv´a pouˇz´ıv´an´ım evoluˇcn´ıho algoritmu SOMA a testov´an´ım jeho variant zamˇeˇren´ych na ˇreˇsen´ı dynamick´ych probl´em˚u. Na zaˇc´atku struˇcnˇe seznamuje s problemati-kou evoluˇcn´ıch algoritm˚u a pot´e se zamˇeˇruje na evoluˇcn´ı algoritmus SOMA. Popisuje pot´ıˇze, se kter´ymi se pot´yk´a, jak pro statick´e tak i dynamick´e ´ulohy. Zmiˇnuje postupy, kter´e se pouˇz´ıvaj´ı pro jejich odstraˇnov´an´ı. Popisuje nejˇcastˇeji pouˇz´ıvan´e strategie – All To One, All To Random, All To All a All To All Adaptive a poukazuje na jejich v´yhody a nedostatky. D´ale je navrhnuta i dalˇs´ı strategie prohled´av´an´ı zamˇeˇren´a na funkce dynamicky se mˇen´ıc´ı nez´avisle na bˇehu algoritmu. Samostatn´a kapitola je vˇenov´ana projektov´e ˇc´asti pr´ace. Je zde pops´an postup implementace a propojov´an´ı jednotliv´ych pouˇzit´ych program˚u. Tato ˇc´ast je dostupn´a na pˇriloˇzen´em CD spolu s v´ysledky testov´an´ı jednotliv´ych strategi´ı. Tabulky s pr˚umˇern´ymi hodnotami jsou tak´e souˇc´ast´ı pr´ace.
Kl´ıˇcov´
a slova
SOMA, evoluˇcn´ı algoritmy
Abstract
This study is focused on SOMA evolution algorithm and testing its versions aimed to solve dynamic problems. At the beginning it briefly explains principes of evolution algorithms a then it looks closer on SOMA algorithm. It describes its contemporary troubles for static and dynamic problems. There are also mentioned ways for their correction. It also describes the mostly used strategies – All To One, All To Random, All To All and All To All Adaptive and shows their advantages and disadvantages. Furthermore another searching strategy is proposed focused on dynamic functions that are changing independently on program. The separate chapter is about project part of the study. There is described implementation and merging of used programs. This part is available on included CD along with results of testing strategies. Tables with average values are also part of the thesis.
Keywords
SOMA, evolution algorithms
Citace
Variace evoluˇcn´ıho SOMA algoritmu
pro dynamick´e ´
ulohy
Prohl´
aˇsen´ı
Prohlaˇsuji, ˇze jsem tuto bakal´aˇrskou pr´aci vypracoval samostatnˇe pod veden´ım Doc. Ing. Jo-sefa Schwarze, CSc. . . . . Jan Pokorn´y 14. kvˇetna 2007 c Jan Pokorn´y, 2007.
Tato pr´ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe in-formaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena autorsk´ym z´akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´avnˇen´ı autorem je nez´akonn´e, s v´yjimkou z´akonem definovan´ych pˇr´ıpad˚u.
Obsah
1 Uvod´ 2
2 Evoluˇcn´ı algoritmy 3
3 Popis ˇcinnosti SOMA 4
3.1 Sezn´amen´ı. . . 4
3.2 Z´akladn´ı princip funkce SOMA . . . 4
3.3 Pertubaˇcn´ı vektor. . . 6
3.4 Statick´e probl´emy . . . 7
3.4.1 Ztr´ata diverzity . . . 7
3.4.2 Uv´aznut´ı na rovn´e ploˇse . . . 7
3.5 Dynamick´e probl´emy . . . 8
3.6 Varianty algoritmu . . . 9
3.6.1 All To Random . . . 10
3.6.2 All To All . . . 10
3.6.3 All To All Adaptive . . . 10
3.6.4 Nov´a varianta algoritmu – All To Elite . . . 11
4 Popis implementace a ´upravy k´odu 13 4.1 Uloha s pohybuj´ıc´ımi se vrcholy´ . . . 13
4.2 SOMA knihovna . . . 14
4.3 Kriteri´aln´ı funkce . . . 16
4.4 Implementace strategi´ı . . . 17
5 Experimenty 19 5.1 All To One . . . 20
5.2 All To Elite . . . 21
Kapitola 1
´
Uvod
S rozvojem informaˇcn´ıch technologi´ı se lid´e zaˇc´ınaj´ı st´ale v´ıce zaj´ımat o moˇznosti sestaven´ı programu, kter´y je schopen s´am se uˇcit a adaptovat na vˇsechny zadan´e probl´emy. Jak bylo postupnˇe zjiˇst’ov´ano, nen´ı zdaleka tak snadn´e dos´ahnout v oblasti umˇel´e inteligence pokroku pomoc´ı konvenˇcn´ıho programovac´ıho pˇr´ıstupu. Bylo nutn´e zvolit jin´e metody.
Nyn´ı se uˇz nˇejakou dobu objevuj´ı algoritmy schopn´e vyhled´avat ˇreˇsen´ı pomoc´ı metod, kter´e v sobˇe nemaj´ı jen pevnˇe dan´y k´od, ale nav´ıc se v nich objevuje ˇc´ast, kter´a se ne tak docela pˇredv´ıdatelnˇe mˇen´ı.
V´yhody tˇechto evoluˇcn´ıch algoritm˚u, jak se jim ˇr´ık´a, jsou patrn´e na prvn´ı pohled: Tam, kde je dostateˇcnˇe pˇresn´e a rychl´e ˇreˇsen´ı sloˇzit´eho probl´emu tˇreba, mohou standardnˇe pouˇz´ıvan´e algoritmy selhat kv˚uli v´ypoˇcetn´ı n´aroˇcnosti. Analytick´a i numerick´a ˇreˇsen´ı maj´ı sv´a ˇcasov´a omezen´ı. Zde pr´avˇe nastupuj´ı evoluˇcn´ı algoritmy s jejich netradiˇcn´ımi pˇr´ıstupy. Pokud si spr´avnˇe vyberete algoritmus, b´yv´a ˇreˇsen´ı nalezeno mnohem rychleji a ´uspornˇeji. Samozˇrejmˇe, jako t´emˇeˇr kaˇzd´a vˇec, maj´ı i evoluˇcn´ı algoritmy sv´a omezen´ı. Jejich asi hlavn´ı a nejvˇetˇs´ı nev´yhodou je ˇc´asteˇcn´a stochastiˇcnost a z n´ı vypl´yvaj´ıc´ı nepˇredv´ıdatelnost ˇreˇsen´ı. Vzhledem k t´eto skuteˇcnosti se matematick´e d˚ukazy sestavuj´ı velmi obt´ıˇznˇe. Po-znatky o tˇechto algoritmech se tedy zakl´adaj´ı hlavnˇe na empirick´ych z´akladech, kter´e vˇsak jejich pouˇzitelnost a ˇzivotaschopnost jednoznaˇcnˇe potvrzuj´ı.
C´ılem pr´ace je porovnat zn´am´e varianty a navrhnout modifikace SOMA algoritmu pro ˇreˇsen´ı dynamick´ych probl´em˚u.
Kapitola 2
Evoluˇ
cn´ı algoritmy
Evoluˇcn´ı algoritmy jsou jednou z nˇekolika odvˇetv´ı takzvan´eho softcomputingu – inteli-gentn´ıch v´ypoˇct˚u. Mimo nˇe tam patˇr´ı napˇr´ıklad neuronov´e s´ıtˇe a fuzzy syst´emy.
Zde se zaˇc´ın´a programov´an´ı dost´avat do okamˇziku, kdy k´od pro nalezen´ı ˇreˇsen´ı nen´ı pevnˇe d´an programem, ale slouˇz´ı pouze k vytvoˇren´ı prostˇred´ı, pomoc´ı kter´eho bude ˇreˇsen´ı hled´ano. Konkr´etn´ı postup nen´ı pˇresnˇe d´an ani zn´am, protoˇze v softcomputingu se obvykle do jist´e m´ıry vyuˇz´ıv´a n´ahody.
Z´akladem hled´an´ıˇreˇsen´ı pomoc´ı evoluˇcn´ıch algoritm˚u je pˇreveden´ı probl´emu na ´uˇcelovou funkci, u kter´e bude v cyklech zvan´ychgenerace hled´ano optimum.
Probl´em je pak ˇreˇsen pomoc´ı populace moˇzn´ych aproximac´ı ˇreˇsen´ı, na kter´e jsou apli-kov´any evoluˇcn´ı principy. Kaˇzd´a vhodn´a aproximace ˇreˇsen´ı (jedinec) postoup´ı do dalˇs´ı gene-race nˇejak upravena. Nevhodn´e varianty podlehnou selekˇcn´ımu tlaku, kdy do dalˇs´ı generace postupuje omezen´y poˇcet jedinc˚u. Takto se dos´ahne v´yvinu populace a s kaˇzdou dalˇs´ı ge-nerac´ı se populace v´ıce pˇribliˇzuje skuteˇcn´emu ˇreˇsen´ı.
D˚uleˇzitou podm´ınkou funkˇcnosti evoluˇcn´ıch algoritm˚u je fakt, ˇze kaˇzd´a dalˇs´ı generace mus´ı z´ıskat lepˇs´ı (nebo stejnou) aproximaci ˇreˇsen´ı. Pokud by byla tato podm´ınka poruˇsena, je jak´ykoliv algoritmus degradov´an na pouh´e stochastick´e prohled´av´an´ı stavov´eho prostoru. Jedn´ım z ˇcasto pouˇz´ıvan´ych evoluˇcn´ıch algoritm˚u jsougenetick´e algoritmy. Ty pracuj´ı s jedinci reprezentovan´ymi ˇretˇezci bin´arn´ıch ˇc´ısel, do kter´ych je zak´odov´ano kandid´atn´ı ˇreˇsen´ı. Tyto ˇretˇezce jsou ekvivalentem chromozom´aln´ı DNA v pˇr´ırodˇe. Stejnˇe jako ona podl´ehaj´ı nejen zmˇen´am pomoc´ı kˇr´ıˇzen´ı a mutac´ı, ale i selekˇcn´ımu tlaku
”zvenˇc´ı“.
Podle poˇzadovan´e pˇresnosti nalezen´e aproximace ˇreˇsen´ı jsou zvoleny ukonˇcovac´ı pod-m´ınky. Zpravidla je bud’ stanoven koneˇcn´y poˇcet generac´ı, anebo se ovˇeˇruje m´ıra stagnace nejlepˇs´ı aproximace oproti t´e pˇredchoz´ı.
Kapitola 3
Popis ˇ
cinnosti SOMA
3.1
Sezn´
amen´ı
Aˇckoliv jsme se zm´ınili o jin´ych evoluˇcn´ıch algoritmech, je tato pr´ace prim´arnˇe vˇenov´ana SOMA – tedy SamoOrganizuj´ıc´ımu se Migraˇcn´ımu Algoritmu.
Jeho prvn´ı verze vznikla v roce 1999 a od t´e doby proˇsel tento algoritmus mnoh´ymi zmˇenami a vylepˇsen´ımi. Bˇeˇznˇe se ˇrad´ı mezi evoluˇcn´ı algoritmy, nicm´enˇe jeho ˇcinnost je vˇsak zaloˇzena na geometrick´ych principech a nov´ı jedinci jsou interpretov´ani v kroc´ıch na trajektori´ıch pˇresunu. Jedn´e generaci v Genetick´ych algoritmech odpov´ıd´a migraˇcn´ı kolo v SOMA [4]. Podobnost s genetick´ymi algoritmy, ˇci diferenci´aln´ı evoluc´ı spoˇc´ıv´a hlavnˇe ve stejn´ych v´ysledc´ıch po jednom evoluˇcn´ım cyklu (migraˇcn´ım kole).
Inspirac´ı k tvorbˇe tohoto algoritmu byla spolupr´ace jedinc˚u v pˇr´ırodˇe pˇri hled´an´ı napˇr. zdroje potravy (mravenci). Jakmile nˇekdo nalezne lepˇs´ı zdroj, vydaj´ı se ostatn´ı za n´ım.
Jako kaˇzd´y evoluˇcn´ı algoritmus i SOMA je navrˇzena pro vyhled´av´an´ı glob´aln´ıch extr´em˚u zadan´e n-rozmˇern´e funkce. Algoritmus je specializov´an pouze na hled´an´ı maxim funkce. Je jasn´e, ˇze pokud budeme cht´ıt hledat glob´aln´ı minimum, ´uplnˇe postaˇc´ı obr´atit znam´enko v ´uˇcelov´e funkci. V´ypoˇcet povrchu cel´e t´eto funkce je vˇsak pro nalezen´ı extr´emu velmi obt´ıˇzn´y, a proto se mu snaˇz´ıme co nejv´ıce vyh´ybat.
3.2
Z´
akladn´ı princip funkce SOMA
Pro snazˇs´ı pochopen´ı dalˇs´ı ˇc´asti bude dobr´e popsat alespoˇn nˇekter´e n´ıˇze pouˇzit´e pojmy: • D – poˇcet dimenz´ı ´uˇcelov´e funkce
• PathLength – d´elka prozkoum´avan´e cesty jedince v n´asobc´ıch vzd´alenosti od Leadera; nastavuje se v rozmez´ıh1,1; 5i
• Step – zlomky PathLength, kde se provede vyhodnocen´ı ´uˇcelov´e funkce; nastavuje se v rozmez´ıh0,11;P athLengthi
• NP – poˇcet jedinc˚u v populaci; jejich mnoˇzstv´ı je dobr´e nastavovat v pˇr´ım´e ´umˇeˇre s poˇctem dimenz´ı
• PRT – pertubaˇcn´ı vektor
Jakmile se SOMA spust´ı jsou na hyperplochu n´ahodnˇe vygenerov´ani jedinci a je vypo-ˇ
Na zaˇc´atku kaˇzd´eho kola je ze vˇsech jedinc˚u vyb´ır´an jedinec s nejlepˇs´ı hodnotou funkce – Leader. Jeho pozice je v nˇekter´ych ohledech privilegovan´a (napˇr´ıklad se nemus´ı h´ybat).
Nyn´ı zaˇc´ın´a migrace. Jej´ı pr˚ubˇeh se liˇs´ı podle zvolen´e strategie, takˇze zat´ım pop´ıˇseme pouze z´akladn´ı verzi.
Zde se kaˇzd´y jedinec vyd´av´a na cestu za Leaderem. D´elka cesty jedince (PathLength) je nastavena relativnˇe podle jeho vzd´alenosti od vedouc´ıho jedince. Obdobnˇe je z´ısk´ana d´elka jednoho kroku (Step).
Jakmile jsou pro kaˇzd´eho jedince z´ısk´any tyto hodnoty, vypoˇc´ıt´a se pro kaˇzdou souˇ rad-nici smˇerov´y vektor a kaˇzd´y jedinec podle nˇej zaˇcne skoky prohled´avat body na hyperploˇse vytyˇcen´e d´elkou kroku, dokud se nedostane na konec sv´e cesty 3.1.
Obr´azek 3.1: Pricip SOMA – Jedinci (ˇc´ısla) se pohybuj´ı smˇerem za Leaderem (L) a na cestˇe prohled´avaj´ı body dan´e velikost´ı kroku.
Je v´yhodn´e, kdyˇz cesta jedince nekonˇc´ı na m´ıstˇe, kde se nal´ez´a vedouc´ı jedinec, ale pokraˇcuje aˇz za nˇej. D´ıky tomu se zajist´ı urˇcit´a ˇz´adouc´ı diverzita populace – zabr´an´ı se tak pˇr´ıliˇsn´emu nahlouˇcen´ı jedinc˚u na jednom m´ıstˇe. Ze stejn´ych d˚uvod˚u se tak´e d´elka jednoho kroku nastavuje tak, aby jedinec neprov´adˇel v´ypoˇcet hodnoty na stejn´em m´ıstˇe, na jak´em se pr´avˇe nal´ez´a Leader. Jak je vidno, toto um´ıstˇen´ı by mohlo znamenat do koneˇcn´ych d˚usledk˚u aˇz pˇrekryt´ı jedince s Leaderem, kter´e by trvalo aˇz do skonˇcen´ı bˇehu cel´eho algoritmu.
Z cel´e sv´e cesty si jedinec pamatuje vˇzdy um´ıstˇen´ı s nejlepˇs´ı moˇznou hodnotou. V okam-ˇ
ziku, kdy dojde na konec sv´e cesty se na nˇej pˇrem´ıst´ı.
Jakmile sv˚uj tah provedou vˇsichni jedninci, konˇc´ı migraˇcn´ı kolo a z
”nov´ych“ jedinc˚u se opˇet vybere nov´y Leader.
Jak je vidˇet, je samotn´y princip algoritmu velice jednoduch´y a nikde nen´ı nutn´e prov´adˇet v´ypoˇcet sloˇzitˇejˇs´ı neˇz jednoduch´e dˇelen´ı [5].
3.3
Pertubaˇ
cn´ı vektor
Z´akladn´ı princip fungov´an´ı algoritmu byl samozˇrejmˇe jiˇz dlouhou dobu vylepˇsov´an a upra-vov´an, aby SOMA pod´aval co nejleˇs´ı v´ysledky. Jedn´ım z velk´ych probl´em˚u, kter´ymi algo-ritmus trpˇel, byla ztr´ata diverzity populace (obr.3.3).
V okamˇziku, kdy se jedinci pˇr´ıliˇs nahlouˇc´ı kolem jednoho bodu, je velice tˇeˇzk´e donutit je prohled´avat i zbylou ˇc´ast stavov´eho prostoru, kde se ve skuteˇcnosti m˚uˇze nal´ezat glob´aln´ı extr´em.
Obr´azek 3.2: Ztr´ata diverzity populace – Zde jsou jedinci dosud rozm´ıstˇeni tak, ˇze se svou PathLength (vyznaˇcena ´useˇckami; nastavena na 2,5) jsou schopni prozkoumat oblast zhruba o rozmˇerech ˇsed´e ˇc´asti plochy. Leader je vyznaˇcen ˇcervenˇe.
Obr´azek 3.3: Ztr´ata diverzity populace – Pokud se vˇsak jedinci pˇr´ıliˇs nahlouˇc´ı kolem Leadera (ˇcervenˇe), plocha prohled´avan´eho prostoru se m˚uˇze drasticky zmenˇsit.
(pertubace – porucha, ruˇsen´ı). Jednoduˇse to znamen´a, ˇze pˇr´ım´y pohyb jedince je ruˇsen tak, aby jeho dr´aha nemusela b´yt pˇr´ım´a a jedinec nav´ıc z´ıskal i moˇznost ˇc´asteˇcnˇe mˇenit sv˚uj smˇer. Byla vyzkouˇsena moˇznost donutit vyboˇcovat jedince z dr´ahy pomoc´ı zmˇen jeho smˇerov´eho vektoru. Kupodivu se vˇsak uk´azalo, ˇze velice podobnˇe kvalitn´ı v´ysledky pˇrin´aˇs´ı i prost´e nulov´an´ı nˇekter´ych ze souˇradnic vektoru v jednotliv´ych kroc´ıch [5].
Nakonec je tedy n´ahodnost v pohybu jedinc˚u ˇreˇsena takto. V´ypoˇcet dalˇs´ıho bodu na cestˇe se poˇc´ıt´a pro kaˇzd´y rozmˇer kaˇzd´eho jedince podle vzorce:
(Indiid leader−Indin)·d·Step·P RTi+Indin,
kde Indje hodnota i-t´eho rozmˇeru n-t´eho jedince, Indid leader obdobnˇe hodnota Lea-dera,dpoˇcet krok˚uStepaP RT zn´azorˇnuje konkr´etn´ı rozmˇer pertubaˇcn´ıho vektoru, kter´y je sloˇzen z jedniˇcek a nul. Ze vzorce je vidˇet jak urˇcuje, zda se bude jedinec v dan´em rozmˇeru pohybovat.
Jak jiˇz bylo ˇreˇceno, hlavn´ım pˇr´ınosem zaveden´ı pertubaˇcn´ıho vektoru do SOMA je pr´avˇe pˇrispˇen´ı k udrˇzen´ı diverzity populace. Dalˇs´ı podrobnosti jsou pops´any v ˇc´asti vˇenovan´e statick´ym a dynamick´ym probl´em˚um algoritmu.
3.4
Statick´
e probl´
emy
Statick´ymi probl´emy jsou myˇsleny situace, ke kter´ym m˚uˇze doj´ıt, kdyˇz je funkce statick´a – nemˇen´ı se v ˇcase (v pr˚ubˇehu evoluˇcn´ıho procesu).
3.4.1 Ztr´ata diverzity
Jako kaˇzd´y podobn´y algoritmus m´a i SOMA sv´e specifick´e pot´ıˇze zp˚usobuj´ıc´ı sn´ıˇzen´ı efe-tivity, kter´e je nutn´e ˇreˇsit. Asi nejvˇetˇs´ım probl´emem SOMA je ztr´ata diverzity populace, o nˇemˇz jsme se jiˇz kr´atce zm´ınili.
Pokud vˇse pracuje, jak m´a, jsou jednici na hyperploˇse rozprostˇreni pomˇernˇe pravidelnˇe. Jedin´ym rozd´ılem jsou v takov´em pˇr´ıpadˇe m´ısta hledan´ych extr´em˚u. Zde doch´az´ı k jist´emu nahlouˇcen´ı, coˇz je v omezen´e m´ıˇre nutn´e k upˇresˇnov´an´ı pozice hledan´eho m´ısta glob´aln´ıho maxima. Pot´ıˇze nast´avaj´ı, jakmile pozici bl´ızkou nˇejak´emu extr´emu obsad´ı pˇr´ıliˇs mnoho nebo dokonce vˇsichni jedinci. Nezˇr´ıdka se totiˇz st´av´a, ˇze ono m´ısto nen´ı glob´aln´ım, ale pouze lok´aln´ım extr´emem.
S jedinci rozm´ıstˇen´ymi na jedin´em m´ıstˇe m´a algoritmus pˇrehled o velmi omezen´e ˇc´asti stavov´eho prostoru a glob´aln´ı extr´em se bez odstranˇen´ı nahlouˇcen´ı nemus´ı v˚ubec naj´ıt.
Pˇr´ıkladem tohoto stavu m˚uˇze b´yt takzvan´a
”jehla v kupce sena“ (obr.3.4 a3.5). Jak je na obr´azku vidˇet, jedinci se pohybuj´ı smˇerem k ˇsirok´emu vrcholu, pˇriˇcemˇz skuteˇcn´y extr´em z˚ust´av´a nepovˇsimnut. Vzhledem k povaze pohybu jedinc˚u (pouze za Lea-derem), je nen´ı moˇzn´e pˇrinutit k opˇetovn´emu
”rozchodu“ a v´yraznˇe lepˇs´ı hodnota nebude nikdy nalezena.
3.4.2 Uv´aznut´ı na rovn´e ploˇse
Druh´ym zm´ınˇen´ym probl´emem je uv´aznut´ı na rovn´e ploˇse. V tomto pˇr´ıpadˇe se situace kom-plikuje v speci´aln´ım pˇr´ıpadˇe, a to v momentˇe, kdy je vˇetˇsina hyperplochy rovina rovnobˇeˇzn´a s osami.
Obr´azek 3.4:
”Jehla v kupce sena“ – S PathLength = 2,5 se jedinec 1 m˚uˇze dostat nejd´ale do bodu A, kdy vˇsak st´ale nedos´ahne extr´emu. Pokud by se jedinec 2 pˇresunul aˇz do bodu B, nalezl by dalˇs´ı cestou glob´aln´ı extr´em. Nejlepˇs´ı bod na jeho cestˇe ale leˇz´ı v okol´ı Leadera (L), takˇze optima nebude dosaˇzeno.
Obr´azek 3.5:
”Jehla v kupce sena“ – Jakmile se jedinci nahlouˇc´ı kolem ˇsirok´eho lok´aln´ıho extr´emu, nen´ı jiˇz moˇzn´e bez ´upravy algoritmu naj´ıt ten glob´aln´ı. Oproti obr. 3.4 je vidˇet, ˇ
ze bod A je mnohem d´ale od hledan´eho optima.
V takov´em pˇr´ıpadˇe jedinci mohou ve sv´em pohybu minout dostateˇcnˇe ´uzk´y vrchol a dojde tak k uv´aznut´ı, kdy vˇsechna moˇzn´a m´ısta prohled´avan´a jedinci maj´ı stejnou hodnotu. V tomto pˇr´ıpadˇe ust´av´a pohyb jedinc˚u.
Jedno z navrˇzen´ych ˇreˇsen´ı nut´ı jedince v pˇr´ıpadˇe nalezen´ı bodu se stejnou hodnotou pˇresunout se tam. Takto by se jedinci vˇzdy pˇresunuli na konec sv´e moˇzn´e dr´ahy a pˇri vhodnˇe nastaven´e PathLength by se cel´a populace postupnˇe kyvadlovitˇe rozhoup´avala a zvˇetˇsovala tak prohled´avan´y prostor. Pertubace by z´aroveˇn zajistila lepˇs´ı prohled´an´ı m´ıst, kter´a by se jinak mohla nal´ezat mezi cestami jedinc˚u.
Tento proces by vˇsak trval nˇekolik migraˇcn´ıch kol, neˇz by doˇslo k dostateˇcn´emu roz-pt´ylen´ı jedinc˚u a aˇz potom by zaˇcalo opˇetovn´e upˇresnˇen´ı pozice extr´emu.
Dalˇs´ı informace o tˇechto probl´emech naleznete na [1].
3.5
Dynamick´
e probl´
emy
Zde se ´uˇcelov´a funkce postupnˇe mˇen´ı s ˇcasem a tak s sebou pˇrin´aˇs´ı dalˇs´ı rozmˇer pot´ıˇz´ı a kla-sick´a SOMA nen´ı schopna ´uˇcinnˇe sledovat glob´aln´ı extr´em. V´yˇse popsan´e statick´e probl´emy
nemus´ı nast´avat pˇr´ıliˇs ˇcasto, ale v dynamick´ych funkc´ıch jejich negativn´ı ovlivˇnov´an´ı kvality v´ypoˇctu dramaticky roste.
D´ale tedy pop´ıˇseme jak tyto probl´emy ˇreˇsit.
Ztr´ata diverzity populace, kter´a se v pˇr´ıpadˇe statick´e funkce s jedn´ım vrcholem m˚uˇze zd´at neˇskodnou, zp˚usob´ı se zmˇenou pozice tohoto vrcholu obrovsk´e pot´ıˇze.
Jedinci se nahlouˇc´ı na jednom m´ıstˇe a d´ıky tomu nen´ı moˇzn´e doc´ılit nˇejak´eho vˇetˇs´ıho skoku. Jakmile se tedy vrchol zaˇcne pomalu posouvat stranou, jedinci se ho pokus´ı n´ asle-dovat. Vˇse z´aleˇz´ı na rychlosti posunu vrcholu a na m´ıˇre s jakou je diverzita zachov´ana.
Bude-li se vrchol pohybovat jen zvolna, m˚uˇze se jedinc˚um daˇrit udrˇzet se na jeho vrcholu. Pˇri vˇetˇs´ı rychlosti pohybu vrcholu za n´ım budou nahlouˇcen´ı jedinci postupnˇe zaost´avat, aˇz nakonec ´uplnˇe ztrat´ı jeho stopu. Pokud se vˇsak vrchol bude pohybovat velk´ymi skoky, pak jej pˇr´ıliˇs nahlouˇcen´a skupina jedinc˚u m˚uˇze ztratit i v jedin´em kole.
Dalˇs´ı kritick´a situace nast´av´a, kdyˇz se mˇen´ı v´yˇska glob´aln´ıho extr´emu. V´yˇse uveden´y probl´em
”jehla v kupce sena“ (obr. 3.4 a 3.5) se st´av´a dalˇs´ı past´ı na jedince: Zat´ımco se jedinci dostanou na pozici uprostˇred m´ırn´eho kopce, zaˇcne na jeho okraji r˚ust tenk´a jehla, kter´a rychle pˇres´ahne dosud glob´aln´ı maximum. Vzhledem k tomu, ˇze jedinci nemaj´ı d˚uvod opustit sv´e pozice, z˚ust´av´a skuteˇcn´y extr´em nepovˇsimnut.
V neposledn´ı ˇradˇe tak´e vyvst´av´a ot´azka nalezen´ı ˇreˇsen´ı funkce podle zp˚usobu, jak´ym se mˇen´ı.
V z´asadˇe se funkce m˚uˇze mˇenit:
• po nˇekolika migraˇcn´ıch kolech – pˇred dalˇs´ı zmˇenou funkce maj´ı jedinci dost ˇcasu nal´ezt ˇreˇsen´ı
• kaˇzd´e migraˇcn´ı kolo – v takov´em pˇr´ıpadˇe hodnˇe z´aleˇz´ı na velikosti zmˇeny funkce • nez´avisle na bˇehu algoritmu – V tomto pˇr´ıpadˇe nast´avaj´ı pot´ıˇze, jakmile ˇc´ast jedinc˚u,
kteˇr´ı se jiˇz pohnuli, m´a n´ahle neplatn´e informace, protoˇze tver ´uˇcelov´e funkce se jiˇz posunul. Z tˇechto myln´ych informac´ı vˇsak m˚uˇze vych´azet zbytek populace, a vznik´a tak probl´em.
Tyto pot´ıˇze se podaˇrilo v´yraznˇe zredukovat pouˇzit´ım nov´eho vylepˇsen´ı, kter´e v roce 2006 zavedl Michal Hlavinka. Jeho pˇr´ınos paradoxnˇe spoˇc´ıv´a v zaveden´ı omezen´e d´elky ˇzivota jedince.
Tˇem je v tomto pˇr´ıpadˇe pˇridˇelen ˇcas, po kter´y budou existovat. Jakmile uplyne poˇcet kol, kter´y maj´ı stanoven, jedinec je vymaz´an z pozice, na kter´e se nach´az´ı a okamˇzitˇe je opˇet vytvoˇren na n´ahodnˇe vybran´em m´ıstˇe s vynulovan´ym vˇekem. V´ykon algoritmu se tak´e odv´ıj´ı od tohoto faktoru – maxim´aln´ıho vˇeku, kter´eho se m˚uˇze jedinec doˇz´ıt.
Samozˇrejmost´ı je, ˇze pˇri poˇc´ateˇcn´ı inicializaci algoritmu nen´ı vˇsem jedinc˚um nastaven stejn´y vˇek, aby se dos´ahlo rovnomˇern´eho um´ır´an´ı.
Dalˇs´ı d˚uleˇzitou vˇec´ı je privilegovanost Leadera. Jelikoˇz nejlepˇs´ıho jedince nelze ztratit (doˇslo by k degeneraci v´ysledk˚u), je Leaderovi udˇelena vyj´ımka a nest´arne.
D´ıky znouvytv´aˇren´ı jedinc˚u na n´ahodn´ych pozic´ıch je udrˇzov´ana rovnov´aha mezi do-stateˇcnou diverzitou a pˇresnost´ı nalezen´eho ˇreˇsen´ı, kter´a je pro spr´avn´y chod algoritmu kl´ıˇcov´a.
3.6
Varianty algoritmu
je zmˇena chov´an´ı kaˇzd´eho jedince podle jin´eho vzorce. Takov´ych strategi´ı existuje nˇekolik a kaˇzd´a m´a, jak uˇz to b´yv´a, sv´e klady a z´apory, kter´e tu budou probr´any.
3.6.1 All To Random
Strategie All To Random se uˇz podle n´azvu orientuje na smˇer vˇetˇs´ı stochastiˇcnosti pˇri hled´an´ı extr´emu. Aby vˇsak nedoˇslo k degradaci algoritmu je st´ale nutn´e zachovat konver-genci v´ysledk˚u ke spr´avn´emu ˇreˇsen´ı. Jinak ˇreˇceno: Funkce doposud nelezen´ych nejlepˇs´ıch jedinc˚u mus´ı b´yt neklesaj´ıc´ı.
Z´akladn´ım principem t´eto strategie je pohyb veˇsker´ych jedinc˚u, ne za Leaderem – nej-lepˇs´ım jedincem, ale za n´ahodnˇe vybran´ym jedincem, kter´y se v tomto ohledu chov´a ob-dobnˇe jako Leader ze strategie All To One.
Kaˇzd´e kolo je tedy n´ahodnˇe vybr´an nˇejak´y jedinec, za kter´ym se ostatn´ı vydaj´ı podle stejn´eho principu jako ze z´akladn´ı strategie.
Vˇsimnˇete si, ˇze jedin´e, co je pro tuto strategii nutn´e zmˇenit, je pouze urˇcen´ı, kdo bude n´asledov´an.
Strategie All To Random m´a dozajista v´yhodu v lepˇs´ım prohled´av´an´ı cel´eho stavov´eho prostoru, protoˇze n´ahodn´y pohyb jedinc˚u omezuje ˇsanci na ztr´atu diverzity populace. Je jasn´e, ˇze prakticky s kaˇzdou dalˇs´ı migrac´ı se t´emˇeˇr vˇsichni jedinci vydaj´ı zcela jin´ym smˇerem. Nev´yhodou by v takov´em pˇr´ıpadˇe ovˇsem bylo obt´ıˇznˇeji upˇresniteln´e doposud nalezen´e ˇreˇsen´ı. Souvis´ı to pr´avˇe se zmenˇsen´ım ˇsance na ztr´atu diverzity populace. Vzhledem ke skuteˇcnosti, ˇze se jedinci pohybuj´ı po velk´em ´uzem´ı a nejlepˇs´ı jedinec je t´emˇeˇr ignorov´an, bude kolem nˇej minim´aln´ı poˇcet
”n´asledn´ık˚u“.
3.6.2 All To All
Dalˇs´ı moˇznost´ı prohled´av´an´ı je strategie All To All. Zde uˇz je rozd´ıl od z´akladn´ı strategie v´ıce patrn´y. Leader se sice chov´a stejnˇe jako v pˇredchoz´ı strategii, ale pohyb jedinc˚u se skl´ad´a z v´ıce neˇz jedn´e jedin´e cesty.
Kaˇzd´y jedinec se chov´a tak, jako by Leaderem byl kaˇzd´y jin´y jedinec – vˇse v jednom sv´em tahu. Je pro nˇej tedy vytyˇceno tolik tras kolik je celkem ostatn´ıch jedinc˚u. Z tˇechto cest je nakonec vybr´an bod s nejlepˇs´ım ohodnocen´ım (princip prohled´av´an´ı kaˇzd´e cesty je stejn´y jako v All To One, jen n´asledovan´y jedinec nen´ı pouze Leader), kam se jedinec pˇresune (obr.3.6).
Jiˇz je vidˇet, ˇze tato strategie prohled´av´a stavov´y prostor velice d˚ukladnˇe a vzhledem k tomu, ˇze mezi moˇzn´ymi cestami kaˇzd´eho jedince je vˇzdy i ta za Leaderem, tak nevznik´a probl´em jako ve strategii All To Random, kde nen´ı tak d˚ukladnˇe prohled´av´ano okol´ı Lea-dera.
M´ısto toho m´a tato varianta algoritmu jin´e ´uskal´ı. Kaˇzd´e migraˇcn´ı kolo s sebou velk´y poˇcet evaluac´ı. Nav´ıc poˇcet tˇechto v´ypoˇct˚u roste kvadraticky ´umˇernˇe mnoˇzstv´ı jedinc˚u.
3.6.3 All To All Adaptive
Podobn´a pˇredchoz´ı variantˇe je strategie All To All Adaptive. Leader se chov´a stejnˇe jako ve v´yˇse uveden´em All To All. Rozd´ıl spoˇc´ıv´a ve zp˚usobu pohybu jedince.
Zat´ımco v All To All se jedinec pˇrem´ıst´ı na novou pozici aˇz po ukonˇcen´ı proch´azen´ı vˇsech vytyˇcen´ych cest, v All To All Adaptive je prov´adˇen pˇresun jedince na lepˇs´ı pozici po kaˇzd´e prohl´ednut´e cestˇe. Dr´aha jedince se tedy liˇs´ı od
”hvˇezdy“ ze strategie All To All. Pohyb je sp´ıˇs pobobn´y tvaru lomen´e ˇc´ary.
Obr´azek 3.6: Ilustrace v´ypoˇctu pohybu jedince ve strategii All To All. Jedinec (zelenˇe) prohled´a vˇsechny trasy za ostatn´ımi jedinci (2, 3, 4 a 5), jejichˇz d´elka je dan´a velikost´ı PathLength (zde 2,5) a pot´e se pˇresune na nejlepˇs´ı pozici, kterou nalezne. Leader je vy-znaˇcen ˇcervenˇe. ˇSipka ukazuje zhruba na m´ısto, kam se jedinec pˇresune. Pˇresn´a pozice je ovlivnˇena d´elkou kroku jedince.
Pro lepˇs´ı pochopen´ı rozd´ılu v pohybu jedinc˚u u strategi´ı All To All a All To All Adaptive si m˚uˇzete prostudovat obr´azky3.6a 3.7.
Jak je vidˇet tato strategie bude m´ıt stejn´e klady a z´apory jako strategie pˇredchoz´ı.
3.6.4 Nov´a varianta algoritmu – All To Elite
All To Elite je autorem pr´ace vytvoˇren´a alternativa ke strategii pohybu jedinc˚u po hy-perploˇse. Alespoˇn ˇc´asteˇcnˇe vych´az´ı ze vˇsch v´yˇse uveden´ych strategi´ı, nicm´enˇe principi´alnˇe je zase nˇeco jin´eho.
Z´akladem je v tomto pˇr´ıpadˇe informace, ˇze jedinci se nepohybuj´ı jen za jedn´ım jedin´ym Leaderem.
Ten je zde pouze jedn´ım ˇclenem elity – skupiny jedinc˚u s nejlepˇs´ım ohodnocen´ım. Jej´ı velikost je nastaviteln´a, ale je dobr´e, je-li elity m´enˇe neˇz polovina jedinc˚u. Kdyˇz nastav´ıme jako elitn´ı vˇsechny jedince, zaˇcne se algoritmus chovat podobnˇe jako se strategi´ı All To Ran-dom, nicm´enˇe principy vyhled´av´an´ı nejlepˇs´ıch jedinc˚u budou v takov´em pˇr´ıpadˇe algoritmus zpomalovat.
Kaˇzd´e migraˇcn´ı kolo je nalezena nov´a elita a zaˇcne pohyb: Pro kaˇzd´eho jedince (vˇcetnˇe elity) je n´ahodnˇe vybr´an jeden (jin´y) ˇclen elity, za kter´ym se vyd´a. D´ıky vˇetˇs´ımu poˇctu n´asledovan´ych jedinc˚u, kteˇr´ı maj´ı dobr´e ohodnocen´ı m˚uˇze b´yt prohled´ano vˇetˇs´ı mnoˇzstv´ı extr´em˚u za menˇs´ı poˇcet kol. Protoˇze je c´ılem ˇcasto opˇet jin´y elitn´ı jedinec, pˇredch´az´ı tato strategie z´aniku diverzity populace. Jakmile m´a funkce v´ıce maxim, jedinci je prozkoumaj´ı v´yraznˇe rychleji neˇz v z´akladn´ı strategii. Pokud je na druhou stranu extr´em jen jedin´y, je velmi pravdˇepodon´e, ˇze bˇehem kr´atk´e doby budou vˇsichni elitn´ı jedinci nahlouˇceni kolem nˇej.
Za toto samozˇrejmˇe strategie plat´ı sn´ıˇzen´ım prohled´av´an´ı nejbliˇzˇs´ıch m´ıst kolem nej-lepˇs´ıho jedince a tak´e vzr˚ustem v´ypoˇcetn´ı n´aroˇcnosti kv˚uli porovn´av´an´ı kvality jedinc˚u.
Obr´azek 3.7: Ilustrace v´ypoˇctu pohybu jedince ve strategii All To All Adaptive. Vybran´y jedinec (zelenˇe), kter´y se m´a pohybovat, z cesty za dalˇs´ım jedincem v poˇrad´ı (2) vybere nejlepˇs´ı bod (A). Ten se pro nˇej st´av´a v´ychoz´ım bodem pro jeho dalˇs´ı pohyb. Opˇet nalezne nejlepˇs´ı bod na cestˇe za 3 (B). Pˇri pr˚uchodu cesty z B za jedincem ˇc. 4, nen´ı nalezena lepˇs´ı neˇz v´ychoz´ı pozice a jedinec z˚ust´av´a na pozici. ˇSipka ukazuje zhruba na m´ısto, kam se jedinec nakonec pˇresune. Pˇresn´a pozice je ovlivnˇena d´elkou kroku jedince. Leader je vyznaˇcen ˇcervenˇe.
Kapitola 4
Popis implementace a ´
upravy k´
odu
4.1
Uloha s pohybuj´ıc´ımi se vrcholy
´
Pr´ace vyuˇz´ıvala zdrojov´ych k´od˚u programu Pohybuj´ıc´ı se vrcholy – Moving Peaks Ben-chmark.
Tento program nebylo potˇreba pˇr´ımo modifikovat a lze ho st´ahnout ze [2]. Byl vytvoˇren a je urˇcen pro generov´an´ı v´ıcerozmˇern´e dynamick´e funkce s v´ıce vrcholy. Jako implementaˇcn´ı jazyk byl zvolen C, coˇz je pro propojen´ı se zdrojov´ymi k´ody knihovny SOMA velmi v´yhodn´e. Kl´ıˇcov´ymi funkcemi pro propojen´ı byly funkcedummy\_eval a eval\_movpeaks, kter´e obˇe vrac´ı hodnotu funkce v bodˇe dan´ym parametry. Rozd´ıl spoˇc´ıv´a ve zp˚usobu vyhodnocen´ı. Zat´ımcoeval\_movpeaksprovede kompletn´ı v´ypoˇcet hodnot a zapoˇc´ıt´a evaluaci funkce pro pozdˇejˇs´ı v´ypoˇcet velikosti chyby a podobnˇe,dummy\_evalpouze vr´at´ı hodnotu funkce. Tato vlastnost je uˇziteˇcn´a pˇri inicializaci SOMA a pˇri pˇr´ıleˇzitostech, kdy by zapoˇc´ıt´an´ı hodnoty mˇelo pro v´ysledky zkresluj´ıc´ı v´yznam.
Souˇc´ast´ı Moving peaks je i mnoˇzstv´ı nastaviteln´ych parametr˚u. Bylo by dobr´e zm´ınit alespoˇn ty, kter´e n´as budou nejv´ıce zaj´ımat.
• change frequency – poˇcet vyhodnocen´ı funkce, po kter´em se zmˇen´ı • number of peaks – poˇcet vrchol˚u, kter´y bude funkce m´ıt
• geno size – hodnota nastavuje poˇcet rozmˇer˚u funkce
• vlength – nastavuje, o kolik se pohnou vrcholy pˇri zmˇenˇe tvaru funkce
• height severity – nastavuje, o kolik se zmˇen´ı v´yˇska vrchol˚u pˇri zmˇenˇe tvaru funkce • width severity – nastavuje, o kolik se zmˇen´ı ˇs´ıˇrka vrchol˚u pˇri zmˇenˇe tvaru funkce • mincoordinate – hodnota minima na vˇsech os´ach
• maxcoordinate – hodnota maxima na vˇsech os´ach • minheight – minim´aln´ı v´yˇska vrcholu
• maxheight – maxim´aln´ı v´yˇska vrcholu
• minwidth – minim´aln´ı ˇs´ıˇrka vrcholu • maxwidth – maxim´aln´ı ˇs´ıˇrka vrcholu
• standardwidth – vytvoˇr´ı vrcholy dan´e ˇs´ıˇrky; je-li nastaveno na nulu, tvoˇr´ı je n´ahodnˇe v dan´em rozmez´ı
Tyto parametry se nastavuj´ı uvnitˇr souboru movpeaks.c.
4.2
SOMA knihovna
Hlavn´ı ˇc´ast´ı implementace, kter´a byla nutn´a pro testov´an´ı, bylo propojen´ı dvou program˚u. Prvn´ım z nich byla knihovna SOMA, jej´ıˇz tvorbou a popisem se zab´yv´a [1].
Byla naprogramovan´a s d˚urazem kladen´ym na pˇrenositelnost a pouˇzitelnost s jin´ymi programy. Obsahuje metody pro bˇeh SOMA se z´akladn´ı strategi´ı All To One. Jako pro-gramovac´ı jazyk byl zvolen C++. Vzhledem k objektov´e formˇe tohoto programu je velmi snadn´e mu porozumˇet, a prov´adˇet i pˇr´ıpadn´e zmˇeny v k´odu. Souˇc´ast´ı je i grafick´y v´ystup v podobˇe animace slouˇz´ıc´ı k snadn´emu zobrazen´ı postupu hled´an´ı ˇreˇsen´ı. Aˇckoliv jsou zob-razov´any pouze prvn´ı dva rozmˇery testovac´ı funkce, je animace velmi dobr´ym zp˚usobem, jak m´ıt moˇznost vidˇet pr˚ubˇeh ˇreˇsen´ı zadan´eho probl´emu. V´ystup se automaticky ukl´ad´a do souboru soma.gif (pokud je tedy zapnut´e generov´an´ı animace).
Bylo by dobr´e alespoˇn kr´atce vysvˇetlit, k ˇcemu slouˇz´ı jednotliv´e soubory tohoto pro-gramu.
• error.h, error.c – tyto soubory slouˇz´ı k v´ypisu chybov´ych hl´aˇsek na standardn´ı chybov´y v´ystup
• function.h – je hlaviˇckov´ym souborem pro soubor urˇcen´y k propojen´ı SOMA kni-hovny s jin´ym programem. Jeho n´azev nen´ı pevnˇe d´an.
• individual.h, individual.cpp – tyto soubory obsahuj´ı tˇr´ıdu Individual (jedinec), kde jsou definov´any operace s jedinci
• main.cpp– hlavn´ı soubor SOMA, kter´y obsahuje inicializaci a nastaven´ı parametr˚u • mygif.h, mygif.cpp – tyto soubory vykon´avaj´ı funkce spojen´e s generov´an´ım
ani-mace. Nemaj´ı v sobˇe ˇz´adn´e ˇc´asti, kter´e by nˇejak ovlivˇnovaly prohled´av´an´ı • param.h,param.cpp – zde je tˇr´ıda s parametry jedinc˚u
• soma.h, soma.cpp – tyto soubory jsou j´adrem cel´eho programu, jsou zde pouˇz´ıv´any tˇr´ıdy z ostatn´ıch soubor˚u a metody, kter´e popisuj´ı vlastn´ı pohyb jedinc˚u po hyperploˇse Vzhledem k povaze pr´ace bylo vˇsak nutn´e naruˇsit strukturu knihovny a nyn´ı je upra-vena tak, aby byla schopn´a spr´avnˇe komunikovat s druh´ym programem – Moving Peaks Benchmark. Vygenerov´ano bylo v´ıce podobn´ych variant algoritmu, kter´e se liˇs´ı strategi´ı prohled´av´an´ı. Zmˇeny, kter´e byly provedeny v p˚uvodn´ım k´odu se tak liˇs´ı v kaˇzd´e verzi stra-tegie.
Z´akladem bylo vytvoˇren´ı souboru dmovpeaks.h, kde doch´az´ı ke komunikaci s obˇema programy. Jedinou informac´ı, kterou SOMA pro sv˚uj bˇeh potˇrebuje, je hodnota ´uˇcelov´e funkce v zadan´em bodˇe.
extern "C\ { #include "movpeaks.h\ #include "movpeaks.c\ }
class cF_dmovpeaks : public cFunction {
public:
double *gen; /* pomocn´a promˇenn´a pro pˇrevod do pole typu double */ unsigned long successRate; /* promˇenn´a preo v´ypoˇcet success rate */ cF_dmovpeaks() {
init_peaks(); /* vytvoˇren´ı funkce */ successRate=0;
/* nastaven´ı poˇctu, typu a rozsahu rozmˇer˚u */ addParameter(cParam(0,100,cParam::REAL)); addParameter(cParam(0,100,cParam::REAL)); addParameter(cParam(0,100,cParam::REAL)); addParameter(cParam(0,100,cParam::REAL)); addParameter(cParam(0,100,cParam::REAL)); gen = new double[dim];
}
virtual ~cF_dmovpeaks() {
free_peaks(); /* ukonˇcen´ı moving peaks */ free(gen);
/* v´ypis v´ysledk˚u */
std::cout<<get_offline_error()<<
"\t\<<successRate/(0.0+get_number_of_evals())<<endl; }
/* vr´at´ı aktu´aln´ı hodnotu glob´aln´ıho extr´emu */ double BestVal() const { return global_max; }
/* vr´at´ı true v~pˇr´ıpadˇe, ˇze je nalezeno dostateˇcnˇe pˇresn´e maximum */ bool isSolution(const cIndividual &ind)
const { return (ind.Value>global_max-0.01); } /* pˇredstaven´ı se funkce */
void Introduce() const {
std::cout<<
"Dynamic: Moving peaks function\n\; }
void costValue1(cIndividual &ind) {
successRate+=get_right_peak(); for (int i=0;i<dim;i++)
gen[i]=ind[i]; ind.Value = eval_movpeaks(gen); if (soma->getEvalCount()%5000 == 0) { change_peaks(); soma->clearOffErrValue(); } }
/* v´ypoˇcet pouze pro ´uˇcely, kdy ho nen´ı
dobr´e zahrnout do celkov´eho stavu (inicializace apod.) */ void costValue2(cIndividual &ind)
{
for (int i=0;i<dim;i++) gen[i]=ind[i];
ind.Value = dummy_eval(gen); }
};
4.3
Kriteri´
aln´ı funkce
Pro testov´an´ı bylo vyuˇzito v´ypoˇctu hodnoty offline error. Tato hodnota ud´av´a rozd´ıl ˇreˇsen´ı nalezen´eho konkr´etn´ım jedincem od skuteˇcn´eho glob´aln´ıho maxima. Tato hodnota m´a udrˇzov´anu nerostouc´ı posloupnost a je resetov´ana pouze v okamˇzitku zmˇeny funkce.
Obr´azek 4.1: Ilustrace tvaru grafu offline error: Na ose Y je vyn´aˇsena fitness konkr´etn´ı evaluace, na ose X jsou jednotliv´e evaluace. Modr´e svisl´e ˇc´ary zn´azorˇnuj´ı okamˇzik zmˇeny tvaru ´uˇcelov´e funkce. Zelenˇe je vynesen graf online error – odchylky od spr´avn´eho ˇreˇsen´ı.
ˇ
V´ypoˇcet hodnoty pr˚umˇern´eho offline error tedy prob´ıh´a po kaˇzd´e evaluaci podle vzorce:
averageOf f lineError= averageOf f lineError·evalCount+leastOf f ErrV alue
evalCount+ 1 , kde evalCount odpov´ıd´a celkov´emu poˇctu dosud proveden´ych vyhodnocen´ı funkce a
leastOf f ErrV alue je nejmenˇs´ı dosud nalezen´a hodnota chyby, kter´a je s kaˇzdou zmˇenou tvaru funkce resetov´ana.
V´ypoˇcet offline error byl ve starˇs´ıch verz´ıch algoritmu implementov´an vlastn´ı, pozdˇeji, po dalˇs´ıch ´uprav´ach algoritmu, bylo vyuˇzito v´ypoˇctu t´eto hodnoty pˇr´ımo programem Mo-ving Peaks Benchmark.
Dalˇs´ı poˇc´ıtanou hodnotou byl Success rate – pod´ıl poˇctu dosaˇzen´ı glob´aln´ıho optima k celkov´emu poˇctu pokus˚u/bˇeh˚u. Tento v´ypoˇcet bylo moˇzn´e prov´est pomoc´ı funkce z Mo-ving Peaks Benchmark get_right_peak(). Tato funkce vrac´ı v´ysledek typu bool, podle toho, zda bylo pˇri posledn´ım vyhodnocen´ı funkce nalezeno optimum. Z celkov´eho poˇctu vyhodnocen´ı funkce get_right_peak() se pot´e spoˇc´ıtal aritmetick´y pr˚umˇer.
V´ysledn´e hodnoty pro jednotliv´a testov´an´ı jsou um´ıstˇena v kapitole Testy.
4.4
Implementace strategi´ı
Dalˇs´ı ˇc´ast´ı ´uprav algoritmu byla reimplementace SOMA knihovny pro dalˇs´ı strategie neˇz All To One. Vzhledem k mal´emu poˇctu ´uprav nutn´emu k t´eto zmˇenˇe byla prvn´ı verze upraven´eho programu uzp˚usobena tak, ˇze mohla ovl´adat vˇsechny pozdˇeji pouˇzit´e strategie, coˇz by mohlo b´yt pro komplexn´ı testov´an´ı, kter´e by mohlo trvat velmi dlouho pˇr´ınosem. Uk´azalo se vˇsak, ˇze s rostouc´ım mnoˇzstv´ım pouˇzit´ych pˇr´ıkaz˚u ne´umˇernˇe kles´a rychlost algoritmu.
Proto bylo pˇrikroˇceno k implementac´ım jednotliv´ych strategi´ı kaˇzd´e zvl´aˇst’. Postupem ˇ
casu se uk´azalo, ˇze je nutn´e programy propojit obˇema smˇery, coˇz je v rozporu se zp˚usobem jak´ym je knihovna SOMA naps´ana. Nakonec bylo nutn´e prov´est zmˇeny, kter´e pouˇzitou implementaci SOMA pˇr´ımo uzp˚usobuj´ı na komunikaci s Moving Peaks Benchmark.
Strategii All To One nebylo nutn´e nijak modifikovat, pouze byly pˇrid´any ˇc´asti k´odu pro komunikaci s Moving Peaks Benchmark a pro v´ypoˇcet potˇrebn´ych hodnot a nen´ı nutn´e ji snad d´ale popisovat.
Mal´e ´upravy byly potˇreba pro strategii All To Random. V tom to pˇr´ıpadˇe bylo nutn´e zajistit, aby se jedinci pokaˇzd´e vyd´avali za jin´ym jedincem, pˇriˇcemˇz Leader by mˇel z˚ustat nehybn´y.
Hlavn´ı ´uprava byla provedena v souborusoma.cpp, kde bylo nutn´e pozmˇenit k´od v me-todˇedoStep(). Tato metoda se stala c´ılem zmˇen i pro ostatn´ı strategie. Oproti All To One pˇribyla v tomto pˇr´ıpadˇe promˇenn´a id_target, kter´a reprezentuje n´asledovan´eho jedince. Do n´ı je kaˇzd´e kolo ukl´ad´ana n´ahodn´a hodnota v rozmez´ı poˇctu jedinc˚u. N´asledov´an je tak kaˇzd´e kolo n´ahodnˇe vybran´y jedinec.
Strategie All TO All Adaptive vyˇzadovala ´upravu ve stejn´e metodˇe, aˇckoliv v´yraznˇe sloˇzitˇejˇs´ı. Pro tento pˇr´ıpad bylo nutn´e pˇridat dalˇs´ı cykl tak, aby kaˇzd´y jedinec n´asledoval
po-jin´eho, ale v tomto pˇr´ıpadˇe kaˇzd´y z nich jako by prov´adˇel nˇekolik migraˇcn´ıch kol s´am za sebe. Nakonec se pˇresune na nejlepˇs´ı nalezenou polohu. Upraveno je tak´e st´arnut´ı jedince a to tak, aby vˇek pˇrib´yval po cel´e s´erii migrac´ı, jinak by mohlo doch´azet aˇz k nˇekolik´emu ´
umrt´ı jedince bˇehem jedin´eho migraˇcn´ıho kola.
All to All pˇrinesla kupodivu sloˇzitˇejˇs´ı ´upravy k´odu neˇz jej´ı sestersk´a strategie All To All Adaptive. Hlavn´ı zmˇenou oproti n´ı je nutnost ukl´ad´an´ı si hodnot nejlepˇs´ıch jedinc˚u na dosud proˇsl´ych pozic´ıch (obr.3.6), aby bylo v˚ubec moˇzn´e realizovat posledn´ı krok – pˇresun jedince na pozici.
K uchov´an´ı hodnot byla na pole upravena promˇenn´apomBestInd.
Posledn´ı implementovanou strategi´ı je All To Elite, kde bylo nutn´e zav´est ukl´ad´an´ı nej-lepˇs´ıch jedinc˚u do obousmˇernˇe pˇr´ıstupn´e fronty. V naˇsem pˇr´ıpadˇe je to:
deque<unsigned long> bestID
V metodˇedoStep()je provedena zmˇena tak, aby byl pˇred kaˇzd´ym pohybem jedince, zvolen n´ahodnˇe vybran´y ˇclen elity, kter´y bude v z´apˇet´ı n´asledov´an. Samozˇrejmost´ı je kontrola, zda jedinec nebude n´asledovat s´am sebe. Po nalezen´ı nov´eho um´ıstˇen´ı, je zjiˇstˇeno, zda jedinec nem´a lepˇs´ı hodnotu neˇz aktu´aln´ı nejslabˇs´ı elitn´ı ˇclen. Je-li tomu tak, je jedinec postupnˇe porovn´av´an s ˇcleny bestID, dokud nen´ı nalezen elitn´ı jedinec jehoˇz hodnota je vyˇsˇs´ı nebo nen´ı dosaˇzeno konce. Pot´e je kandid´at zaˇrazen na ´ukor nejslabˇs´ıho jedince do elity.
Z´asahy bylo v tomto pˇr´ıpadˇe nutn´e prov´est i do dalˇs´ıch metod, kv˚uli inicializaci, reini-cializaci a destrukci objektu SOMA.
Kapitola 5
Experimenty
Na SOMA byly provedeny s´erie test˚u zamˇeˇren´e na z´ısk´an´ı m´ıry ´uspˇeˇsnosti pˇri ˇreˇsen´ı funkc´ı generovan´ych pomoc´ı Moving Peaks Benchmark. V´ysledn´ymi hodnotami byl jednak offline error a tak´e m´ıra ´uspˇeˇsnosti nalezen´ı spr´avn´eho vrcholu – success rate. Testov´any byly strategie All To One a All To Elite.
Pro testov´an´ı byly pevnˇe nastaveny nastaveny tyto parametry: • Nastaven´ı programu Moving Peaks Benchmark
– poˇcet vrchol˚u: 10
– pohyb vrcholu pˇri zmˇenˇe funkce: 1,0
– poˇcet rozmˇer˚u: 5
– m´ıra zmˇeny v´yˇsky vrchol˚u: 1,0
– m´ıra zmˇeny ˇs´ıˇrky vrchol˚u: 0,01
– hranice plochy pro vˇsechny rozmˇery:h0,0; 100,0i
– rozmez´ı v´yˇsek vytvoˇren´ych vrchol˚u: h30,0; 70,0i
– standardn´ı v´yˇska vrcholu je tvoˇrena n´ahodnˇe
– rozmez´ı ˇs´ıˇrek vytvoˇren´ych vrchol˚u:h1,0; 12,0i
– standardn´ı ˇs´ıˇrka vrcholu je tvoˇrena n´ahodnˇe
– poˇcet vyhodnocen´ı funkce pˇred zmˇenou funkce nastaven na 0, zmˇena je prov´ a-dˇena ruˇcnˇe vol´an´ım change_peaks
• Nastaven´ı programu SOMA
– PathLength: 2,8
– Step: P athLength/(20,0·1,1)= 0. ,127
– poˇcet jedinc˚u: 25-kr´at poˇcet rozmˇer˚u
– m´ıra pertubace: 0,7
– maxim´aln´ı vˇek jedince: 7 • Dalˇs´ı nastaven´ı
Poˇcet vyhodnocen´ı funkce m˚uˇze dosahovat o nˇeco vyˇsˇs´ıch hodnot, protoˇze algoritmus vˇzdy dokonˇc´ı celou migraci.
Kaˇzd´y ˇr´adek v tabulce byl z´ısk´an v´ypoˇctem hodnot jednoho sta bˇeh˚u algoritmu. Hod-nota uveden´a v z´avork´ach je standardn´ı odchylka.
Z tabulek je vidˇet, ˇze hodnoty offline error dosahuj´ı i pˇri mal´em mnoˇzstv´ı vrchol˚u velk´ych hodnotov´ych v´ykyv˚u. Vysvˇetlen´ım je v takov´em pˇr´ıpadˇe to, ˇze tvar funkce se ˇcasto mˇen´ı uprostˇred migraˇcn´ıho kola a v´ypoˇcty ˇc´asti jedinc˚u tak z´ıskaj´ı hodnoty, kter´e uˇz nejsou spr´avn´e. V takov´em pˇr´ıpadˇe velikost chyby velice brzy stoupne do nepˇr´ıjemnˇe vysok´ych hodnot. Tento probl´em zat´ım nen´ı moˇzn´e uspokojivˇe ˇreˇsit.
5.1
All To One
Tato s´erie test˚u byla zamˇeˇrena na chov´an´ı algoritmu SOMA se strategi´ı prohled´av´an´ı All To One.
V tabulce5.1byl poˇc´ıt´an offline error a success rate pro 1, 2, 3, 5, 8 a 10 rozmˇer˚u. Poˇcet vrchol˚u byl fixnˇe nastaven na 10 a m´ıra pohybu vrcholu byla 1,0.
Poˇcet rozmˇer˚u Offline error Success rate 1 0,32 (0,02) 0,96 (0,01) 2 0,87 (0,04) 0,48 (0,03) 3 3,16 (1,76) 0,82 (0,21) 5 6,48 (5,53) 0,65 (0,20) 8 2,88 (3,01) 0,89 (0,21) 10 51,42 (19,6) 0,25 (0,00)
Tabulka 5.1: All To One – mˇen´ıc´ı se poˇcet rozmˇer˚u
Jak je z v´ysledk˚u vidˇet, s rostouc´ım poˇctem rozmˇer˚u n´ahle prudce roste chyba. Poˇcet jedinc˚u totiˇz roste ´umˇernˇe s mnoˇzstv´ım rozmˇer˚u a t´ım p´adem stoup´a i poˇcet evaluac´ı ´uˇcelov´e funkce kaˇzd´e migraˇcn´ı kolo.
Pˇri deseti rozmˇerech jiˇz poˇcet evaluac´ı ´uˇcelov´e funkce bˇehem jedn´e migrace pˇres´ahne 5000, coˇz je hodnota, kdy se mˇen´ı tvar ´uˇcelov´e funkce. Bˇehem kaˇzd´e migrace tak dojde ke zmˇenˇe jej´ıho tvaru, coˇz se negativnˇe odraz´ı na v´ysledc´ıch. Poˇcet evaluac´ı za jedno kolo pro tento pˇr´ıpad vypoˇcteme pomoc´ı vzorce:
(N P −1)·P athLength Step ,
kde N P znamen´a poˇcet jedinc˚u. Jakmile dosad´ıme pouˇzit´e hodnoty pro 10 rozmˇer˚u dostaneme:
(250−1)·2,8 0,127
.
= 5490,
V pˇr´ıpadˇe v´ypoˇctu s 8 rozmˇery vych´az´ı v´ysledek zhruba 4390, coˇz znamen´a, ˇze bˇehem migrace nedoch´az´ı vˇzdy ke zmˇenˇe tvaru ´uˇcelov´e funkce.
Pro v´ıce neˇz deset rozmˇer˚u je proto jiˇz navrˇzen jin´y vzorec pro v´ypoˇcet poˇctu jedinc˚u:
kde dimodpov´ıd´a poˇctu rozmˇer˚u funkce. Pomoc´ı tohoto vzorce pˇrib´yv´a s kaˇzd´ym dalˇs´ım pˇridan´ym rozmˇerem pouze v´yraznˇe m´enˇe jedinc˚u. Tak se zabr´an´ı pˇr´ıliˇsn´emu n´ar˚ustu eva-luac´ı. Ukazuje se, ˇze pro tyto hodnoty mnoˇzstv´ı jedinc˚u jsou v´ysledky srovnateln´e [1].
V druh´e tabulce5.2se mˇenil poˇcet vrchol˚u v rozmez´ı 1 – 500, kdy uˇz bylo v´yraznˇe zn´at zpomalen´ı rychlosti v´ypoˇctu. Rozmˇer˚u bylo d´ano pevnˇe 5 a m´ıra pohybu vrcholu byla 1,0.
Poˇcet vrchol˚u Offline error Success rate 1 11,43 (8,48) 1,00 (0,00) 3 12,32 (6,47) 0,71 (0,34) 5 4,35 (3,39) 0,83 (0,15) 8 21,76 (6,07) 0,13 (0,29) 10 4,42 (3,54) 0,82 (0,17) 12 18,73 (6,31) 0,15 (0,16) 15 8,96 (4,56) 0,09 (0,09) 18 11,97 (3,55) 0,05 (0,10) 50 9,60 (0,24) 0,00 (0,01) 100 7,00 (1,75) 0,02 (0,02) 200 4,49 (1,64) 0,03 (0,01) 500 5,53 (1,28) 0,01 (0,01)
Tabulka 5.2: All To One – mˇen´ıc´ı se poˇcet vrchol˚u
Z v´ysledk˚u se d´a vypozorovat tendence poklesu offline error. Zat´ımco pˇri m´enˇe vrcholech maj´ı jedinci velkou pravdˇepodobnost um´ıstˇen´ı na ˇspatn´e pozici, s rostouc´ım mnoˇzstv´ım vrchol˚u se postupnˇe
”rod´ı“ na lepˇs´ıch pozic´ıch s ˇc´ım d´al vˇetˇs´ı pravdˇepodobnost´ı. Je vidˇet, ˇ
ze i poˇc´ateˇcn´ı rozkol´ısanost odchylky se sp´ıˇse urovn´av´a. Samozˇrejmˇe spolu s rostouc´ım mnoˇzstv´ım vrchol˚u kles´a pravdˇepodobnost, ˇze se jedinec pˇri sv´e cestˇe dostane na ten prav´y. Dalˇs´ım krit´eriem test˚u byla vzd´alenost, o kterou poskoˇcily vrcholy pˇri zmˇenˇe funkce. Hodnoty v tabulce5.3byly postupnˇe nastaveny na 1, 5, 10 a 50. V´ypoˇcet byl prov´adˇen pro 5 rozmˇer˚u a 10 vrchol˚u.
Velikost zmˇeny Offline error Success rate 1 5,39 (3,45) 0,70 (0,09) 5 11,98 (1,23) 0,72 (0,00) 10 22,43 (0,99) 0,72 (0,00) 50 50,01 (0,78) 0,53 (0,03)
Tabulka 5.3: All To One – zmˇena velikosti pohybu vrchol˚u
Zde je vidˇet, ˇze u jedinc˚u st´ale doch´az´ı k nahlouˇcen´ı, kter´e se projevuje pˇr´ımo ´umˇernˇe roustouc´ı m´ırou chybovosti. Pokud se vrchol pohne v´ıce, vetˇs´ımu mnoˇzstv´ı jedinc˚u klesne fitness funkce.
5.2
All To Elite
Dalˇs´ı sada obdobn´ych test˚u se zamˇeˇrila na strategii All To Elite. Tato strategie mˇela pevnˇe nastaveno deset elitn´ıch jedinc˚u. Jak je jiˇz vidˇet z n´asleduj´ıc´ıch tabulek, v´ysledky strategi´ı
Tabulka 5.4ukazuje v´ysledky pro 1, 2, 3, 5, 8 a 10 rozmˇer˚u.
V porovn´an´ı se strategi´ı All To One pˇrin´aˇs´ı hodnota offline error drobn´e zlepˇsen´ı. Na-proti tomu hodnoty success rate dosahuj´ı o nˇeco horˇs´ıch v´ysledk˚u. Vzhledem k povaze prohled´av´an´ı All To Elite se ovˇsem zhorˇsen´ı tˇechto hodnot dalo oˇcek´avat.
Poˇcet rozmˇer˚u Offline error Success rate 1 0,29 (0,02) 0,96 (0,01) 2 0,85 (0,03) 0,47 (0,01) 3 2,67 (1,26) 0,87 (0,13) 5 4,36 (1,00) 0,72 (0,02) 8 2,36 (1,27) 0,93 (0,10) 10 47,37 (19,91) 0,25 (0,00)
Tabulka 5.4: All To Elite – mˇen´ıc´ı se poˇcet rozmˇer˚u
Srovnateln´ych v´ysledk˚u se dos´ahlo i pˇri testov´an´ı se zmˇenou mnoˇzstv´ı vrchol˚u v tabulce
5.5. Hodnoty All To Elite sice vˇetˇsinou dosahuj´ı lepˇs´ıho offline error, nicm´enˇe ne vˇzdy. A jako v pˇr´ıpadˇe zmˇeny poˇctu rozmˇer˚u je hodnota success rate v porovn´an´ı se strategi´ı All To One o nˇeco horˇs´ı.
Poˇcet vrchol˚u Offline error Success rate 1 9,39 (5,35) 1,00 (0,00) 3 11,36 (6,28) 0,54 (0,36) 5 15,75 (4,30) 0,08 (0,19) 8 24,41 (6,39) 0,10 (0,29) 10 4,91 (3,20) 0,71 (0,07) 12 12,69 (2,03) 0,01 (0,01) 15 7,58 (1,95) 0,07 (0,08) 18 15,64 (2,78) 0,02 (0,07) 50 4,06 (0,07) 0,08 (0,01) 100 3,30 (0,30) 0,13 (0,02) 200 4,81 (1,04) 0,03 (0,03) 500 5,13 (0,79) 0,02 (0,01)
Tabulka 5.5: All To Elite – mˇen´ıc´ı se poˇcet vrchol˚u
I v pˇr´ıpadˇe porovn´av´an´ı podle velikosti skoku vrchol˚u (tabulka5.6) vyhr´av´a All To Elite na offline error pouze o mal´e rozd´ıly v hodnot´ach.
Velikost zmˇeny Offline error Success rate 1 4,55 (1,67) 0,72 (0,03) 5 10,54 (0,48) 0,72 (0,00) 10 18,78 (0,65) 0,72 (0,00) 50 48,90 (0,87) 0,54 (0,03)
Obr´azek 5.1: Graf offline error u strategi´ı All To One a All To Elite pro r˚uzn´y poˇcet rozmˇer˚u
Pˇresn´e v´ysledky jednotliv´ych experiment˚u, animace migrac´ı vˇsech uveden´ych strategi´ı a testy strategi´ı All To All/Random/Adaptive naleznete na pˇriloˇzen´em m´ediu.
Obr´azek 5.2: Graf offline error u strategi´ı All To One a All To Elite pro r˚uzn´y poˇcet vrchol˚u
Obr´azek 5.3: Graf offline error u strategi´ı All To One a All To Elite pro r˚uznou velikost skoku vrchol˚u
Kapitola 6
Z´
avˇ
er
Dalo by se ˇr´ıci, ˇze z testovan´ych strategi´ı vyˇsla l´epe All To Elite. Offline error v nal´ez´an´ı ˇreˇsen´ı pˇri zmˇenˇe poˇctu rozmˇer˚u vyˇsel v pr˚umˇeru o 14 procent l´epe neˇz u strategie All To One. Obdobn´eho ´uspˇechu bylo dosaˇzeno pˇri porovn´av´an´ı tˇechto strategi´ı pˇri zmˇenˇe velikosti skoku vrcholu. Zde vyˇsel All To Elite o necel´ych 12 procent l´epe. Zhorˇsen´ı oproti All To One vˇsak nastalo pˇri zmˇenˇe poˇctu vrchol˚u, kdy offline error All To Elite vyˇsel v pr˚umˇeru o 11 procent h˚uˇre.
Velk´a ˇc´ast s´ıly SOMA spoˇc´ıv´a v jej´ı jednoduchosti, kde prakticky v cel´em algorimu nen´ı nutn´e pouˇz´ıt operaci sloˇzitˇejˇs´ı neˇz n´asoben´ı a nen´ı tak snadn´e prov´adˇet ´upravy, kter´e by efektivitu algoritmu v´yraznˇe zv´yˇsily.
Patrnˇe by se dalo dos´ahnout dalˇs´ıho vylepˇsen´ı algoritmu pomoc´ı modifikace mnoˇzstv´ı elitn´ıch jedinc˚u v z´avislosti na poˇctu dimenz´ı, rozmˇerech plochy a mnoˇzstv´ı pouˇzit´ych jedinc˚u. Leˇc vzhledem k mnoˇzstv´ı parametr˚u nastaviteln´ych pro SOMA, nebylo zdaleka moˇzn´e prov´est vˇsechny testy, a proto v´ysledky nemusely vˇzdy dos´ahnout optim´aln´ıch hod-not.
Pravdou tak st´ale z˚ust´av´a tvrzen´ı v´aˇz´ıc´ı se k evoluˇcn´ım algoritm˚um zn´am´a jako ”no free lunch theorem“ [3]: V evoluˇcn´ıch algoritmech neexistuje takov´y, kter´y by byl scho-pen pod´avat nejlepˇs´ı v´ysledky ve vˇsech typech zadan´ych probl´em˚u. Specializace algoritmu s sebou pˇrinese zhorˇsen´ı pro jin´e typy ´ukol˚u.
Dalˇs´ı informace, vˇcetnˇe konkr´etn´ıch v´ysledk˚u test˚u, kter´e zde nemus´ı b´yt vˇsechny uve-deny, jsou obsaˇzeny na pˇriloˇzen´em m´ediu.
Literatura
[1] Michal Hlavinka. Diferenˇcn´ı evoluce pro dynamick´e probl´emy – Bakal´aˇrsk´a pr´ace. Vysok´e uˇcen´ı technick´e v Brnˇe - Fakulta informaˇcn´ıch technologi´ı, 2006.
[2] WWW str´anky. Str´anky vˇenovan´e moving peaks benchmark [cit. 2007-05-08]. http://www.aifb.uni-karlsruhe.de/∼jbr/MovPeaks/.
[3] WWW str´anky. Wikipedia – no free lunch in search and optimization [cit. 2007-05-08]. http://en.wikipedia.org/wiki/No free lunch in search and optimization. [4] WWW str´anky. Ivan Zelinka: Osobn´ı str´anky vˇenovan´e SOMA [cit. 2007-05-08].
http://www.ft.utb.cz/people/zelinka/soma/.
[5] Ivan Zelinka. Umˇel´a inteligence v probl´emech glob´aln´ı optimalizace. BEN – technick´a literatura, 2002. ISBN 80-73000-69-5.