vizualizacija procesov evolucijskega računanja - core.ac.uk · iii vizualizacija procesov...
TRANSCRIPT
Tadej Jerovšek
VIZUALIZACIJA PROCESOV
EVOLUCIJSKEGA RAČUNANJA
Magistrsko delo
Maribor, september 2016
VIZUALIZACIJA PROCESOV
EVOLUCIJSKEGA RAČUNANJA
Magistrsko delo
Študent: Tadej Jerovšek
Študijski program: študijski program 2. stopnje
Računalništvo in informacijske tehnologije
Mentor: doc. dr. Matej Črepinšek
Lektorica: Jana Padežnik Gomilšek, prof. dr.
II
ZAHVALA
Zahvaljujem se mentorju doc. dr. Mateju
Črepinšku za pomoč in vodenje pri
opravljanju magistrskega dela.
Posebna zahvala velja mami, ki mi je
omogočila želeni študij ter me pri njem
podpirala in spodbujala.
III
VIZUALIZACIJA PROCESOV EVOLUCIJSKEGA
RAČUNANJA
Ključne besede: evolucijski algoritmi, večkriterijska optimizacija,
vizualizacija informacij, primerjava evolucijskih algoritmov, Pareto
dominiranost
UDK: 004.421.2:519.863(043.2)
Povzetek
V tem magistrskem delu se ukvarjamo z vizualizacijo procesov evolucijskih
algoritmov in interpretacijo le-teh. Najpogosteje uporabljene metode za
primerjavo evolucijskih algoritmov imajo težave že pri oceni algoritmov,
samega delovanja algoritmov pa ne upoštevajo. Najprej smo podrobneje
pogledali razvoj statističnih metod, kaj nudijo in kje kažejo pomanjkljivosti.
Pod drobnogled smo vzeli enokriterijsko in večkriterijsko optimizacijo in jo z
uporabo metod vizualizacije informacij predstavili ter interpretirali prednosti
in slabosti posameznih algoritmov in problemov, pri čemer smo za temelj
uporabili sistem EARS.
IV
VISUALIZATION OF EVOLUTIONARY COMPUTATION
PROCESSES
Key words: evolutionary algorithms, multi-criteria optimization,
information visualization, evolutionary algorithm comparisson, Pareto
dominance
UDK: 004.421.2:519.863(043.2)
Abstract
In this thesis we deal with the visualization of evolutionary processes and its
interpretation. Commonly used methods for comparison of evolutionary
algorithms have difficulties with rating algorithms, while how they actually
work is never taken into account. First we take a closer look at the benefits and
shortcomings of statistical methods. We also take a detailed look of single-
criteria and multi-criteria optimization and with the use of information
visualization methods present advantages and weaknesses of individual
algorithms and problems, for which we used the EARS system.
V
KAZALO VSEBINE
1 UVOD ................................................................................................................... 1
2 EVOLUCIJSKI ALGORITMI .............................................................................. 3
2.1 Ozadje ............................................................................................................ 3
2.1.1 Eksploracija ali eksploatacija?................................................................ 5
2.1.2 Elitizem ................................................................................................... 5
2.1.3 Algoritmi s spremenljivo populacijo ...................................................... 6
2.2 Enokriterijska optimizacija ............................................................................ 7
2.3 Večkriterijska optimizacija ............................................................................ 8
2.3.1 Pareto dominanca ................................................................................. 10
3 PRIMERJAVA EVOLUCIJSKIH ALGORITMOV .......................................... 13
3.1 No free lunch teorem ................................................................................... 13
3.2 Ničelna hipoteza .......................................................................................... 13
3.2.1 Testiranje ničelne hipoteze ................................................................... 14
3.2.2 Težave testiranja ničelne hipoteze ........................................................ 15
3.3 Šahovski sistem ocenjevanja ....................................................................... 16
3.3.1 Sistem Elo ............................................................................................. 16
3.3.2 Sistem Glicko ....................................................................................... 18
3.3.3 Sistem Glicko-2 .................................................................................... 19
3.3.4 CRS4EA ............................................................................................... 22
4 OGRODJE EARS ............................................................................................... 24
4.1 Implementacija ............................................................................................. 24
4.1.1 Kontekst in načrtovanje ....................................................................... 24
4.1.2 Izvedba ovrednotenja algoritma ........................................................... 25
4.1.3 Analiza in predstavitev rezultatov ........................................................ 26
VI
4.1.4 Interpretacija rezultatov ........................................................................ 27
4.2 Podpora za algoritme večkriterijske optimizacije ........................................ 28
4.2.1 Kasnejša artikulacija informacije o preferencah .................................. 29
4.2.2 Generacijska razdalja ............................................................................ 30
4.2.3 Obrnjena generacijska razdalja ............................................................. 31
4.2.4 Indikator HV ......................................................................................... 31
4.2.5 -indikator ............................................................................................ 32
5 PREGLED OBSTOJEČIH METOD VIZUALIZACIJE .................................... 33
5.1 Potek evolucije algoritma ............................................................................ 34
5.2 Stanje v trenutku evolucije .......................................................................... 38
5.3 Večdimenzionalna predstavitev ................................................................... 41
6 VIZUALIZACIJA V OGRODJU EARS ............................................................ 57
6.1 Tehnične podrobnosti in omejitve ............................................................... 57
6.2 Vizualizacija enokriterijske optimizacije ..................................................... 61
6.2.1 Možnosti s strani uporabnika ................................................................ 61
6.2.2 Implementacija ..................................................................................... 64
6.2.3 Primeri interpretacije ............................................................................ 66
6.3 Vizualizacija večkriterijske optimizacije ..................................................... 70
6.3.1 Možnosti ............................................................................................... 70
6.3.2 Tehnične podrobnosti prikazov ............................................................ 73
6.3.3 Primer interpretacije ............................................................................. 75
7 DISKUSIJA IN ZAKLJUČEK ........................................................................... 81
8 LITERATURA .................................................................................................... 82
VII
KAZALO SLIK
Slika 2.1: Psevdokod evolucijskih algoritmov [18]. .................................................... 4
Slika 2.2: Načini reševanja problemov večkriterijske optimizacije [30]. ................... 10
Slika 4.1: Potek primerjanja v ogrodju EARS [27]. ................................................... 26
Slika 4.2: Intervali, ki 99,7 % zanesljivo vsebujejo resnično oceno [27]................... 27
Slika 4.3: Znatne razlike, zaznane s CRS4EA, interval zanesljivosti ocene 99,7
% [27]. ................................................................................................................. 28
Slika 4.4: Nasprotujoča cilja po metodah kasnejše artikulacije preferenc [23].......... 30
Slika 4.5: Primer izračuna hipervolumna rešitve večkriterijske optimizacije [1]. ..... 32
Slika 5.1: Graf optimalnih posameznikov v posameznih generacijah [20]. ............... 34
Slika 5.2: Graf optimuma z dodanim povprečjem in standardnim odklonom v
posameznih generacijah [20]. .............................................................................. 35
Slika 5.3: Graf migracijskega/regionalnega modela. Vsaka krivulja prikazuje
svojo podpopulacijo. ........................................................................................... 36
Slika 5.4: Prikazi lastnosti optimalnih posameznikov tekom evolucijskega
procesa. ................................................................................................................ 37
Slika 5.5: Prikaz uspešnosti vseh posameznikov tekom evolucijskega procesa:
Osnovni prikaz (levo), regionalni model (sredina), lokalni model(desno)
[20]. ..................................................................................................................... 38
Slika 5.6: Prikaz ciljnih vrednosti vseh posameznikov ene generacije: točkovni
graf (levo), stopničast graf (sredina) in barvni graf za dvodimenzionalni
lokalni model (desno) [20]. ................................................................................. 39
Slika 5.7: Sekvenca prikazov porazdelitev odločitvenih spremenljivk po
generacijah: začetek optimizacije (levo), med optimizacijo (sredina) in na
koncu (desno) [20]. .............................................................................................. 40
Slika 5.8: Razdalje med posamezniki v generaciji: globalni/regionalni model
(levo), enodimenzionalni lokalni model (sredina), dvodimenzionalni
lokalni model (desno) [20]. ................................................................................. 40
Slika 5.9: Rosenbrockova funkcija s tremi dimenzijami. Optimalne vrednosti,
modri pas, so razlog za njeno drugo ime "banana function". .............................. 43
VIII
Slika 5.10: Primeri večdimenzionalnega skaliranja z uporabo metode
SAMMON [20]. .................................................................................................. 43
Slika 5.11: Raztrosni grafi za prikaz večdimenzionalnega prostora [26]. .................. 44
Slika 5.12: Mehurčni graf z uporabo velikosti točk za dodatno dimenzijo [26]. ....... 45
Slika 5.13: Vizualizacija štirih dimenzij z uporabo radialnih koordinat [26]. ........... 46
Slika 5.14: Uporaba paralelnih koordinat za vizualizacijo štiri dimenzionalnih
vektorjev [26]. ..................................................................................................... 46
Slika 5.15: Heatmap za optimizacijo štirih kriterijev [26]. ........................................ 47
Slika 5.16: Primer izkrivljenosti oblike linearne funkcije pri vizualizaciji z
neuroscale [26]. ................................................................................................... 48
Slika 5.17: Uporaba samo-organizirajočih nevronskih mrež. Barva prikazuje
oddaljenost med nevroni oziroma vektorji kriterijev [26]. .................................. 48
Slika 5.18: Rezultat PCA nad linearno in sferično funkcijo [26]. .............................. 49
Slika 5.19: Graf razdalj (zgoraj) in graf porazdelitve (spodaj) za linearno
(zeleno) in sferično (modro) funkcijo [26]. ......................................................... 50
Slika 5.20: Prikaz interaktivnih odločitev za linearno (levo) in sferično funkcijo
(desno), kjer je četrti kriterij podan v obliki interaktivne izbire [26]. ................. 51
Slika 5.21: Prikaz za štetje diagonal v hiperprostoru [26]. ......................................... 52
Slika 5.22: Dvo stopenjska preslikava linearne in sferične funkcije [26]. ................. 53
Slika 5.23: Primer izračunanega 3D negativa aproksimacijske množice z
uporabo cuboidov [26]. ....................................................................................... 53
Slika 5.24: Primer rezanja prostora z ravnino [26]. .................................................... 54
Slika 5.25: Prikaz cuboidov linearne in sferične funkcije z uporabo rezanja
[26]. ..................................................................................................................... 55
Slika 5.26: Vizualizacije linearne in sferične funkcije oziroma njune razlike
(linearna - sferična (levo), sferična - linearna (desno)) z uporabo cuboidov
in prikazom MIP (zgoraj) in DVR (spodaj) [26]. ................................................ 56
Slika 6.1: PSO-jevo reševanje Easom problema. Prikaz zanimivih vrednosti:
najslabše (rdeče), najboljše (zeleno), povprečje (modro) in standardni
odklon (oranžno). ................................................................................................ 62
IX
Slika 6.2: Združen graf reševanja problema Easom za 5 algoritmov. Črte s
točkami predstavljajo povprečja, črtkane črte prikazujejo standardni
odklon. ................................................................................................................. 63
Slika 6.3: Sivinski prikaz za RandomWalk pri reševanju problema Easom
(levo) in združeni prikazi algoritmov (desno). .................................................... 64
Slika 6.4: Zgodnja implementacija vizualizacije algoritma TLBO nad
problemom Ackley. Razvidna je nerealna poskakovanja fitnessa zaradi
nezaznavanja elitizma. ......................................................................................... 65
Slika 6.5: Vizualizacije evolucijskih procesov vseh algoritmov nad
posameznimi enokriterijskimi problemi: Ackley (levo zgoraj), Branin
(desno zgoraj), Easom (spodaj levo) in Rastrigin (desno spodaj). ...................... 67
Slika 6.6: Podrobnejši vpogled v evolucijska procesa algoritmov PSO in
TLBO. .................................................................................................................. 69
Slika 6.7: Optimizacija Schweflove funcije (levo), vsak algoritem se izkaže
različno odpornega na lokalne minimume, vendar noben ne doseže
globalnega minimuma, ter optimizacija problema Sphere, kjer se TLBO-
jev korak eksploracije izkaže za odvečnega. ....................................................... 70
Slika 6.8: Slika 58. intervala v animiranem prikazu reševanja večkriterijskega
problema 3 s strani NSGAII. ............................................................................... 72
Slika 6.9: Primerjava nepribližanega (levo) in približanega (desno) prikaza
večkriterijske optimizacije................................................................................... 73
Slika 6.10: Primer hipervolumna oziroma dominiranega prostora pri treh
kriterijih. .............................................................................................................. 74
Slika 6.11: Dvodimenzionalni prikaz trikriterijskega problema 9. Jasno so
razvidni kolobarji, ki nastanejo zaradi razlik po tretjem (neprikazanem)
kriteriju, ki si ga lahko predstavljamo kot globino slike. .................................... 75
Slika 6.12: Primeri štirih končnih Pareto front v turnirju algoritmov MOEAD,
NSGAII, PESAII, SPEA2 in PAES nad problemom 7. ...................................... 76
Slika 6.13: Ključni trenutki MOEAD pri problemu 7: Začetno preiskovanje
(interval 3/75), začetek gnetenja rešitev okrog predvidevanih gruč
optimumov (interval 14/75), zadnja vidna izboljšava (interval 68/75). ............. 78
X
Slika 6.14: Evolucijski proces NSGAII nad problemom 7: Začetno
preiskovanje prostora (interval 6/75), postopen začetek gručenja rešitev
okrog optimalnih točk po obeh kriterijih (interval 10/75), izoblikovanje
"linij" rešitev, pravokotno na končne gruče optimiziranih točk (interval
51/75). .................................................................................................................. 78
Slika 6.15: Primer PESAII pri problemu 7: Začetek preiskovanja (interval
1/75), začetki preiskovanja v obliki eliptičnih struktur rešitev (interval
17/75), najboljši primer izoblikovanih stuktur (interval 56/75). ......................... 79
Slika 6.16: SPEA2 reševanje problema 7: Zaključki preiskovanja celotnega
prostora (interval 7/75), začetek gneče v gručah optimumov (interval
14/75), oblikovanje eliptičnih struktur tekom preiskovanja (interval 20/75). ..... 79
Slika 6.17: Reševanje algoritma PAES nad problemom 7: Dokončni preklop iz
optimizacije ene gruče na raziskovanje nove gruče (Intervali: 7, 8, 9 / 75). ....... 80
KAZALO TABEL
Tabela 3.1: Delitev testov za testiranje ničelne hipoteze glede na število
vrednotenih algoritmov in tip podatkov. ............................................................. 15
Tabela 6.1: Končne ocene turnirja enokriterijskih optimizacijskih problemov
pri 50 neodvisnih zagonih. .................................................................................. 66
Tabela 6.2: Rezultati turnirjev večkriterijske optimizacije pri 10 neodvisnih
zagonih. ............................................................................................................... 75
XI
SEZNAM UPORABLJENIH KRATIC IN SIMBOLOV
ABC Artificial Bee Colony
ACBL American Contact Bridge League
CRS4EA Chess Rating System for Evolutionary Algorithms
CSV Comma-Separated Values
DVR Direct Volume Rendering
EARS Evolutionary Algorithm Rating System
ES Evolutionary Strategy
GD Generational Distance
GIF Graphics Interchange Format
HV Hypervolume
IDM Interactive Decision Maps
IGD Inverted Generational Distance
MIP Maximum Intensity Projection
MOEA Multi-objective Evolutionary Algorithms
MOEAD Multi-objective Evolutionary Algorithm based on decomposition
NFL No Free Lunch theorem
NSGA Elitist non-Dominated sorting Genetic Algorithm
PAES Pareto Archived Evolution Strategy
PCA Principal Component Analysis
PESA Pareto Envelope-Based Selection Algorithm
PNG Portable Network Graphics
PSO Particle Swarm Optimization
RD Rating Deviation
RPROP Resilient Backpropagation
RWS Random Walk Strategy
SPEA Strength Pareto Evolutionary Algorithm
TLBO Teaching-Learning-Based optimization
Vizualizacija procesov evolucijskega računanja Stran 1
1 UVOD
Evolucijski algoritmi niso najnovejši pristop, vseeno pa sta razumevanje in primerjava
posameznih algoritmov še vedno slabo definirana. Večina člankov s tega področja
predstavlja svoje algoritme kot najboljše, pri čemer je podana le primerjava končnih
rezultatov, njihovi pogoji (parametri) so slabo definirani, ali pa sploh niso.
Za boljše razumevanje algoritmov je potrebno prikazati njihov potek na enostaven, človeku
naraven način. To lahko dosežemo s statistiko in grafi. Pomembno je omogočiti vpogled v
konvergenco proti rešitvi skozi čas, raznolikost populacije v posameznih iteracijah
algoritma, prikaz napredka večkriterijskih optimizacij, na primer animirano približevanje
Pareto fronti in podobne dejavnike.
Prav tako je dobro, če lahko algoritem oziroma problem tudi grafično prikažemo in s tem
pojasniti, zakaj je bolj preprost ali zahteven za optimizacijo. Posamezni problemi imajo
namreč različne lastnosti, različno število in postavitev lokalnih in globalnih minimumov.
Trenutno se namreč za težavnost problema pri komuniciranju uporablja le ime problema in
posameznikove predhodne izkušnje z njim.
V magistrskem delu smo si za cilj zadali nadgradnjo obstoječega ogrodja EARS,
(Evolutionary Algorithm Rating System), ki je namenjeno razvoju in ovrednotenju
evolucijskih algoritmov. Dodali smo mu možnosti vizualizacije enokriterijske, pa tudi
večkriterijske optimizacije. Rezultat našega dela je razširjen sistem, narejen z minimalnimi
posegi v kodo obstoječega sistema, ki uporablja knjižnico JavaPlot, oziroma gnuPlot, in je
zmožen grafično vizualizirati evolucijske procese, ki potekajo v ogrodju EARS.
Magistrsko delo je sestavljeno iz sedmih poglavij in poglavja z uporabljeno literaturo. Po
uvodu sledi poglavje, kjer so na kratko predstavljene osnove evolucijskih sistemov in
pojmi, potrebni v nadaljevanju. V tretjem poglavju so predstavljeni obstoječi sistemi
obstoječe sisteme za primerjavo evolucijskih algoritmov. Vsi temeljijo na številski
predstavitvi, dodatno so opisani tudi njihovi zametki. Ogrodje EARS, ki je temelj našega
dela, je podrobneje predstavljeno v četrtem poglavju. V petem poglavju so prikazane
obstoječe oziroma predlagane metode vizualizacije podatkov evolucijskih algoritmov.
Naše delo, vizualizacija evolucijskih procesov v ogrodju EARS, je podrobno opisano v
šestem poglavju. Pri tej vizualizaciji je z JavaPlot najprej predstavljena enokriterijska
Vizualizacija procesov evolucijskega računanja Stran 2
optimizacija, na koncu pa še večkriterijska. Sedmo poglavje je namenjeno diskusiji
oziroma zaključku, kjer na kratko povzamemo implementirano vizualizacijo, ter
predlogom, kako bi jo lahko še dodatno nadgradili in izboljšali. V zadnjem, to je osmem
poglavju, je navedena vsa literatura, ki smo jo uporabili pri nastanku tega magistrskega
dela.
Vizualizacija procesov evolucijskega računanja Stran 3
2 EVOLUCIJSKI ALGORITMI
V poglavju so predstavljeni osnovni koncepti in terminologija evolucijskih algoritmov, ki
jih bomo potrebovali v nadaljnjih poglavjih, v nadaljevanju je predstavljena enokriterijska
optimizacija z evolucijskimi algoritmi, na koncu še predstavimo večkriterijsko
optimizacijo in koncept Pareto fronte.
2.1 Ozadje
Evolucija je v osnovi dvostopenjski proces, kjer posameznike razlikujemo glede na njihov
odziv v podanem okolju in jih glede nanj izbiramo. Osebki z nezaželenim (neprimernim)
odzivom odmrejo, ostali pa se razmnožujejo, pri čemer prenesejo svoje genske lastnosti (v
tem primeru odzive) na potomce. Pri tem je pomembna možnost napake pri reprodukciji.
Ta vnaša nove, nepredvidljive lastnosti. Ta proces se nato iterira [8].
V zadnjih štiridesetih letih so na področju računalništva vse bolj zanimivi sistemi, ki
temeljijo na evoluciji in dedovanju. Značilnosti teh so, da imajo - tako kot biološka bitja v
naravi - populacijo, način izbiranja boljših oziroma selekcijo in načine za napredovanje
vrste oziroma evolucijske operatorje [18].
Ti sistemi se delijo na več podzvrsti glede na problem, ki ga rešujejo, oziroma glede na
predstavitev rešitev. Primeri so [18]:
evolucijske strategije (ang. evolutionary strategies),
evolucijsko programiranje (evolutionary programming),
genetski algoritmi (ang. genetic algorithms),
genetsko programiranje (ang. genetic programming) in
klasifikatorski sistemi (ang. classifier systems).
Za vse podskupine se je uveljavilo skupno ime: evolucijski algoritmi oziroma pogosto tudi
evolucijsko računanje [16].
Evolucijski algoritmi so verjetnostni algoritmi (ang. probabilistic algorithms), ki imajo
populacijo posameznikov oziroma primerkov rešitev
za vsako iteracijo
Vizualizacija procesov evolucijskega računanja Stran 4
izvajanja t. Vsak posameznik predstavlja možno rešitev in je v večini primerov
implementiran kot podatkovna struktura S [18].
Vsaka rešitev v populaciji se ovrednoti, s čimer ji pripišemo oceno ustreznosti rešitve,
oziroma ji določimo funkcijo uspešnosti (fitness). Naslednji korak je izgradnja nove
populacije (iteracija t + 1) z izbiro najboljših posameznikov (selekcije). Algoritem te
posameznike spremeni z uporabo evolucijskih operatorjev, to je funkcij, ki posameznike
mutirajo ali križajo s ciljem nadaljnjega raziskovanja prostora rešitev. Mutacija (ang.
mutation) je unarni operator, ki naredi majhno spremembo v posamezniku, s čimer
preiskuje bližino dobrih rešitev ( ). Drugi splošni evolucijski operator je križanje
(ang. crossover). Ta operator je zelo odvisen od predstavitve rešitve - podatkovne
strukture, vendar splošno velja, da algoritem vzame dve ali več rešitev in pomeša njihove
dele ( ), s čimer upamo, da bomo uspeli združiti dobre dele rešitev. Po
več iteracijah algoritma oziroma generacijah rešitev konvergira k optimumu. Pri tem
obstaja nevarnost lokalnih optimumov, ki niso zaželeni, saj se lahko iskanje pri njih
zaključi. Robustnost oziroma odpornost na takšne primere se med algoritmi razlikuje [18].
Vse evolucijske algoritme lahko posplošimo na sledeči psevdokod (Slika 2.1):
Slika 2.1: Psevdokod evolucijskih algoritmov [18].
Vizualizacija procesov evolucijskega računanja Stran 5
2.1.1 Eksploracija ali eksploatacija?
Evolucijski algoritmi se razlikujejo v implementaciji posameznih korakov, najpogosteje pri
selekciji in uporabi evolucijskih operatorjev, s čimer dosegajo različne načine
preiskovanja. Pri tem govorimo o razmerju med raziskovanjem neznanega prostora
oziroma eksploraciji (ang. exploration) in izrabljanju informacij znanih dobrih rešitev
oziroma eksploataciji (ang. exploitation) [16].
Primer je algoritem simuliranega ohlajanja (ang. simulated annealing). Pri tem
preiskovanje prostora vodi parameter za temperaturo T, kjer začetna visoka vrednost
določa pomembnost eksploracije v primerjavi eksploatacije. Pri nizki začetni vrednosti bo
algoritem omejen na izkoriščanje obstoječih rešitev, namesto da bi iskal rešitve v
neraziskanem prostoru rešitev. Pri previsoki začetni temperaturi bo algoritem potreboval
preveč časa, oziroma ovrednotenj, da bo konvergiral k dobri rešitvi. S tem zanemari
eksploatacijo, eksploracija, ki zagotavlja raznolikost rešitev, pa je prekomerno uporabljena.
Drugi parameter je faktor ohlajanja , ki nadzoruje hitrost konvergence. Z vsako
iteracijo se temperatura ohladi, s čimer se znižuje pomembnost eksploracije in zvišuje
pomembnost eksploatacije [25].
2.1.2 Elitizem
Pri evolucijskih algoritmih je pomemben tudi koncept elitizma. Brez njega obstaja
nevarnost, da bi pri kateri generaciji evolucijski operatorji ustvarili le slabše posameznike,
s čimer bi izgubili do takrat najboljši rezultat. Če algoritem križa dve najboljši rešitvi, ni
nobenega zagotovila, da bo potomec v naslednji generaciji boljši ali vsaj enako dober,
bomo pa pri tem izgubili predhodni rešitvi, ker sta bila predstavnika prejšnje generacije.
Cilj je torej pridobiti nove dobre posameznike, ki nastanejo s križanjem, vendar tudi
obdržati najboljše posameznike v trenutni populaciji. Rešitev je, da obdržimo del dobrih
rešitev iz prejšnje generacije. To idejo je najprej predstavil De Jong leta 1975 in jo
poimenoval elitizem. Koncept je možno implementirati na več načinov [25]:
1) Za novo generacijo ustvarimo le pop_size - elite novih posameznikov, kjer je
pop_size velikost populacije in elite število elitnih posameznikov. Tako populacijo
nove generacije začnemo polniti z novimi rešitvami in dopolnimo z najboljšimi
predstavniki stare.
Vizualizacija procesov evolucijskega računanja Stran 6
2) Ustvarimo lahko pop_size novih rešitev, nakar najslabše rešitve v novi generaciji
zamenjamo z elite najboljšimi rešitvami iz predhodne generacije. V praksi se ta
pristop izkaže za boljšega od prejšnjega, vendar potrebuje dodatni korak sortiranja.
3) Možna je tudi nedeterministična izvedba elitizma. Primer tega je, da generiramo
pop_size novih rešitev, nakar z žrebanjem z invertirano ruleto izberemo elite
posameznikov, kjer imajo slabši posamezniki večjo možnost, da jih zamenjamo z
najboljšimi predstavniki iz prejšnje generacije.
4) Možne so tudi drugačne izvedbe.
2.1.3 Algoritmi s spremenljivo populacijo
Velikost populacije je eden izmed pomembnejših krmilnih parametrov evolucijskega
algoritma. Algoritmi pri manjših populacijah prehitro konvergirajo in končajo v lokalnem
optimumu. Velika populacija prav tako ne reši težav, saj upočasni konvergiranje in
sistemska sredstva. Velikost populacije tako neposredno vpliva na raznolikost populacije
(population diversity) in na pritisk selekcije [16].
V osnovi imajo evolucijski algoritmi vnaprej predpisano velikost populacije. Za nas so
zanimivi adaptivni algoritmi, ki imajo v različnih obdobjih evolucijskega procesa različne
velikosti populacij. To pomeni, da se krmilni parametri algoritma tekom evolucije
prilagajajo trenutnemu stanju [16].
Za primer lahko predpostavimo, da na začetku izvajanja z algoritmom želimo na grobo
preiskati čim večji del prostora rešitev, za kar je potrebna čim večja populacija. Med
izvajanjem algoritma, ko želimo začeti konvergirati k rešitvi, začnemo zmanjševati
velikost populacije, s čimer manjšamo število slabih rešitev oziroma povečujemo
selekcijski pritisk in s tem pohitrimo izbor najboljše rešitve. S tem začnemo prehajati iz
eksploracije v eksploatacijo [16]. Prav tako se s spremenljivo populacijo uravnavata dve
pomembni lastnosti evolucijskega algoritma: raznolikost populacije (ang. population
diversity), ki predstavlja pokritost prostora rešitev s strani populacije oziroma raznolikost
rešitev, in selekcijski pritisk (ang. selective pressure), ki sili izbor nove generacije k
lokalnemu ali globalnemu optimumu [18].
Drugi primer spremenljive populacije je vpeljava koncepta staranja populacije, ki zamenja
koncept selekcije. Ta izhaja iz naravnega okolja, posameznik se stara in pri določeni
Vizualizacija procesov evolucijskega računanja Stran 7
starosti odmre, nakar je zamenjan z mlajšim, boljšim posameznikom. V tem primeru
vsakemu posamezniku pripišemo življenjsko dobo, običajno glede na njegov fitness [18],
in ta se z vsako iteracijo algoritma oziroma generacijo stara. Recimo, da ima algoritem dve
populaciji, P in M. Populacija P služi kot klasična populacija pri normalnih evolucijskih
algoritmih, populacija M pa določa faktor rasti in je prirastek v trenutni generaciji. Obe
populaciji se v fazi izbora oziroma preživetja združita po enačbi [16]:
, (2.1)
kjer je pop_size(t + 1) velikost populacije v novi generaciji (t + 1), pop_size(t) trenutna
populacija kakor v normalnih algoritmih oziroma P, je prirastek,
oziroma pomožna populacija, ki jo predstavljajo novi posamezniki, dobljeni z
evolucijskimi operatorji, in D(t) število posameznikov, ki odmrejo v generaciji t.
Velikost pomožne populacije se uravnava s faktorjem rasti po enačbi [16]:
, (2.2)
kjer je faktor rasti.
2.2 Enokriterijska optimizacija
Pri enokriterijski optimizaciji se za namene magistrskega dela omejimo na optimizacijo
funkcij z realnimi vhodi in enim realnim izhodom. Tako lahko vsak enokriterijski problem
predstavimo kot:
, (2.3)
kjer je ocena rešitve i, odločitvena funkcija oziroma optimizacijski problem,
posameznik oziroma rešitev i v obliki vektorja realnih vrednosti, ki predstavljajo vhode
ocenjevalne funkcije in k število vhodnih spremenljivk.
Vizualizacija procesov evolucijskega računanja Stran 8
Pri tem je rešitev boljša od rešitve , če:
, (2.4)
in
.
Pri enokriterijski optimizaciji so težava lokalni minimumi, to so ne optimalne rešitve, ki
predstavljajo najboljšo rešitev le na delu prostora rešitev. Metode iskanja globalnega
optimuma se imenujejo globalna optimizacija. Definiramo jih kot funkcijo [2]:
, (2.5)
če in samo če
, (2.6)
kjer je globalni minimum, f cenitvena funkcija in možen prostor rešitev.
Če je problem minimizacijski, iščemo najnižjo vrednost funkcije sposobnosti (fitness), če
pa je problem maksimizacijski, iščemo največjo vrednost funkcije sposobnosti. Vse
probleme lahko pretvorimo iz enega tipa v drugega s predznačenjem problema f(x).
2.3 Večkriterijska optimizacija
V šestdesetih letih prejšnjega stoletja se je pojavil problem večkriterijskih javnih vlaganj,
ki so zahtevala kompromise po različnih kriterijih, za kar je bilo splošno uporabljeno ime
"trade-off". Področje je hitro postalo zelo priljubljeno pri ekonomskih matematikih,
analitikih sistemov, teoretikih odločitev in ostalih. Vseeno pa se splošna uporaba
večkriterijske optimizacije ni uveljavila do sedemdesetih let dvajsetega stoletja.
Vizualizacija procesov evolucijskega računanja Stran 9
Problem večkriterijske optimizacije lahko definiramo kot iskanje vektorja odločitvenih
vrednosti, ki zadosti omejitvam in optimizira vektorsko funkcijo, čigar elementi
predstavljajo cenitvene funkcije. Te tvorijo matematični opis zmogljivostnih kriterijev, ki
so si po navadi nasprotujoči. Optimizacija pomeni iskanje takšne rešitve, ki zadošča vsem
kriterijskim funkcijam [2].
Rešitve večkriterijske optimizacije so predstavljene kot odločitveni vektor (ang. decision
vector) oziroma vektor vhodov v cenitveno funkcijo, nakar jim pripišemo vektor kriterijev
(ang. objective vector), ki predstavlja dosežene rezultate po vseh kriterijskih funkcijah.
Problem večkriterijske optimizacije oziroma njene rešitve lahko tako zapišemo kot [30]:
, (2.7)
, (2.8)
, (2.9)
kjer je X odločitveni prostor oziroma prostor rešitev, n število odločitvenih spremenljivk, Y
prostor ciljev, ki predstavlja možne ocene rešitev, in k število kriterijev.
Primer takšnega inženirskega problema je nakupovanje stroja, kjer minimiziramo ceno in
maksimiziramo zanesljivost. Optimizacija enega kriterija privede do poslabšanja po drugih
kriterijih. Zaradi tega ne moremo optimizirati po posameznih kriterijih. Potrebno je
poiskati množico rešitev, ki najbolje zadostijo zastavljenim kriterijem [16].
Določitev boljše rešitve ni več tako enostavna kot v primeru enokriterijske optimizacije.
Glede na način reševanja večkriterijskega problema lahko opredelimo tri skupine (Slika
2.2) [15]:
1) temelječ na agregaciji (ang. aggregation-based),
2) temelječ na enem kriteriju (ang. criterion-based) in
3) temelječ na dominanci (ang. dominance-based).
Vizualizacija procesov evolucijskega računanja Stran 10
Slika 2.2: Načini reševanja problemov večkriterijske optimizacije [30].
Algoritmi, ki temeljijo na agregaciji, sestavijo vse cenitvene funkcije v eno, na primer z
obteženo vsoto, ali s premikom vseh kriterijev razen enega v množico omejitev. Problem
teh algoritmov je, da najdejo samo eno rešitev, cilj pa je najti množico rešitev. V tem
primeru je potrebno algoritem večkrat zagnati z različnimi utežmi.
Reševanje, temelječe na enem kriteriju pomeni, da v posamezni generaciji optimiziramo le
po enem kriteriju, skozi evolucijo pa se ta kriterij zamenjuje tako, da pridejo na vrsto vsi.
Za problem se izkaže, da rešitev konvergira k optimumu enega kriterija, vendar je slabša
po ostalih.
Za nas so najbolj zanimivi tisti algoritmi, ki temeljijo na dominanci. To pomeni, da izbor
rešitve temelji na relaciji dominiranosti.
2.3.1 Pareto dominanca
Vilfredo Pareto je leta 1896 predstavil koncept dominance, ki ga imenujemo Pareto
dominanca in je temelj za koncept Pareto fronte. Slednji je bil uveden na področju
ekonomije, danes pa je osnova za večkriterijsko optimizacijo [19].
Pareto dominanco lahko definiramo z dvema vektorjema kriterijev. Vektor kriterijev
dominira vektor kriterijev , če je boljši ali enak po vseh komponentah in boljši od njega
v vsaj eni:
, (2.10)
Vizualizacija procesov evolucijskega računanja Stran 11
, (2.11)
, (2.12)
kjer je y vektor kriterijev, oziroma ciljni vrednosti prvega in drugega vektorja
kriterijev za i-ti kriterij [16].
Sledi tudi, da odločitveni vektor dominira odločitveni vektor
, (2.13)
Množico optimalnih rešitev v prostoru odločitev X označimo z ( X) in jo
imenujemo Pareto množica. Prav tako množico optimalnih rešitev v prostoru ciljev Y
označimo z ( Y) in jo imenujemo Pareto fronta. Pravimo, da je rešitev
Pareto optimalna (ang. Pareto optimal), če ni dominirana od katere druge rešitve,
posledično Pareto optimalne rešitve ne moremo izboljšati, ne da bi jo poslabšali po vsaj
enem kriteriju [2].
Večina problemov ima zvezno oziroma neskončno Pareto fronto, zaradi česar je nemogoče
najti celotno fronto. Zato se v praksi poišče približek oziroma aproksimacija Pareto fronte
[15].
Cilje večkriterijske optimizacije lahko opredelimo kot:
1) Aproksimacija Pareto fronte mora biti, kolikor je mogoče, blizu dejanske Pareto
fronte.
2) Rešitve v aproksimaciji Pareto fronte naj bodo uniformno porazdeljene in
raznolike, da omogočajo širok nabor rešitev glede na končno izbiro pomembnosti
kriterijev.
3) Rešitve v aproksimaciji Pareto fronte naj pokrivajo celotni prostor, tudi ekstreme
posameznih kriterijev.
Vizualizacija procesov evolucijskega računanja Stran 12
Razvoj algoritmov, ki za reševanje temeljijo na relaciji dominiranosti, lahko razdelimo v tri
generacije [16].
V algoritme prve generacije štejemo algoritme, ki iščejo rešitve na Pareto fronti, pri tem pa
za cenitev fitnessa zasledimo uporabo:
"ranga dominiranosti" - gleda se, koliko ostalih rešitev dominira trenutno rešitev
"globine dominance" - populacija je razdeljena na več front, globina vsebujoče
fronte določa uspešnost
"štetje dominiranosti" - gleda se, koliko ostalih rešitev je dominiranih s strani
trenutne rešitve
V drugi generaciji algoritmov, temelječih na dominanci, se vpelje koncept niš, to je gostote
ostalih rešitev v okolici, da bi dosegli raznolikost populacije.
S tretjo generacijo se vpelje za našo nadaljnjo delo najzanimivejši koncept - elitizem. Ta je
uporabljen podobno kot v algoritmih enokriterijske optimizacije (poglavje 2.1.2). Da bi
ohranili dobre rezultate, vpeljemo arhiv, ki je sekundarna populacija, kamor shranjujemo
rešitve, ki niso dominirane s strani ostalih rešitev. V kolikor katera izmed rešitev postane
dominirana s strani nove rešitve, jo zamenjamo oziroma odstranimo.
Vizualizacija procesov evolucijskega računanja Stran 13
3 PRIMERJAVA EVOLUCIJSKIH ALGORITMOV
V poglavju bodo predstavljeni načini primerjave uspešnosti evolucijskih algoritmov.
Obstajajo številne metode [7], najbolj uveljavljeni pa sta, v enostavnejših primerih
primerjava najboljše ocenjenega posameznika (best eval), v podrobnejših analizah pa se
predvsem uporablja statistični pristop.
Najprej bomo prikazali probleme ocenjevanja evolucijskih algoritmov s statističnim
pristopom, nato pa ogrodje EARS in njegovo metodo ocenjevanja, ki temelji na šahovskem
sistemu Glicko-2.
3.1 No free lunch teorem
Najprej omenimo osnovni problem ocenjevanja evolucijskih algoritmov. Tega opisuje no-
free-lunch teorem (NFL), ki pravi: ko povprečimo iskalne algoritme čez vse testne
probleme, se bodo vsi odrezali enakovredno. Kar pomeni, da če se en algoritem izkaže kot
boljši na enem problemu oziroma je specializiran zanj, se bo pri drugem problemu, za
katerega ni specializiran, izkazal za slabšega [16].
Iz tega lahko zaključimo, da je za pravično ocenjevanje potrebna velika baza raznolikih
problemov. V kolikor problemi niso raznoliki, oziroma so problemi celo izbrani specifično
za določen algoritem, ne moremo objektivno soditi o njegovi sposobnosti.
3.2 Ničelna hipoteza
Statistični pristop za ocenjevanje uspešnosti evolucijskih algoritmov predstavlja metoda
testiranja ničelne hipoteze (ang. null hypothesis). Zanj moramo najprej določiti dve
hipotezi.
Prva, ničelna hipoteza, pravi, da sta za enakovredna algoritma povprečji njunih rešitev
enaki:
, (3.1)
Vizualizacija procesov evolucijskega računanja Stran 14
kjer je ničelna hipoteza, povprečje rešitev prvega algoritma in povprečje rešitev
drugega algoritma.
V obratnem primeru, ko je en algoritem znatno boljši od drugega oziroma je eden dosegel
znatno boljše rešitve, velja alternativna hipoteza (alternative hypothesis). Ta pravi, da sta
povprečji rešitev različni:
, (3.2)
Ker obravnavamo več vzorcev, govorimo o statistični metodi, zaradi česar ne moremo reči
s popolno gotovostjo, ali sta algoritma enakovredna (ničelna hipoteza velja) ali je en boljši
od drugega (ničelno hipotezo zavržemo). Zaradi tega sta definirani verjetnosti napake pri
klasifikaciji: napaka tipa 1, da smo ničelno hipotezo po napaki ovrgli, in napaka tipa 2, da
ničelne hipoteze nismo ovrgli, čeprav sta rešitvi znatno različni [6].
3.2.1 Testiranje ničelne hipoteze
Za testiranje ničelne hipoteze obstaja več testov, ki so prilagojeni glede na dane podatke
[9]. Podatki testiranja namreč lahko obsegajo enega ali več algoritmov in prav tako enega
ali več problemov. Nadalje lahko podatke oziroma rezultate razdelimo v kategorije:
Nominalni podatki (dva podatka sta enaka, če sta enako poimenovana, zapis
ni neposredno povezan z merjeno veličino).
Ordinalni podatki (dodatno poznamo vrstni red dogodkov).
Intervalni podatki (enaki intervali na merilu predstavljajo enako velike
razlike).
Podatki o razmerju (razlika med dvema podatkoma je vedno enaka, vendar
večkratnik enega podatka ne pomeni istega večkratnika merjene veličine).
Če teste za preverjanje ničelne hipoteze razdelimo na dva glavna sklopa, imamo
parametrične in neparametrične teste [27]. Ti so namenjeni:
neparametrični testi za nominalne in ordinalne podatke in
parametrični testi za intervalne podatke in podatke o razmerju.
Vizualizacija procesov evolucijskega računanja Stran 15
Parametrični testi dodatno postavijo predpostavke o porazdelitvi podatkov in njenih
parametrih, medtem ko neparametrični testi ne postavljajo teh zahtev.
Zato je potrebno za parametrične teste najprej dodatno preveriti:
Neodvisnost podatkov (ang. independence) - En dogodek ne sme spremeniti
verjetnosti drugega.
Normalnost (ang. normality) - Porazdelitev mora slediti normalni oziroma
Gaussovi v povprečju in varianci, kar preverimo s testom Kolmogorov-
Smirnov.
Homoscedastičnost (ang. homoscedasticity) - Vsi vzorci morajo imeti
enako varianco, kar preverimo s testom Levene.
Glede na število primerjanih algoritmov in tip podatkov obstajajo različne rešitve za
primerjavo rezultatov (Tabela 3.1).
Tabela 3.1: Delitev testov za testiranje ničelne hipoteze glede na število vrednotenih algoritmov in tip podatkov.
neparametrični testi parametrični testi
dva algoritma Sing, Wilcoxon signed rank t-test
več algoritmov Friedman, Holm, Hochberg, Rom, ... ANOVA, Tukey, Tamhane
3.2.2 Težave testiranja ničelne hipoteze
Najpogostejša težava pri testiranju ničelne hipoteze je kompleksnost postopka. Zaradi
človeških napak je testiranje pogosto izvedeno nepravilno, zato rezultati niso uporabni,
predvsem pa ne primerljivi. Statistične metode so pogosto nepravilno, ali pa celo niso,
uporabljene. Enako se dogaja tudi v starejših disciplinah, kot je na primer medicina.
Odprava teh napak bi bila draga in mogoča le dolgoročno [14].
Pri implementaciji je največja težava občutljivost na velikost vzorca. Prav tako je rezultat
testiranja skoraj vedno zavržena hipoteza, kar vodi tudi do nesprejemljivih količin napak
tipa 2 [27].
Vizualizacija procesov evolucijskega računanja Stran 16
Dodaten problem predstavlja obseg testiranja, saj so potrebni različni testi za različna
števila algoritmov, kakor tudi podatke, kar predstavlja dodatno delo za izvedbo testiranja.
Zato marsikdaj testiranje ni izvedeno v zadostnem obsegu, saj se uporabi manjše število
podatkov za primerjavo, kar pomeni tudi, da testiranj med seboj ne moremo primerjati, saj
ne vključujejo primerljivih podatkov [27].
3.3 Šahovski sistem ocenjevanja
Zaradi obsežnih težav pri statističnem ovrednotenju uspešnosti evolucijskih algoritmov je
bila razvita rešitev, ki temelji na sistemu šahovskega rangiranja. V nadaljevanju so
predstavljeni sistemi, ki so vodili do razvitja sistema Glicko-2, na koncu pa smo predstavili
samo ogrodje EARS, ki je bilo razvito kot rešitev za ocenjevanje evolucijskih algoritmov
in njegovo poenotenje.
3.3.1 Sistem Elo
Okoli leta 1950 je Arpad Elo razvil teorijo, ki je postala temelj sodobnega ocenjevanja na
šahovskih turnirjih. Ta je danes znana kot sistem Elo, ki je namenjen za prikaz uspešnosti
igralca v tekmovalnih igrah šaha. Ocene se gibljejo v območju od 0 do 3000, pri čemer
višja ocena predstavlja večjo uspešnost oziroma večjo verjetnost zmage igralca. Ocena
predstavlja tudi igralno moč igralca - kako dober je igralec. Pri igri šaha se tako
predpostavi, da ima igralec z večjo oceno večjo verjetnost zmage. Večja kot je razlika
vocenah igralcev, večja je verjetnost, da pride do predvidenega izida - da bo igralec z višjo
oceno zmagal [12]. Zato sistem Elo uvrščamo med verjetnostne metode (ang. probabilistic
methods). Je prvi predstavnik verjetnostnih metod, ki se uporablja za rangiranje
tekmovalcev [11].
Temeljna predpostavka sistema Elo je, da ima vsak igralec trenutno igralno moč, iz katere
lahko napovedujemo rezultat igre. To napoved definiramo kot:
, (3.3)
Vizualizacija procesov evolucijskega računanja Stran 17
kjer je igralna moč igralca A, igralna moč igralca B in E pričakovan rezultat igre, ki
je v primeru zmage igralca A enak 1, v primeru izenačenja enak 1/2 in v primeru zmage
igralca B pa je enak 0 [12].
Po igri se posodobita oceni igralnih moči obeh igralcev. Ta posodobitev se vedno izvede z
uporabo igralčeve ocene pred turnirjem, kar omogoča hitro posodobitev, saj se ne
preračunava celotna igralna zgodovina. Končna ocena igralca na koncu turnirja predstavlja
predvidevano igralno moč igralca, ki je vstopil na turnir z določeno (prejšnjo) oceno. Ta
končna posodobitev je predstavljena kot:
, (3.4)
kjer je ocena igralca po turnirju, ocena igralca pred turnirjem, S rezultat igralca
na turnirju, predviden rezultat igralca, izračunan glede na predturnirske ocene igralca
in ostalih igralcev na turnirju, in K faktor slabljenja, ki določa kako močno vpliva ocena
turnirja na igralčevo skupno oceno [12].
Sistem Elo so v prilagojenih oblikah prevzele tudi organizacije za druge športne discipline,
na primer društvo za namizni tenis v ZDA (ang. United States Table Tennis Association).
Kljub temu so še danes marsikje v uporabi sistemi, ki ne temeljijo na verjetnosti. Primer
tega je sistem, ki ga uporablja Ameriška zveza za bridge ACBL (ang. American Contact
Bridge), ki dodeljuje točke za dobro zmogljivost. Slabost tega sistema je, da igralci le
dobivajo točke. Posledično točke bolj prikazujejo frekvenco igranja kakor dejansko
kvaliteto igralca. Dodeljevanje točk je tudi problematično, saj za razliko od sistema Elo,
sega razpon od 1 točke na začetniških turnirjih do 750 na višjih nivojih [12].
Vseeno ima sistem Elo številne slabosti. Prva slabost je določitev parametra K, ki vpliva na
hitrost spreminjanja ocene igralca. Glavna slabost sistema pa je nezanesljivo ocenjevanje.
Možno je namreč, da zmagovalni igralec dobi točke, igralec, ki je izgubil igro, pa pridobi
točke [27]. Prav tako je težava pri igrah, kjer imata igralca enako oceno, vendar imata
različne igralne navade. En igralec lahko pogosto igra, medtem ko drugi ni igral že več let,
zato je ocenitev nezanesljiva [11].
Vizualizacija procesov evolucijskega računanja Stran 18
3.3.2 Sistem Glicko
Leta 1995 je Mark E. Glickman zasnoval sistem Glicko, ki je odpravil glavne
pomanjkljivosti do takrat uveljavljenega sistema Elo [11].
Sistem uporablja oceno igralne moči igralca tako kot sistem Elo, sam pa dodaja še dodatno
spremenljivko. Ta predstavlja možno odstopanje dejanske ocene, oziroma nezanesljivost
prve ocene. V matematični terminologiji jo predstavlja standardni odklon. Visoka vrednost
pri odstopanju ocene nakazuje na novega igralca ali igralca, ki ne igra pogosto. Nizka
vrednost nakazuje na igralca, ki se pogosto udeležuje turnirjev, zaradi česar lahko precej
zanesljivo napovemo njegovo igralno moč. V primeru novih oziroma neocenjenih igralcev
pa sta predlagani začetni vrednosti 1500 za oceno in 350 za odstopanje [11].
Cilj sistema je prikazati interval, v katerem bi se nahajala točna ocena igralne moči s 95 %
zanesljivostjo. Ta interval je po definiciji standardnega odklona definiran kot
[11].
Po sistemu Glicko se posodobitev ocene igralca izvede v več korakih. Prvi korak je izračun
odstopanja ocene na začetku ocenjevalnega intervala:
, (3.5)
kjer je RD odstopanje ocene (ang. rating deviation) oziroma odstopanje ocene,
odstopanje ocene pred turnirjem, t je število posodobitvenih intervalov odstopanja ocene
od zadnje posodobitve igralčevega odstopanja, c je konstanta, ki upravlja rast odstopanja
skozi čas, 350 pa predstavlja predlagano začetno odstopanje za nove igralce [11].
Naslednji korak je posodobitev individualnih ocen igralcev:
, (3.6)
Vizualizacija procesov evolucijskega računanja Stran 19
, (3.7)
, (3.8)
, (3.9)
, (3.10)
,(3.11)
kjer je r ocena tekmovalca pred turnirjem, r' posodobljena ocena igralca po turnirju, RD
odstopanje ocene tekmovalca pred turnirjem, RD' odstopanje ocene tekmovalca po turnirju,
m število igralcev v turnirju, izid igre proti posameznemu igralcu, ki je pri zmagi enak 1,
1/2, pri izenačenju in 0 pri porazu, pri čemer se več iger proti istemu igralcu upošteva kot
igre proti različnim igralcem z enako oceno r in odstopanjem RD.
V praksi nastopi težava v primeru rednih igralcev, ki se jim odstopanje zmanjša do te mere,
da se jim ocena ne spreminja dovolj, čeprav se njihova dejanska sposobnost izboljšuje. Kot
rešitev za ta problem je avtor, M. Glickman, predlagal, da se postavi tudi spodnja meja za
odstopanja, na primer 30.
3.3.3 Sistem Glicko-2
Glickman je leta 2012 predstavil izboljšano verzijo svojega sistema Glicko in ga
poimenoval Glicko-2 [10].
Enako kot njegov predhodnik, sistem poroča interval, v katerem se nahaja resnična ocena
igralca s 95 % verjetnostjo. Avtor pravi, da je sistem najbolj zanesljiv, če ima igralec 10-15
iger v posameznem obdobju ocenjevanja, trajanje posameznega obdobja pa ocenjuje kot
nepomembno [10].
Glavna novost tega sistema je dodatna spremenljivka za volatilnost igralca (ang. volatility)
. Ta predstavlja merilo nihanja v igralčevi oceni. Visoka vrednost nakazuje na napačno
predstavo ocene, na primer, ko igralec po obdobju stabilne ocene začne izkazovati izjemne
uspehe oziroma se njegova dejanska ocena razlikuje od te, ki jo daje sistem. Spreminjanje
volatilnosti skozi čas upravlja konstanta sistema . To je potrebno nastaviti pred
Vizualizacija procesov evolucijskega računanja Stran 20
postavitvijo sistema. Avtor predlaga vrednosti med 0,3 in 1,2, vendar tudi sam pravi, da je
potrebno testirati, katera vrednost prinese največjo natančnost [10].
Dodatno sistem spremeni merilo ocenjevanja. Kljub temu je možno z lahkoto pretvoriti
ocene iz starega sistema v novega in obratno [10].
Za začetek je potrebno določiti vse tri spremenljivke za igralca. Te lahko izvirajo iz
sistema Glicko, tekmovalčeve najnovejše ocene, ki ji dodamo začetno volatilnost
(priporočeno 0,06), ali pa po avtorjevih besedah v primeru novega sistema ali novega,
neocenjenega igralca, ostaja priporočilo za začetno oceno 1500, odstopanje ocene 350 in
dodaja priporočilo za začetno volatilnost 0,06.
Ko imamo te vrednosti, lahko pretvorimo oceno iz merila sistema Glicko v merilo sistema
Glicko-2:
, (3.12)
, (3.13)
kjer je ocena po sistemu Glicko-2, r ocena po sistemu Glicko, odstopanje po sistemu
Glicko-2 in RD odstopanje po sistemu Glicko.
Za posodabljanje ocene igralcev na koncu tekmovalnega intervala se enačbe prav tako
spremenijo. Naprej je potreben izračun variance:
, (3.14)
, (3.15)
, (3.16)
kjer je v spremenljivka, ki predvideva varianco igralca le s stališča odigranih iger, m pa
število nasprotnih igralcev.
Vizualizacija procesov evolucijskega računanja Stran 21
Nato se izračuna sprememba, ki predvideva spremembo oziroma izboljšavo predhodne
ocene, glede na rezultate odigranih iger:
, (3.17)
kjer je predvidena sprememba ocene in izid igre proti igralcu j, ki je lahko 1 za zmago,
1/2 za neodločeno, 0 za poraz.
Zadnji korak je izračun nove volatilnosti igralca. Postopek je iterativen, vendar moramo
najprej definirati:
, (3.18)
, (3.19)
Nadalje izvedemo algoritem za izračun volatilnosti, vendar je potrebno najprej postaviti
vrednost za , ki se uporablja za minimalno dovoljeno razliko. V literaturi [10] je
predlagana vrednost 0,000001 kot dovolj nizka vrednost:
1. Inicializiramo vrednosti:
I.
II. , then:
III.
2.
Vizualizacija procesov evolucijskega računanja Stran 22
3.
a)
b)
c)
d)
4.
(3.20)
kjer je nova vrednost igralčeve volatilnosti. [10]
3.3.4 CRS4EA
Skozi leta so se uporabljala različna merila za ocenjevanje uspešnosti optimizacije
evolucijskih algoritmov. Za optimizacije z enim kriterijem se še danes najpogosteje
uporablja kar primerjava končnih vrednosti po določenem številu ovrednotenj.
Pri tem pogosto pride do težav zaradi nestandardiziranega testiranja. Za primerjavo se
morajo vedno uporabiti najnovejši algoritmi, s katerimi se optimizirajo različne testne
funkcije. Pri tem sta pogosta dve težavi. Prva je ta, da so tudi v objavljenih člankih pogosto
algoritmi nezadostno opisani, da bi omogočili implementacijo, izvorna koda pa skoraj
nikoli ni dosegljiva. Druga težava pa je, da skoraj vsak članek testira lastne testne funkcije,
zaradi česar tudi izvedenih testov ne moremo primerjati.
Prav tako se zelo pogosto objavljajo neresnični rezultati, do česar običajno pride zaradi
človeške napake [5]. Te so lahko različne, na primer pri izvornem algoritmu umetne
kolonije čebel (ang. artificial bee colony - ABC) je primerjanje izvedeno nepravično, saj se
lahko zgodi, da zaradi različnih implementacij en algoritem dobi prednost, ker se ne
upoštevajo vrednotenja v delu algoritma [17].
Pri večkriterijski optimizaciji pride do težav s takšno primerjavo. Algoritmi namreč vrnejo
množico rešitev, kjer ima vsaka rešitev svojo vrednost za vsak kriterij.
Zaradi potrebe po nepristranskem in natančnem ocenjevanju je nastala potreba po novem
sistemu. Kot zanimiva alternativa za klasične statistične metode so se izkazali statistični
sistemi za ocenjevanje igralcev v šahu. Na tem principu je bil leta 2014 predstavljen nov
Vizualizacija procesov evolucijskega računanja Stran 23
pristop pod imenom CRS4EA (Chess Rating System for Evolutionary Algorithms), ki je
zasnovan na sistemu Glicko-2. Pristop je predstavnik modela Terry-Bradley za parno
primerjavo. Sistem je ne le primerljiv z metodo testiranja ničelne hipoteze, ampak je tudi
bolj robusten in prinaša dodatne prednosti. Zaradi tega je njegov cilj ne le uporaba pri
raziskavah, pač pa tudi pri pregledovanju znanstvenih objav [27]. Podrobneje je
implementacija sistema opisana v poglavju 4.1.
Vizualizacija procesov evolucijskega računanja Stran 24
4 OGRODJE EARS
Ogrodje EARS (Evolutionary Algorithm Rating System) implementira statistični pristop
CRS4EA (Chess Rating System for Evolutionary Algorithms) in je odprtokodno ogrodje
za razvoj in ovrednotenje evolucijskih algoritmov. Razvito je bilo z Javo 1.6, s ciljem
omogočiti enostavno in pravično primerjanje evolucijskih algoritmov. V ta namen ogrodje
vsebuje številne evolucijske algoritme in testne funkcije. Ogrodje je prosto dostopno na
GitHub [4].
4.1 Implementacija
EARS temelji na šahovskem sistemu ocenjevanja Glicko-2. Posamezni koraki ocenjevanja
so [27]:
1) kontekst in načrtovanje,
2) izvedba ovrednotenja,
3) analiza in predstavitev rezultatov,
4) interpretacija rezultatov.
4.1.1 Kontekst in načrtovanje
Za korak načrtovanja je potrebno izbrati različne algoritme, ki se bodo pomerili nad
podanimi testnimi problemi. V praksi pogosta težava je namerna ali ponesrečena izbira
algoritmov, ki izkažejo občutno slabše delovanje nad izbranimi problemi, kar pa je težko
preveriti oziroma dokazati. V sistemu EARS ima vsak algoritem stabilno številčno oceno
za določen problem, zaradi česar je težko upravičiti uporabo slabših algoritmov.
Prav tako je potrebno definirati vse parametre testiranja, ki bi lahko vplivali na rezultate. Ti
so na primer velikost problema, nadzorni parametri za algoritem, pri klasičnem primerjanju
pa so dodatni vplivi okolja, na primer strojna oprema, sposobnost programerja in podobno.
Korak načrtovanja v sistemu EARS je sicer dokaj podoben klasičnemu primerjanju, vendar
ima dodatni poudarek na teh parametrih z namenom, da bi se preprečile nepravične
primerjave:
Vizualizacija procesov evolucijskega računanja Stran 25
1) Testi so izvedeni nad enakim naborom testnih funkcij, zaradi česar se algoritmi ne
morejo izogniti zanje zahtevnim problemom.
2) Algoritmi so zapisani v enakem programskem jeziku, zaradi česar je vpliv okolja
minimiziran.
3) Vsi algoritmi imajo enake nadzorovane zaustavitvene pogoje, ne more priti do
napake, da bi se nekatera ovrednotenja spustila ali bi kateri algoritem imel
drugačne zaustavitvene pogoje, na primer število generacij namesto število
ovrednotenj.
4) Vsi algoritmi so inicializirani z enakim semenom za generiranje naključnih števil.
5) Vsi testi so izvedeni znotraj ogrodja, kar pomeni, da se odstrani tudi vpliv strojne
opreme oziroma okolja.
Zaradi vgradnje sistema za ocenjevanje CRS4EA v samo ogrodje so se preprečile tudi
morebitne napake pri implementaciji ocenjevanja.
4.1.2 Izvedba ovrednotenja algoritma
Ovrednotenje se v sistemu CRS4EA izvede v obliki turnirja (Slika 4.1). Recimo, da ta
turnir vsebuje k algoritmov , N problemov in se izvede z n neodvisnimi
zagoni. Vsak algoritem vrne najboljšo rešitev za vsak problem v vsakem zagonu (k * N * n
rešitev). Te se nato primerjajo med seboj. Ena igra oziroma primerjava rezultatov je
definirana kot , kjer predstavljata indeksa primerjanih
algoritmov, predstavlja indeks problema oziroma in
predstavlja zaporedno številko neodvisnega zagona. Primerjava se izvaja parno med
rešitvama in algoritmov in in problema skozi m zagonov, pri čemer zmaga
algoritem, čigar rešitev je prišla bliže optimalni rešitvi problema, če pa je razlika med
rešitvama obeh algoritmov manjša od predhodno določene vrednosti , je rezultat
neodločen. Turnir oziroma primerjanje tako vsebuje tekmovalnih
iger oziroma primerjav, pri čemer zaporedje iger ne vpliva na končni rezultat. Ocene,
njihova odstopanja in volatilnosti algoritmov so posodobljene na koncu vsakega turnirja,
kakor je predlagano v sistemu Glicko-2, rezultati so pa shranjeni za uporabo v naslednjem
turnirju in so prikazani v obliki lestvice.
Vizualizacija procesov evolucijskega računanja Stran 26
Slika 4.1: Potek primerjanja v ogrodju EARS [27].
Za razvoj novega algoritma mora razred tega dedovati od abstraktnega razreda Algorithm,
s čimer mora implementirati metodo run(BenchmarkProblem). Za zagon primerjanja
morajo biti parametri za turnir (število neodvisnih ponovitev, merilo za neodločeno),
kakor tudi algoritmi, podani pred začetkom primerjanja.
4.1.3 Analiza in predstavitev rezultatov
Na koncu izvajanja so rezultati sistema CRS4EA, ocena, odstopanje, volatilnost in interval
ocene predstavljeni v obliki lestvice, kjer se algoritmi vrstijo od najboljšega do
najslabšega. Vsak algoritem ima oceno R, ki je predstavitev njegove končne "igralne moči"
po vseh odigranih turnirjih. Pri tem ni potrebno, da vsak algoritem tekmuje v vsakem
turnirju, kjer pa tekmuje, mora rešiti vse testne funkcije, ki jih turnir vsebuje. Vrednosti za
odstopanje RD in volatilnost sta podani kakor v Glicko-2. Razlika je v definiciji intervala
ocene RI, saj za razliko od predloga v sistemu Glicko-2, ki ga definira z 95 % natančnostjo,
Vizualizacija procesov evolucijskega računanja Stran 27
CRS4EA definira 99,7 % natančnost oziroma . Ta sprememba ima za cilj večjo
zanesljivost ocenjevanja.
4.1.4 Interpretacija rezultatov
Interpretacija rezultatov se izvede z uporabo ocen in intervalov ocen. Ocena namreč
prikazuje absolutno moč posameznega algoritma v primerjavi z ostalimi primerjanimi
algoritmi, vendar igra pomembno vlogo tudi interval ocene. V kolikor se intervala ocen
dveh algoritmov ne prekrivata, je jasno, kateri algoritem je boljši, vendar pa obratno ni
nujno res. Intervali se lahko uporabijo za hitro in grobo razumevanje sposobnosti
posameznih algoritmov.
V osnovni verziji algoritma [27] je grafična predstavitev rezultatov možna na dva načina.
Prvi je graf, ki predstavlja večkratno množico ocenjenih intervalov na naravni liniji z
merilom 100 za vse sodelujoče algoritme (Slika 4.2).
Slika 4.2: Intervali, ki 99,7 % zanesljivo vsebujejo resnično oceno [27].
Vizualizacija procesov evolucijskega računanja Stran 28
Alternativni način je graf, ustvarjen s pomočjo teorije grafov. Eno vozlišče predstavlja en
algoritem. Dve vozlišči sta povezani, če se njuna intervala ocen ne sekata, kar pomeni, da
sta znatno različna (Slika 4.3).
Slika 4.3: Znatne razlike, zaznane s CRS4EA, interval zanesljivosti ocene 99,7 % [27].
Obe predstavitvi omogočata enostavno interpretacijo in analizo rezultatov brez nevarnosti
za nerazumevanje ali napačno interpretacijo.
4.2 Podpora za algoritme večkriterijske optimizacije
Leta 2015 je bil EARS razširjen s podporo za evolucijske algoritme večkriterijske
optimizacije [21].
Pri enokriterijskih problemih je ovrednotenje rešitev dokaj preprosto. Primerjata se dve
vrednosti, ki sta nedvoumno primerljivi, pri čemer je tudi ciljna vrednost (optimum
problema) znana. Pri rešitvah večkriterijskih algoritmov ni tako. Njihov cilj je namreč, da
Vizualizacija procesov evolucijskega računanja Stran 29
najdejo množico rešitev, ki bi čim bolje predstavljala Pareto optimalno fronto oziroma njen
približek (aproksimacijo). Za njihovo ovrednotenja so bile zasnovane številne metrike,
znane kot indikatorji [21].
Indikatorji za merjenje uspešnosti evolucijskih algoritmov večkriterijske optimizacije (ang.
multi objective evolutionary algorithms - MOEA) nimajo poenotenega vrednotenja.
Odražajo lahko namreč kardinalno vrednost, povezano s številom točk rešitve, realno
vrednostjo, ki odraža oddaljenost od optimalne Pareto fronte, ali drugo vrednost ali niz
vrednosti, ki odražajo kvaliteto generirane Pareto fronte (raznolikost točk, uniformnost
točk, itd.). Zaradi različnih meril metrik je potrebno te vrednosti normalizirati oziroma
skalirati. Za potrebe indikatorjev je za vsak implementirani večkriterijski problem dodana
datoteka, ki hrani optimalno Pareto fronto [21].
Metode za ocenjevanje rešitev večkriterijske optimizacije se delijo v štiri skupine glede na
to, kdaj ocenjevalec artikulira preference za različne kriterije [2, 21]:
artikulacija brez informacije o preferencah,
predčasna artikulacija informacije o preferencah,
progresivna artikulacija informacije o preferencah in
kasnejša artikulacija informacije o preferencah.
4.2.1 Kasnejša artikulacija informacije o preferencah
Implementirana nadgradnja je bila osredotočena na metode iz zadnje skupine, metode s
kasnejšo artikulacijo informacije o preferencah. Te metode ne zahtevajo predhodne
informacije o preferencah odločevalca. Nekatere metode iz te skupine predstavljajo
najstarejše predlagane pristope za ocenjevanje večkriterijske optimizacije. Veliko teh
metod najprej preišče prostor za nabor Pareto optimalnih rešitev in jih nato predloži
ocenjevalcu. Prednost teh je neodvisnost od preferenc odločevalca. Analiza se mora izvesti
le enkrat, razen če bi se spremenil opis problema. Slabost teh metod je predvsem velika
časovna zahtevnost, vendar se ta zmanjša z vnaprej shranjeno optimalno Pareto fronto.
Pri metodah kasnejše artikulacije informacije o preferencah si želimo čim več Pareto
optimalnih rešitev (Slika 4.4). To pomeni, da je zaželena fronta, katere rešitve so čim bližje
optimalni fronti, in da so cilj rešitve, ki so čim bolj enakomerno porazdeljene po prostoru
Vizualizacija procesov evolucijskega računanja Stran 30
kriterijev, zaradi česar lahko kasneje z informacijo o pomembnosti kriterijev izberemo
optimalno rešitev.
Slika 4.4: Nasprotujoča cilja po metodah kasnejše artikulacije preferenc [23].
4.2.2 Generacijska razdalja
Leta 2000 sta Van Veldhuizen in Lamont predstavila metriko generacijske razdalje (ang.
Generational Distance - GD). Z njo se meri bližina oziroma oddaljenost aproksimacije
Pareto fronte do optimalne Pareto fronte. Ta je definirana kot:
, (4.1)
kjer je GD ocena metrike generacijske razdalje, n število nedominiranih vektorjev, ki jih je
našel algoritem, in evklidska razdalja (merjena v prostoru kriterijev) med vsakim
najdenim članom in najbližjim članom v optimalni fronti.
Vizualizacija procesov evolucijskega računanja Stran 31
Iz tega sledi, da je vrednost metrike neposredna razdalja od optimalne fronte. Nizke
vrednosti predstavljajo bližino, velike vrednosti pa oddaljenost [21].
4.2.3 Obrnjena generacijska razdalja
Obrnjena generacijska razdalja (ang. inverted generational distance - IGD) meri povprečno
razdaljo Pareto optimalne fronte do najdenega niza nedominiranih vektorjev. Tako se za
vsakega člana Pareto optimalne fronte izmeri najkrajša razdalja do najdenega niza. Na
koncu se izračuna povprečje teh razdalj [21].
4.2.4 Indikator HV
V zadnjih letih je postala pogosto uporabljena metrika HV (ang. hypervolume) oziroma S-
metrika, ki jo je leta 2011 predstavil Lucas Bradstreet v doktorski disertaciji [1].
Predstavlja jo n-dimenzionalni prostor, ki ga napenja niz vektorjev aproksimacije Pareto
fronte. Poenostavljeno, metrika izmeri dominirani prostor, ki ga predstavlja rešitev. Zaradi
tega enostavno poenoti obe merili, bližino optimalni Pareto fronti in razpršenost rešitve, in
je bila prva enočlenska rešitev, ki je odkrila, ali je en niz slabši od drugega. Prav tako se
vrednost indikatorja maksimizira le, če niz vsebuje vse točke optimalne fronte [21].
Z enačbo se hipervolumen opiše kot [2]:
, (4.2)
kjer je dominirani prostor s strani vektorja in volumen, ugotovljen s
strani algoritma.
Vizualizacija procesov evolucijskega računanja Stran 32
Slika 4.5: Primer izračuna hipervolumna rešitve večkriterijske optimizacije [1].
Za izračun po metriki HV je potrebna referenčna točka, v prikazanem primeru (Slika 4.5),
izhodiščna točka, ki je pomembna tudi za samo skaliranje rezultata. Za hipervolumen
predstavljajo večje vrednosti boljšo oceno.
4.2.5 -indikator
-indikator predstavlja faktor, za koliko je aproksimacija Pareto fronte s strani algoritma
slabša oziroma oddaljena od optimalne fronte glede na vse kriterije [21]. Poenostavljeno,
za koliko bi bilo potrebno translirati Pareto fronto, da bi pokrila oziroma dominirala
celoten dominirani prostor s strani optimalne Pareto fronte, oziroma da je vsaka točka
optimalne Pareto fronte dominirana s strani vsaj ene točke aproksimirane Pareto fronte [2].
, (4.3)
kjer je sta A in B dominirana prostora s strani fronte algoritma in optimalne fronte,
je definiran kot minimum tako, da je katerakoli rešitev -dominirana z vsaj eno
rešitvijo .
Ko je , so vse rešitve v nizu B dominirane z rešitvijo A. Če je
, potem predstavljata A in B enako aproksimacijo Pareto fronte. V primeru, da
je in , pomeni, da obe aproksimaciji vsebujeta točke, ki niso
dominirane z drugim nizom, oziroma sta niza neprimerljiva [21].
Vizualizacija procesov evolucijskega računanja Stran 33
5 PREGLED OBSTOJEČIH METOD VIZUALIZACIJE
Po več kot treh desetletjih se raziskovalci še vedno soočajo z odprtimi vprašanji in s
težavami, kot so nadzor parametrov, ustrezna izbira operatorjev, preprečevanje prezgodnje
konvergence in podobno. Mnoge od teh težav lahko pripišemo slabemu vpogledu v sam
potek evolucijskega procesa. Razumevanje izvajanja evolucijskih algoritmov je lahko zelo
težko, saj je potrebno upoštevati vse možne interakcije tekom evolucijskega procesa, od
selekcije, tvorbe novih posameznikov, do vseh ostalih splošnih konceptov evolucijskih
algoritmov. Že preprosti algoritmi z majhnimi populacijami lahko končajo v obliki
kompleksne evolucijske dinamike [29], vendar brez bolj zapletenih postopkov ne moremo
dobiti več kakor informacijo o konvergenci [20].
Vizualizacija informacij pridobiva na raziskovalni pozornosti, vendar kljub temu ostaja
pretežno odprt problem. Njeni zagovorniki so mnenja, da bi informacije lažje razumeli, če
bi abstraktne pojme preslikali na konkretne, fizične predstavitve. Človeško dojemanje igra
pomembno vlogo pri razpoznavanju skritih informacij in vzorcev [29].
Vizualizacija informacij je prepoznana kot dober način za razumevanje mehanizmov
evolucijskih algoritmov, vendar je splošno sprejeto, da je najpomembneje doseči dober
vidik oziroma točko pogleda [29]. Za namene vizualizacije obstaja več metod glede na tipe
predstavljenih podatkov. Te dajejo takojšnji vpogled v napredek evolucijskih algoritmov in
stanje posameznikov trenutne populacije [20].
V članku avtorja H. Pohlheim [20] so predstavljene osnovne oziroma, kot jih avtor
poimenuje, "standardne" metode vizualizacije za proces evolucije in dodatna metoda za
vizualizacijo večdimenzionalnih podatkov, imenovana večdimenzionalno-skaliranje (ang.
multidimensional scaling). Cilj vseh je poenostaviti razumevanje evolucijskega procesa.
Med preprostejše metode sodijo tri skupine metod, glede na časovni interval, ki ga
prikazujejo:
Prvo skupino sestavljajo metode, ki prikazujejo podatke skozi več generacij, zaradi
česar prikazujejo sliko napredka skozi potek celotnega evolucijskega algoritma.
Drugo skupino zastopajo metode, ki prikazujejo podatke, generirane v posamezni
generaciji, oziroma ponazarjajo stanje evolucijskega algoritma v določenem
trenutku.
Vizualizacija procesov evolucijskega računanja Stran 34
V zadnjo skupino spadajo tehnike, ki prikazujejo več zagonov in se uporabljajo
primarno za primerjavo večjega števila evolucijskih algoritmov.
5.1 Potek evolucije algoritma
Prikaz podatkov tekom celotnega evolucijskega procesa lahko dodatno razdelimo na
prikazovanje konvergence uspešnosti algoritma (ang. objective value) oziroma prikaz
najboljših predstavnikov v posameznih generacijah, prikaz razmerja med najboljšimi in
najslabšimi predstavniki posameznih generacij ter prikazovanje fitnessov oziroma
uspešnosti vseh posameznikov v vseh generacijah [20].
Metoda najboljšega fitnessa, znana tudi kot metoda konvergenčnega diagrama (Slika 5.1),
je zdaleč najbolj pogosto uporabljena. Ta, če upoštevamo merilo prikaza, daje dober vtis o
poteku konvergence algoritma [20].
Slika 5.1: Graf optimalnih posameznikov v posameznih generacijah [20].
Veliko objavljenih člankov dodatno vključuje še prikaz povprečnih in najslabših vrednosti
tekom generacij. Slabost tega pristopa je v tem, da vključevanje najslabših posameznikov
Vizualizacija procesov evolucijskega računanja Stran 35
hitro pokvari skaliranje grafa. Več informacij je razvidnih, če namesto tega prikažemo
povprečje z razponom vrednosti znotraj generacije, na primer standardnim odklonom
(Slika 5.2). Ta način se je izkazal za zelo ustreznega pri reševanju številnih realnih
problemov s pomočjo evolucijskih algoritmov [20].
Slika 5.2: Graf optimuma z dodanim povprečjem in standardnim odklonom v posameznih generacijah [20].
Dodatno se lahko uporabi regionalni model, znan kot migracijski model (Slika 5.3). Z njim
lahko dodatno prikažemo optimalne vrednosti v posameznih podpopulacijah. S tem je
možno prikazati razlike v primeru uporabe različnih strategij v podpulacijah tekom
evolucije [20].
Vizualizacija procesov evolucijskega računanja Stran 36
Slika 5.3: Graf migracijskega/regionalnega modela. Vsaka krivulja prikazuje svojo podpopulacijo.
Pod metode za prikaz poteka evolucijskega algoritma lahko dodamo tudi prikaz lastnosti
optimalnih posameznikov oziroma napredek odločitvenih vektorjev. S tem lahko
uporabnik vidi, kako se spreminjajo vrednosti posameznih vhodov in katere kombinacije
so uspešne. Za takšen prikaz obstajajo različni pristopi, od dvodimenzionalnih grafov za
posamezni vhod, vpeljave tretje dimenzije za prikaz vseh spremenljivk v enem grafu ter
barvnih grafov (Slika 5.4). Pri izbiri pristopa je pomembno število vhodov, saj ti
neposredno vplivajo na preglednost. Kljub večjemu številu spremenljivk je možno
relativno preprosto dobiti predstavo o porazdelitvi in spreminjanju odločitvenih vektorjev
skozi generacije [20].
Vizualizacija procesov evolucijskega računanja Stran 37
Slika 5.4: Prikazi lastnosti optimalnih posameznikov tekom evolucijskega procesa.
V primeru razlik v intervalih je možno prilagoditi skaliranje posameznih spremenljivk
glede na njihovo domeno, s čimer dosežemo relativne vrednosti za posamezno
spremenljivko [20].
Prejšnji tipi vizualizacije so obravnavali le optimalne posameznike v posamezni generaciji.
Kot zadnji tip vizualizacije v tem sklopu prikažimo še graf za fitness vrednosti vseh
posameznikov. Za pregled nad celotno populacijo lahko prikažemo vse posameznike vseh
generacij. Za primer vzemimo dva možna prikaza (Slika 5.5). Dvodimenzionalni prikaz
(levo), kjer s točkami označimo fitness vrednosti vseh posameznikov, prikaže porazdelitev
uspešnosti posameznikov skozi generacije. Nekoliko nadgrajen graf dodatno podaja
informacijo o posameznikovi poziciji znotraj generacije. Ta je lahko uporaben v primeru
različnih strategij oziroma zaporedja strategij v eni generaciji oziroma v primeru uporabe
regionalnega (sredina) ali lokalnega modela (desno) [20].
Vizualizacija procesov evolucijskega računanja Stran 38
Slika 5.5: Prikaz uspešnosti vseh posameznikov tekom evolucijskega procesa: Osnovni prikaz (levo), regionalni
model (sredina), lokalni model(desno) [20].
Pri srednjem grafu lahko razločno vidimo spreminjanje velikosti posameznih populacij
skozi generacije.
V zadnjih letih se namesto generacij za delitev poteka evolucije uporablja število
ovrednotenj. S tem je mogoča lažja primerjava med algoritmi, saj pri primerjavi za kriterij
zaustavitve najpogosteje uporabimo enako število ovrednotenj, velikosti generacij so pa
različne. Prav tako lahko s številom ovrednotenj graf razdelimo na posamezne generacije,
saj je v večini primerov število generacij velikost populacije enako številu vseh
ovrednotenj.
5.2 Stanje v trenutku evolucije
Pogosto je količina informacij čez vse generacije prevelika za skupno obdelavo. V tem
primeru je možen prikaz posameznih stanj tekom evolucije, na primer prikaz stanja
posameznih generacij. Podobno kot v metodah prikaza celotnega postopka evolucije se
uporablja prikaz fitnessov vseh posameznikov in prikaz lastnosti vseh posameznikov.
Dodatno možnost pa predstavljata zemljevida razdalj odločitev (ang. distance map of
variable values) in ciljev (ang. distance map of objective values) [20].
Za prikaz fitness vrednosti vseh posameznikov v populaciji predstavimo tri možnosti
(Slika 5.6). Prva (levo) je klasični dvodimenzionalni graf, ki prikazuje fitness vrednosti na
eni osi, na drugi pa zaporedje posameznika. Na sredini je prikazan primer polnjenega
stopničastega grafa, s čimer se dodatno poudarijo razlike med sosednjimi posamezniki. Pri
Vizualizacija procesov evolucijskega računanja Stran 39
obeh grafih so posamezniki razdeljeni na podpopulacije s črtkanimi črtami. Zadnji graf
(desno) je slikovni prikaz dvodimenzionalnega lokalnega modela. Z njim prikažemo
dvodimenzionalno soseščino posameznikov, kadar je uporabljen dvodimenzionalni lokalni
model [20].
Slika 5.6: Prikaz ciljnih vrednosti vseh posameznikov ene generacije: točkovni graf (levo), stopničast graf
(sredina) in barvni graf za dvodimenzionalni lokalni model (desno) [20].
Sekvenca takšnih diagramov, na primer graf za vsako generacijo, prikaže difuzijo dobrih
ciljnih vrednosti skozi potek optimizacije.
Prikaz lastnosti oziroma spremenljivk znotraj populacije ene generacije daje vtis o
porazdelitvi posameznikov, njihovi medsebojni oddaljenosti oziroma nasičenosti v
prostoru odločitev. Primer so trije grafi (Slika 5.7), vsak prikazuje svoje stanje oziroma
generacijo. Tako lahko vidimo porazdelitev odločitvenih vrednosti na začetku
evolucijskega postopka (levo), med (sredina) in na koncu optimizacije (desno) [20]. Pri
tem primeru obstaja nevarnost napačnega razumevanja. Vrednosti posameznih
odločitvenih spremenljivk so povezane s črto, čeprav med njimi ni nobene povezave,
zaradi česar bi lahko napačno sklepali o medsebojnih sklepal o medsebojnih odvisnostih
odločitvenih spremenljivk.
Vizualizacija procesov evolucijskega računanja Stran 40
Slika 5.7: Sekvenca prikazov porazdelitev odločitvenih spremenljivk po generacijah: začetek optimizacije (levo),
med optimizacijo (sredina) in na koncu (desno) [20].
Do sedaj so bili vsi prikazani podatki podani s strani evolucijskega algoritma. Naslednji,
zadnji tip grafov v sklopu prikazovanja posamezne populacije, razdalja posameznikov pa
prikazuje izpeljani tip podatkov. Za razdaljo med posamezniki se splošno uporablja
evklidska razdalja [20].
Če med posamezniki ni nobene sosedske relacije (globalni ali regionalni model), se lahko
razdalja prikaže s pomočjo dvodimenzionalnega stopničastega grafa (Slika 5.8 - levo), saj
ta neposredno prikaže porazdelitev posameznikov [20].
Slika 5.8: Razdalje med posamezniki v generaciji: globalni/regionalni model (levo), enodimenzionalni lokalni
model (sredina), dvodimenzionalni lokalni model (desno) [20].
Kadar je uporabljen lokalni model, je definirana relacija soseščine, zato je potrebno
prikazati posameznike v soseščini izbranega posameznika. V enodimenzionalni soseščini
Vizualizacija procesov evolucijskega računanja Stran 41
ima vsak posameznik dva soseda (Slika 5.8 - sredina), v dvodimenzionalnem lokalnem
modelu pa štiri sosede (Slika 5.8 - desno).
Vsi grafi, ki prikazujejo informacije posamezne generacije, morajo biti uporabljeni v
sekvenci, ki prikazuje vsaj ključne korake (na primer vmesno stanje in zaključek).
Animacija teh sekvenc lahko razkrije dodatne informacije ali jih prikaže v dopolnjeni
obliki in nudi dodatni vpogled v podani problem.
5.3 Večdimenzionalna predstavitev
Večina obstoječih metod za vizualizacijo je omejena na prikaz ene oziroma dveh
spremenljivk. Razlog za to je omejitev človeškega dojemanja na tri dimenzije. Za razširitev
preko te meje se lahko poslužimo dodatnih možnosti: na primer uporabe barv in časa, s
čimer je možno prikazati do pet dimenzij. Nobena rešitev se ni splošno uveljavila, saj bi
potrebovali obsežno učenje in prakso za smiselno uporabo. Če bi želeli vizualizirati
problem z več kot petimi dimenzijami, bi potrebovali novo rešitev [20]. Ker imamo pri
večkriterijski optimizaciji opravka z vektorji v večdimenzionalnem prostoru, je zelo
pomembno, da jih znamo vizualizirati. Večina metod za vizualizacijo večdimenzionalnih
podatkov izvira iz drugih področij, ki niso prilagojene za prikaz ali sploh za ohranjanje
relacije Pareto dominiranosti.
Za vizualizacijo večdimenzionalnih podatkov je potrebna metoda, ki transformira podatke
v manj dimenzij, po možnosti v dve ali tri. S to transformacijo je potrebno pridobiti sliko,
kjer so v manj dimenzionalnem prostoru razlike (ang. dissimilarities) med podatki enako
očitne kakor v večdimenzionalnem [20]. Takšne metode se imenujejo "večdimenzionalno
skaliranje" (ang. multidimensional scaling) [3], primer je predstavljen tudi v članku H.
Pohlheim [20].
Za merjenje raznolikosti je uporabljeno merjenje razdalj med pari. Te so lahko resnične
razdalje, na primer merjenje evklidske razdalje v več dimenzijah. Kadar ta ne pride v
poštev, na primer zaradi raznolikosti meril, se lahko raznolikost definira z uporabo
nadomestne metrike. Ta mora ustrezati trikotniški neenakosti [20]:
Vizualizacija procesov evolucijskega računanja Stran 42
, (5.1)
kjer je d razdalja, i, j in k so posamezniki.
V članku je tudi predlagana pretvorba v manj dimenzionalno predstavitev. Zanjo je
potrebno najprej izračunati razdalje med vsemi posamezniki v večdimenzionalnem
prostoru. Nato se išče takšna konfiguracija točk manjdimenzionalne predstavitve, kjer so
razdalje čim bolj podobne razdaljam v večdimenzionalnem prostoru. Ker je v večini
primerov nemogoče najti transformacijo, kjer bodo vse razdalje popolnoma ohranjene, je
potrebna kriterijska funkcija, ki bo ocenjevala ustreznost predstavitve [20]:
, (5.2)
kjer je ocena preslikave (manjša vrednost pomeni manjše spremembe razlik pri
preslikavi), razdalja med posameznikoma i in j v večdimenzionalni predstavitvi in
razdalja med posameznikoma po transformaciji v manj dimenzionalno predstavitev.
Optimalna rešitev minimizira to kriterijsko funkcijo in jo lahko optimiziramo z metodo
gradientnega sestopa, ki ga preprosto izračunamo po enačbi [20]:
, (5.3)
kjer je preslikani posameznik v manjdimenzionalnem prostoru.
Najbolj razširjena metoda večdimenzionalnega skaliranja je preslikava SAMMON [24]. Ta
temelji na Newtonovi metodi, vendar ni najbolj robustna in divergira brez posebnih
interakcij.
Druga metoda je algoritem RPROP [22]. Ta za nadzor koraka uporablja le predznak
gradienta. Uporablja se predvsem v področju nevronskih mrež, saj je namreč nekoliko
počasnejši, vendar daje dosledne rezultate.
Vizualizacija procesov evolucijskega računanja Stran 43
Slika 5.9: Rosenbrockova funkcija s tremi dimenzijami. Optimalne vrednosti, modri pas, so razlog za njeno drugo
ime "banana function".
Kot primera večdimenzionalnega skaliranja bomo prikazali rešitve dveh problemov.
Prvi je Rosenbrockova funkcija (Slika 5.10 - levo), znana tudi kot banana funkcija zaradi
svoje tridimenzionalne predstavitve (Slika 5.9). Ta je bila skalirana iz desetih dimenzij na
dve, pri tem je ohranila svoj znameniti lok [20].
Slika 5.10: Primeri večdimenzionalnega skaliranja z uporabo metode SAMMON [20].
Vizualizacija procesov evolucijskega računanja Stran 44
Druga funkcija je problem iz resničnega sveta, Chopper (pretvornik za enosmerni tok), kjer
je večdimenzionalna predstavitev vsebovala devet dimenzij. Pri njej je pot preiskovanja
potekala popolnoma drugače kot v primeru Rosenbrockove funkcije. Prvih pet generacij je
preiskovalo samo eno področje. V deseti generaciji se je preiskovanje končalo v področju,
ki je bilo zelo oddaljeno od prejšnjega. Vse nadaljnje generacije so preiskovale relativno
majhen prostor rešitev [20].
Prav tako obstajajo alternativne možnosti prikazov večdimenzionalnih podatkov, katerih
večina izvira iz drugih področij.
Ena izmed teh je uporaba raztrosnih grafov, kjer se za vsako kombinacijo kriterijev izriše
ločeni graf, vse dimenzije, ki niso prikazane na posameznem grafu, pa se enostavno
zanemarijo (Slika 5.11). Ta metoda je široko uporabljana in primerna za splošno uporabo,
saj je robustna in ohranja informacijo o obliki množice ter posledično tudi relacijo
dominiranosti [26].
Slika 5.11: Raztrosni grafi za prikaz večdimenzionalnega prostora [26].
Za vizualizacijo dodatnih dimenzij se lahko uporabijo tudi lastnosti prikaza, kot je recimo
barva, čas ali velikost točk. Primer štiri dimenzionalne aproksimacije je trodimenzionalni
Vizualizacija procesov evolucijskega računanja Stran 45
mehurčni grafikon z uporabo velikosti mehurčka za četrto dimenzijo (Slika 5.12).
Imenonujemo ga tudi "trade-off plot". Njegove prednosti in slabosti so enake kot pri
raztrosnih grafih, vendar podaja vse informacije v enem samem grafu [26].
Slika 5.12: Mehurčni graf z uporabo velikosti točk za dodatno dimenzijo [26].
Iz področja fizike izvira metoda vizualizacije z uporabo radialnih koordinat (RadViz). Pri
tej predstavitvi so kriteriji, v tem primeru dimenzijska sidra (ang. dimensional anchors),
enakomerno porazdeljeni po krožnici. Tako lahko definiramo vsak vektor kriterijev kot
delec, ki ga dimenzijska sidra oziroma kriteriji vlečejo vsak k sebi s silo, sorazmerno
vrednosti vektorja po danem kriteriju. Delec je tako prikazan v položaju, kjer so sile v
ravnotežju. Če je vektor zelo dober po kriteriju in slab po ostalih kriterijih, se bo nahajal
zelo blizu kriterija , če pa je enako dober po vseh kriterijih, se bo nahajal v središču
krožnice. S to metodo je mogoče zelo dobro ohraniti porazdelitev aproksimacijske
množice, vendar ne omogoča dobre predstave o položajih posameznih točk, na primer
(Slika 5.13) ne omogoča vpogleda v obliko aproksimacije [26].
Vizualizacija procesov evolucijskega računanja Stran 46
Slika 5.13: Vizualizacija štirih dimenzij z uporabo radialnih koordinat [26].
Pogosta metoda vizualizacije večkriterijskih optimizacij je uporaba paralelnih koordinat
(Slika 5.14). Pri tej metodi večdimenzionalne vektorje prikažemo kot lomljene črte z
oglišči na paralelnih oseh, položaji na posameznih oseh pa prikazujejo vrednosti
posameznih kriterijev. S to metodo je mogoče hitro razpoznati odvisnosti in neodvisnosti
posameznih kriterijev, vendar pri večjem številu prikazanih vektorjev ali kriterijev graf
hitro postane nepregleden [26].
Slika 5.14: Uporaba paralelnih koordinat za vizualizacijo štiri dimenzionalnih vektorjev [26].
Tako kot pri enokriterijski optimizaciji lahko uporabimo barvne grafe, imenovane tudi
"heatmaps" (Slika 5.15). Podobno kot pri metodi paralelnih koordinat lahko hitro
Vizualizacija procesov evolucijskega računanja Stran 47
ugotovimo povezave med kriteriji in porazdelitve vrednosti, vendar pa izgubimo
informacije o obliki. Svetla plat je, da pri primerjavi več vektorjev ti ostanejo bolj
pregledni [26].
Slika 5.15: Heatmap za optimizacijo štirih kriterijev [26].
S področja nevronskih mrež izvirajo številne metode za vizualizacijo večdimenzionalnih
podatkov. Primer je neuroscale, ki podobno kot SAMMON minimizira razlike v razdaljah
vektorjev pri transformaciji v manj dimenzionalni prostor. Pri tem se uporablja nevronska
mreža z radialno osnovo. Pristop ima zelo slabe rezultate, saj je možno, da se že prikaz
linearne funkcije izkrivi (Slika 5.15). Drugi primer je uporaba samo-organizirajočih
nevronskih mrež, kjer se vsak vektor predstavi z ločenim nevronom, pri čemer se vektorji,
ki so blizu skupaj, preslikajo v bližnje nevrone. Ko je nevronska mreža naučena, je možno
uporabiti različne prikaze, vendar ni možno prikazati kaj več kakor razdaljo med nevroni
(Slika 5.16) [26].
Vizualizacija procesov evolucijskega računanja Stran 48
Slika 5.16: Primer izkrivljenosti oblike linearne funkcije pri vizualizaciji z neuroscale [26].
Slika 5.17: Uporaba samo-organizirajočih nevronskih mrež. Barva prikazuje oddaljenost med nevroni oziroma
vektorji kriterijev [26].
Zanimiva metoda je tudi analiza poglavitnih komponent (ang. principal component
analysis - PCA), ki se najpogosteje uporablja pri obdelavi signalov (Slika 5.18). Ta s
pomočjo kovariančne matrike in lastnih vektorjev izbere linearne kombinacije originalnih
vrednosti, pri čemer je cilj, da s čim manj kombinacijami opišemo razpršenost čim več
podatkov. Te so urejene od najpomembnejše komponente, ki predstavlja največ informacij,
do najmanj pomembne komponente. Metoda je uporabna predvsem zato, ker zmanjša
število potrebnih dimenzij, pri čemer ohranja količino informacije [26].
Vizualizacija procesov evolucijskega računanja Stran 49
Slika 5.18: Rezultat PCA nad linearno in sferično funkcijo [26].
Iz področja evolucijskih algoritmov izvirajo tudi lastne metode vizualizacije, namenjene
prav za prikazovanje aproksimacijskih množic večkriterijske optimizacije.
Primer so prikazi oddaljenosti, na primer vizualizacija vektorjev kriterijev po njihovi
razdalji do podane aproksimacije Pareto fronte, imenovana graf razdalj (ang. distance
chart), ali po oddaljenosti vektorjev kriterijev med seboj, imenovana graf porazdelitve
(ang. distribution chart). Natančen izračun teh razdalj je računsko zelo zahteven, kadar je
kriterijev veliko, zato je predlagan približni izračun. V primeru (Slika 5.19) je za
aproksimacijo Pareto fronte uporabljena unija nedominiranih vektorjev linearne in sferične
funkcije, pri čemer graf razdalj jasno prikaže, da je večina vektorjev iz sferične funkcije
dominiranih s strani linearne funkcije. Graf porazdelitve pri tem ne uspe prikazati razlike
med obema funkcijama [26].
Vizualizacija procesov evolucijskega računanja Stran 50
Slika 5.19: Graf razdalj (zgoraj) in graf porazdelitve (spodaj) za linearno (zeleno) in sferično (modro) funkcijo
[26].
Prikazi interaktivnih odločitev (ang. interactive decision maps - IDM) predstavljajo lupino
Edgeworth-Pareto (Slika 5.20). Namesto, da bi prikazali končno število vektorjev iz
aproksimacije, z IDM prikažemo ploskve prostora, ki ga opisuje Pareto fronta, pri čemer so
stranice ploskev poravnane s posameznimi kriteriji. Omejitev tega pristopa je, da ga je v
osnovi mogoče uporabiti le za prikaz dvo- ali tridimenzionalnih prostorov rešitev. Za
dodatno dimenzijo se lahko uporabi interaktivna odločitev. Ta metoda omogoči dober
vpogled v obliko aproksimacije in njeno porazdelitev, vendar ne nudi informacije o
dominiranosti med množicami [26].
Vizualizacija procesov evolucijskega računanja Stran 51
Slika 5.20: Prikaz interaktivnih odločitev za linearno (levo) in sferično funkcijo (desno), kjer je četrti kriterij
podan v obliki interaktivne izbire [26].
Štetje diagonal hiperprostora temelji na predpostavki, da ima množica naravnih števil ℕ
enako kardinalnost kakor ℕ , kjer je m naravno število. Zato ž ℕ ℕ
s š g P
kriterijev na š V š se na š za vsak par
š g indekse
posameznega para, te ž g u
u š
š M ž
ž (sla u ,
ž i relacije dominiranosti (Slika 5.21) [26].
Vizualizacija procesov evolucijskega računanja Stran 52
Slika 5.21: Prikaz za štetje diagonal v hiperprostoru [26].
Z namenom ohranjanja relacije dominiranosti je bila razvita metoda dvostopenjske
preslikave. Ta se trudi ohranjati relacijo dominiranosti in razdalj med vektorji. V prvi fazi
se preslikajo vsi vektorji na četrtino krožnice. Za iskanje permutacije vektorjev, ki najbolje
ohranja lastnosti po obeh kriterijih (relacije dominiranosti in razdalje med vektorji), se
uporabi večkriterijska optimizacija, na primer NSGA-II. Ko je najdena dobra permutacija,
se nedominirani vektorji preslikajo na krožnico v zaporedju, ki ga je podala permutacija, z
razmaki, ki so proporcionalni skupnemu seštevku razdalj. V drugi stopnji se vsi dominirani
vektorji preslikajo v minimalni vektor izmed vseh nedominiranih vektorjev, ki ga
dominiranjo. Dobljeni prikaz (Slika 5.22) na žalost ne nudi kaj več informacij kakor
delitev na dominirane in nedominirane vektorje. Prav tako je metoda računsko zelo
potratna, saj vključuje optimizacijo večkriterijskega problema in se lahko že z najmanjšo
razliko, na primer dodajanjem ali odvzemanjem enega vektorja, v celoti spremeni [26].
Vizualizacija procesov evolucijskega računanja Stran 53
Slika 5.22: Dvo stopenjska preslikava linearne in sferične funkcije [26].
Novo možnost vizualizacije pri algoritmih večkriterijske optimizacije je leta 2014
prikazala Tea Tušar [26]. Predstavila je metodo, ki z uporabo prosekcije oziroma
projekcijske selekcije (ang. prosection - projection of a selection) vizualizira
aproksimacijske množice štiridimenzionalne razsežnosti v obliki tridimenzionalnega
prostora. Ta v veliki meri ohranja obliko, obseg in porazdelitev vektorjev v
aproksimacijskih množicah. Njena najpomembnejša lastnost je, da je sposobna ohranjati
relacijo Pareto dominiranosti in relativno razdaljo med posameznimi referenčnimi točkami.
Metoda je robustna in računsko manj zahtevna.
Metoda je način upodabljanja z izračunom cuboidov, ki si jih lahko predstavljamo kot
kvadre v tri dimenzionalnem prostoru (Slika 5.23). Pri tem se vsakemu pripiše vrednost, ki
ponazarja vektor kriterijev ali pa razliko med njegovimi oglišči.
Slika 5.23: Primer izračunanega 3D negativa aproksimacijske množice z uporabo cuboidov [26].
Vizualizacija procesov evolucijskega računanja Stran 54
Pri tej metodi obstajajo različne možnosti prikazovanja, pri čemer so v delu [26]
predstavljene tri metode:
Rezanje (ang. slicing) predstavlja način prikaza, kjer podatke v večdimenzionalnem
prostoru "presekamo" z ravnino in prikažemo vsebino te ravnine v obliki
dvodimenzionalnega prikaza (Slika 5.24). Ravnina je pogosto poravnana z osmi, saj je za
prikaz večkriterijske optimizacije pomembno, da vsebuje optimalno točko in vsaj eno os.
Metoda je sorodna prikazu interaktivne izbire, saj ta prav tako prikazuje preseke več
ravnin, kjer je posamezni presek obarvan z drugačno barvo [26].
Slika 5.24: Primer rezanja prostora z ravnino [26].
Projekcija največje intenzitete (ang. maximum intensity projection - MIP) je druga metoda,
namenjena za prikaz prostora, ki je predstavljen z voxli. Metoda pregleduje vrednosti
voxlov vzdolž projekcijskega žarka in projicira največjo najdeno vrednost. Metoda je bila
predlagana za tridimenzionalno vizualiziranje na področju medicine pri radioaktivnem
sevanju. Prednost te metode je njena preprostost in visok kontrast v prikazu, ki je
posledica tega, da vedno prikaže največjo vrednost. Slabost pristopa je, da ne daje
nobenega vtisa globine, gledalec namreč ne more razločiti, kaj je spredaj, zadaj, levo ali
desno. Delna rešitev je izris sekvence prikazov iz rahlo zamaknjenih zornih kotov ali
animacija teh, kar daje boljšo prostorsko predstavo zaradi vtisa obračanja [26].
Tretja metoda je metoda neposrednega prikaza prostornine (ang. direct volume rendering -
DVR). Ta z uporabo naprednih metod senčenja omogoča interaktivni prikaz v realnem
Vizualizacija procesov evolucijskega računanja Stran 55
času. Beseda "neposredno" v imenu izvira iz tega, da metoda ne zahteva eksplicitnega
izvlečka prikazane geometrije ali ploščin. Najprej se vsaki vrednosti voxlov pripiše barva
in prosojnost ter določi funkcija prenosa, ki je lahko linearna, tabela vrednosti ali karkoli
drugega, vendar je izbira te povsem nov problem. Za namene vizualizacije se nato uporabi
ena izmed tehnik grafike, na primer sledenje žarku (ang. ray casting), splatting, shear-warp
faktorizacija ali teksturno upodabljanje volumna. V primeru uporabe metode sledenja
žarku se za vsak žarek oziroma piksel preračuna akumulirana barva in prosojnost glede na
voxle, ki se nahajajo vzdolž tega [26].
Slika 5.25: Prikaz cuboidov linearne in sferične funkcije z uporabo rezanja [26].
Vse metode prikazovanja dobljenih cuboidov imajo svoje prednosti in slabosti. Rezanje
(Slika 5.25) je zmožno prikazati več množic podatkov brez prekrivanja, vendar lahko
prikaže le en prerez naenkrat. MIP (Slika 5.26 - zgoraj) omogoča prikaz vsega v enem
prikazu, za kar ne potrebuje nobenih dodatnih parametrov, vendar ne daje nobene
predstave o globini. Prav tako je omejen glede števila prikazanih cuboidov. DVR (Slika
5.26 - spodaj) omogoča lepe, človeku razumljive prikaze, prosojnost in ohranja predstavo
globine. Njegova edina slabost je potreba po definiranju prenosne funkcije [26].
Vizualizacija procesov evolucijskega računanja Stran 56
Slika 5.26: Vizualizacije linearne in sferične funkcije oziroma njune razlike (linearna - sferična (levo), sferična -
linearna (desno)) z uporabo cuboidov in prikazom MIP (zgoraj) in DVR (spodaj) [26].
Vizualizacija procesov evolucijskega računanja Stran 57
6 VIZUALIZACIJA V OGRODJU EARS
V poglavju je predstavljena naša nadgradnja ogrodja EARS. Z njo smo omogočili
vizualizacijo evolucijskih procesov posameznih evolucijskih algoritmov. Najprej je
prikazana tehnična stran nadgradnje, pri čemer podrobneje opišemo svoje možnosti in
omejitve med razvojem. V naslednjem poglavju je podrobno predstavljena vizualizacija
enokriterijskih algoritmov. V zadnjem poglavju predstavimo svojo rešitev za vizualizacijo
večkriterijskih problemov.
6.1 Tehnične podrobnosti in omejitve
Za vizualizacijo evolucijskih procesov smo uporabili javansko knjižnico JavaPlot (v0.5.0)
[13], ki je odprtokodna ovojnica za orodje gnuPlot (v5.0.4) [28], ta pa je orodje za
izrisovanje grafov preko ukazne vrstice, s podporo za vse večje operacijske sisteme. S tem
smo zagotovili, da sistem ostane kompatibilen z različnimi operacijskimi sistemi.
Za izhodne oblike svojega dela smo podprli osnovni prikaz v obliki okna, izvoz v slikovni
format PNG, skriptni format PLOT ter izvoz statistike posameznih algoritmov v obliki
datoteke CSV. Za namene uporabe grafov v člankih smo zraven barvnih grafov omogočili
tudi sivinske.
Cilj našega dela je bila nadgradnja obstoječega sistema EARS. Zaradi tega je bilo potrebno
prilagoditi naše delo tako, da smo minimizirali spremembe v obstoječi kodi.
Glavni cilj je bil nadgradnja brez kakršnih koli sprememb v kodah posameznih
evolucijskih algoritmov, kar je predstavljalo obsežno oviro. Zaradi tega smo se morali
zadovoljiti z omejeno obliko pridobivanja podatkov. Problem smo poskušali rešiti z
lovljenjem klicev za ovrednotenje rešitve eval(double[]). Ta se kliče pri vsakem
ovrednotenju, zaradi česar ne spregledamo nobene rešitve in obenem dobimo tako
odločitveni vektor kakor vektor kriterijev, vendar to ni dovolj. Za namene beleženja
podatkov za vizualizacijo namreč prav tako potrebujemo informacije o algoritmu,
problemu in - zaradi sistema CRS4EA - številko zagona.
Za shranjevanje rezultatov smo ustvarili strukturo s štirimi kazalci na za nas pomembne
podatke. Ta je bila sestavljena iz:
Vizualizacija procesov evolucijskega računanja Stran 58
Funkcija eval() se kliče preko razreda Task, oziroma MOTask, ta pa vsebuje kazalec na
problem, zato pridobitev le-tega ni predstavljala dodatnega problema. Klic ovrednotenja
izhaja iz kode algoritma, pri čemer ta pri klicu eval() ne podaja kazalca nase. Torej bi
lahko rekli, da so klici anonimni in je bilo potrebno poiskati rešitev drugje.
Prva rešitev je bila analiza kopice. Z njo smo uspeli pridobiti ime razreda, oziroma
algoritma, ki je klical ovrednotenje, vendar se je pri tem pojavil dodatni problem. S to
public Solution eval(double[] ds) throws StopCriteriaException { if (stopCriteria == EnumStopCriteria.EVALUATIONS) { incEvaluate(); // SPREMENJENO // // ODSTRANJENO: //return new Solution(ds,p.eval(ds),p.calc_constrains(ds)); // DODANO: Solution tmpSolution = new Solution(ds,p.eval(ds),p.calc_constrains(ds)); GraphDataRecorder.AddRecord(tmpSolution, p); return tmpSolution; // SPREMENJENO // } if (stopCriteria == EnumStopCriteria.GLOBAL_OPTIMUM_OR_EVALUATIONS) { if (isGlobal) throw new StopCriteriaException("Global optimum already found"); incEvaluate(); double d = p.eval(ds); if (Math.abs(d - p.getOptimumEval()) <= epsilon) { isGlobal = true; } // SPREMENJENO // // ODSTRANJENO: //return new Solution(ds,d,p.calc_constrains(ds)); // DODANO: Solution tmpSolution = new Solution(ds,d,p.calc_constrains(ds)); GraphDataRecorder.AddRecord(tmpSolution, p); return tmpSolution; // SPREMENJENO // } assert false; // Execution should never reach this point! return null; //error }
class RecordedData
{ public SolutionBase solution; public ProblemBase problem; public AlgorithmBase algorithm; public long iteration; }
Vizualizacija procesov evolucijskega računanja Stran 59
metodo nismo pridobili kazalca na dejanski objekt, kar lahko predstavlja težave v primeru
turnirja enega algoritma, kjer je več instanc z različnimi parametri krmiljenja. Algoritmi
prav tako vsebujejo kazalec na strukturo, ki hrani informacije o algoritmu, kot na primer
njegovo ime, identifikator, ime avtorja in velikost populacije. Ob tej rešitvi do teh
informacij nimamo dostopa, kar bi pomenilo, da bi v primeru iskanja optimalnih
parametrov algoritmov imeli enake oznake za vse algoritme.
Druga rešitev je bila izvedena z dodatnim lovljenjem klicev runOneProblem() znotraj
razredov RatingBenchmark in MORatingBenchmark. V njih se nahaja zanka, ki služi kot
osnova za turnir in požene optimizacijo vsakega problema z vsakim algoritmom. S tem
smo uspeli uloviti sam kontekst izvajanja, niti oziroma pridobiti še zadnje informacije,
informacijo o algoritmu in - ker se za vsak zagon algoritma izvajanje ponovno ulovi -
številko zagona posamezne kombinacije algoritma in problema.
Vizualizacija procesov evolucijskega računanja Stran 60
S tem, ko smo uspeli zagotoviti pridobivanje podatkov o ovrednotenjih, ne da bi
spreminjali kodo posameznih algoritmov, smo imeli osnovo za nadaljnjo analizo in
vizualizacijo podatkov. Vseeno pa to vodi v nadaljnje probleme, saj nimamo načina, s
katerim bi lahko sledili sestavi populacij algoritmov.
protected void runOneProblem(Task task, BankOfResults allSingleProblemRunResults) { long start=0; long duration=0; for (Algorithm al: listOfAlgorithmsPlayers) { reset(task); //number of evaluations try { start = System.currentTimeMillis(); if (printSingleRunDuration) { System.out.print(al.getID()+": "); } // SPREMENJENO // // DODANO: GraphDataRecorder.SetContext(al,task); // SPREMENJENO // Solution bestByALg = al.run(task); //check if result is fake! duration = System.currentTimeMillis()-start; al.addRunDuration(duration); if (printSingleRunDuration) System.out.println(duration/1000); reset(task); //for one eval! if (task.areDimensionsInFeasableInterval(bestByALg.getVariables())) { if(recheck) { Solution best = task.eval(bestByALg.getVariables()); //rechecks individual! if (best.getEval()!=bestByALg.getEval()) System.err.println(al.getAlgorithmInfo().getVersionAcronym()+" result real"+best.getEval()+" is different than "+bestByALg.getEval()); results.add(new AlgorithmEvalResult(best, al)); allSingleProblemRunResults.add(task.getProblem(), best, al); } else { results.add(new AlgorithmEvalResult(bestByALg, al)); allSingleProblemRunResults.add(task.getProblem(), bestByALg, al); } } else { System.err.println(al.getAlgorithmInfo().getVersionAcronym()+" result "+bestByALg+" is out of intervals! For task:"+task.getProblemShortName()); results.add(new AlgorithmEvalResult(null, al)); // this can be done parallel } } catch (StopCriteriaException e) { System.err.println(al.getAlgorithmInfo().getVersionAcronym()+" StopCriteriaException for:"+task+"\n"+e); results.add(new AlgorithmEvalResult(null, al)); } } }
Vizualizacija procesov evolucijskega računanja Stran 61
Delno rešitev predstavlja struktura osnovnih informacij o algoritmu, kjer lahko iščemo
velikost populacije, vendar ta pogosto ni navedena ali pa je velikost populacije
spremenljiva. Dodatno ima veliko algoritmov drugačno velikost začetne populacije kakor
med evolucijo. Prav tako - ker sledimo samo novim ovrednotenjem rešitev - nimamo
vpogleda v uporabo elitizma pri enokriterijskih algoritmih oziroma v vsebino arhiva v
primeru večkriterijske optimizacije.
Kot kompromis in po eni strani izboljšavo za primerjavo posameznih algoritmov smo se
odločili za segmentiranje podatkov in namesto velikosti populacije uporabili nastavljivi
korak. S tem imamo omogočen boljši pogled za primerjavo algoritmov, saj so ti prikazani
v enako obsežnih delih in vsi zavzemajo enak delež grafa.
Dodatni problemi so se pojavili s strani same knjižnice JavaPlot, saj je ta pomanjkljiva,
oziroma je le delna ovojnica in je veliko stvari nepodprtih. Nastale probleme je bilo
potrebno reševati tudi z dodatnim vrivanjem v generirano skripto. Najbolj očiten primer je
bila manjkajoča podpora za izris črtkanih črt v izhodih v obliki slike. Prav tako knjižnica ni
bila posodobljena že od začetka leta 2015.
6.2 Vizualizacija enokriterijske optimizacije
V poglavju bomo predstavili svojo rešitev za vizualizacijo enokriterijske optimizacije.
Najprej bomo na kratko predstavili možnosti s strani uporabnika sistema. Temu bo sledila
obširnejša razlaga možnosti oziroma njihovo ozadje, kaj posamezni prikazi povedo in
predstavljajo. Na koncu podamo primer uporabe vizualizacije za pridobivanje informacije
o evolucijskem postopku in kako lahko te uporabimo za boljše razumevanje.
6.2.1 Možnosti s strani uporabnika
Za namene vizualizacije enokriterijske optimizacije smo implementirali izrisovanje
statičnih grafov. Ti so modularni, zato lahko uporabnik izbere, kateri prikazi ga zanimajo.
Pri tem smo podprli več možnosti za prikaz (Slika 6.1):
najboljši rezultat,
najslabši,
povprečje in
Vizualizacija procesov evolucijskega računanja Stran 62
standardni odklon.
Slika 6.1: PSO-jevo reševanje Easom problema. Prikaz zanimivih vrednosti: najslabše (rdeče), najboljše (zeleno),
povprečje (modro) in standardni odklon (oranžno).
Za osnovno vizualizacijo je potreben majhen odsek kode:
V tem odseku kode najprej pridobimo podatke, ki ustrezajo omejitvam algoritmov oziroma
problemov. Nato podamo opcijske parametre, kot so imena izhodnih datotek, velikosti
datas = GraphDataManager.GetDataFor(TLBOAlgorithm.class, ProblemAckley.class); GraphSet graphs = new GraphSet(datas); graphs.setOutputFilesAutomatic(true); graphs.setCanvasSize(1280, 960); graphs.setPlotColorScheme(PlotColorScheme.Grayscale); graphs.Plot(PlotType.AverageOfIterations); graphs.Plot(PlotType.StandardDeviationOfIterations); graphs.Flush();
Vizualizacija procesov evolucijskega računanja Stran 63
grafov, njihove naslove in podobno. Na koncu še izvedemo izris, kjer se izberejo tipi
prikazov.
Slika 6.2: Združen graf reševanja problema Easom za 5 algoritmov. Črte s točkami predstavljajo povprečja,
črtkane črte prikazujejo standardni odklon.
Prav tako smo omogočili združitev grafov posameznih algoritmov za lažjo medsebojno
primerjavo, pri tem pa se vsakemu algoritmu določi svoja barva za vse njegove prikazane
vrednosti (Slika 6.2).
Orodje je namenjeno predvsem za razvoj evolucijskih algoritmov. Zaradi tega lahko
predpostavimo, da ga bodo uporabljali predvsem raziskovalci, zato bodo potrebovali
vizualizacijo za vključitev v predstavitve in znanstvene članke. Tu barvni prikaz pogosto
ne pride v poštev. Na predstavitvah je lahko na razpolago slabši projektor, za objavljene
članke pa največkrat uporablja črno-beli format. Zato smo omogočili tudi menjavo barvne
sheme na sivinsko (Slika 6.3).
Vizualizacija procesov evolucijskega računanja Stran 64
Slika 6.3: Sivinski prikaz za RandomWalk pri reševanju problema Easom (levo) in združeni prikazi algoritmov
(desno).
6.2.2 Implementacija
Zaradi problemov pri zaznavi mej generacij (podrobneje opisano v poglavju 6.1) smo se
morali omejiti na razmejevanje ovrednotenj na korake oziroma intervale. Te lahko
uporabnik ročno nastavlja ali pa pusti privzeto velikost posameznega intervala.
Hitro se pojavi prva težava pri našem načinu zajemanja in delitve podatkov (Slika 6.4):
noben sodobni algoritem ne bo zavestno zavrgel boljših rezultatov in prešel na slabše. Prav
tako bi bilo nenavadno, če bi kljub takšni taktiki uspel postopno izboljševati rezultat. To
smo morali kompenzirati pri nadaljnih izračunih vrednosti.
Vizualizacija procesov evolucijskega računanja Stran 65
Slika 6.4: Zgodnja implementacija vizualizacije algoritma TLBO nad problemom Ackley. Razvidna je nerealna
poskakovanja fitnessa zaradi nezaznavanja elitizma.
Za povprečni fitness pričnemo gledati povprečje prvega intervala, pri čemer obravnavamo
rešitve vseh neodvisnih zagonov. V nadaljevanju je potrebno preveriti, ali je povprečje
novega intervala veljavno ali ne, ali smo naleteli na uporabo elitizma, pri čemer bi bilo
novo povprečje slabše od povprečja predhodnega intervala. V tem primeru ponovno
vzamemo prejšnjega.
, (6.1)
, (6.2)
kjer je avg povprečje, i zaporedna številka intervala, ocena rešitve z indeksom j v
neodvisnem zagonu k, maxRuns število neodvisnih zagonov in evalsPerStep velikost
intervalov.
Vizualizacija procesov evolucijskega računanja Stran 66
Na enak način obravnavamo tudi prikaz najboljših in najslabših rešitev. Za prikaz
odstopanja smo uporabili standardni odklon. Pri tem smo prikazali območje s središčem v
povprečju intervala. Znotraj tega območja se po definiciji nahaja 68 % zagonov.
, (6.3)
kjer je meja intervala, ki ga definira standardni odklon v intervalu i, povprečna
vrednost fitnessov na intervalu i v zagonu k in povprečna vrednost povprečij na
intervalu i med neodvisnimi zagoni.
6.2.3 Primeri interpretacije
V nadaljevanju bomo podrobneje pogledali in analizirali delovanje algoritmov na več
problemih. Za osnovo smo izvedli turnir s pomočjo sistema EARS. Pri tem smo za igralce
vzeli algoritme RandomWalk, PSO, ES(1+1) in TLBO. Turnir smo izvedli nad vsemi
problemi, vendar bomo zaradi preobširnega nabora v nadaljevanju pogledali le nekaj
problemov, kjer bomo lahko najlažje prikazali interpretacijo rezultatov. Za parametre
turnirja smo podali 50 neodvisnih zagonov, kjer smo algoritmom podali začetne ocene
1500, odstopanja 350 in volatilnost 0,06. Rezultati ocenjevanja po sistemu CRS4EA so
prikazani v nadaljevanju (Tabela 6.1), pri čemer so predvidena odstopanja ocen v obsegu
50.
Tabela 6.1: Končne ocene turnirja enokriterijskih optimizacijskih problemov pri 50 neodvisnih zagonih.
Algoritem TLBO PSO Wiki ES(1+1) RWSi CRS4EA rating 1.746,4 1.712,1 1.437,5 1.104
Pogledali bomo nekaj skupnih grafov, kjer je prikaz osredotočen na primerjavo več
algoritmov nad enakim problemom (Slika 6.5), te pa bomo interpretirali najprej s strani
posameznih algoritmov:
Vizualizacija procesov evolucijskega računanja Stran 67
Slika 6.5: Vizualizacije evolucijskih procesov vseh algoritmov nad posameznimi enokriterijskimi problemi: Ackley
(levo zgoraj), Branin (desno zgoraj), Easom (spodaj levo) in Rastrigin (desno spodaj).
Najbolj opazno odstopanje od drugih algoritmov se pojavi v primeru problema Ackley. Pri
tem je ES(1+1) deloval tako slabo, da se - razen na začetku procesa - interval standardnega
odstopanja rešitev sploh ni prekrival z intervalom nobenega drugega algoritma. Algoritem
je sicer na začetku uspel problem do neke mere optimizirati. Konec tega uspešnega
optimiziranja je celo nakazano zmanjšanje odstopanja, s čimer bi lahko predvidevali, da je
algoritem hotel začeti z eksploatacijo dobrih rešitev. Pri tem očitno ni bil uspešen ,
najverjetneje zaradi slabe izbire evolucijkih operatorjev, saj je zatem interval rešitev
ponovno narastel, število uspešnih optimizacij pa je začelo strmo upadati. To ni bil izreden
primer, saj je prikaz strnjen iz 50 neodvisnih zagonov. Algoritem je nato stagniral, saj ni
uspel - razen malenkosti pri približno 750 ovrednotenjih - ničesar izboljšati.
Obratni primer se pojavi v primeru problema Branin, kjer se je ES(1+1) izkazal za prav
neverjetno dobrega. Algoritem je začel z najbolj širokim naborom uspešnosti rešitev, več
kot trikratnim odstopanjem ostalih algoritmov ter najslabšim povprečjem, vendar se je v
Vizualizacija procesov evolucijskega računanja Stran 68
nekaj ovrednotenjih uspel prebiti skoraj do popolnega globalnega optimuma. Odstopanje je
padlo do te mere, da lahko skoraj s popolno gotovostjo trdimo, da bomo v vsakem zagonu
prišli do optimuma v zgodnjih ovrednotenjih.
Podobno kot pri problemu Ackley se algoritem vede tudi pri problemih Easom in
Rastrigin. Kolikor algoritem uspe optimizirati funkcijo, to stori na začetku, temu pa sledi
stagniranje povprečja in odstopanja, pri čemer je razvidno, da je tudi razpon ocen odvisen
od povprečne ocene. Z drugimi besedami, če bo algoritem uspešno optimiziral funkcijo, jo
bo z vsakim zagonom, če pa obstaja možnost naleta na lokalne minimume, se bo vedno
zaustavil na takšni rešitvi.
Če posplošimo opažanja iz teh grafov, bi z lahkoto tudi sami izpeljali "no free lunch"
teorem (poglavje 3.1), saj je algoritem močno specializiran za samo eno vrsto problema.
Algoritem PSO, ki je tudi po sistemu CRS4EA najboljši, se je odrezal izredno dobro v
vseh primerih, od prikazanih problemov ni bil najboljši le pri problemu Branin. Njegov
najbolj primerljiv nasprotnik je bil algoritem TLBO, ki je v vseh primerih dosegel enako
povprečno rešitev. Tako kot pri ES(1+1) opazimo popolno nasprotje med problemoma
Ackley in Branin. V primeru problema Ackley je TLBO v nekaterih zagonih obvisel v
lokalnih optimumih, medtem ko je PSO v vseh primerih dosegel globalni optimum.
Obratno je pri problemu Branin, kjer TLBO vedno doseže globalni optimum in se PSO
včasih ustavi v lokalni rešitvi.
Da bi razjasnili, kateri algoritem je boljši, lahko iz drugih dveh prikazov (Slika 6.5 - spodaj
levo in spodaj desno) problema Easom in Rastrigin opazimo, da imata oba med
optimizacijo približno enak razpon ocen, kar nakazuje, da sta oba enako zanesljiva. Kljub
temu pa TLBO v obeh primerih doseže globalni optimum nekoliko kasneje, za problem
Easom porabi približno tretjino več ovrednotenj, za Rastrigin pa približno enkrat več
ovrednotenj. Razlike med algoritmoma se nekoliko slabše odražajo v oceni pristopa
CRS4EA, kjer sta ocenjena z ratingom 1.746,4 in 1.712,1, kar nakazuje na zanemarljiva
razhajanja.
Vizualizacija procesov evolucijskega računanja Stran 69
Slika 6.6: Podrobnejši vpogled v evolucijska procesa algoritmov PSO in TLBO.
Oglejmo si oba algoritma pobliže (Slika 6.6). Hitro opazimo, da PSO optimizira v
enakomernem ritmu s hitrostjo, ki le počasi pojema. TLBO optimizira v dveh korakih
(učitelj, učenec), manjši korak optimizacije je skoraj neznaten, v drugem koraku pa
optimizira v nekoliko večjih korakih kot PSO.
Razlog za to obnašanje je v strategiji, saj TLBO menjava med eksploracijo in eksploatacijo
v upanju, da ne zgreši globalnega optimuma. Ta strategija se za problem Schwefel, ki ga
lahko zaradi številnih lokalnih optimumov označimo za enega izmed najzahtevnejših
problemov, izkaže za pravilno (Slika 6.7 - levo), za probleme brez lokalnih optimumov pa
je potratno izkoriščanje ovrednotenj (Slika 6.7 - desno). V tem primeru TLBO nedvoumno
premaga PSO, uspe doseči znatno boljši lokalni optimum ter dokaže večjo odpornost na
druge lokalne optimume, saj prikaže manjši interval razlik med neodvisnimi zagoni. Za
dosego boljših optimumov bi se morali poigrati s parametri algoritma oziroma jih boljše
nastaviti.
Vizualizacija procesov evolucijskega računanja Stran 70
Slika 6.7: Optimizacija Schweflove funcije (levo), vsak algoritem se izkaže različno odpornega na lokalne
minimume, vendar noben ne doseže globalnega minimuma, ter optimizacija problema Sphere (desno), kjer se
TLBO-jev korak eksploracije izkaže za odvečnega.
Za namene optimizacije zahtevnejših problemov, kjer je veliko število lokalnih
optimumov, lahko trdimo, da se bo TLBO odrezal bolje kakor PSO, vendar pa pogosto,
tudi v primeru sistema EARS, prevladujejo preprostejši problemi. Zato je razumljivo PSO
znatno boljši, saj se ni treba zanašati na slučajno uspešnost optimizacije, algoritem pa tudi
ne porablja odvečnih ovrednotenj, saj vsebuje tako komponento za eksploracijo kakor
komponento za eksploatacijo v vsaki rešitvi oziroma ovrednotenju.
6.3 Vizualizacija večkriterijske optimizacije
V tem poglavju predstavimo še vizualizacijo večkriterijskih optimizacij. Kot v prejšnjem
poglavju smo tudi tega razdelili na tri dele. Najprej predstavimo uporabniški vmesnik
oziroma njegove možnosti, temu sledi kratka predstavitev funkcionalnosti iz tehniškega
vidika, zaključimo pa s kratkim primerom primerjave oziroma interpretacijo.
6.3.1 Možnosti
Vizualizacija večdimenzionalnih podatkov je trenutno velik problem. Obstajajo delne
rešitve, na primer uporaba barve in časa za dodatni dimenziji, večdimenzionalno skaliranje
(poglavje 5.3) in podobne metode, vendar imajo vse svoje omejitve.
Vizualizacija procesov evolucijskega računanja Stran 71
Pomembno vlogo pri zasnovi naše rešitve je predstavljalo samo ogrodje EARS, ki smo ga
nadgrajevali. Trenutno (na dan 29. 8. 2016) imamo na razpolago nabor desetih
večkriterijskih problemov. Večina, sedem problemov, je le dvokriterijskih, trije problemi
pa so trikriterijski, in vsi problemi so minimizacijski.
Odločili smo se vizualizirati evolucijski proces s sekvenco slik, ki jih tudi animiramo.
Zaradi razvoja algoritmov in vrste problemov smo se posvetili predstavitvi podatkov, kot
so, brez skaliranja na manj dimenzij.
Za vsako kombinacijo algoritma in problema je omogočen izris statične slike in animacije.
Statične slike omogočajo enake izhodne formate kakor pri vizualizaciji enokriterijskih
optimizacij, PNG, PLOT in CSV. Pri teh predstavimo podatke z vidika celotnega
evolucijskega procesa - vse rešitve, ki jih ovrednoti algoritem. Druga možnost, animirana
slika v formatu GIF, je sestavljena iz sekvence slik, v kateri vsaka predstavlja svoj interval
v procesu optimizacije. Posamezna slika iz sekvence ostane dostopna v obliki izhoda
statične slike za namene prikaza v medijih, ki ne podpirajo animacije.
Uporabnik ima torej dostop do prikazovanja štirih vrst podatkov, večina od njih pa ima
ločena prikaza za animirano in statično obliko. Grafi podpirajo prikaz:
posameznikov (Slika 6.8 - sivi križci), kjer animirana verzija prikaza omogoča
prikaz rešitev več intervalov s postopnim slabljenjem prikaza starejših rešitev, s
čimer kompenziramo nepoznavanje algoritmovega arhiva (poglavje 6.1),
trenutne Pareto fronte (Slika 6.8 - modro območje) oziroma prostora, ki je
dominiran samo s strani posameznikov v trenutnem intervalu (Slika 6.8 - modre
točke),
do sedaj optimalne Pareto fronte (Slika 6.8 - zeleno območje), ki služi za namene
prikaza že dominiranega prostora, ki ga z rešitvami trenutno definiranega intervala
ne zaznamo, ali zaradi strategije algoritma ali problema arhiva,
končne Pareto fronte (Slika 6.8 - rdeče točke oziroma krivulja), s katero se prikaže
algoritmova končna rešitev, ki se poda kot rezultat na turnirju.
Vizualizacija procesov evolucijskega računanja Stran 72
Slika 6.8: Slika 58. intervala v animiranem prikazu reševanja večkriterijskega problema 3 s strani NSGAII.
Uporabnik ima pri tem nadzor nad izbiro prikazanih podatkov in dodatnimi parametri za
vizualizacijo. Tako kot pri enokriterijski vizualizaciji so podprte osnovne možnosti, kot na
primer velikost izhoda, poimenovanje datotek in podobno.
// Gather data: GraphDataSet datas = GraphDataManager.GetDataFor(NSGAII.class, null, 0); GraphSet graphs = new GraphSet(datas); // Settings: graphs.setOutputFilesAutomatic(true); graphs.setCanvasSize(1280, 960); graphs.setZoomScale(0.2); // Animation settings: graphs.setAnimationDuration(10000); graphs.setAnimationFramesPerSecond(10); graphs.setAnimationEvaluationsPerFrame(400); // Plotting: graphs.Plot(PlotType.MOAnimatedParetoFrontSearch); graphs.Flush();
Vizualizacija procesov evolucijskega računanja Stran 73
Dodatno ima uporabnik dostop do povečanja (zoomiranja) na končno rešitev, ki jo določi z
vrednostjo tipa double. Optimizacija večine problemov se namreč začne z zelo slabimi
rešitvami, vendar se že v nekaj generacijah zelo približajo optimalnim frontam. Zato se pri
celotnem prikazu večina podrobnosti na Pareto fronti ne opazi, ko pa se prikaže približani
graf, so te podrobnosti jasno razvidne (Slika 6.9).
Slika 6.9: Primerjava nepribližanega (levo) in približanega (desno) prikaza večkriterijske optimizacije.
Zaradi različnih potreb vpogleda v potek evolucije ima uporabnik dostop do treh
parametrov animacije, največ dva od njih lahko uporabnik nastavi, tretji pa se avtomatsko
prilagodi:
dolžine animacije (v milisekundah),
števila slik na sekundo (ang. frame rate) in
števila rešitev, ki jih prikažemo kot en interval (nadomestitev velikosti generacije).
6.3.2 Tehnične podrobnosti prikazov
Večina prikazanih podatkov temelji na relaciji dominiranosti (poglavje 2.3.1). Problem se
pojavi pri prikazovanju večkriterijskih optimizacij, ki imajo več kot dve dimenziji. Pri njih
si namreč ne moremo predstavljati Pareto fronte kot krivuljo, pač pa kot mrežo točk.
Najlaže bi si jo predstavljali kot hipervolumen (Slika 6.10) [1].
Vizualizacija procesov evolucijskega računanja Stran 74
Slika 6.10: Primer hipervolumna oziroma dominiranega prostora pri treh kriterijih.
Ker smo dali prednost prikazu reševanja brez transformacije prostora, smo potrebovali
rešitev za prikaze večdimenzionalnih problemov. Pri dvokriterijskih problemih smo lahko
točke Pareto front povezovali, saj so predstavljale krivuljo, pri tri in več kriterijskih pa smo
vizualizacijo razdelili na dvodimenzionalne prikaze oziroma na dvomestne kombinacije
vseh kriterijev. Tako smo pri trikriterijskih problemih ustvarili prikaze iz treh zornih kotov,
v njih pa smo obravnavali prikazovanje kot dvodimenzionalni problem (Slika 6.11).
Vizualizacija procesov evolucijskega računanja Stran 75
Slika 6.11: Dvodimenzionalni prikaz trikriterijskega problema 9. Jasno so razvidni kolobarji, ki nastanejo zaradi
razlik po tretjem (neprikazanem) kriteriju, ki si ga lahko predstavljamo kot globino slike.
Za namene vizualizacije rešitev v obliki animacije smo omogočili izris več intervalov, kjer
starejše rešitve začnejo bledeti. Privzeto smo nastavili prikaz štirih intervalov, torej treh
predhodnih. To število je mogoče spremeniti ali izklopiti prikaz rešitev predhodnih
intervalov.
6.3.3 Primer interpretacije
Za primerjavo algoritmov smo izvedli turnir s petimi algoritmi: MOEAD, NSGAII,
PESAII, SPEA2 in PAES (Tabela 6.2). Zaradi preobširnega testiranja in posledično
otežkočene demonstracije, smo se v nadaljevanju omejili na problem 7. Z vizualizacijo
smo uspeli prikazati osnovne koncepte algoritmov ter dosegli dobro razlikovanje
zmogljivosti. Za turnir smo podali naslednje parametre: 10 neodvisnih zagonov, omejitev
na 30000 ovrednotenj, za vse algoritme pa: začetne ocene 1500, odstopanje 350,
volatilnost 0,06.
Tabela 6.2: Rezultati turnirjev večkriterijske optimizacije pri 10 neodvisnih zagonih.
Algoritem MOEAD_DRA NSGAII PESAII SPEA2 PAES Problem 7 rating 1.992,2 1.623,1 1.500 1.376,9 1.007,8
Vizualizacija procesov evolucijskega računanja Stran 76
Za pridobitev osnovnega vtisa o primerjavi smo izbrali 4 zagone, pri katerih bomo najlažje
prikazali lastnosti posameznih algoritmov. Poglejmo njihove končne rezultate oziroma
njihove končne Pareto fronte (Slika 6.12):
Slika 6.12: Primeri štirih končnih Pareto front v turnirju algoritmov MOEAD, NSGAII, PESAII, SPEA2 in PAES
nad problemom 7.
Že na začetku analize dobimo odgovor, zakaj je algoritem MOEAD dosegel najboljšo
oceno. Od vseh algoritmov je le ta zares uspel doseči raznolikost rešitev, s čimer je našel
pravo Pareto fronto, kjer imamo pestro izbiro glede pomembnosti posameznih kriterijev. V
nekaterih primerih so ga na posameznih točkah premagali drugi algoritmi, vendar je to
pričakovano zaradi večjega poudarka na eksploraciji pri algoritmu MOEAD.
Čeprav NSGAII in SPEA2 nista sosednja pri uvrstitvi, sta dosegala zelo podobne rešitve.
Glavni razlog, da se je SPEA2 uvrstil slabše, je, da je vmes izpustil oziroma ni našel
Vizualizacija procesov evolucijskega računanja Stran 77
sredinskega optimuma (Slika 6.12 - spodaj levo). Prav tako je zaradi manjših razlik izgubil
večino dvobojev z NSGAII.
PESAII se je uvrstil na tretje mesto, s čimer je pristal med NSGAII in SPEA2. Imel je
težave pri srednjem optimumu kakor SPEA2. V prvem grafu (Slika 6.12 - zgoraj levo)
opazimo, da je imel težave tudi pri iskanju optimuma bližje kriteriju 0. Kljub tem težavam
je uspel najdene rešitve optimizirati do te mere, da se je lahko kosal z NSGAII, saj je
zgubil le šest od desetih dvobojev z njim.
Najbolj po "kavbojsko" se je odrezal algoritem PAES. Ta v prikazanih primerih ni nikoli
uspel najti vseh treh sklopov optimumov. V prvem primeru (Slika 6.12 - zgoraj levo) se je
uspel dokopati do optimuma po kriteriju ena in do vmesnega optimuma, optimizacija po
kriteriju 0 pa se je tako kot pri drugih izkazala za bolj problematično, saj je ni uspel odkriti.
V večini primerov je algoritem poiskal le sklop optimumov, v katerem so rešitve na Pareto
fronti res prekomerno nagnetene (Slika 6.12 - zgoraj desno, spodaj levo, spodaj desno).
Zaradi tega je takoj razvidno, da je preveč izrabljal obstoječe dobre rešitve. Poseben primer
je graf (Slika 6.12 - zgoraj levo), kjer je kljub zaznavi dveh gruč optimumov uspel rešitve v
njiju optimizirati občutno bolje kakor katerikoli drugi algoritem.
V nadaljevanju je podrobneje prikazanih še nekaj potekov optimizacij algoritmov, s čimer
smo želeli pojasniti opažene lastnosti v končnih Pareto frontah. Prikazali smo ključne
trenutke, v katerih je mogoče videti vmesne intervale med reševanjem.
Začnimo z najboljšim algoritmom, MOEAD (Slika 6.13). Vidimo, da se ves čas trudi
ohraniti raznoličnost rešitev. Tudi, ko začne ugotavljati približno obliko Pareto optimalne
rešitve, nadaljuje raziskovanje vzdolž celotne fronte, pri čemer se kljub temu še dolgo v
vsakem intervalu najdejo izboljšave vzdolž celotne fronte.
Vizualizacija procesov evolucijskega računanja Stran 78
Slika 6.13: Ključni trenutki MOEAD pri problemu 7: Začetno preiskovanje (interval 3/75), začetek gnetenja
rešitev okrog predvidevanih gruč optimumov (interval 14/75), zadnja vidna izboljšava (interval 68/75).
Za drugouvrščeni NSGAII (Slika 6.14) vidimo, da je precej časa skušal ohraniti raznolikost
rešitev, s čimer je vsakič našel vse gruče optimumov. Kljub temu je kmalu začel iskati le
načine, kako Pareto fronto v teh gručah poriniti dalje proti optimalni fronti. Prav tako
opazimo, da praktično v nobenem intervalu ni opustil optimizacije dela fronte, saj so vedno
na novo ovrednotene rešitve dominirale celoten prostor.
Slika 6.14: Evolucijski proces NSGAII nad problemom 7: Začetno preiskovanje prostora (interval 6/75), postopen
začetek gručenja rešitev okrog optimalnih točk po obeh kriterijih (interval 10/75), izoblikovanje "linij" rešitev,
pravokotno na končne gruče optimiziranih točk (interval 51/75).
PESAII je v prikazanem primeru (Slika 6.15) sicer dosegel le dve gruči optimumov,
vendar je pri tem ostal lepo razviden način preiskovanja okrog posamezne gruče.
Algoritem je začel z novimi rešitvami oblikovati eliptične strukture, za razliko od NSGAII,
ki je ustvarjal linijam podobne sklope rešitev. Prav tako je razvidno, da je od samega
začetka omejil preiskovanje na izrabljanje obstoječih rešitev.
Vizualizacija procesov evolucijskega računanja Stran 79
Slika 6.15: Primer PESAII pri problemu 7: Začetek preiskovanja (interval 1/75), začetki preiskovanja v obliki
eliptičnih struktur rešitev (interval 17/75), najboljši primer izoblikovanih stuktur (interval 56/75).
SPEA2 (Slika 6.16) v primerjavi s PESAII bolje poskrbi za raznolikost rešitev, saj ohrani
preiskovanje celega prostora rešitev, tudi sedmega intervala. Nato sledita dve fazi
preiskovanja. V prvi nasiči rešitve v območju dejanskih gruč na Pareto fronti. Ko ni več
zadostnih izboljšav, začne preiskovati dlje okrog gruče, pri čemer začne - kakor PESAII - z
novimi rešitvami oblikovati eliptične podobe.
Slika 6.16: SPEA2 reševanje problema 7: Zaključki preiskovanja celotnega prostora (interval 7/75), začetek gneče
v gručah optimumov (interval 14/75), oblikovanje eliptičnih struktur tekom preiskovanja (interval 20/75).
Za zaključek poglejmo še algoritem PAES v primeru, kjer je končal z dvema optimumoma
(Slika 6.17). Takoj opazimo, da je v enem intervalu popolnoma preklopil iz ene gruče
rešitev v drugo, nakar je tam ostal do zaključka zaradi porabe vseh ovrednotenj. Najbolj
zaskrbljujoče je, da se je ta preklop zgodil že zelo zgodaj, v intervalu 8/75.
Vizualizacija procesov evolucijskega računanja Stran 80
Slika 6.17: Reševanje algoritma PAES nad problemom 7: Dokončni preklop iz optimizacije ene gruče na
raziskovanje nove gruče (Intervali: 7, 8, 9 / 75).
S prikazanimi metodami vizualizacije smo uspeli najti pomanjkljivosti posameznih
algoritmov in razloge zanje, na primer PESAII začne že v prvem intervalu samo izkoriščati
obstoječe rešitve. Prav tako smo lahko opredelili njihove raziskovalne strategije med
evolucijskim procesom, kot na primer pri SPEA2.
Prav tako smo dokazali, da lahko z vizualizacijo več algoritmov nad enim problemom
ugotovimo njegovo zahtevnost oziroma najzahtevnejše točke optimizacije, na primer
sredinska gruča Pareto optimalne fronte je delala probleme trem od petih algoritmov.
Vizualizacija procesov evolucijskega računanja Stran 81
7 DISKUSIJA IN ZAKLJUČEK
V poglavju bomo povzeli tematiko in cilje našega magistrskega dela ter navedli glavne
prednosti in slabosti implementiranega pristopa za vizualizacijo evolucijskih procesov.
Prav tako bomo navedli možne rešitve za omenjene probleme in podali predloge, kako bi
se dalo sistem dodatno izboljšati.
Evolucijski algoritmi niso najnovejši pristop, vseeno pa sta razumevanje in primerjava
posameznih algoritmov še vedno slabo definirana. Večina člankov s tega področja
predstavlja svoje algoritme kot najboljše, pri čemer je podana le primerjava končnih
rezultatov, pogoji pa so slabo definirani ali pa sploh niso. Za pravično in razumljivo
primerjavo je potreben način primerjave, čigar izvedba ni prekomerno zahtevna in podaja
informacijo na enostaven, razumljiv, človeku naraven način. To je med drugim mogoče z
uporabo razumljivejših statističnih metod in z vizualizacijo izvajanja primerjanih
algoritmov. Pri tem je pomembno omogočiti vpogled v konvergenco in raznolikost rešitev
skozi čas optimizacije, prikaz napredka večkriterijskih optimizacij in podobne dejavnike.
Za izhodišče smo pregledali obstoječe oziroma predlagane metode vizualizacije za
evolucijske algoritme, nakar smo nadgradili obstoječi sistem EARS z možnostjo
prikazovanja evolucijskih procesov. Pri tem sta bila osrednja cilja razumljiv in z
informacijami bogat način prikaza poteka algoritmov ter minimalno poseganje v obstoječo
kodo. Ta cilja sta si bila v mnogih pogledih nasprotujoča, vendar smo uspeli
implementirati nadgradnjo sistema, ki omogoča razumljiv in zanimiv vpogled v evolucijo.
V tem delu smo bili za namene prikaza svojih dosežkov predvsem omejeni s prostorom, saj
je vizualizacija evolucijskih procesov omogočila širok vpogled v delovanje ogrodja,
vendar smo vseeno uspeli na primerih predstaviti izvajanje in glavne probleme posameznih
algoritmov. Izvedena nadgradnja ima poudarek na vizualizaciji prostora rešitev, kar
omogoča jasno predstavitev algoritmov glede ciljev posameznih evolucijskih algoritmov
oziroma ogled njihovega napredovanja k rešitvi. Ta je predstavljen skozi celotni potek
evolucije, pa tudi med intervali, in je prikazan v obliki različnih pristopov, tako
posameznih izvedb evolucije kakor statističnih metod. Manj jasen ostaja vpogled v
prostoru odločitev, kar pa bi bilo mogoče izvesti z dodatnim prikazom, saj je dostop do
surovih podatkov že omogočen. Potrebna bi bila dodatna, smiselna obdelava z uporabo
statističnih metod in nazoren način vizualizacije lastnosti rešitev v prostoru odločitev.
Vizualizacija procesov evolucijskega računanja Stran 82
8 LITERATURA
[1] Bradstreet, L. The hypervolume indicator for multi-objective optimisation:
Calculation and use: doktorska disertacija. Perth: University of Western Australia,
2011.
[2] Coello Coello, C. A., Lamont, G. B., Van Veldhuizen, D. A. Evolutionary
Algorithms for Solving Multi-Objective Problems: Genetic and Evolutionary
Computation, Second Edition. New York: Springer US, 2007.
[3] Cox, T. F., Cox, M. A. A. Multidimensional Scaling, Second Edition, Boca Raton:
Chapman & Hall/CRC Press, 1994.
[4] Črepinšek, M. Evolutionary Algorithm Ratting System (GitHub). Dostopno na:
https://github.com/Mir1001/EARS [15. 8. 2016].
[5] Črepinšek, M., Liu, S. H., Mernik, M. Replication and comparison of
computational experiments in applied evolutionary computing: Common pitfalls
and guidelines to avoid them. Applied Soft Computing, 19, (2014), str. 161–170.
[6] Derrac, J., Garcia, S., Molina, D., Herrera, F. A practical tutorial on the use of
nonparametric statistical tests as a methodology for comparing evolutionary and
swarm intelligence algorithms. Swarm and Evolutionary Computation, 1, (2011), 1,
str. 3-18.
[7] Di z-Man uez, A., Toscano-Pulido, G., Gomez-Flores, W. On the selection of
surrogate models in evolutionary optimization algorithms. V: Proceedings on IEEE
CEC 2011. IEEE Congress on Evolutionary Computation 2011, New Orleans, 5.-8.
junij 2011. New Orleans: Institute of Electrical and Electronics Engineers,
2011, str. 2155-2162.
[8] Eiben, A. E., Smith, J. E. Introduction to Evolutionary Computing, Berlin:
Springer-Verlag, 2003.
[9] Garcia, S., Molina, D., Lozano, M., Herrera, F. A study on the use of non-
parametric tests for analyzing the evolutionary algorithms’ behaviour: a case study
on the CEC’2005 Special Session on Real Parameter Optimization. Journal of
Heuristics, 15, (2009), 6, str. 617-644.
[10] Glickman, M. E. Example of the Glicko-2 system. Boston: Boston University,
2012. Dostopno na: http://www.glicko.net/glicko/glicko2.pdf [5. 9. 2016].
Vizualizacija procesov evolucijskega računanja Stran 83
[11] Glickman, M. E. The Glicko system. Boston: Boston University, 1995. Dostopno
na: http://www.glicko.net/glicko/glicko.pdf [5. 9. 2016].
[12] Glickman, M. E., Jones, A. C., Rating the chess rating system, Chance, 12, (1999),
2, str. 21-28.
[13] Katsaloulis, P. About JavaPlot. Dostopno na: http://javaplot.panayotis.com/ [25. 8.
2016].
[14] Kitchenham, B. A., Pfleeger, S. L., Pickard, L. M., Jones, P. W., Hoaglin, D.C., El
Emam, K., Rosenberg, J. Preliminary guidelines for empirical research in software
engineering, IEEE Transactions on Software Engineering, 28, (2002), 8, str. 721–
734.
[15] Mernik, M. Evolucijsko računanje: zapiski predavanj. Maribor: Fakulteta za
elektrotehniko, računalništvo in informatiko Univerze v Mariboru, 2016.
[16] Mernik, M., Črepinšek, M., Žumer, V. Evolucijski algoritmi, Maribor: Fakulteta za
elektrotehniko, računalništvo in informatiko Univerze v Mariboru, 2003.
[17] Mernik, M., Liu, S. H., Karaboga, D., Črepinšek M. On clarifying misconceptions
when comparing variants of Artificial Bee Colony (ABC) Algorithm by offering a
new implementation. Information Sciences, 291, (2015), str. 115–127.
[18] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs,
Third Edition, Berlin: Springer-Verlag, 1996.
[19] Pareto, V. Cours D’Economie Politi ue. Lausanne, 1896. Dostopno na:
http://www.institutcoppet.org/wp-content/uploads/2012/05/Cours-
d%C3%A9conomie-politique-Tome-I-Vilfredo-Pareto.pdf [7. 9. 2016]
[20] Pohlheim, H. Visualization of Evolutionary Algorithms - Set of Standard
Techniques and Multidimensional Visualization. V: Banzaf, W. (ur.), Proceedings
on the Genetic and Evolutionary Computation Conference. Genetic and
Evolutionary Computation Conference (GECCO-99), Orlando, 13.-17. julij 1999.
San Francisco: Morgan Kaufmann, 1999, vol. 1, str. 533-540.
[21] Ravber, M. Uporaba šahovskega sistema rangiranja za primerjavo evolucijskih
algoritmov večkriterijske optimizacije: magistrska naloga. Maribor: Fakulteta za
elektrotehniko, računalništvo in informatiko Univerze v Mariboru, 2015.
[22] Riedmiller, M., Braun, H. A direct adaptive method for faster backpropagation
learning: The RPROP algorithm. V: Proceedings of the International IEEE
Vizualizacija procesov evolucijskega računanja Stran 84
Conference on Neural Networks (ICNN). International IEEE Conference on Neural
Networks, San Francisco, 28. marec-1. april 1993. str. 586-591.
[23] Robič, T., Filipič, B. Večkriterijsko optimiranje z genetskimi algoritmi in
diferencialno evolucijo: Delovno poročilo, IJS-DP 9065. Ljubljana: Inštitut "Jožef
Štefan", 2005.
[24] Sammon, J. W. A Nonlinear Mapping for Data Structure Analysis. IEEE
Transactions on Computers, C-18, (1969), 5, str. 401-409.
[25] Simon, D. Evolutionary Optimization Algorithms: Biologically-Inspired and
Population-Based Approaches to Computer Intelligence, First Edition. New Jersey:
John Wiley & Sons, 2013.
[26] Tušar, T. Visualizing solution sets in multiobjective optimization: doktorska
disertacija. Ljubljana: Mednarodna podiplomska šola Jožefa Stefana, 2014.
[27] Veček, N., Mernik, M., Črepinšek, M. A chess rating system for evolutionary
algorithms: a new method for the comparison and ranking of evolutionary
algorithms. Information sciences, 277, (2014), str. 656-679.
[28] Williams, T., Kelley, C. gnuPlot homepage. Dostopno: http://www.gnuplot.info/
[25. 8. 2016].
[29] Wu, H. C., Sun, C. T., Lee, S. S. Visualization of evolutionary computation
processes from a population perspective. Intelligent Data Analysis, 8, (2004), str.
543-561.
[30] Zitzler E., Laumanns, M., Bleuler, S. A Tutorial on Evolutionary Multiobjective
Optimization, Metaheuristics for Multiobjective Optimisation. Metaheuristics for
Multiobjective Optimisation, 535, (2004), str. 5-37.
Vizualizacija procesov evolucijskega računanja Stran 85
Vizualizacija procesov evolucijskega računanja Stran 86
Vizualizacija procesov evolucijskega računanja Stran 87