• Ei tuloksia

NSGA-II, MOGA-II ja energiaspektrien sovittaminen

5 Algoritmien vertailu ja tulokset

5.3 NSGA-II, MOGA-II ja energiaspektrien sovittaminen

Rekyylijakauman muodon rajojen etsiminen koostuu kahdesta eri optimointikohdasta: fluens-sin etsiminen energiaspektrien sovittamisen avulla ja energiaspektrien sovittaminen löydetyn fluenssin arvolla rekyylijakaumaa muuttamalla. Prosessit käsitellään seuraavissa alaluvuissa.

Ensimmäiseksi kuitenkin esitellään NSGA-II- ja MOGA-II-algoritmien valmiiksi alustettu-jen versioiden parametrit, jotka pysyivät vakioina kaikkien suorituskertoalustettu-jen ajan. Valmiiksi alustettujen versioiden parametrien arvot ovat modeFRONTIER-optimointiympäristön mää-rittelemiä oletusarvoja algoritmien suorituksen helpottamiseksi (Esteco SpA 2019b). Tämän perusteella arvojen oletetaan sopivan algoritmien vertailuun, vaikka joillakin muilla para-metrien arvoilla algoritmin tulos voisi olla parempi. Parapara-metrien arvot olivat myös käytössä ZDT-funktioiden vertailussa, ja käytetyt arvot on esitetty suluissa parametrin nimen perässä.

NSGA-II- algoritmilla on parametreinaan geneettisille algoritmeille tyypilliset risteytyksen todennäköisyys (0,9) ja mutaation todennäköisyys niin ratkaisujen reaalilukumuodossa ole-ville muuttujille (1,0) kuin binäärimuodossa oleole-ville muuttujille (1,0) (Esteco SpA 2019b).

Risteytyksen todennäköisyys kertoo, kuinka suurella todennäköisyydellä jälkeläisiä luodessa tapahtuu risteytystä, ja mutaatiotodennäköisyys vastaavasti kertoo todennäköisyyden jälke-läisessä tapahtuvalle mutaatiolle (Mitchell 1998). NSGA-II käyttää näille todennäköisyyksil-le automaattista skaalausta: Jos käyttäjän määrittetodennäköisyyksil-lemä arvo ylittää maksimiarvon, se skaala-taan. Skaalauksessa käytetään hyödyksi muuttujien määrää ja binäärimuuttujien tapauksessa niiden pituutta bitteinä. (Esteco SpA 2019b)

Lisäksi NSGA-II-algoritmille määritellään reaalilukumuuttujia varten todennäköisyysjakau-maindeksit risteytystä (20,0) ja mutaatiota (20,0) varten (Esteco SpA 2019b), joita käytetään takaamaan jälkeläisten läheisyys vanhempiratkaisujen kanssa (Deb ja Beyer 2001; Deb ja Goyal 1996). Binäärimuotoisen risteytyksen tyylin voi myös valita: käytetty tyyli on klassi-nen eli yhden kohdan risteytys (Esteco SpA 2019b).

MOGA-II-algoritmin tapauksessa määritellään suunnallisen risteytyksen todennäköisyys (0,5), valinnan todennäköisyys (0,05), mutaation todennäköisyys (0,1) ja DNA-merkkijonon mu-taation suhde (0,05) (Esteco SpA 2019b; Poles ym. 2007). Valinnan todennäköisyys kertoo sen, kuinka suurella todennäköisyydellä ei luoda uusia jälkeläisiä (Esteco SpA 2019b).

Lisäksi MOGA-II-algoritmille voi määrittää, käyttääkö se elitismiä (kyllä), ja kuinka ra-joitteet käsitellään (rankaisemalla). On myös mahdollista määrittää, hylätäänkö rajoitteiden kannalta mahdottomat ratkaisut ennen tavoitefunktioiden arvojen laskua (ei). (Esteco SpA 2019b)

5.3.1 Fluenssin etsiminen

Rekyylijakauman muodon rajojen etsimiseen tarvittavan fluenssin etsimiseen määritetty työn-kulkukaavio on esitetty luvussa 4. Optimointi suoritettiin kolmella eri satunnaisesti luodulla alkuratkaisujoukolla eli alkupopulaatiolla, ja populaation kokoa varioitiin suorituskertojen välillä. Iteraatioita tehtiin jokaisella suorituskerralla 500 kappaletta. NSGA-II-algoritmille eri alkupopulaatioiden ja populaatiokokojen kanssa löydetyt fluenssin arvot ja niiden kes-kiarvot löytyvät taulukoista 9, 10, 11 ja 12. Taulukoiden tulokset-sarakkeessa näkyy fluens-sille saadut eri arvot ja kuinka monta kertaa kyseinen arvo löytyi. Keskiarvot-sarakkeessa on suurimman merkitsevän numeron tarkkuuteen pyöristetty keskiarvo tulokset-sarakkeen arvoista.

populaatio tulokset [lkm×arvo] keskiarvo aika 1 1×9·105,1×1·106 1·106 0h:46m:13s 2 2×9·105,1×1·106 9·105 0h:45m:41s

3 4×9·105 9·105 0h:47m:32s

Taulukko 9. Fluenssin etsinnän tulokset NSGA-II-algoritmin kanssa, kun alkupopulaation koko on 100. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika 1 3×9·105,1×1·106 9·105 0h:44m:31s 2 4×9·105,1×1·106 9·105 0h:44m:50s 3 5×9·105,1×1·106 9·105 0h:49m:43s

Taulukko 10. Fluenssin etsinnän tulokset NSGA-II-algoritmin kanssa, kun alkupopulaation koko on 50. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika 1 3×9·105,2×1·106 9·105 0h:45m:50s 2 4×9·105,1×1·106 9·105 0h:45m:53s 3 5×9·105,1×1·106 9·105 0h:47m:59s

Taulukko 11. Fluenssin etsinnän tulokset NSGA-II-algoritmin kanssa, kun alkupopulaation koko on 20. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika 1 3×9·105,2×1·106 9·105 0h:46m:13s 2 3×9·105,3×1·106 1·106 0h:34m:17s 3 5×9·105,2×1·106 9·105 0h:47m:33s

Taulukko 12. Fluenssin etsinnän tulokset NSGA-II-algoritmin kanssa, kun alkupopulaation koko on 10. Fluenssin tarkkuus on suurin merkitsevin numero.

MOGA-II-algoritmin vastaavat tulokset löytyvät taulukoista 13, 14, 15 ja 16. Tuloksista on hyvä huomata, että monella ratkaisuehdokkaalla ei ole saatu tulosta laskettua (sarake epä-onnistuneet ratkaisut kertoo tämän määrän). NSGA-II puolestaan ei tuottanut yhtään epäon-nistunutta ratkaisua. Lisäksi, kun löydetyn fluenssin (keskiarvot 9·105 ja 1·1014) arvoilla laskettiin energiaspektri hapelle, huomattiin, että MOGA-II-algoritmin tuottama fluenssin arvo on liian suuri siihen, että spektrin intensiteetti vastaisi kokeellisen energiaspektrin in-tensiteettiä. Tämän voi nähdä kuvasta 11. Alustavasti näyttää siltä, että toteutettavaksi algo-ritmiksi kannattaa valita NSGA-II, jonka löytämä fluenssin arvo sopii oikean intensiteetin saamiseen. Kuvassa 12 näkyy samalla rekyylijakaumalla kuin aiemmin saatu tulos, mutta fluenssi on sopiva.

populaatio tulokset [lkm×arvo] keskiarvo aika epäonn. ratkaisut

1 20×1·1014 1·1014 0h:51m:56s 144

2 22×1·1014 1·1014 0h:49m:09s 139

3 21×1·1014 1·1014 0h:46m:59s 126

Taulukko 13. Fluenssin etsinnän tulokset MOGA-II-algoritmin kanssa, kun alkupopulaation koko on 100. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika epäonn. ratkaisut

1 20×1·1014 1·1014 0h:57m:43s 156

2 20×1·1014 1·1014 0h:48m:50s 175

3 20×1·1014 1·1014 0h:44m:39s 153

Taulukko 14. Fluenssin etsinnän tulokset MOGA-II-algoritmin kanssa, kun alkupopulaation koko on 50. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika epäonn. ratkaisut

1 26×1·1014 1·1014 0h:54m:16s 178

2 9×1·1014 1·1014 0h:47m:02s 163

3 10×1·1014 1·1014 0h:45m:29s 170

Taulukko 15. Fluenssin etsinnän tulokset MOGA-II-algoritmin kanssa, kun alkupopulaation koko on 20. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset [lkm×arvo] keskiarvo aika epäonn. ratkaisut

1 27×1·1014 1·1014 0h:51m:05s 172

2 34×1·1014 1·1014 0h:46m:34s 173

3 12×1·1014 1·1014 0h:44m:51s 190

Taulukko 16. Fluenssin etsinnän tulokset MOGA-II-algoritmin kanssa, kun alkupopulaation koko on 10. Fluenssin tarkkuus on suurin merkitsevin numero.

Kuva 11. Substraatti piin simuloitu ja kokeellinen energiaspektri, kun fluenssi on 1·1014. Kokeellista energiaspektriä on mahdoton havaita kuvasta ilman suurennosta (kuvassa pak-sureunainen laatikko), sillä se on huomattavasti matalampi simuloituun spektriin verrattuna.

Simuloitu energiaspektri on kuvassa violetilla, kokeellinen spektri sinisellä.

Kuva 12. Substraatti piin simuloitu ja kokeellinen energiaspektri, kun fluenssi on 9·105. Nyt energiaspektrien korkeus on samaa suuruusluokkaa ja simuloitu ja kokeellinen energiaspektri vastaavat toisiaan.

Tuloksen varmistamiseksi fluenssin etsimistä kokeiltiin vielä MOPSO-algoritmilla, joka kuu-luu eri optimointiperheeseen kuin NSGA-II ja MOGA-II. MOPSO ei kuitenkaan tuottanut yhtä hyvää tulosta kuin NSGA-II tai parempaa kuin MOGA-II (taulukot 17, 18, 19 ja 20).

populaatio tulokset keskiarvo aika epäonn. ratkaisut 1 1×2·1014 2·1014 1h:19m:19s 108 2 2×2·1014 2·1014 1h:22m:43s 117 3 1×2·1014 2·1014 1h:15m:1s 106

Taulukko 17. Fluenssin etsinnän tulokset MOPSO-algoritmin kanssa, kun alkupopulaation koko on 100. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset keskiarvo aika epäonn. ratkaisut 1 2×2·1014 2·1014 1h:9m:17s 104 2 3×2·1014 2·1014 1h:17m:3s 119 3 1×2·1014 2·1014 1h:6m:42s 98

Taulukko 18. Fluenssin etsinnän tulokset MOPSO-algoritmin kanssa, kun alkupopulaation koko on 50. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset keskiarvo aika epäonn. ratkaisut 1 3×2·1014 2·1014 1h:12m:58s 115 2 1×2·1014 2·1014 1h:23m:3s 105 3 4×2·1014 2·1014 1h:18m:29s 134

Taulukko 19. Fluenssin etsinnän tulokset MOPSO-algoritmin kanssa, kun alkupopulaation koko on 20. Fluenssin tarkkuus on suurin merkitsevin numero.

populaatio tulokset keskiarvo aika epäonn. ratkaisut 1 2×2·1014 2·1014 1h:22m:41s 104 2 3×2·1014 2·1014 1h:17m:8s 107 3 2×2·1014 2·1014 1h:6m:27s 120

Taulukko 20. Fluenssin etsinnän tulokset MOPSO-algoritmin kanssa, kun alkupopulaation koko on 10. Fluenssin tarkkuus on suurin merkitsevin numero.

NSGA-II-algoritmin tuloksista voidaan vielä tehdä arvio siitä, mikä populaation koko sopisi fluenssin etsimiseen. Kun alkupopulaation koko on 50 ja 20, nähdään, että ne tuottivat mo-lemmat yhtenevän ratkaisun keskiarvoissa. Kun näiden suoritusajoista lasketaan keskiarvo, prosessi oli nopeammin suoritettu, kun populaation koko on 50. On tietysti hyvä mainita, et-tä suuruusluokaltaan ajoissa ei ole minkään eri populaation koon kanssa suuria eroja, joten populaation koolla ei tässä tapauksessa ole kovin suurta merkitystä. Suorituksen kestoista on hyvä huomata, että mm. modeFRONTIER-optimointiympäristön luoma kansiorakenne ja sen käsittely sekä lokitietojen ylläpito (Esteco SpA 2019b) hidastavat prosessin kulkua huo-mattavasti. Potku-ohjelmaan toteutettavassa versiossa optimoinnin kesto ei ole näin suurta luokkaa.

5.3.2 Rekyylijakauman muodon rajojen etsiminen

Rekyylijakauman muodon rajojen etsimisen ongelmaa varten on määritetty työnkulkukaavio luvussa 4. Työnkulkukaaviota optimoitiin algoritmien NSGA-II ja MOGA-II avulla kahdella eri satunnaisesti luodulla alkupopulaatiolla (koko 100), ja edellisessä alaluvussa 5.3.1 löyty-neen fluenssin arvolla 9·105. Iteraatioita tehtiin 5 000 kappaletta. Seuraavaksi käydään lä-pi alkupopulaatioilla saadut tulokset. Jokaisessa energiaspektrikuvassa on simuloidun hapen energiaspektrin (O Default) lisäksi piirretty kokeellinen hapen energiaspektri16O (exp).

Kuvassa 13 on esitetty NSGA-II- ja MOGA-II-algoritmien löytämät Pareto-optimaaliset rin-tamat alkupopulaatiolle 1. NSGA-II-algoritmin tapauksessa rintaman ensimmäinen ratkaisu on iteraatiolla 4 706 saatu ratkaisu, ja viimeinen ratkaisu on iteraatiolla 4 766 saatu ratkaisu.

MOGA-II puolestaan tuotti rintamansa ensimmäiseksi ratkaisuksi 4 938. ratkaisun: viimei-nen rintaman ratkaisu on 845. Rintamien muut ratkaisut jäävät tavoitefunktioiden arvojen

osalta ensimmäisten ja viimeisten ratkaisujen väliin, jolloin rekyylijakauman muodon rajat saadaan päissä olevien ratkaisujen avulla. Ensimmäinen ja viimeinen ratkaisu on ympyröity kuvassa.

Huomautus. Yksi MOGA-II-algoritmin 5 000 ratkaisun laskennasta epäonnistui. NSGA-II-algoritmilla kaikki ratkaisut onnistuivat.

Molempien Pareto-rintamien ensimmäisistä ratkaisuista muodostetut rekyylijakaumat löyty-vät kuvasta 14. Rekyylijakaumista lasketut energiaspektrit ovat kuvassa 15. Kuvassa 16 on puolestaan Pareto-rintamien viimeisten ratkaisujen pohjalta muodostetut rekyylijakaumat.

Näiden perusteella lasketut energiaspektrit on esitelty kuvassa 17.

Toisella alkupopulaatiolla saatiin aikaiseksi kuvassa 18 esitetyt Pareto-rintamat. NSGA-II-al-goritmille rintaman ensimmäinen ratkaisu on 3 372, ja viimeinen ratkaisu on 607. MOGA-II-algoritmin Pareto-rintaman ensimmäinen ratkaisu on puolestaan 792, ja viimeinen ratkaisu on 1 337. Ensimmäinen ja viimeinen ratkaisu on ympyröity kuvassa.

Huomautus. Viisi MOGA-II-algoritmin 5 000 ratkaisun laskennasta epäonnistui. NSGA-II-algoritmilla kaikki ratkaisut onnistuivat.

Ensimmäisistä ratkaisuista muodostetut rekyylijakaumat löytyvät kuvasta 19. Rekyylijakau-mista lasketut energiaspektrit puolestaan ovat kuvassa 20. Kuvassa 21 on puolestaan Pareto-rintamien viimeisten ratkaisujen pohjalta muodostetut rekyylijakaumat. Näiden perusteella lasketut energiaspektrit on esitelty kuvassa 22.

Tulosten varmistamiseksi rekyylijakauman muodon rajojen etsintää kokeiltiin vielä MOPSO-al-goritmilla, kuten fluenssin kanssa aiemmin. Fluenssin arvona käytettiin edelleen NSGA-II-algoritmin löytämää arvoa 9·105, ja kokeilu tehtiin alkupopulaation 1 kanssa. Iteraatioiden määrä oli 5 000.

MOPSO-algoritmin löytämä Pareto-rintama on kuvassa 23, ja siihen on merkattu rintaman ensimmäinen (1 524) ja viimeinen ratkaisu (2 912). Ratkaisuista muodostetut rekyylijakau-mat ovat kuvassa 24 ja lasketut energiaspektrit kuvassa 25. Kuvista voi huorekyylijakau-mata, että MOP-SO ei tuottanut yhtä hyvää ratkaisujoukkoa kuin NSGA-II tai MOGA-II, joten MOPMOP-SO ei sovellu energiaspektrien sovitukseen yhtä hyvin.

populaatio NSGA-II MOGA-II MOPSO 1 5h:3m:5s 5h:50m:40s 5h:58m:57s 2 5h:52m:12s 60h:3m:49s

Taulukko 21. NSGA-II-, MOGA-II- ja MOPSO-algoritmien kesto energiaspektrien sovituk-sessa.

Taulukosta 21 löytyvät NSGA-II-, MOGA-II- ja MOPSO-algoritmien eri suorituskertojen kestot. Taulukosta voidaan nähdä, että NSGA-II on hieman nopeampi kuin MOGA-II ja MOPSO. Rekyylijakauman muodon rajojen etsimisessä, kuten myös fluenssin etsinnän suo-rituksen kestoissa on hyvä huomata, että modeFRONTIER-optimointiympäristön käyttö hi-dastaa prosessin kulkua huomattavasti. Potku-ohjelmaan toteutettavassa versiossa optimoin-nin kesto ei ole näin suurta luokkaa.

Kuva 13. Alkupopulaation 1 kanssa löydetyt Pareto-rintamat. Kuva (a) esittää NSGA-II-algoritmin löytämää rintamaa, ja kuva (b) MOGA-NSGA-II-algoritmin löytämää Pareto-rintamaa. Rintamien arvot ovat samaa luokkaa. Rintamien ensimmäinen ja viimeinen ratkai-su on ympyröity.

Kuva 14. Alkupopulaation 1 kanssa löydettyjen Pareto-rintamien ensimmäisistä ratkaisuis-ta muodostetut rekyylijakaumat. Kuva (a): NSGA-II-algoritmin Pareto-rinratkaisuis-taman ratkaisu 4 706. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 4 938.

Kuva 15. Alkupopulaation 1 kanssa löydettyjen Pareto-rintamien ensimmäisille ratkaisuille lasketut energiaspektrit. Kuva (a): NSGA-II-algoritmin Pareto-rintaman ratkaisu 4 706. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 4 938. Spektrit eivät eroa merkittävästi toisitaan.

Kuva 16. Alkupopulaation 1 kanssa löydettyjen Pareto-rintamien viimeisistä ratkaisuis-ta muodostetut rekyylijakaumat. Kuva (a): NSGA-II-algoritmin Pareto-rinratkaisuis-taman ratkaisu 4 766. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 845.

Kuva 17. Alkupopulaation 1 kanssa löydettyjen Pareto-rintamien viimeisille ratkaisuille las-ketut energiaspektrit. Kuva (a): NSGA-II-algoritmin Pareto-rintaman ratkaisu 4 766. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 845. Spektrit eivät eroa merkittävästi toi-sitaan.

Kuva 18. Alkupopulaation 2 kanssa löydetyt Pareto-rintamat. Kuva (a) esittää NSGA-II-algoritmin löytämää rintamaa, ja kuva (b) MOGA-NSGA-II-algoritmin löytämää Pareto-rintamaa. Rintamien arvot ovat samaa luokkaa. Rintamien ensimmäinen ja viimeinen ratkai-su on ympyröity.

Kuva 19. Alkupopulaation 2 kanssa löydettyjen Pareto-rintamien ensimmäisistä ratkaisuis-ta muodostetut rekyylijakaumat. Kuva (a): NSGA-II-algoritmin Pareto-rinratkaisuis-taman ratkaisu 3 372. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 792.

Kuva 20. Alkupopulaation 2 kanssa löydettyjen Pareto-rintamien ensimmäisille ratkaisuille lasketut energiaspektrit. Kuva (a): NSGA-II-algoritmin Pareto-rintaman ratkaisu 3 372. Ku-va (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 792. Spektrit eivät eroa merkittävästi toisitaan.

Kuva 21. Alkupopulaation 2 kanssa löydettyjen Pareto-rintamien ensimmäisistä ratkaisuista muodostetut rekyylijakaumat. Kuva (a): NSGA-II-algoritmin Pareto-rintaman ratkaisu 607.

Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 1 337.

Kuva 22. Alkupopulaation 1 kanssa löydettyjen Pareto-rintamien vimmeisille ratkaisuille lasketut energiaspektrit. Kuva (a): NSGA-II-algoritmin Pareto-rintaman ratkaisu 607. Kuva (b): MOGA-II-algoritmin Pareto-rintaman ratkaisu 1 337. Spektrit eivät eroa merkittävästi toisitaan.

Kuva 23. Alkupopulaation 1 kanssa löydetty Pareto-rintama MOPSO-algoritmilla. Rintaman arvot ovat eri luokkaa kuin NSGA-II- tai MOGA-II-algoritmilla löydetyt. Rintaman ensim-mäinen ja viimeinen ratkaisu on ympyröity.

Kuva 24. Alkupopulaation 1 kanssa MOPSO-algoritmin löytämän Pareto-rintaman mäisestä ja viimeisestä ratkaisusta muodostetut rekyylijakaumat. Kuva (a): Rintaman ensim-mäinen ratkaisu 1 524. Kuva (b): Rintaman viimeinen ratkaisu on 2 912.

Kuva 25. Alkupopulaation 1 kanssa MOPSO-algoritmin löytämän Pareto-rintaman ensim-mäiselle ja viimeiselle ratkaisulle lasketut energiaspektrit. Kuva (a): Rintaman ensimmäinen ratkaisu 1 524. Kuva (b): Rintaman viimeinen ratkaisu on 2 912. MOPSO ei tuota yhtä hyviä tuloksia kuin NSGA-II ja MOGA-II, sillä ratkaisujen muodostamat äärirajat eivät sovitu yhtä lähelle kokeellista energiaspektriä kuin NSGA-II- ja MOGA-II-algoritmien tapauksessa.