Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Globaalse optimeerimise meetodite kasutamine insenerirakendustes
Järgnevas anname lühiülevaate globaalse optimeerimise meetoditest, ning vaatleme nende rakendamist. Insenerirakendustes on sageli funktsioonide analüütiline kuju teadmata ja sihifunktsioonid (või kitsenduste funktsioonid) koostatakse katsetulemuste põhjal. Seega modelleeritakse esialgu ligikaudselt funktsioon ja seejärel leida selle globaalne ekstreemum. Funktsioonide ligikaudset modelleerimist kasutatakse ka arvutusmahukate numbriliste simulatsioonide korral, et vähendada arvutusmahtusid.
1. Funktsioonide lähendamine tehisnärvivõrgkude abil
Probleemi üldine püstitus on järgmine: antud on kas katsetulemuste või siis mahukate
arvutuste põhjal saadud tulemused. Nende tulemuste põhjal koostatakse funktsioon (vastavuse
pind), mida kasutatakse optimeerimisülesande lahendamisel. Enamasti on vaja närvivõrku
sihifunktsiooni lähendamiseks, kuid täpselt samamoodi saab vajadusel lähendada ka
kitsenduste funkstioone.
Lihtne näide:
Katsetulemusena on antud pulbriks jahvatatud komposiitmaterjali osakeste fraktsioonide
suurused (recycling).
Fraktsioone on 5. Igasse fraktsiooni kuuluva osakese keskmine suurus on vatavalt :
4.2,2.025,0.94,0.4725,0.1575
Eesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse
tiheduse (nii saaks kasutada maksimaalselt jahvatatavat pulbrit ja vähem vaiku, mis on kallis).
Katsetulemusena proovitakse läbi erinevad võimalused (kombinatsioonist 5-st 5 kaupa) ja
mõõdetakse saadu segu tihedused. Katseandmed on seega:
a) Segatavad fraktsioonid: (esimene frakstioon ridades 1-2, teine ridades 3-4)
P = [4.2,4.2,4.2,4.2,4.2,2.025,2.025,2.025,2.025,2.025,0.94,0.94,0.94,0.94,0.94,0.4725,0.4725,0.4725,0.4725,0.4725,0.1575,0.1575,0.1575,0.1575,0.1575; 4.2,2.025,0.94,0.4725,0.1575,4.2,2.025,0.94,0.4725,0.1575,4.2,2.025,0.94,0.4725,0.1575,4.2,2.025,0.94,0.4725,0.1575,4.2,2.025,0.94,0.4725,0.1575]
b) Vastavad tihedused
T=[0.677,0.762,0.752,0.752,0.837,0.762,0.701,0.725,0.737,0.862,0.752,0.725,0.691,0.709,0.834,0.752,0.737,0.709,0.667,0.763,0.837,0.862,0.834,0.763,0.769]
Teeme nende andmete põhjal närvivõrgu (MATLAB)
global net; % paneme globaalseks muutujaks et funktsioonides kasutada
siledus=1.0 % parameeter mis iseloomustab kuidas pinda lähendada
net=newgrnn(P,T,siledus); % närvivõrgu tegemine
Proovime kas töötab, laseme arvutada fraktsioonide suurustele 3 ja 3 vastava pulbri tiheduse:
xy=[3;3];
tihedus=sim(net,xy) % närvivõrgu simuleerimine etteantud andmetega
Saime tulemuseks tiheduse 0.7287.
Nüüd anname simulatsiooniks ette sellised fraktsioonide suurused, mille korral me katsetest juba teame pulbri tihedust ja vaatme mida leiab närvivõrk:
xy=[4.2;4.2];
tihedus=sim(net,xy)
Tulemus on mõnevõrra üllatav:
0.6831
mis ei lange täpselt kokku meie poolt närvivõrgu koostamiseks etteantud
tihedusega (0.677). Närvivõrk näib olevat üsna rumal - tegelikult on olemas
lihtne selgitus. Üldistatud regressiooni korral ei panda pinda täpselt läbi
etteantud punktide, vaid hoopis nii, et pind oleks teatud sileduse tasemega ja
tema kaugus etteantud punktidest oleks minimaalne (sileduse parameeter
närvivõrgu loomisel).
a) suurendame sileduse parameetrit väärtuselt 1 väärtusele 1.2 vaatame , mis
juhtub: tulemus on 0.6924 ehk veel ebatäpsem, sest suurendasime pinna
siledust mis suurendas kaugust etteantud punktidest.
b) vähendame sileduse parameetrit väärtuselt 1 väärtusele 0.7 vaatame , mis
juhtub: tulemus on 0.6772 ehk vägagi täpne (katses 0.677), sest vähendasime
pinna siledust mis vähendas kaugust etteantud punktidest.
See ei tähenda et siledus alati väike tuleks valida, sest nii võib koostatud pind
liiga astmeliseks muutuda. Tulemust parandab kindlasti suurema hulga
lähtepunktide kasutamine närvivõrgu loomisel.
Vastavuse pind (funktsioon) juhul kui siledus =0.7pole antud ülesandse korral
siiski liiga astmeline.
01
23
4
0
1
2
3
40.68
0.7
0.72
0.74
0.76
0.78
0.8
Joonis1. Vastavuse pind
Jooniselt on näha kapüstitatud probleemi lahendus. Maksimaalne tihedus
saadakse selliste fraktsioonide korral kus ühe suurus on maksimaalne ja
teisel minimaalne (kõrged nurgad joonisl). Täpsema tulemuse saamiseks
tuleks aga läbi viia optimeerimine, kus sihifunktsiooniks on närvivõrgu
abil koostatud funkstioon. Progekood optimeerimiseks:
xy0=[1;1]
lb=[0.1575;0.1575]
ub=[5.6;5.6]
[xv, fval] = ga(@sihif,2,[],[],[],[],lb,ub)
Tulemus on nagu eeldatud:
xv = 5.5999 0.1580 fval = -0.7841
ehk esimene fraktsioon maksimaalse, teine minimaalse suurusega. Tihedus
on tulemuses esialgu negatiivne seetõttu, et funktsioon ga arvutab ainult
miinimumi ja sihifunktsioon on etteantud miinusmärgiga.
b
Väikese sileduse väärtuse kasutamine on siiski probleemne, tehtav pind pole
ilmselt piisavalt sile. Antud näite korral ei suuda sellel pinnal korrektselt
ekstreemumit leida isegi globaalse optimeerimise funktsioon ga: sõltuvalt
alglähendist võib koonduda valeks lahendiks (lokaalseks ekstreemumiks).
Elusolendi närvisüsteemi tüüpiline neuron kogub signaale teistelt neuronitelt dendriitide abil.
Dendriitidelt saadud impulssi tööteldatakse neuroni raku poolt, muudetakse väljundiks ehk
väikeseks elektrokeemiliseks impulsiks. Elektrokeemilised impulsid kanduvad üle pikkade,
õhukeste aksonite ehk närvi telgniitide sünapsideni. Aksoni lõpus on sünaps, mis konverteerib
saadud impulsi elektrokeemiliseks efektiks. Nii moodustubki bioloogiline närvivõrk, kus
impulss kantakse ühelt neuronilt teistele üle elektrokeemilise laenguna.
Tehisnärvivõrk
Tehisnärvivõrgud on matemaatilised mudelid, mis simuleerivad bioloogilise närvisüsteemi tööd.
Tehisnärvivõrk koosneb neuronitest ning nendevahelistest ühendustest.
Lihtsustatud tehisneuronit demonstreerisid esmalt McCulloch ja Pitts. Aastal 1969 avaldasid Minsky
ja Papert raamatu Perceptrons, milles näitasid ka pertseptroni mudeli puudusi. Nii vähenes huvi
närvivõrkude vasti tükiks ajaks, kuni Hopfieldi ja Kohoneni (tagasisidega) närvivõrkude
esilekerkimiseni (1982). Praegusel ajal leiavad tehisnärvivõrgud laialdast kasutust.
Rakendusvaldkonnad: klassifitseerimine, fn. lähendamine, mustrite tuvastamine
Tehisneuroni mudelTehisneuron on närviõrgu töötluselement, millel on mitu sisendit ja üks väljund. Neuron
võtab vastu informatsiooni teistelt neuronitelt sisendite kaudu, töötleb saadud informatsiooni
ja genereerib väljundi kasutades etteantud funktsiooni. Väljund võib olla sisendiks teistele
neuronite. Joonis 2: kus X-sisend, w-kaal ja Y-väljund, b on bias ehk algväärtus.
Sisendväärtuste kaalutud summale rakendatakse aktiveerimisfunktsiooni f ning tulemusena
saadakse väljund Y
Joonis 3. Tehisneuron.
Sageli kasutatavad funktsioonid (aktiveerimisfunktsioonid) on järgmised:
Joonis 4. Lineaarne ja hüperpoolse tangensi, signumi aktiveerimisfunktsioonid.
Sigmoid funktsiooni valem aktiveerimise puhul on järgmine
Mitmekihiline närvivõrk
Mitmekihiliseks närvivõrguks võib nimetada närvivõrku, kus on üks või enam peidetud kihti.
Mitmekihiline närvivõrk koosneb mitmetest arvutuslikest kihtidest. Ühe kihi tehisneuron on
suunatud ühenduses järgneva kihi kõikide neuronitega. Kihti, kus asuvad sisendneuronid
nimetatakse sisendkihiks. Kihti, kus asuvad väljundneuronid nimetatakse väljundkihiks.
Vahepealseid kihte nimetatakse peidetud kihtideks. Otsesuunatud närvivõrguks nimetatakse
võrku, kus ei esine tagasisidet ja kõik ühe kihi neuronid on ühenduses iga järgmisel kihil
oleva neuroniga. Rekurentseteks nimetatakse mitmekihilist närvivõrku, kus on lubatud
tagasisidemed ja tsüklid (Russell, Norvig). Kõige sagedamini on närvivõrgud modelleeritud
kolmekihilisena. Väga lihtne mitmekihiline närvivõrk:
f = 11+e−x
2. Globaalse optimeerimise meetodid
Deterministlikud tehnikad
Branch and bound (hargne ja kärbi)
Puu iga tipu juures arvutatakse sellest tipust parim saavutatav tulemus(hinnang), mida tegelik tulemus ei saa ületada
Hargnetakse edasi tipust, mille tulemus on parim
Tipud, mille tulemus on võrdne või halvem, kui parim hetkel leitud tulemus, kärbitakseMonte-Carlo meetodi põhised algoritmid
EC – evolutionary computing
GA – genetic algorithm
ES – evolution strategy
EP – evolutionary programming
GP – genetic programming
Hübriid GA eelised
Eeldused globaalse ekstreemumi leidmiseks
Toetab täisarvulisi muutujaid või diskreets. reaalarv. muut.
Ei nõua tuletiste arvutamist
Kiire võrreldes GA-ga
Pole täpsuse probleeme nagu GA-l
Hübriid GA puudused
Aeglane võrreldes gradiendi kasutamisel põhinevate meetoditega
GENEETILISED ALGORITMID
Tänapäeval töötavad geneetiliste algoritmide väljatöötamiseks üldjuhul suured uurimisgrupid ja isegi
terved instituudid, kümnete teadlastega.
Mis on geneetilised algoritmid ja millal neid kasutada
Geneetilised algoritmid (edaspidi GA) kujutavad endast ülesannete lahendamise meetodeid, mis
tuginevad looduslike protsesside simuleerimisel. Vastavate looduslike protsesside (looduslikud
valikud, mutatsioonid, geenide ümberkombineerimine, jne.) detailsema kirjelduse jätame siinkohal
vahele. Siinkohal on plaanis rakendada geneetilisi algoritme optimiseerimisülesannete
lahendamiseks. Geneetilisi algoritme vaatleme kui ühte optimiseerimise algoritmide klassi, mis
toetub evolutsiooniteooriale.
Kõigepealt toome välja mõned GA-le iseloomulikud omadused, mis on olulised just optimiseerimise
ülesannete lahendamisel:
a) geneetilise algoritmi rakendamine võimaldab leida globaalse miinimumi või maksimumi
(enamus traditsioonilisi optimiseerimise algoritme koondub lähimasse lokaalsesse
ekstreemumisse);
b) geneetilise algoritmi rakendamine võimaldab lahendada ka ülesandeid kus parameetriteks
on täisarvud (ka kahendarvud) samas kui traditsioonilised optimiseerimise algoritmid
töötavad enamasti ainult reaalarvuliste parameetritega ja pidevate funktsioonidega
kasutades algoritmis tuletise arvutamist;
c) geneetiline algoritm kasutab juhuslikkust.
Need on peamised põhjused miks GA-d eelistatakse sageli traditsioonilistele optimiseerimise
algoritmidele.
GA algoritmi peamiseks puuduseks võib pidada aeglast koonduvust miinimumi läheduses, seetõttu
kasutatakse ka kombineeritud lahendusalgoritme, kus esialgu rakendatakse geneetilist algoritmi, kuni
hakkab toimuma lähenemine globaalsele miinimumile (maksimumile) ja seejärel rakendatakse
traditsioonilist meetodit (näiteks kiireima languse meetod), mis koondub GA-st kiiremini.
GA tööpõhimõte on kujutatud kokkuvõtlikult järgmisel diagrammil [6].
Algoritmi töö lõpetamise tingimuseks võib olla näiteks olukord kus minimiseeritav (maksimiseeritav)
väärtusfunktsioon omandab soovitud väärtuse (kui see on teada), või koondub mingiks väärtuseks
(soovitavalt globaalseks ekstreemumiks). Koondumine tähendab viimasel juhul seda, et mitmel
järjestikusel sammul minimiseeritava funktsiooni väärtus oluliselt enam ei muutu. Kindlasti on
võimalik ka olukord, kus protsess ei koondu lahendiks, et mitte jääda viimasel juhul lõpmatuid
tsükleid täitma, võiks lõpetamise tingimus sisaldada lisatingimusena piirangut maksimaalsele
iteratsioonide arvule.