Professional Documents
Culture Documents
Ervin Miloš
Vilnius, 2019
ANOTACIJA
Kalba: lietuvių
Anotacija
Magistro baigiamojo darbo tikslas – pasiūlyti realaus statybos inžinerijos uždavinio –
polių padėčių gręžtinio tipo pamatuose optimizavimo strategiją. Šiam tikslui pasiekti buvo
iškelti uždaviniai: atlikti mokslinę literatūros analizę: išnagrinėti populiariausius globalaus
optimizavimo algoritmus ir juos aprašyti; išnagrinėti sprendžiamą polių padėčių optimizavimo
uždavinį ir jį aprašyti; išanalizuoti ankstesnių mokslinių tyrimų rezultatus, išrinkti perspektyvų
globalaus optimizavimo algoritmą; sukurti programinę įrangą skaitiniams eksperimentams
atlikti; atlikti skaitinius eksperimentus naudojant įvairias euristikas; palyginti gautus rezultatus
su paskelbtais mokslinėje literatūroje.
Darbo tyrimo metodai: mokslinės literatūros analizė, skaitiniai sprendimo metodai.
Darbą sudaro 6 skyriai. Pirmajame skyriuje nagrinėjami ir aprašomi populiariausi
globalaus optimizavimo algoritmai. Antrasis skyrius yra skirtas polių padėčių gręžtiniuose
pamatuose uždavinio analizei. Aprašomas uždavinio matematinis modelis, gręžtinių pamatų
skaičiavimo programos funkcijos bei integravimas į optimizavimo programą. Trečiajame
skyriuje nagrinėjami ankstesni moksliniai tyrimai, palyginami rezultatai, išrenkamas
perspektyviausias optimizavimo algoritmas. Ketvirtajame skyriuje pristatoma sukurta
optimizavimo programinė įranga. Pristatomi realizuoti algoritmo metodai. Penktajame skyriuje
pristatomi skaitiniai eksperimentai, panaudojant įvairias optimizavimo metodų kombinacijas,
siekiant surasti optimalią strategiją. Šeštajame skyriuje lyginami rezultatai.
Bendra darbo apimtis: 53 puslapiai be priedų, 23 paveikslų, 14 lentelių, 48 literatūros
šaltiniai.
Papildomai pateikiami priedai.
Annotation
The goal of this master’s final work is to offer global optimization strategy for solving
real civil engineering problems. To reach this goal, it was necessary to complete some tasks:
analyze scientific literature on the topic of the most popular global optimization algorithms;
examine and describe piles position in grillage optimization problem; analyze the results of
previous research, choose a prospective global optimization algorithm; create software with
chosen optimization algorithm. Perform numerical experiments and determine the optimal
optimization strategy. Compare found strategy with other researchers results.
Work research methods: analysis of scientific literature, numerical solution methods.
The structure of this work consists of six parts. In the first part of this work, popular
algorithms for solving global optimization algorithms are examined. In the second part, an
analysis of grillages problem is presented. Mathematical model, grillages computing program
functions and integration with optimization program is described. In the third part, previous
research results are analyzed and compared. Prospective global optimization algorithm is
chosen. In the fourth part, created software for optimization is presented. The software
architecture and created methods are described. The fifth part is dedicated for searching
optimal strategy using various combinations of optimization algorithms. Numerical
experiments are performed and compared. In the sixth part, result of experiments are compared
with other research results.
Total volume of paper: 53 pages without appendixes, 23 pictures, 14 tables, 48
references.
An extra material is presented in appendix.
5
Lentelių sąrašas
1 lentelė. Globaliojo optimizavimo algoritmų palyginimas .............................................................. 26
2 lentelė. GA ir SA palyginimas ....................................................................................................... 29
3 lentelė. Bazinis kandidato selektorius ............................................................................................ 35
4 lentelė. Atstumo kandidato selektorius .......................................................................................... 35
5 lentelė. Dinaminis kandidato selektorius ....................................................................................... 35
6 lentelė. Eksperimento rezultatai lyginant pradinio individo generatorius ..................................... 38
7 lentelė. Eksperimento rezultatai naudojant atstumo kandidato selektorių ..................................... 40
8 lentelė. Eksperimento rezultatai naudojant atstumo kandidato selektorių ir atstumo stimuliatorių
........................................................................................................................................................... 40
9 lentelė. Eksperimento rezultatai keičiant stimuliatoriaus atstumo parametrą ................................ 41
10 lentelė. Eksperimento rezultatai naudojant dinaminį kandidato selektorių ................................. 42
11 lentelė. Eksperimento rezultatai naudojant dinaminį stimuliatorių .............................................. 43
12 lentelė. Eksperimento rezultatai modifikuojant kelis individo elementus ................................... 43
13 lentelė. Geriausios strategijos rezultatų palyginimas su tiksliais uždavinių sprendimais ............ 45
14 lentelė. Siūlomos optimizavimo strategijos rezultatų palyginimas su kitų tyrėjų rezultatais ...... 47
6
Paveikslų sąrašas
1 pav. Optimizavimo procesas .......................................................................................................... 10
2 pav. Globalaus ir lokalaus minimumo funkcijos taškai ................................................................. 11
3 pav. Globaliojo optimizavimo algoritmų taksonomija.................................................................. 12
4 pav. Populiacijos sandara ............................................................................................................... 14
5 pav. Palikuonio individo sudarymas .............................................................................................. 15
6 pav. Dviejų taškų kryžminimas ...................................................................................................... 15
7 pav. Uniforminis kryžminimas....................................................................................................... 15
8 pav. Vieno parametro ir kelių parametrų mutacija......................................................................... 15
9 pav. Uniforminė mutacija............................................................................................................... 16
10 pav. Atkaitinimo modeliavimo proceso schema .......................................................................... 17
11 pav. Keliaujančio pardavėjo optimizavimo uždavinys ................................................................ 18
12 pav. Keliaujančio pardavėjo uždavinio globalus sprendimas ...................................................... 18
13 pav. Pamato schema ..................................................................................................................... 21
14 pav. Pamato transformacija į vienmatę tiesę ................................................................................ 22
15 pav. Integracija tarp optimizavimo programos ir gręžtinių pamatų skaičiavimo programos ...... 23
16 pav. Tyrimo rezultatai Bajeso metodu ......................................................................................... 27
17 pav. 2011 m. ir 2017 m. tyrimų rezultatų palyginimas ................................................................ 28
18 pav. SA rezultatai panaudojant paskirstytus skaičiavimus tinkle ................................................ 30
19 pav. SA veikimo proceso schema ............................................................................................... 31
20 pav. Programos nustatymai JSON formatu .................................................................................. 33
21 pav. Lokalių minimumų arba maksimumų padėtys ..................................................................... 36
22 pav. 3-jo ir 4-jo eksperimentų rezultatų palyginimas ................................................................... 41
23 pav. Visų aštuonių eksperimentų rezultatų palyginimas .............................................................. 44
Santrumpos
SA – atkaitinimo modeliavimas
GA – genetinis algoritmas
7
ĮVADAS
Temos aktualumas
Nuolat didėjantis inžinierių poreikis mažinti gamybos sąnaudas, siekiant palaikyti pasaulinę
konkurenciją, paskatino inžinierius ieškoti griežtų sprendimų priėmimo metodų (Dede, Kripka,
Togan, & Yepes, 2019), pavyzdžiui, optimizavimo metodai, ekonomiškai ir efektyviai
projektuojant, gaminant produktus ir sistemas. Optimizavimo metodai, kurie pasiekė aukštą laipsnį
pastaraisiais metais, naudojami įvairiose pramonės šakose, įskaitant aviacijos (Azadeh, Bierlaire, &
Maknoon, 2019), automobilių (Karagul, Sahin, Aydemir, & Oral, 2019), statybos ir gamybos
pramonę (Dey, Gupta, Pathak, Kela, & Datta, 2019). Sparčiai tobulėjančiose informacinėse
technologijose kompiuteriai tampa galingesni ir atitinkamai daugėja uždavinių, kuriuos galima
išspręsti naudojant optimizavimo algoritmus, dydis ir sudėtingumas (Singiresu, 2009). Šiame darbe
analizuojamas populiarus statybos srities uždavinys – polių padėčių gręžtinio tipo pamatuose
optimizavimas (Ramanauskas, Šešok, Belevičius, Kurilovas, & Valentinavičius, 2017). Sijynai,
kurie yra sudaryti iš polių ir jungiančiųjų sijų, yra vienos efektyviausių polinių pamatų inžinerinės
konstrukcijos. Jie naudojami tada, kai norima pastatyti konstrukciją ant silpno grunto. Svarbu
paskirstyti polius po pamatu taip, kad reakcijos jėgos, susidarančios poliuose, neviršytų
maksimalios polio apkrovos ir būtų vienodos.
Mokslinis naujumas
Polių padėčių optimizavimo uždavinys reikalauja didelių išteklių, todėl sprendžiant šią
problemą yra naudojami euristiniai algoritmai, skirti matematinės funkcijos maksimizavimui ar
minimizavimui. Tokie algoritmai negarantuoja globalaus sprendinio, tačiau gali pateikti racionalų
sprendinį per trumpą laiką. Euristiniai algoritmai yra praktiški, lengvai suprantami ir greitai
realizuojami. Svarbu parinkti tokią euristinio algoritmo strategiją, kad gauti optimizavimo rezultatai
būtų arčiausiai globalaus sprendinio.
Praktinė vertė
Polių padėčių optimizavimo rezultatai turi didelę reikšmę ekonominiu požiūriu, nes svarbu
gebėti greitai ir mažiausia kaina suprojektuoti patvarią konstrukciją. Apytikriai galima laikyti, kad
sijynai, kurie turi mažiausią įmanomą polių skaičių bei kurių jungiančiosios sijos yra mažiausio
skerspjūvio, yra pigiausi (Mačiūnas, 2013). Pritaikius euristinį algoritmą, paprastai randami keli
racionalūs sprendiniai, kurie yra arti optimalaus, tačiau atitinka skirtingas pamatų schemas. Tai
suteikia galimybę projektuotojui pasirinkti priimtinesnę pamato schemą.
Darbo tikslas – pasiūlyti realaus statybos inžinerijos uždavinio – polių padėčių gręžtinio tipo
pamatuose, optimizavimo strategiją.
8
Darbo uždaviniai:
1. Atlikti mokslinę literatūros analizę: išnagrinėti populiariausius globalaus optimizavimo
algoritmus ir juos aprašyti.
2. Išnagrinėti sprendžiamą polių padėčių optimizavimo uždavinį ir jį aprašyti.
3. Išanalizuoti ankstesnių mokslinių tyrimų rezultatus, išrinkti perspektyvų globalaus
optimizavimo algoritmą.
4. Sukurti programinę įrangą skaitiniams eksperimentams atlikti.
5. Atlikti skaitinius eksperimentus naudojant įvairias euristikas.
6. Palyginti gautus rezultatus su paskelbtais mokslinėje literatūroje.
Tyrimo metodai:
1. Teoriniai: įvairios literatūros nagrinėjama tema analizė.
2. Skaitiniai sprendimo metodai.
Darbo struktūrą sudaro: įvadas, 6 skyriai, kurie suskirstyti į poskyrius ir skyrelius, darbo
rezultatai ir išvados, literatūros sąrašas, priedai.
Pirmajame baigiamojo darbo skyriuje nagrinėjami populiariausi optimizavimo algoritmai, kurie
gali būti tinkami spręsti polių padėčių gręžtiniuose pamatuose uždavinius. Antrasis skyrius yra
skirtas polių padėčių gręžtiniuose pamatuose uždavinio formulavimui. Pateikiamas uždavinio
aprašas, matematinis modelis ir gręžtinių pamatų skaičiavimo programos integravimas į
programavimo aplinką. Trečiajame skyriuje aprašomi kitų mokslininkų tyrimai, taikomi algoritmai
ir pasiekti rezultatai. Išrenkamas perspektyvus algoritmas, kuris bus tiriamas šiame darbe.
Ketvirtajame skyriuje pateikiama realizuota programa su išrinktu optimizavimo algoritmu,
pristatoma programos architektūra ir sukurti metodai. Penktasis skyrius skirtas optimalios
strategijos paieškai. Aprašomi atlikti aštuoni eksperimentai ieškant optimalios strategijos, pritaikant
įvairius algoritmo metodus ir jų kombinacijas. Šeštajame skyriuje pateikiami rezultatų palyginimai
su kitų mokslininkų tyrimų rezultatais.
Aprobacija
Dalis darbo rezultatų paskelbta straipsnyje:
Miloš, Ervin; Šešok, Dmitrij. Globaliojo optimizavimo uždavinių sprendimas naudojant
genetinius algoritmus = Genetic algorithms for solving global optimization problems // Jaunųjų
mokslininkų darbai = Journal of young scientists. Šiauliai: Šiaulių universiteto leidykla. ISSN 1648-
8776. eISSN 2424-3345. 2017, Nr. 47(1), p. 80-86. DOI: 10.21277/jmd.v47i1.134. [CEEOL –
Central and Eastern European Online Library; IndexCopernicus] [M.kr.:T007].
Galutinius darbo rezultatus planuojama pristatyti konferencijoje DAMSS 2019; kuri vyks
Druskininkuose 2019.11.28 – 2019.11.30.
9
1. POPULIARIAUSIŲ GLOBALAUS OPTIMIZAVIMO ALGORITMŲ
LITERATŪROS ANALIZĖ
Optimizavimas – apibrėžtos aibės elemento arba elementų, kurių tam tikro kriterijaus
(vadinamo tikslo funkcija) reikšmė būtų minimali arba maksimali priklausomai nuo uždavinio
tikslo, paieška (Weise, 2009). Optimizavimo procesui yra būdingi tris pagrindiniai komponentai:
optimizavimo algoritmas, matematinis modelis ir tikslo funkcija (žr. 1 pav.).
10
Analogiškai apibrėžiamas maksimizavimo uždavinys:
𝑓(𝑥 ∗ ) = max 𝑓 (𝑥 ), 𝑥∈𝑋 (2)
Taškas 𝑥 ∗ ∈ 𝑋 vadinamas funkcijos 𝑓 (𝑥 ) globalaus minimumo tašku visoje leistinoje srityje 𝑋,
jei:
𝑓 (𝑥 ∗ ) ≤ 𝑓 (𝑥 ), ∀𝑥 ∈ 𝑋 (3)
Taškas 𝑥 ∗ ∈ 𝑋, vadinamas funkcijos 𝑓 (𝑥 ) lokalaus minimumo tašku, jeigu jis yra mažiausias
tarp visų taškų savo srityje, tačiau didesnis nei taškai esantys kitose srityse (Grigutis, 2018).
Antrame paveiksle yra pateikiamas skirtumas tarp lokalaus ir globalaus minimumo taškų.
Suformuluotas optimizavimo uždavinys gali turėti daug galimų sprendinių, kurių kiekvieną
galima įvertinti, todėl sprendžiant uždavinį globaliai, ieškomas sprendinys, turintis tam tikrą
optimalią vertę.
Priklausomai nuo uždavinio sudėtingumo, tikslo funkcija gali būti išreikšta keliais būdais.
Paprastiems uždaviniams tai gali būti analitinė išraiška, kurioje pateikiamos kelios matematinės
formulės. Sudėtingesniems uždaviniams sukuriamos kompiuterinės programos, skirtos atlikti
didelius skaičiavimus. Tokiu atveju šios programos paverčiamos juodosiomis dėžėmis ir
integruojamos į įvairias optimizavimo programas. Juodosios dėžės paskirtis yra izoliuoti sudėtingus
matematinius skaičiavimus. Norint optimizuoti uždavinį juodajai dėžei užtenka paduoti
projektuojamų kintamųjų aibę ir gauti rezultatą.
11
3 pav. Globaliojo optimizavimo algoritmų taksonomija
Šaltinis: Sudaryta autoriaus pagal Weise (2009).
Deterministiniai algoritmai yra suprojektuoti tokiu būdu, kad optimalus sprendimas visada bus
rastas per nustatytą ribotą laiką su garantuotu tikslumu. Šiuos algoritmus galima taikyti tokiais
atvejais, kai paieškos sritis yra nedidelė ir gali būti efektyviai ištirta, o sprendžiamas uždavinys
neturi apribojimų. Čia remiamasi ribotomis prielaidomis apie tikslo funkciją. Tačiau, jeigu negalima
nustatyti sąryšio tarp kandidato sprendinio ir jo tikslo funkcijos, kaimyniniai sprendiniai labai
skiriasi naudingumu arba paieškos sritis yra sudaryta iš daug dimensijų, tokiu atveju, taikomi
tikimybiniai metodai. Vienu iš populiariausių deterministinių algoritmų laikoma būsenų erdvės
grafe paieška.
Tikimybiniai algoritmai optimizuoja uždavinius, kiekvienoje iteracijoje bandydami tobulinti
kandidatą sprendinį, atsižvelgiant į tam tikrą kokybės matą. Tokie algoritmai nenustato didelių
prielaidų dėl uždavinio optimizavimo ir gali ieškoti kandidatų sprendinių didelėje paieškos srityje.
Tačiau tikimybiniai algoritmai nesuteikia garantijos, kad bus surastas optimalus sprendimas. Norint
gauti geresnį sprendinį reikia daugiau investuoti į laiką ir skaičiavimo išteklius. Tėviniu tikimybiniu
metodu laikomas Monte Carlo algoritmas (Nyarko, Cupec, & Filko, 2014).
Euristiniai algoritmai padeda tikimybiniams algoritmams nuspręsti, koks kandidatas sprendinys
turi būti ištirtas arba, kaip galima sugeneruoti naują kandidatą sprendinį. Deterministiniai algoritmai
paprastai naudoja euristiką, kad nustatyti kandidatų sprendinių apdorojimo tvarką. Tikimybiniai
apdoroja tik tuos kandidatus, kuriuos parenka euristika.
Metaeuristiniai metodai dažniausiai naudoja tokią euristinę funkciją, kurios pagrindas yra
natūralaus gamtos reiškinys arba fizinis proceso modelis. Pavyzdžiui, atkaitinimo modeliavimo
algoritmas nusprendžia, kokį kandidatą sprendinį apdoroti pagal Bolcmano tikimybinį koeficientą,
12
atomų konfigūracijų stingdančiuose metalų lydaluose (Weise, 2009). Evoliuciniai algoritmai
imituoja natūralios evoliucijos elgesį ir laiko sprendimus kaip individus, kurie konkuruoja
tarpusavyje virtualioje aplinkoje.
13
4 pav. Populiacijos sandara
Šaltinis: Sudaryta autoriaus pagal Mallawaarachchi (2017).
Tikslo funkcija. Tikslo funkcija nustato individo tinkamumą ir jo pranašumą prieš kitus
konkuruojančius individus. Jeigu sprendžiamas minimizavimo uždavinys, tai kuo mažesnę tikslo
funkcijos reikšmę turi individas, tuo jis yra tinkamesnis ir su didesne tikimybe pateks į naują
populiaciją. Taigi, kiekvienam individui yra paskaičiuojama tikslo funkcija ir nustatomas
tinkamumo įvertis.
Selekcija. Pagrindinė selekcijos idėja yra išrinkti geriausius individus, kurie pateks į naują
populiaciją. Išrinkimas atliekamas pagal tinkamumo įvertį apskaičiuotą tikslo funkcijoje.
Literatūroje yra siūlomi įvairūs selekcijos metodai:
• Ruletės selekcija (Shukla, Pandey, & Mehrotra, 2015) – individai yra atrenkami pagal
tikslo funkcijos tinkamumo įvertį. Kuo geresnis individas, tuo didesnių šansų jis turi
būti išrinktam.
• Rangų selekcija (Shukla et. al., 2015) – patobulina ruletės selekciją normalizuojant visų
individų tikslo funkcijos įverčius. Normalizavimas padidina šansus būti išrinktiems
individams, turintiems labai silpną tikslo funkcijos įvertį. Kiekvienam individui yra
suteikiamas rangas nuo 1 iki populiacijos dydžio, pradedant nuo blogiausio iki
geriausio.
• Turnyro selekcija (Shukla et. al., 2015) – atsitiktinai paimamas nustatytas individų
kiekis. Individai palyginami ir imamas su tinkamiausiu įverčiu.
Nustatant selekcijos metodą reikia atsižvelgti į metodo nustatytas taisykles. Jeigu selekcija yra
griežta (visada imami tik geriausi individai), galima užstrigti lokaliajame minimume. Kitu atveju
pernelyg švelnios taisykles gali sulėtinti optimalaus uždavinio sprendimo radimą (Jebari, 2013).
Kryžminimas. Kai tėviniai individai yra išrinkti, kiekviena pora yra sukryžminama siekiant
pagaminti individo palikuonį. Tam yra atsitiktinai parenkamas kryžminimo taškas. Individo
palikuonis yra sukuriamas apkeičiant tarpusavyje tėvinių individų parametrus, kad palikuonis gautų
vieną dalį parametrų iš pirmo tėvinio individo ir likusią dalį iš antro tėvinio individo (žr. 5 pav.).
14
5 pav. Palikuonio individo sudarymas
Šaltinis: Sudaryta autoriaus pagal Mallawaarachchi (2017).
Literatūroje yra populiarūs tokie kryžminimo metodai kaip:
• Dviejų taškų kryžminimas (Varun Kumar & Panneerselvam, 2017) – apkeičiami genai,
kurie yra tarp kryžminimo taškų (žr. 6 pav.);
16
Genetinis algoritmas yra pritaikomas ir archeologijos srityje. Mokslininkai E. Sizikova ir
T. Funkhouseris (2018) pasiūlė šiuo algoritmu iš turimų fragmentų rekonstruoti nutapytas sienas su
freskos technika. Pagrindinis tikslas buvo surasti kiekvieno fragmento globalią poziciją ir rotaciją
siekiant, kad visi fragmentai kartu rekonstruotų originalų paviršių.
`
10 pav. Atkaitinimo modeliavimo proceso schema
Pradinio sprendinio generavimas ir temperatūros nustatymas. Pradinis sprendinys sudaromas
iš atsitiktinai sugeneruojamų parametrų. Šiam sprendiniui apskaičiuojama ir išsaugoma tikslo
funkcijos reikšmė. Algoritmui yra nustatoma pradinė temperatūra. Geresniam optimizavimui
17
temperatūros parametras turi būti toks, kuris leis algoritmui atlikti bet kokius pakeitimus esamam
sprendiniui. Tai suteikia algoritmui galimybę ištirti visą paieškos sritį ir nukreipti kelią prie
artimesnio sprendinio (Jacobson, 2013).
Naujo sprendinio generavimas modifikuojant esamą sprendinį. Naujas sprendinys, kuris yra
laikomas kandidatu pakeisti esamą sprendinį, sugeneruojamas atlikus esamam sprendiniui
modifikacijas pagal nustatytas taisykles. Pavyzdžiui, sprendžiant vieną iš populiariausių
optimizavimo uždavinių su keliaujančiu pardavėju, siekiama surasti trumpiausią maršrutą, kur
pardavėjas aplankytų kiekvieną miestą tik vieną kartą ir grįžtų prie pradinio taško. Tokiu atveju,
naujas kandidatas sprendinys gali būti sugeneruotas apkeičiant gretimų miestų poras (žr. 11 pav.).
18
apskaičiuota tikimybe. Tai yra padaroma todėl, nes algoritmo sugeneruotas naujas sprendinys nuo
tam tikros iteracijos gali niekada netapti geresniu nei esamas sprendinys, tačiau tai nereiškia, kad
geresnių sprendinių daugiau nėra. Šiuo atveju yra surandamas lokalus uždavinio sprendimas, kurio
algoritmui reikia išvengti (Karyotis & Khouzani, 2016). Todėl atkaitinimo modeliavimo algoritme
yra pritaikomas palankumo kriterijus.
Palankumo kriterijus. Lyginant naują sprendinį ir esamą sprendinį, palankumo kriterijus pagal
nustatytas taisykles gali pasirinkti blogesnį sprendinį. Šias taisykles nustato palankumo tikimybės
funkcija:
𝛿𝐸
𝑃 (𝛿𝐸) = exp(− 𝑘𝑡 ) (4)
19
Atkaitinimo algoritmo pritaikymas. Atkaitinimo modeliavimo algoritmas naudojamas spręsti
realias visuomenės problemas, taip pat uždavinius transporto (Yu et al., 2018), informatikos
(Hopkins, Mitzenmacher, & Caren, 2018), urbanizacijos (Amer et al., 2019) ir kitose srityse.
Mokslininkai M. Ameris ir kiti (2019) atkaitinimo modeliavimo algoritmu pasiūlė spręsti
transporto eismo spūsčių problemą. Spūstys yra didele problema ypač dideliuose miestuose, kai
nuolat didėjantis transporto priemonių kiekis naudojasi riboto talpumo keliais. Mokslininkai pasiūlė
pritaikyti dinamišką ir centralizuotą atkaitinimo modeliavimo metodiką, siekiant surasti transporto
priemonėms optimalius maršrutus. Tikslo funkcijos atributai – transporto priemonių tankis, kelio
plotis, kelių eismo signalai, kelio ilgis ir vidutinis eismo greitis. Mokslininkų gauti tyrimo rezultatai
pagerino eismo efektyvumą spūstyse 24,05 %, 48,88 % ir 36,89 % pagal kelionės laiko, degalų
sąnaudų ir CO2 emisijos rodiklius.
Mokslininkai F. Yu ir kiti (2018) pritaikė atkaitinimo modeliavimo algoritmą G-SARP (angl.
General share-a-ride problem) realizacijai. Ši sistema suteikia galimybę taksi vairuotojams vežti
keleivius ir pristatinėti užsakytus siuntinius vienu metu. Tačiau mokslininkų siūloma sistema
papildomai suteikia galimybę tuo pačiu metu vežti daugiau nei vieną keleivį ir neturėti apribojimų
dėl maksimalaus keleivio vežimo laiko. Papildomai siuntų kiekis, kurį galima įterpti tarp keleivio
paėmimo ir išlaipinimo taškų, ribojamas tik transporto priemonės talpumu. Rezultatai parodė, kad
G-SARP sprendimai yra geresni nei standartiniai SARP sistemos.
Mokslininkai Y. Liang ir kiti (2018) pasiūlė optimizuoti autobusų sistemą panaikinant
nereikalingas stoteles ir išlaikant bendrą autobusų sistemos efektyvumą. Viešojo transporto
sistemos, ypač autobusų sistemos, atlieka svarbų vaidmenį urbanizacijos procese. Daugiau autobusų
stotelių leidžia žmonėms greičiau pasiekti autobusą, tačiau padidėja pačių autobusų važiavimo
laikas. Siekiant surasti optimalų balansą, mokslininkai pritaikė SIC modelį (angl. Spatial interaction
model), kuris nustato sąryšį tarp autobuso stotelės ir jos aplankymo dažnumo. Tada, panaudojant
atkaitinimo modeliavimo algoritmą, buvo ieškomas optimalus autobusų stotelių derinys. Rezultatai
parodė kad, autobusų sistemos efektyvumas padidėjo 7,28 %.
Mokslininkai M. Cheraitia ir S. Haddadi (2016) panaudojo atkaitinimo modeliavimo algoritmą,
siekiant optimizuoti egzaminų tolygų paskirstymą per nustatytą laiko tarpą.
Mokslininkai M. Hopkinsas ir kiti (2018) pritaikė algoritmą JPEG vaizdo formato
optimizavimui. Straipsnyje siūlomas pagerintas JPEG vaizdo suspaudimas surandant patobulintas
kvantavimo matricas. Kvantavimo procesas suspaudžia tam tikrą vaizdo reikšmių diapazoną į vieną
kvantinę reikšmę. Rezultatai parodė, kad su atkaitinimo modeliavimo algoritmu buvo aptiktos
matricos, kurios geriau apdoroja vaizdą kokybės ir suspausto dydžio atžvilgiu.
20
2. POLIŲ PADĖČIŲ GRĘŽTINIUOSE PAMATUOSE UŽDAVINIO
FORMULAVIMAS
Skyriuje yra pateikiamas polių padėčių optimizavimo uždavinio aprašas. Matematiškai
paaiškinamas šio uždavinio veikimo principas ir tikslas. Pateikiamas trumpas aprašas apie gręžtinių
pamatų skaičiavimo programą.
21 (7)
𝑓(𝑥) = max 𝑅𝑖 (𝑥)
𝑖=1,…,𝑁𝑎
kur, 𝑁𝑎 žymi polių kiekį, o 𝑅𝑖 (𝑥) nurodo reakcijos jėgą spaudžiamą ant 𝑖-tojo polio.
Optimizavimo proceso metu poliai gali būti skirstomi tik po gręžtinio pamato sijomis. Prieš
optimizavimo procesą dvimatis gręžtinis pamatas yra matematiškai transformuojamas į vienmatę
tiesę, išilgai kurios atramoms leidžiama laisvai judėti. Tada kiekvienas projektavimo parametras
nurodo vieną polio koordinatę vienmatėje struktūroje. Po polių padėčių optimizavimo vienmatė
tiesė yra atgal transformuojama į pradinį dvimatį gręžtinį pamatą. Apribojimus projektavimo
parametrams galima užrašyti taip:
0 ≤ 𝑥𝑖 ≤ 𝐿, 𝑖 = 1, . . . , 𝑁𝑎 (8)
kur, 𝑥𝑖 žymi 𝑖-tojo polio koordinatė vienmatėje struktūroje, 𝐿 – bendras gręžtinio pamato ilgis
(Belevičius, Mačiūnas, & Šešok, 2011).
Tokia formuluote turi akivaizdų trūkumą – smulkus vieno projektavimo parametro pokytis gali
perkelti polį iš vienos sijos į kitą, kuri fiziškai gali būti labai nutolusi (žr. 14 pav.). Paveikslėlyje
parodoma, kaip du poliai, esantys taškuose A ir B, yra netoli vienas kito, tačiau transformavus
pamatą į vienmatę tiesę, taškas B, esantis 7-e sijoje, labai nutolo nuo taško A.
𝑅𝑖 = ∑[𝐾𝑖𝑗 ] 𝑢𝑗 (10)
𝑗
22
paruošia polių pozicijų sąrašą ir nusiunčia jį į juodąją dėžę, kurioje apskaičiuojama maksimali
reakcijos jėga. Po skaičiavimų optimizavimo programa gauna vieną skaičių – tikslo funkcijos
reikšmę. Kuo mažesnė yra reikšmė, tuo geresnis yra sprendimas.
Integracija tarp juodos dėžės ir optimizavimo programos pavaizduota 15 paveiksle.
23
Failo pavadinimai yra bendri visiems uždaviniams: „aa_in.dat“ – uždavinio duomenys,
„aa_out.dat“ – uždavinio rezultatai, „aa_mes.dat“ – klaidų pranešimai.
Norint pasinaudoti gręžtinių pamatų skaičiavimo programa, užtenka importuoti tris failus į
optimizavimo programą: GRILLAGE.dll, GRILLAGE.exp bei GRILLAGE.lib.
24
3. PERSPEKTYVAUS ALGORITMO PAIEŠKA PANAUDOJANT ANKSTESNIUS
TYRIMUS
Globalaus optimumo paieška optimizavime yra viena iš sudėtingų ir daug laiko reikalaujančių
uždavinių. Įvairiuose tyrimuose pateikiami kelių optimizavimo algoritmų palyginimai, siekiant
apibendrinti rezultatus kitiems optimizavimo uždaviniams. Tačiau kiekvienas paieškos algoritmas
turi savo savybes, kurios gali tikti vienai sprendžiamai problemai, bet netikti kitai. Mokslininkai
P. Erikssonas ir J. S. Arora (2002) pristatė globaliojo optimizavimo algoritmų palyginimą
optimizuojant važiavimo komforto uždavinį. Tyrime buvo nustatyta, kad šiam konkrečiam
uždaviniui genetinis algoritmas yra efektyvesnis nei atkaitinimo modeliavimas. Mokslininkai
Arostegui ir kiti (2006) lygino genetinį, atkaitinimo modeliavimą ir tabu paieškos algoritmus
optimizuojant įvairių objektų lokacijų uždavinį, siekiant sumažinti transportavimo išlaidas.
Rezultatai parodė, kad tabu paieškos algoritmas veikia efektyviausiai.
25
∆ℎ
(12)
𝑒 𝑡1 /ln(1+𝑡2∗𝑗)
kur, ∆ℎ apibrėžia tikslo funkcijos reikšmės skirtumą tarp dviejų kandidatų, 𝑡1 – pradinė
temperatūra, 𝑡2 – atšildymo greitis ir 𝑗 identifikuoja iteracijos skaičių.
Trečiu optimizavimo algoritmu tyrimui buvo išrinktas genetinis algoritmas. Pradinė populiacija
buvo sugeneruojama naudojant RS arba MRS algoritmą. Selekcijos operacijos metu puse
populiacijos individų buvo išrenkami į naują populiaciją panaudojant ruletės metodą. Kuo geresnė
individo tikslo funkcijos reikšmė, tuo didesnė tikimybė individui būti išrinktam. Tikimybė buvo
apskaičiuojama pagal tokią formulę:
1
𝑃𝑗 = (13)
1
𝑓𝑗 ∑𝑖 𝑓
𝑖
kur, sumos operatorius apima visą populiaciją. Tada individai buvo sukryžminami su nustatyta
tikimybe, o kryžminimo taškas atsitiktinai paimamas iš intervalo [1, 𝑁𝑎 − 1], kur, 𝑁𝑎 yra individo
elementų kiekis. Galiausiai kiekvienam elementui buvo apskaičiuojama mutacijos tikimybė ir, jeigu
tikimybė tenkino, tada elementas buvo modifikuojamas pagal reikšmės intervalą [−𝑦; 𝑦]. Šis
intervalas analogiškai mažėjo kaip ir SA algoritme.
Kiti algoritmai pritaikyti palyginimui: netiesinės daugiamatės funkcijos optimizavimo metodas,
vadinamas Simplex (SM); Kvazi-Niutono metodas (VM), skirtas surasti tikslo funkcijos tašką, kur
gradientas yra 0; NEWUOA metodas – iteracinis algoritmas netiesiniam optimizavimui.
Mokslininkų pasiekti rezultatai yra pateikti 1 lentelėje.
1 lentelė. Globaliojo optimizavimo algoritmų palyginimas
26
Algoritmų palyginimams mokslininkai išbandė visus ištirtus algoritmus 10 praktiniams
uždaviniams (Belevičius et al., 2011).
TS žymi tikslųjį sprendimą, o paskutinis stulpelis žymi procentinį skirtumą tarp geriausio
surasto sprendimo ir tikslaus sprendimo. Iš 1 lentelėje pateiktų rezultatų matyti, kad geriausius
rezultatus pasiekė mokslininkų realizuotas atkaitinimo modeliavimo algoritmas, kur aštuoni
uždaviniai pasiekė mažiausias tikslo funkcijos reikšmes ir NEWUOA metodas, su kuriuo du
uždaviniai pateikė sprendinius, arčiausius prie optimaliojo.
28
metodas, tačiau mažiau efektyvesnis nei NEWUOA, SA ir GA metodai, pasiūlyti mokslininkų
R. Belevičiaus ir kitų (2011).
29
18 pav. SA rezultatai panaudojant paskirstytus skaičiavimus tinkle
Šaltinis: Sudaryta autoriaus pagal D. Šešok et. al. (2010).
Tyrimo rezultatai parodė, kad po 1000 bandymų buvo pagerinti 9 praktiniai uždaviniai.
Apibendrinant visus išnagrinėtus ankstesnius tyrimus, galima teigti, kad SA algoritmas yra
perspektyviausias optimizuojant polių padėčių gręžtiniuose pamatuose uždavinį. Su šiuo algoritmu
buvo gauti sprendimai arčiausiai prie optimaliojo.
Šiame darbe toliau bus nagrinėjamas atkaitinimo modeliavimo algoritmas siekiant optimizuoti
inžinerinius uždavinius.
30
4. OPTIMIZAVIMO PROGRAMA NAUDOJANT ATKAITINIMO MODELIAVIMO
ALGORITMĄ
Skyriuje pateikiama optimizavimo programos realizacija panaudojant atkaitinimo modeliavimo
algoritmą. Pateikiama programos architektūra. Aptariama metodų klasifikacija ir papildomi
algoritmo modifikavimai.
31
Atkaitinimo modeliavimo algoritmas yra papildomas jau realizuotoje šio darbo autoriaus
optimizavimo programoje, kuri parašyta su C++ programavimo kalba ir skirta optimizuoti
uždavinius su genetiniais algoritmais (Miloš, 2017).
Optimizavimo programa yra realizuota pagal loginę architektūrą, kuri suteikia galimybę
paprastai pasirinkti metodų kombinaciją arba papildomai pildyti algoritmą nemodifikuojant
pagrindinio kodo, kuriame įvykdomas procesas. Visi proceso etapai nėra tiesiogiai priklausomi
vienas nuo kito, o tarpininkauja modifikuojant vieną bendrą parametrą – individą, kuris žymi polių
pozicijų masyvą (Miloš, 2017).
Programos lankstumas leidžia atlikti pakeitimus bet kokiame iš proceso etapų – pradinio
individo generavimo, kandidato parinkimo ar stimuliavimo, nedarant įtakos esminei programos
veikimo logikai.
Optimizavimo programos tikslas yra surasti kiekvieno uždavinio mažiausią tikslo funkcijos
reikšmę. Šiai reikšmei pasiekti gali būti taikomi įvairūs metodai ir algoritmo realizacijos,
priklausomai nuo to, kaip efektyviai programa suranda optimalią tikslo funkcijos reikšmę per
nustatytą iteracijų skaičių. Siekiant išnagrinėti įvairius sprendimus, programoje yra taikomas
polimorfizmas, kur yra sukurtos pradinio individo generavimo, kandidato parinkimo ir stimuliavimo
bazinės klasės, turinčios savyje virtualius metodus. Virtualūs metodai suteikia galimybę perrašyti
paveldinčioje klasėje jų funkcionalumą. Tada kiekvienas metodas gali būti vykdomas skirtingai,
priklausomai nuo konkrečios klasės realizacijos. Kiekvienas objektas turintis virtualių metodų, turi
nuorodą į savo klasę. Virtualūs metodai siejami su objekto duomenų struktūra (Miloš, 2017).
Pradinėje klasėje main kvietėjas inicializuoja paveldėtas atkaitinimo modeliavimo proceso
klases – pradinį individo generavimą, kandidato parinkimą ir stimuliavimą, ir paduoda jas kaip
argumentus į pagrindinę programos klasės SimulatedAnnealingEngine metodą, kurioje vykdomas
viso atkaitinimo modeliavimo procesas. Šis metodas priima paveldėtas klases kaip bazinių klasių
parametrus, turinčius savyje jau realizuotus virtualius metodus. Tai leidžia metodui iškviesti bendrą
virtualų metodą, kuris atliks funkcionalumą tos klasės, į kurią yra priskirta nuoroda. Polimorfizmo
realizacija pateikiama A priede.
Tokio pobūdžio klasių hierarchija suteikia galimybę realizuoti naujus atkaitinimo modeliavimo
algoritmo proceso metodus visiškai nekeičiant esminio kodo, o paprastai perrašant tuos pačius
virtualius metodus.
Šiame darbe optimizavimo programoje pasiūloma naujovė – atkaitinimo modeliavimo
algoritmo procesams yra išbandomi metodai, kurie suteikia algoritmui dinamiškumą. Papildomai
algoritmas supaprastinamas pašalinant temperatūros ir atkaitinimo greičio parametrus. Vietoj
temperatūros, naudojamas iteracijų skaičius, o vietoj atkaitinimo greičio išbandomas pokyčio
žingsnio parametras.
32
4.2. Pradinių parametrų nuskaitymas
Prieš pradedant SA algoritmo procesą, įvykdomas tokių pradinių parametrų nuskaitymas:
pradinių individų generavimo kiekis, iteracijų skaičius, polio pozicijos reikšmės intervalo pradžia ir
pabaiga, modifikuojamų elementų kiekis, stimuliavimo tikimybės reikšmė ir kt.. Turint
kompleksinę programą svarbu, kad pradiniai parametrai būtų laikomi vienoje vietoje, kadangi juos
lengviau po to perpanaudoti ir esant parametro pakeitimams, nereikia atlikti pilną paiešką po
programos kodą, kad pakeisti parametrą visose vietose, kur jis yra taikomas. Praktikoje saugomus
parametrus patogu laikyti atskirame faile, iš kurio vėliau galima nuskaityti norimas reikšmes
(Handbook, 2018).
Vienas iš dažniausiai taikomų failų formatų yra JSON. Tai paprastas atviro standarto failų
formatas, kurį lengvai yra skaityti ir įrašinėti. Šis formatas yra nepriklausomas ir tinka bet kokiai
programavimo kalbai. Vienas iš jo pagrindinių privalumų yra tas, kad kompiuteriams jį apdoroti yra
žymiai greičiau ir lengviau nei kitus formatus, pavyzdžiui XML. JSON formato struktūra sudaro
atributo ir reikšmės poras skaitomame tekste (žr. 19 pav.).
33
Tyrimui yra sukurti du pradinės populiacijos generavimo metodai – bazinis generatorius (angl.
SA Basic generator) ir atstumo generatorius (angl. SA Distance generator).
Bazinis generatorius. Šio metodo tikslas – sugeneruoti kiekvienam poliui atsitiktinę poziciją.
Šios pozicijos reikšmės gavimui taikomas bazinis C++ programavimo kalbos atsitiktinio skaičiaus
generatorius rand(). Koks yra polių skaičius, tiek bus sugeneruota atsitiktinių skaičių. Kiekvieną
atsitiktinį skaičių vadiname individo elementu. Tam, kad sužinoti, koks yra polių kiekis ir bendras
pamato ilgis, taikoma gręžtinių pamatų programos funkcija ANALYSIS. Panaudojant gautus
parametrus užtikrinama, kad sugeneruotas atsitiktinis skaičius neviršys bendrą pamato ilgį ir nebus
sugeneruota per daug elementų. Po šio etapo susikuria elementų masyvas vadinamas individu.
Atstumo generatorius. Bazinis atsitiktinių skaičių generatorius turi trukumą, nes gaunant
atsitiktines elementų reikšmes, yra nemaža tikimybė, kad šios reikšmės bus arti viena kitos arba
dauguma iš jų bus labai mažos, arba per didelės, kas reikš, kad poliai bus išdėstyti vienoje vietoje.
Tai pasunkina ir pailgina optimizavimo algoritmą ieškant optimalias polių pozicijas. Atstumo
generatorius yra pažangesnis, o metodo realizacija bei algoritmas yra žymiai platesnės struktūros,
nes reikalaujama daugiau matematinių skaičiavimų, kurių tikslas pritaikyti diskretų elementų
išdėstymą po visą individą, kur atstumas tarp polių būtų kuo panašesnis.
Naudojant atstumo generatorių yra taikoma tokia matematinė formulė:
𝐺𝑉𝐶 1 𝐺𝑉𝐶 (15)
𝐺 = 𝑟𝑎𝑛𝑑() % 1000 ∗ ∗ 1000 + ∗ 𝑖 , kur
𝐺𝐿 𝐺𝐿
• G – elemento reikšmė.
• GVC – bendras pamato ilgis.
• GL – elementų kiekis (polių kiekis).
• i – iteracijos skaičius.
Sugeneravus visų elementų reikšmes, individas visada rūšiuojamas didėjančiai. Kiekvienas
gautas individas yra vertinimas pagal tikslo funkciją ir, kadangi uždavinys yra minimizuojamas, kuo
reikšmė yra mažesnė, tuo geresnis individas ir jo elementai, kitaip sakant, polių pozicijos po
įvertinimo yra arčiau optimalaus sprendimo.
Šiam metodui įvykdyti užtenka trijų parametrų: polių kiekis, pamato bendras ilgis ir pradinis
individas. Iš pradžių yra atsitiktinai parenkama individo elemento pozicija. Tada šiai pozicijai
sugeneruojama atsitiktinė reikšmė, kuri turi būti nemažesne už 0 ir ne didesnė nei bendras pamato
ilgis.
Atstumo kandidato selektorius. Šio metodo pagrindinė paskirtis yra pakeisti individo vieno
elemento reikšmę pagal nustatyta intervalą. Palyginus su bazinio kandidato selektoriaus metodu,
esminė logika nesikeičia, tačiau prisideda papildomas atstumo parametras. Iš šio parametro yra
sudaromas intervalas, pagal kurį bus keičiama vieno elemento reikšmė, pavyzdžiui, jeigu atstumo
reikšmė yra lygi 1-ui, tai keičiamo elemento nauja reikšmė bus lygi sumai esamos reikšmės ir
sugeneruotos reikšmės intervale [-1; 1]. (žr. 4 lentelę).
4 lentelė. Atstumo kandidato selektorius
Prieš pakeičiant elementą patikrinama, ar gauta nauja reikšmė neviršija bendro pamato ilgio
arba nėra mažesnė nei 0. Jeigu sąlyga netenkinama, tai metodo procesas yra kartojamas.
Dinaminis kandidato selektorius. Šis metodas praplečia atstumo kandidato selektoriaus
metodą, pridedant du naujus parametrus – keičiamų elementų kiekį ir pokyčio žingsnį. Keičiamų
elementų kiekis suteikia galimybę pakeisti individo kelias elementų reikšmes (žr. 5 lentelę).
5 lentelė. Dinaminis kandidato selektorius
Pokyčio žingsnio parametras dinamiškai mažina atstumo parametrą, o tai reiškia, kad
kiekvienoje naujoje iteracijoje elemento reikšmės pokyčio intervalas mažės iki nustatytos ribos.
Pokyčio žingsnio parametras yra apskaičiuojamas pagal tokią formulę:
(𝑒𝑛𝑟 − 𝑠𝑡𝑟)
𝑚= (16)
𝑖𝑡_𝑎𝑚𝑜𝑢𝑛𝑡
• 𝑚 – pokyčio žingsnio reikšmė;
• 𝑒𝑛𝑟 – intervalo pradžios reikšmė;
35
• 𝑠𝑡𝑟 – intervalo pabaigos reikšmė;
• 𝑖𝑡_𝑎𝑚𝑜𝑢𝑛𝑡 – iteracijų skaičius.
Jeigu po apskaičiavimų pokyčio intervalas lygus 0,008, o elemento pokyčio reikšmės intervalas
yra lygus [-1; 1], tai antroje iteracijoje intervalas bus lygus [-0.092; 0.092].
37
5. SKAITINIAI EKSPERIMENTAI IR OPTIMALIOS STRATEGIJOS PAIEŠKA
Šiame skyriuje yra pateikiami skaitiniai eksperimentai, siekiant surasti optimalią strategiją,
duodančią geriausią uždavinio sprendinį. Pateikiamas kiekvieno eksperimento aprašas – pradiniai
parametrai ir metodų kombinacijos. Tarpusavyje palyginami eksperimentų rezultatai.
Geriausios optimizavimo strategijos paieškos tikslu parinkti trys tyrimo etapai atkaitinimo
modeliavimo algoritmui:
• pradinio individo generavimas;
• kandidato individo pakeitimų reikšmių intervalas ir kiekis;
• esamo ir kandidato individų palyginimo ir stimuliavimo sąlygos.
Iš viso išbandomos aštuonios strategijos, siekiant surasti tokią parametrų reikšmių, intervalų ir
metodų kombinaciją, su kuria polių padėčių gręžtinio tipo pamatuose uždavinio sprendimas bus
arčiausiai optimaliojo.
Kiekviena strategija yra patikrinama 28 kartų, nes realizuotas atkaitinimo modeliavimo
algoritmas dirba su atsitiktiniais skaičiais, todėl vienu metu gali duoti geresnį sprendinį, kitu atveju
blogesnį. Šis skaičius taip pat parinktas, siekiant atlikti vieningą palyginimą su kitų mokslininkų
ankščiau gautais tyrimų rezultatais. Kiekviename bandyme nustatoma sąlyga, kad algoritmas
vykdomas iki tol, kol tikslo funkcijos apskaičiavimo metodas bus panaudotas 5000 kartų arba bus
pasiektas globalus sprendimas.
Skaitinių eksperimentų tyrimams taikomas gręžtinių pamatų antras uždavinys, kurio optimalus
sprendimas yra lygus 104,12. Radus geriausią strategiją, ji bus išbandyta su visais dešimt gręžtinio
tipo pamatų praktiniais uždaviniais.
38
6 lentelėje yra pateikiama abiejų generatorių pasiekta mažiausia ir didžiausia tikslo funkcijos
reikšmė bei vidurkis. Galima teigti, kad atstumo generatorius yra žymiai efektyvesnis nei bazinis.
Atstumo generatoriaus minimumas skiriasi nuo maksimumo tik 7,09 %, o bazinio generatoriaus
minimumas skiriasi nuo maksimumo net 23,3 %. Atstumo vidurkiai pasako, kad atstumo
generatorius dažniausiai sugeneruos individą, kuris bus arčiausiai prie minimumo.
Kitose eksperimentuose, kur bus generuojamas pradinis individas, visada bus taikomas atstumo
generatorius su tokiais parametrais:
• pradinių generacijų skaičius – 500;
• algoritmo iteracijų skaičius – 4500.
Tokie parametrai parinkti, kadangi su jais buvo pasiektas geriausias šio darbo autoriaus
rezultatas optimizuojant uždavinius su genetiniais algoritmais (Miloš & Šešok, 2017).
Iš pateiktų 7 lentelėje rezultatų analizės galima daryti išvadą, kad atstumo kandidato selektorius
duoda geriausią rezultatą naudojant intervalą [-0,75; 0,75] ir šio eksperimento mažiausia tikslo
funkcijos reikšmė yra lygi 110,473. Tačiau, lyginant visų išbandytų intervalų gautus vidurkius,
kiekvienas tyrimas duoda panašų rezultatą. Ar atstumo kandidato selektorius priklauso nuo
reikšmės pakeitimo intervalo, bus patikrinta trečiame eksperimente.
40
Iš pateiktų 8 lentelėje rezultatų analizės matyti, kad geriausias eksperimento pasiektas rezultatas
yra lygus 108,396 naudojant intervalą [-0,5; 0,5]. Tikslo funkcijos reikšmių minimumas, vidurkis ir
maksimumas beveik vienas nuo kito nesiskiria, todėl galima daryti pirmąją išvadą, kad tikslo
funkcijos kokybė nepriklauso nuo pasirinkto reikšmės pakeitimo intervalo naudojant atstumo
kandidato selektorių.
Grafiškas rezultatų palyginimas tarp 3-ojo ir 4-ojo eksperimento pavaizduotas 22 paveiksle.
138,1
140
Tikslo funkcijos reikšmė
120,02 115,289
120 108,396 110,473 111,378
100
80
60
40
20
0
Minimumas Vidurkis Maksimumas
Be stimuliatoriaus Su stimuliatoriumi
9 lentelės eksperimento rezultatų analizė parodė, kad kuo mažesnis yra stimuliatoriaus atstumo
parametras, tuo uždavinio sprendimas gerėja ir tai liečia minimumą, vidurkį ir maksimumą.
41
Geriausias rezultatas, kurio tikslo funkcijos reikšmė lygi 106,439, gautas naudojant atstumo
parametrą, lygų 0,25. Šis eksperimentas pagerina iki šiol geriausią pasiektą sprendimą 1,8 %.
42
Šiame eksperimente taip pat yra taikomas dinaminis kandidato selektorius, kuriame reikšmės
pokyčio intervalas mažėja nuo [-1; 1] iki [-0,1; 0,1]. Su tokiu intervalu buvo pasiektas geriausias
rezultatas šeštame eksperimente.
Septintojo eksperimento rezultatai yra parodyti 11 lentelėje.
11 lentelė. Eksperimento rezultatai naudojant dinaminį stimuliatorių
Minimumas Vidurkis Maksimumas
Nuo 0,5 iki 0,1 105,826 108,739 113,518
Nuo 0,35 iki 0,05 104,951 108,173 113,02
106,003 108,993 120,355
Nuo 0,25 iki 0,05
Šio eksperimento rezultatai parodė, kad geriausias uždavinio sprendinys buvo gautas keičiant
du elementus individo kandidato generavimo metu. Šio sprendinio tikslo funkcijos reikšmė yra lygi
105,511, kuri pablogino esamą geriausią rezultatą, pasiektą septintoje strategijoje 0,53 %. Galima
daryti išvadą, kad algoritmas veikia efektyviau, kai individo kandidato generavime yra
modifikuojamas tik vienas elementas.
43
5.9. Visų eksperimentų palyginimas ir optimalios strategijos parinkimas
Šiame darbe buvo tiriamas globaliojo optimizavimo antrasis uždavinys, kurio optimalus
sprendimas yra lygus 104,12. Kad pasiekti šį sprendimą, buvo išbandyti įvairūs atkaitinimo
modeliavimo metodai ir tų metodų parametrai. Buvo ištirtos įvairios metodų kombinacijos, taip pat
atskirai patikrintas kiekvieno metodo efektyvumas.
Visų aštuonių eksperimentų rezultatų palyginimas yra pateiktas 23 paveiksle.
130
125
120
115
110
105
100
95
90
1 eksp 2 eksp 3 eksp 4 eksp 5 eksp 6 eksp 7 eksp 8 eksp
Minimumas 120,648 114,371 110,473 108,396 106,439 105,674 104,951 105,511
Vidurkis 125,568 121,3 120,02 111,378 110,218 108,404 108,173 109,726
Minimumas Vidurkis
44
elementų būtų kuo panašesnis. Pagal tokią logiką yra sugeneruojami 500 individų ir iš jų
išrenkamas geriausias, turintis mažiausią tikslo funkcijos reikšmę.
• Dinaminis kandidato selektorius – sugeneruojamas individo kandidatas, modifikuojant
esamo individo vieną elemento reikšmę. Ši reikšmė modifikuojama pagal nustatytą
dinaminį mažėjanti intervalą nuo [-1; 1] iki [-0,1; 0,1]. Intervalas kiekvienoje iteracijoje
mažėja sumuojant jos pradžią ir pabaigą su atstumo pokyčio parametru. Atstumo
pokyčio parametras yra apskaičiuojamas pagal 16-tą formulę.
• Dinaminis stimuliatorius – po individo kandidato generavimo abu individai yra
palyginami ir, jeigu individas kandidatas yra geresnis, jis tampamas nauju individu, kitu
atveju, taikomas dinaminis stimuliatorius, kuris pagal nustatytą stimuliatoriaus atstumo
parametrą pasirenka blogesnį kandidatą. Stimuliatoriaus atstumo parametras kiekvienoje
iteracijoje dinamiškai mažėja nuo 0,35 iki 0,05. Mažėjimas įvyksta sumuojant šį
atstumo parametrą su pokyčio žingsniu, kuris apskaičiuojamas pagal 16-tą formulę.
46
14 lentelė. Siūlomos optimizavimo strategijos rezultatų palyginimas su kitų tyrėjų rezultatais
Nr. SA Bajeso GA SA Tikslus Bendras
(Belevičius, metodas (Ramanauskas, (šis sprendimas patobulinimas
2011) (Mockus, 2017) darbas) %
2012)
1 339,3 381,39 337,15 354,18 307,47 -5,05
2 106,36 113,47 105,34 104,95 104,12 0,37
3 107,25 117,31 115,02 107,11 101,85 0,13
4 106,8 117,16 113,29 105,57 101,24 1,15
5 102 110,91 100 99,92 97,51 0,08
6 117,26 115,45 120,28 110,66 97,53 5,63
7 298,11 333,77 301,48 296,91 287,35 0,40
8 357,67 286,22 404,29 404,68 236,28 -41,38
9 253 278,86 263,12 257,25 244,71 -1,68
10 463,34 493,53 556,11 562,11 349,05 -21,32
47
DARBO REZULTATAI
1. Išanalizuota mokslinė literatūra populiarių globalaus optimizavimo algoritmų tema, pateikti
aprašymai ir pritaikymai įvairiuose tyrimuose.
2. Išnagrinėta gręžtinių pamatų skaičiavimo programa (programos autorius prof. R. Belevičius).
Aprašytas matematinis modelis, pateikta integracija su optimizavimo programa.
3. Išanalizuoti ankstesni mokslininkų tyrimai optimizuojant polių padėčių gręžtiniuose pamatuose
uždavinį. Išrinktas perspektyviausias optimizavimo algoritmas.
4. Optimizavimo algoritmas realizuotas su C++ programavimo kalba naudojant tikslo funkciją
kaip „juodą dėžę“ iš gręžtinių pamatų skaičiavimo programos.
5. Atlikti skaitiniai eksperimentai ir nustatyta optimali algoritmo optimizavimo strategija
pasirinkto tipo uždaviniams spręsti.
6. Inžineriniai uždaviniai išspręsti, rezultatai palyginti su kitų tyrėjų gautais rezultatais.
48
IŠVADOS
1. Literatūros analizė atskleidė, kad populiariausi globalaus optimizavimo algoritmai yra genetinis
ir atkaitinimo modeliavimo algoritmas.
2. Integravus FORTRAN biblioteką į C++ optimizavimo programą bendras našumas nesumažėjo.
3. Išnagrinėti ankstesni mokslininkų tyrimai parodė, kad perspektyvus algoritmas polių padėčių
gręžtiniuose pamatuose uždavinio optimizavimui yra atkaitinimo modeliavimas.
4. Atkaitinimo modeliavimo algoritmas yra paprasčiau realizuojamas nei genetinis algoritmas.
Genetinio algoritmo realizacijai reikia trijų operatorių, o atkaitinimo modeliavimui užtenka
dviejų. Atkaitinimo modeliavimas apdoroja tik vieną individą, o genetinis algoritmas visą
individų populiaciją.
5. Parinkta optimali atkaitinimo modeliavimo algoritmo strategija, kurios metodai ir parametrai
yra tokie:
Optimalios strategijos parametrai:
• individo generacijų skaičius – 500;
• iteracijų skaičius – 4500;
• elemento pokyčio reikšmės intervalo pradžia – -1;
• intervalo pabaiga – 1;
• stimuliatoriaus atstumo pradinė reikšmė – 0,35;
• stimuliatoriaus atstumo galutinė reikšmė – 0,05.
Optimalios strategijos taikomi metodai:
• atstumo generatorius;
• dinaminis kandidato selektorius;
• dinaminis stimuliatorius.
6. Siūlomos optimizavimo strategijos rezultatai, palyginus su kitų mokslininkų tyrimų
rezultatais, gautais 2011 m., 2012 m. ir 2017 m., pagerino šešių uždavinių sprendimus: antrą
0,37 %, trečią 0,13 %, ketvirtą 1,15 %, penktą 0,08 %, šeštą 5,63 % ir septintą 0,40 %.
49
LITERATŪRA
Ahuja, H., Sujata, & Batra, U. (2018). Performance Enhancement in Requirement Prioritization by
Using Least-Squares-Based Random Genetic Algorithm. Innovations in Computational
Intelligence. Studies in Computational Intelligence, 713. https://doi.org/10.1007/978-981-
10-4555-4_17
Amer, M. H., Al-Kashoash, H., Hawer, M., Chaqfeh, M., Kemp, A., & Mihaylowa, L. (2019).
Centralized simulated annealing for alleviating vehicular congestion in smart cities.
Technological Forecasting and Social Change, 142, 235-248.
https://doi.org/10.1016/j.techfore.2018.09.013
Arostegui Jr, M. A., Kadipasaoglu, S. N., & Khumawala, B. M. (2006). An empirical comparison of
Tabu Search, Simulated Annealing, and Genetic Algorithms for facilities location problems.
International Journal of Production Economics, 103(2), 742-754.
https://doi.org/10.1016/j.ijpe.2005.08.010
Azadeh, S. S., Bierlaire, M., & Maknoon, M. Y. (2019). A two-stage route optimization algorithm
for light aircraft transport systems. Transportation Research Part C: Emerging
Technologies, 100, 259-273. https://doi.org/10.1016/j.trc.2019.01.028
Belevičius, R., Ivanikovas, S., Šešok, D., Valentinavičius, S., & Žiliniskas, J. (2011). Optimal
placement of piles in real grillages: experimental comparison of optimization algorithms.
Information Technology And Control(Nr. 40(2)), 123-132.
https://doi.org/10.5755/j01.itc.40.2.427
Belevičius, R., Mačiūnas, D., & Šešok, D. (2011). Momentų ir reakcijų minimizavimas
rostverkiniuose pamatų sijynuose genetiniu algoritmu. Engineering structures and
technologies, 3 (2), 56-63. https://doi.org/10.3846/skt.2011.07
Bharathi, C., Rekha, D., & Vijayakumar, V. (2017). Genetic Algorithm Based Demand Side
Management for Smart Grid. Wireless Personal Communications, 93(2), 481-502.
https://doi.org/10.1007/s11277-017-3959-z
Borici, A. (2012 m. rugsėjo 4 d.). Introduction of genetic algorithms. Prieiga per internetą:
https://www.slideshare.net/arberborix/introduction-to-genetic-algorithms
Brownlee, J. (2015). Clever Algorithms: Nature-Inspired Programming Recipes. Prieiga per
internetą: http://www.cleveralgorithms.com/nature-
inspired/physical/simulated_annealing.html
Cheraitia, M., & Salim, H. (2016). Simulated Annealing for the Uncapacitated Exam Scheduling
Problem. International Journal of Metaheuristics, 5(2), 156-170.
https://doi.org/10.1504/IJMHEUR.2016.10001113
50
Dede, T., Kripka, M., Togan, V., & Yepes, V. (2019). Usage of Optimization Techniques in Civil
Engineering During the Last Two Decades. Current Trends in Civil & Structural
Engineering, 2(1), 1-17.
Dey, S., Gupta, N., Pathak, S., Kela, D., & Datta, S. (2019). Data-Driven Design Optimization for
Industrial Products. In Optimization in Industry (253-267). Cham: Springer.
Elhoseny, M., Tharwat, A., & Hassanien, A. E. (2017). Bezier Curve Based Path Planning in a
Dynamic Field using Modified Genetic Algorithm. Journal of Computational Science, 25,
339-350. https://doi.org/10.1016/j.jocs.2017.08.004
Eriksson, P., & Arora, J. S. (2002). A comparison of global optimization algorithms applied to a
ride comfort optimization problem. Structural and Multidisciplinary Optimization, 24(2),
157-167. https://doi.org/10.1007/s00158-002-0225-z
Geltman, K. E. (2014). The Simulated Annealing Algorithm. Prieiga per internetą:
http://katrinaeg.com/simulated-annealing.html
Grigutis, R. (2018). Optimizavimo metodai.
Handbook, O. D. (2018). Failų formatai.
Hopkins, M., Mitzenmacher, M., & Caren, S. W. (2018). Simulated Annealing for JPEG
Quantization. In Proceedings of Data Compression Conference (DCC).
Yu, V. F., Purwaint, S. S., Redi, P., Lu, C.-C., Suprayogi, S., & Jewpanya, P. (2018). Simulated
annealing heuristic for the general share-a-ride problem. Engineering Optimization, 50(7),
1178-1197.
Jacobson, L. (2013). Simulated Annealing for beginners. Prieiga per internetą:
http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6
Jebari, K. (2013). Selection Methods for Genetic Algorithms. International Journal of Emerging
Sciences, 3(4), 333-344.
Karagul, K., Sahin, Y., Aydemir, E., & Oral, A. (2019). Simulated Annealing Algorithm Based
Solution Method for a Green Vehicle Routing Problem with Fuel Consumption. In Lean and
Green Supply Chain Management (161-187). Cham: Springer.
Karyotis, V., & Khouzani, M. (2016). Malware-propagative Markov random fields. Malware
Diffusion Models for Wireless Complex Networks.
Kendall, G. (2018). Simulated Annealing. Prieiga per internetą:
www.cs.nott.ac.uk/~pszgxk/aim/notes/simulatedannealing.doc
Lančinskas, A. (2013). Atsitiktinės paieškos globaliojo optimizavimo algoritmų lygiagretinimas.
Prieiga per internetą: https://epublications.vu.lt/object/elaba:2190195/
Liang, Y., Song, G., Wu, T., Wang, S., & Wu, Y. (2018). Optimizing Bus Stop Spacing Using the
Simulated Annealing Algorithm with Spatial Interaction Coverage Model. Proceedings of
51
the 11th ACM SIGSPATIAL International Workshop on Computational Transportation
Science (53-59). ACM. https://doi.org/10.1145/3283207.3283212
Lim, M. S., Sultan, B. A., Sulaiman, N., Mustapha, A., & Leong, Y. K. (2017). Crossover and
Mutation Operators of Genetic Algorithms. International Journal of Machine Learning and
Computing, 7(1). 9-12. https://doi.org/10.18178/ijmlc.2017.7.1.611
Mačiūnas, D. (2013). Multi-objective global optimization of grillages using genetic algorithms.
Doctoral dissertation. Vilnius: Technika.
Mačiūnas, D., & Belevičius, R. (2012). Multi-Objective optimization of grillages using adaptive
genetic algorithm. International Review of Mechanical Engineering, 6 (3).
Mallawaarachchi, V. (2017 m. liepos 7 d.). Introduction to Genetic Algorithms — Including Example
Code. Prieiga per intenertą: https://towardsdatascience.com/introduction-to-genetic-
algorithms-including-example-code-e396e98d8bf3
Mangano, S. R. (1995). A Genetic Algorithm White Paper. Prieiga per internetą:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.55.1751&rep=rep1&type=pdf
Miloš, E. (2017). Globaliojo optimizavimo uždavinių sprendimas naudojant genetinius algoritmus.
Esantis Bakalaurinis darbas (24-25).
Miloš, E., & Šešok, D. (2017). Globaliojo optimizavimo uždavinių sprendimas naudojant genetinius
algoritmus. Jaunųjų mokslininkų darbai, Nr. 47(1), 80-86.
Mockus, J., Belevičius, R., Šešok, D., Kaunas, J., & Mačiūnas, D. (2012). On Bayesian Approach to
Grillage Optimization. Information Technology and Control, 41(4). 332-339.
https://dx.doi.org/10.5755/j01.itc.41.4.1670
Nyarko, E. K., Cupec, R., & Filko, D. (2014). A Comparison of Several Heuristic Algorithms for
Solving High Dimensional Optimization Problems. International journal of electrical and
computer engineering systems, 5(1.), 1-8.
Pandey, H. M., Chaudhary, A., & Mehrotra, D. (2014). A comparative review of approaches to
prevent premature convergence in GA. Appl. Soft Comput., 24, 1047-1077.
https://doi.org/10.1016/j.asoc.2014.08.025
Ramanauskas, M., Šešok, D., Belevičius, R., Kurilovas, R., & Valentinavičius, S. (2017). Genetic
Algorithm with Modified Crossover for Grillage Optimization. International Journal of
Computers, Communications & Control, 12(3), 393-402.
https://doi.org/10.15837/ijccc.2017.3.2813
Shukla, A., Pandey, H. M., & Mehrotra, D. (2015). Comparative review of selection techniques in
genetic algorithm. International Conference on Futuristic Trends on Computational
Analysis and Knowledge Management (ABLAZE), (p. 515-519). Noida.
52
Singiresu, R. S. (2009). Engineering Optimization. Theory and Practise. Fourth Edition. New
Jersey: John Wiley & Sons, Inc., Hoboken.
Sizikova, E., & Funkhouser, T. (2018). Wall Painting Reconstruction Using a Genetic Algorithm.
Journal on Computing and Cultural Heritage (JOCCH), 11(1), 3.
Structuralist. (2006). Optimizacija. Prieiga per internetą:
http://www.structuralist.narod.ru/dictionary/opt.htm
Šešok, D., Belevičius, R., Kačeniauskas, A., & Mockus, J. (2010). Application of GRID computing
for optimization of grillages. Mechanika, Nr. 2 (82).
Šešok, D., Mockus, J., Belevičius, R., & Kačeniauskas, A. (2010). Global optimization of grillages
using simulated annealing and high performance computing. Journal of Civil Engineering
and Management, 16(1), 95-101. https://doi.org/10.3846/jcem.2010.09
Thakur, R. (2016 m. lapkričio 6 d.). What is the difference between local minima & maxima and
absolute minima & maxima? Priega per internetą: https://www.quora.com/What-is-the-
difference-between-local-minima-maxima-and-absolute-minima-maxima
Varun Kumar, S., & Panneerselvam, R. (2017). A study of crossover operators for genetic
algorithms to solve VRP and its variants and new sinusoidal motion crossover operator. Int.
J. Comput. Intell. Res, 13(7), 1717-1733.
Walker, J. (2018). Simulated Annealing. The Travelling Salesman Problem. Prieiga per internetą:
https://www.fourmilab.ch/documents/travelling/anneal/
Weise, T. (2009). Global Optimization Algorithms. Theory and Application.
Weng, Y., & Cheng, C. (2019). Warehouse Storage Assignment by Genetic Algorithm with Multi-
objectives. International Conference on Intelligent Human Systems Integration (pp. 300-
305). Springer, Cham. https://doi.org/10.1007/978-3-030-11051-2_46
53
PRIEDAI
A priedas. Optimizavimo programos polimorfizmo pritaikymas
Tėvinė klasė:
class SASelector
{
public:
virtual std::vector<double> generateCandidate(std::vector<double> poles) = 0;
virtual ~SASelector() {};
};
Paveldinčios klasės
class SABasicCandidateSelector : public SASelector
{
private:
int polesAmount;
double polesValueCapacity;
public:
SABasicCandidateSelector(int polesAmount, double polesValueCapacity);
std::vector<double> generateCandidate(std::vector<double> poles) override;
};
54
B priedas. Pagrindinių parametrų nuskaitymas
SASettings.json failas
std::ifstream t("SAsettings.json");
json settings = json::parse(t);
auto startRangeValue = std::make_shared<double>(settings["startRangeValue"]);
auto elAmount = std::make_shared<unsigned int>(settings["elAmount"]);
auto stimulatorStartDistance = std::make_shared<double>(settings["stimulatorStartDistance"]);
unsigned int polesGenerationAmount = settings["polesGenerationAmount"];
int iterationAmount = settings["iterationAmount"];
double endRangeValue = settings["endRangeValue"];
double stimulatorEndDistance = settings["stimulatorEndDistance"];
double endElAmount = settings["endElAmount"];
double changeStep = (endRangeValue - *startRangeValue) / iterationAmount;
double stChangeStep = (stimulatorEndDistance - *stimulatorStartDistance) / iterationAmount;
double elAmountChangeStep = (endElAmount - *elAmount) / iterationAmount;
55
C priedas. Praktinių uždavinių sprendimai
Uždavinys Nr. 2
0.682259 2.7181 5.7224 7.9928 12.7756 14.8163 17.9338 21.8102 22.4782 26.3967 30.4819
33.6821 37.4086 39.1966 42.0381 45.0549 48.7214 50.4813
Uždavinys Nr. 3
2.91365 7.0444 7.6831 8.3069 13.1704 13.9211 17.4590 21.2401 25.5848 28.0656 32.0986
32.9941 35.9325 36.8468 38.1549 41.4218 46.4523 47.4519 51.7123 54.0376 56.1996 56.9151
62.6155 65.5711 67.2615 68.6983 71.0766 76.0103 78.1536 79.9613 83.0145
Uždavinys Nr. 4
1.48832 4.2185 6.3490 11.9046 12.6022 14.4608 16.9779 17.5873 21.4872 24.0538 27.5890
30.4110 34.5958 36.8551 40.3039 41.1015 45.3352 46.4362 49.0967 54.9641 56.2846 61.4283
62.2166 64.1708 66.1297 71.7537 72.5137 73.1204 78.7716 78.9289 83.2878
56
Uždavinys Nr. 5
0.334751 2.4007 5.4422 7.6293 8.4039 9.0607 12.7621 15.9966 17.1992 19.0894 21.5907
24.4979 25.7043 27.7614 29.7785 32.8622 35.0409 35.9226 39.7753 42.4456 43.5728 46.2031
46.8454 50.1759 52.6961 54.1015 55.7336 57.7513 60.4713 63.1794
Uždavinys Nr. 7
0.611107 7.4601 10.5332 16.4030 24.9794 32.0756 33.4934 41.2999 49.6752 53.3114 59.4779
63.3222 71.0132 76.0338 81.9432 88.0364 94.0607 97.7258 103.7059 105.5778 115.4764
119.5899 125.5861
Uždavinys Nr. 9
2.62431 8.8752 13.3199 21.7337 24.8768 31.4664 37.4924 44.1193 49.3434 55.8884 64.3008
68.3198 69.9593 80.8984 82.1456 89.2018 94.1411
57