13
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).

Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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)

Page 2: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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:

Page 3: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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.

Page 4: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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.

Page 5: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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

Page 6: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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

Page 7: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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

Page 8: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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].

Page 9: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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

Page 10: Funktsioonide lähendamine tehisnärvivõrgkude abil …jmajak/Globaalse optimeerimise... · Web viewEesmärk – leida kahe fraktsiooni kombinatsioon, mis tagab segatud pulbri maksimaalse

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.