UPORABA UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PROBLEMOV

Velikost: px
Začni prikazovanje s strani:

Download "UPORABA UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PROBLEMOV"

Transkripcija

1 UPORABA UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PROBLEMOV Študent: Študijski program: Smer: Predmet: Mentor: Somentor: Simon ŠIKOVEC Visokošolski strokovni; Strojništvo Proizvodno strojništvo CAD/CAM postopki red. prof. dr. Miran BREZOČNIK dr. Simon KLANČNIK Maribor, september 2013

2

3 IZJAVA Podpisani Simon Šikovec izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof. dr. Mirana BREZOČNIKA in somentorstvom dr. Simona KLANČNIKA; predloženo diplomsko delo v celoti ali v delih ni bilo predloženo za pridobitev kakršnekoli izobrazbe na drugi fakulteti ali univerzi; soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet Univerze v Mariboru. Maribor, Podpis:

4 ZAHVALA Najlepše se zahvaljujem mentorju dr. Miranu Brezočniku in somentorju dr. Simonu Klančniku za vse nasvete in vodstvo med pisanjem diplomskega dela. Posebna zahvala velja staršem in sestri za pomoč in podporo pri študiju.

5 UPORABA UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PROBLEMOV Ključne besede: umetna inteligenca, nevronske mreže, genetski algoritmi, skupinska inteligenca, mehka logika, algoritem kolonije mravelj. UDK: :62(043.2) POVZETEK opisuje različne metode umetne inteligence in njihovo uporabo v inženirstvu. V uvodnem delu je razčlenitev umetne inteligence in splošen opis, ki mu sledi nekaj primerov. S primeri, kot sta na primer optimizacija obdelovalnih parametrov in napovedovanje oziroma obnašanje sistema v prihodnosti, želimo pokazati, da je uporaba umetne inteligence učinkovit pristop za reševanje inženirskih problemov. Na koncu obeh primerov prikažemo, da je uporaba metod umetne inteligence učinkovita, saj je robustna, zmogljiva in za inženirske potrebe dovolj natančna. Danes vse bolj stremimo k čim večji avtomatizaciji in načrtovanju proizvodnih sistemov, ki nam dajejo najboljše rezultate. Uporaba umetne inteligence je velikokrat skoraj nujna, saj do neke mere nadomesti navzočnost človeka v proizvodnih sistemih. I

6 USE OF ARTIFICIAL INTELLIGENCE FOR SOLVING DEMANDING ENGINEERING PROBLEMS Keywords: artificial intelligence, neural networks, genetic algorithms, collective intelligence, fuzzy logic, ant colony algorithm. UDK: :62(043.2) ABSTRACT The Diploma thesis describes different artificial intelligence methods and their use in engineering. The introductory part presents the analysis of artificial intelligence and a general description, which is followed by some specific examples. With examples such as, for instance, optimisation of processing parameters and prediction, or behaviour of the system in the future, we want to show that the use of artificial intelligence is an effective approach to solving engineering problems. In the end of both examples we show that the use of artificial intelligence methods is effective, because it is robust, high-performing, and accurate enough to meet the engineering needs. Nowadays, we increasingly strive to increase the automation and planning of production systems that provide better results. The use of artificial intelligence is often almost necessary, as it replaces, to some extent, the presence of people in production systems. II

7 KAZALO VSEBINE 1 UVOD... 1 NAMEN IN CILJ TER STRUKTURA DIPLOMSKEGA DELA RAZVOJ UMETNE INTELIGENCE ZGODOVINA UMETNE INTELIGENCE KAJ JE UMETNA INTELIGENCA? METODE UMETNE INTELIGENCE Nevronske mreže Genetski algoritmi Skupinska inteligenca Mehka logika Algoritem simuliranega ohlajanja PRIMERI UPORABE UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PRIMEROV OPTIMIZACIJA PARAMETROV PRI VEČPREHODNEM REZKANJU POVRŠINE Z UPORABO NETRADICIONALNIH OPTIMIZACIJSKIH ALGORITMOV Optimizacija z algoritmom umetne kolonije čebel Optimizacija z rojem delcev Optimizacija z algoritmom simuliranega ohlajanja Sklepne ugotovitve NAPOVEDOVANJE KVALITETE POVRŠINE PRI STRUŽENJU Z UPORABO UMETNE NEVRONSKE MREŽE Površinska hrapavost Izbrani parametri Sklepne ugotovitve SKLEP LITERATURA III

8 KAZALO SLIK Slika 2.1: Poenostavljena zgradba organskega nevrona... 7 Slika 2.2: Model umetnega nevrona [16]... 8 Slika 2.3: Umetna nevronska mreža, sestavljena iz treh plasti nevronov [16] Slika 2.4: Diagram Hopfieldove nevronske mreže Slika 2.5: Izrazi pri genetskih algoritmih [3] Slika 2.6: Reprodukcija pri genetskih algoritmih [3] Slika 2.7: Križanje pri genetskih algoritmih [3] Slika 2.8: Mutacija pri genetskih algoritmih [3] Slika 2.9: Prikaz delovanja genetskih algoritmov in genetskega programiranja [3] Slika 2.10: Potovanje mravelj med izvorom hrane ter gnezdom [14] Slika 2.11: Algoritem za ACS [14] Slika 2.12: Diagram algoritma ABC [10] Slika 2.13: Proces mehke logike Slika 3.1: Operacija rezkanja [17] Slika 3.2: Matematični model nevrona [1] Slika 3.3: Nevronska mreža za napovedovanje površinske hrapavosti [1] IV

9 KAZALO PREGLEDNIC Preglednica 1: Rezultati optimizacije ABC za različne rezalne strategije [17] Preglednica 2: Rezultati optimizacije PSO za različne rezalne strategije [17] Preglednica 3: Rezultati optimizacije pri uporabi različnih optimizacijskih algoritmov [17]. 38 Preglednica 4: Statistične vrednosti napak podatki za usposabljanje [1] Preglednica 5: Statistične vrednosti napak podatki o preverjanju [1] V

10 UPORABLJENE KRATICE ABC Umetna kolonija čebel ACO Optimizacija s pomočjo kolonije mravelj ACS Sistem kolonije mravelj ANN Umetna nevronska mreža AS Sistem mravlje FL Mehka logika GA Genetski algoritem MAPE Povprečna obsolutna odstotna napaka MMAS Maksimalen in minimalen sistem mravlje MSE Povprečna kvadratna napaka PSO Optimizacija z rojem delcev SA Simulirano žarjenje SI Skupinska inteligenca TSP Problem trgovskega potnika UI Umetna inteligenca MSE Povprečna kvadratna napaka VI

11 1 UVOD Z izumom parnega stroja se je začela industrijska revolucija. Množično so se začele graditi tovarne, v katerih so ročno delo zamenjali stroji. Delavci v prvih tovarnah so imeli za delo težke pogoje, saj so morali delati tudi 12 ur in več dnevno, niti ni bilo urejenega socialnega zavarovanja in bolniških dopustov. Nezadovoljstvo je naraščalo, zato so delavci za to začeli kriviti stroje. Posledica tega je bila, da so jih začeli namerno razbijati in uničevati. Prvi naj bi začel Anglež Ned Ludd, po katerem se je to protestno gibanje poimenovalo ludizem. Delavci so šele desetletje kasneje spoznali, da stroji niso njihovi pravi nasprotniki. Ravno nasprotno, lahko jim pomagajo in s tem izboljšajo oziroma povečajo proizvodnjo. Prav slednje je tisto, čemur v današnjem času posvečamo največ pozornosti. Prizadevamo si, da gradimo proizvodne sisteme, ki imajo visoko stopnjo avtomatizacije, saj želimo končne produkte, ki ustrezajo raznim predpisanim standardom, in da so hkrati konkurenčni izdelkom drugih podjetij. Predvsem želimo odpraviti čim več napak, ki jih lahko povzroči človek pri delu, in ga hkrati razbremeniti težkega fizičnega dela; še posebej ponavljajočega se dela v serijski proizvodnji. Uporaba umetne inteligence je v sodobni tehnologiji skokovito narasla, saj nam njene metode dajejo najboljše rezultate, do katerih pridemo zelo hitro. Zelo je razširjena na področjih, kjer želimo optimirati določene parametre ali procese v proizvodnji, veliko pa se uporablja tudi za napovedovanje obnašanja sistema v prihodnosti. Za predstavitev metod umetne inteligence in uporabo le-teh v inženirskih problemih smo se odločili zato, ker njihova uporaba vse pogosteje izpodriva klasične deterministične metode

12 Namen in cilj ter struktura diplomskega dela Glavni cilj in namen je raziskati in predstaviti uporabo umetne inteligence pri obdelovalnih postopkih. Želimo prikazati, da se uporaba teh metod splača, saj nam omogočajo reševanje zelo zahtevnih problemov, pri katerih klasični deterministični pristopi odpovejo. najprej govori o razvoju umetne inteligence. V nadaljevanju sledi splošna opredelitev umetne inteligence in njenih metod. Vsaka metoda je opisana na kratko oziroma splošno, nato sledi predstavitev nekaterih primerov uporabe metod umetne inteligence pri reševanju dejanskih inženirskih problemov. Prvi primer govori o optimizaciji parametrov pri večprehodnem rezkanju površine z uporabo netradicionalnih optimizacijskih algoritmov, pri katerem opisujemo optimizacijo rezkanja in primerjamo tri metode umetne inteligence. V drugem primeru predstavimo napovedovanje površine pri struženju z uporabo nevronskih mrež, pri katerem na kratko razložimo definicijo površinske hrapavosti in kako se lotiti napovedovanja kvalitete površine

13 2 RAZVOJ UMETNE INTELIGENCE 2.1 Zgodovina umetne inteligence Skozi celotno zgodovino človeštva so ljudje uporabljali tehnologijo, da bi izpopolnili svoje sposobnosti. Dokazano je, da so se prve aktivnosti v tehnologiji dogajale že v antični Grčiji, Egiptu in na Kitajskem. Vsaka nova tehnologija je sprožila razvoj pametnih agentov in modelov inteligence. Urni mehanizmi, hidravlika, telefonski sistemi, hologrami, analogni računalniki in digitalni računalniki so bili vedno predstavljeni kot tehnološka metafora za inteligenco in kot mehanizem za oblikovanje uma [15]. Pred približno 400 leti so ljudje pisali o naravi misli in razloga [15]. Hobbes ( ), ki ga je Haugeland opisal kot starega očeta umetne inteligence (UI), je poudaril, da je sklepanje simbolno, prav tako kot govorjenje na glas ali dokopati se do odgovora s svinčnikom in papirjem. Idejo simboličnega sklepanja so nadalje razvili Descartes ( ), Pascal ( ), Spinoza ( ), Leibniz ( ) in drugi pionirji filozofije mišljenja [15]. Ideja o simboličnih operacijah je postala trdna z razvojem računalnikov [15]. Babbage ( ) je zasnoval prvi vsestransko uporaben računalnik (analitični stroj), ki ni bil realiziran vse do leta V začetku 20. stoletja je bilo veliko raziskanega o razumevanju računalniškega izračunavanja. Bilo je predlaganih več modelov izračunavanja vključno s Turingovim strojem, ki ga je izdelal Alan Turing ( ). To je bil teoretični stroj, ki je zapisoval simbole na neskončni trak. V tem obdobju se je pojavil še matematični formalizem za ponovno pisanje formul lambda račun, ki ga je predstavil Church ( ). Razvidno je, da so ti zelo različni formalizmi ekvivalent s tem, da je vsaka funkcija izračunljiva druga z drugo. To je vodilo v Church-Turingovo tezo, ki pravi, da se vsaka učinkovito izračunljiva funkcija lahko izvede na Turingov stroj (in tako tudi lambda račun ali katerikoli drugi enakovreden formalizem) [15]. V tej tezi učinkovito preračunljivo pomeni slediti dobro opredeljeni operaciji [15]. Računalniki so bili v Turingovem obdobju ljudje, ki so sledili dobro opredeljenim korakom. Računalniki, kot jih poznamo danes, niso obstajali. Ni dokazov, da lahko ljudje izračunajo funkcije, ki niso računljive po Turingu. Dejanja agentov umetne inteligence so odvisna od njihovih sposobnosti, zgodovine, ciljev in želja. To zagotavlja argument, da je izračun več kot - 3 -

14 le metafora za inteligenco; argumentiranje je računanje, ki se lahko izvede s pomočjo računalnika [15]. Ko so zgradili pravi računalnik, so se pojavile prve aplikacije oziroma programi umetne inteligence. Na primer Samuel je leta 1952 zgradil program Dama, ki se je učil in igral damo. Leta 1956 sta Newell Allen in Herbert Simon zgradila program Logični teoretik, ki je odkrival dokaze v predikatni logiki [15]. Poleg simboličnega sklepanja na višji ravni je bilo tudi veliko dela na učenju spodnje ravni, in sicer kako delujejo nevroni. McCulloch in Pitts sta leta 1943 pokazala, kako je enostavni formalni nevron lahko podlaga za popolni Turingov stroj. Devet let kasneje je Minsky opisal prvo učenje nevronskih mrež. Eno od prvih izjemnih del je Rosenbalttov Perceptron iz leta 1958 [15]. Zgodnji programi so bili predvsem osredotočeni na učenje in iskanje to so bili temelji na računalniškem področju. Postalo je že jasno, da je eden glavnih problemov znanje, ki je potrebno za rešitev problema. Pred učenjem mora agent imeti ustrezni ciljni jezik za naučeno znanje [16]. McCarthy je leta 1958 razvil prvi programski jezik LISP [3]. Med leti 1960 in 1970 je bilo mnogo uspehov pri gradnji razumevanja sistemov naravnega jezika v omejeni domeni. Na primer program STUDENT od Daniela Bobrowa iz leta 1972 je lahko rešil srednješolski matematični problem, izražen v naravnem jeziku. V istem letu je Winogradov sistem SHRUDLU z uporabo omejenega naravnega jezika lahko razpravljal in opravljal naloge v simuliranemu svetu iz kock. Program CHAT-80, ki sta ga razvila Warren in Pereira v letu 1982, je lahko odgovarjal na geografska vprašanja, postavljena v naravnem jeziku [15]. Med leti 1970 in 1980 je veliko ljudi delalo na ekspertnih sistemih, kjer je bil cilj, da se zajame znanje strokovnjakov v nekaterih področjih, tako da bi računalnik opravljal zahtevne naloge. Projekt DENDRAL razvijalcev Buchanana in Feigenbauma je bil v razvoju od leta 1965 do 1983 v organski kemiji, kateri je predlagal verjetne strukture novih organskih spojin. Buchanan in Shortliffe sta leta 1984 razvila MYCIN ekspertni sistem, ki je uporabljal umetno inteligenco za prepoznavanje bakterij, ki so povzročale raznorazne infekcije. V tem desetletju je postala umetna inteligenca zelo razširjena tudi v jeziku Prolog, ki ga je zasnoval Colmerauer leta 1972 [15]

15 V 90. letih 20. stoletja je bilo veliko napredka v praktični umetni inteligenci. Ves ta napredek je zelo hitro rastel zaradi boljše strojne opreme, ki je bila mnogokrat hitrejša kot v preteklih časih. Umetna inteligenca je v 21. stoletju eksponentno napredovala in se uporablja v vseh mogočih aplikacijah, ki jih uporabljamo dnevno. Zelo velik napredek je na področju robotike. Medtem ko lahko sodobni roboti ponavljajo gibe ljudi, je naslednji korak učenje robotov, ki lahko mislijo s svojo glavo in se primerno odzovejo na spreminjajoče se razmere. Področje umetne inteligence obljublja, da bo dalo strojem sposobnost analitičnega razmišljanja z uporabo konceptov in napredkov v računalništvu, robotiki in matematiki. Čeprav še ne vemo celotni potencial te veje znanosti, se le-temu približujemo vsak dan

16 2.2 Kaj je umetna inteligenca? Umetna inteligenca oziroma okrajšano UI (angl. Artificial Intelligence AI) je področje, ki preučuje sintezo in analizo računalniških agentov, ki delujejo pametno [15]. Inteligentni agent je sistem, ki zaznava svoje okolje in sprejema dejanja, ki povečujejo svoje možnosti za uspeh. Agent umetne inteligence deluje inteligentno, ko: počne tisto, kar je primerno za njegove razmere in cilje, je prilagodljiv spreminjajočim se okoljem in ciljem, se uči iz izkušenj, naredi pravo izbiro glede na njegovo dojemanje in računske omejitve. Agent običajno ne more upoštevati neposrednega stanja v svetu. Ima le končni spomin in nima neomejenega časa delovanja. Računski agent je agent, katerega odločitve o njegovi dejavnosti je mogoče razložiti z vidika računanja [6]. Odločitev se lahko razdeli na primitivno delovanje, ki se lahko izvaja v fizični napravi. Ta izračun je lahko v več oblikah. Pri ljudeh se ta izračun izvede v ''wetware''; pri računalnikih pa se izvaja v ''hardware''. ''Wetware'' je izraz, izpeljan iz računalniškega jezika, pri kateremu imamo programsko opremo (software) in strojno opremo (hardware). ''Wetware'' se uporablja za opis elementov, ki so enakovredni strojni in programski opremi in se nahajajo v našem centralnem živčnem sistemu. Obstajajo tudi agenti, ki niso samo računski. Osrednji znanstveni cilj UI je razumeti načela, ki omogočajo inteligentno vedenje v naravnih in umetnih sistemih. To naredimo tako, da: analiziramo naravne in umetne agente, oblikujemo in testiramo hipoteze o tem, kaj je potrebno za gradnjo inteligentnih agentov, projektiramo, gradimo in eksperimentiramo z računalniškimi sistemi, ki opravljajo naloge. Inženirski cilj UI je načrtovanje in sinteza koristnosti inteligentnih artefaktov (umetnih izdelkov). Dejansko želimo graditi agente, ki delujejo pametno. Takšni agenti so uporabni v mnogih aplikacijah [15]

17 2.3 Metode umetne inteligence Nevronske mreže Leta 1982 se je pojavil preporod nevronskih mrež in tako so se pričele uporabljati bolj pogosto. John Hopfield je s svojim delom sprožil ponovno odkritje in množično uporabo nevronskih mrež [9]. Umetna nevronska mreža (angl. Artificial Neural Network ANN) ali na kratko nevronska mreža je naprava, ki deluje po principu delovanja živalskih oziroma človeških možganov [22]. Slednji vsebujejo približno nevronov. Poenostavljeno zgradbo organskega nevrona lahko vidimo na sliki 2.1. Vsak nevron ima glavno celično telo oziroma somo, na kateri je mnogo vstopajočih vlaken dendritov in samo eno izstopajoče vlakno, ki se imenuje akson. Le-ta ima na koncu več vlaken, s katerimi se lahko poveže z drugimi nevroni. Sinapsa je mesto, kjer se stikata akson prejšnjega in dendrit trenutnega nevrona [16]. Organski nevroni proizvajajo električne impulze, ki potujejo od aksona do sinaps. Ta električna informacija vzbuja ali zavira nevrone. Sinapse so zelo pomemben gradnik, saj je od njih odvisno delovanje nevrona. Slika 2.1: Poenostavljena zgradba organskega nevrona Vir: 3 ( ) - 7 -

18 Umetne nevronske mreže nam služijo kot orodje za razpoznavanje nalog in razvrščanje preprostih vzorcev. Njihova uporaba ni omejena samo na dve področji, ampak se uporablja tudi pri identifikaciji, filtriranju, krmiljenju in napovedovanju. Sestavljene so iz množice umetnih nevronov, ki jim z drugo besedo lahko rečemo tudi osnovni gradniki. Po zgradbi so nevroni zelo enostavni, zato je njihova funkcija osnovna. Enostavne nevronske mreže imajo navadno le en nivo oziroma sloj, tiste bolj komplicirane pa tudi več. Povezava med umetnimi nevroni je električni dražljaj oziroma signal. Na izhodu umetnega nevrona dobimo signal le, če je vsota vhodnih signalov dovolj velika. Nevronske povezave imajo različno strukturo in jakost [22]. Umetni nevron je osnovni gradnik umetnih nevronskih mrež in ga lahko vidimo na sliki 2.2. Vhodna vlakna oziroma dendrite označimo z x i, izhodne aksone pa z izhodom y. Prenosno učinkovitost sinaps modeliramo z realnim številom w i, s katerim pomnožimo vhod x i, preden le-ta vstopi v nevronsko celico oziroma telo (Božidar, 2007, str. 14). Število w i tudi drugače imenujemo utež vhoda x i. Slika 2.2: Model umetnega nevrona [16] Vhod x i predstavlja prisotnost ali odsotnost ter frekvenco električnih impulzov v vlaknu organskega nevrona. Če želimo beležiti samo prisotnost in odsotnost električnih impulzov, potem na vhodu dovoljujemo samo vrednosti 1 (prisotnost) in 0 (odsotnost). V tem primeru gre za binarni umetni nevron, za poljubno vrednost med 0 in 1 pa govorimo o zveznem umetnem nevronu

19 Skupen obtežen vhod lahko opišemo z enačbo:, (1) kjer je oznaka s obteženi vhod. Od vhoda s je tudi odvisno obnašanje nevrona oziroma njegov izhod y. V binarnem nevronu bo imel izhod y vrednost 1, če bo vrednost obteženega vhoda s presegla izbrani prag T. Če pa bo obteženi vhod manjši, bo imel binarni nevron na izhodu 0, kar pomeni, da bo ta nevron»tiho«[16]. Ta model nevrona imenujemo McCulloch-Pittsov model in je iz leta 1943 [7]. V zveznem umetnem nevronu je izhod y monotono naraščajoča funkcija obteženega vhoda s, kar zapišemo kot: ( ). (2) Funkcija f je prenosna oziroma aktivacijska funkcija nevrona. Najbolj znane prenosne funkcije so pragovna, linearna, odsekovna linearna in sigmoidna funkcija. Poznamo tudi stohastični model nevrona, ki mu dovolimo, da se nevron nahaja v samo dveh različnih stanjih, in sicer +1 in 1. Pri tem določimo verjetnost, da se nahaja v enem od obeh stanj kot nekakšno verjetnostno funkcijo nad obteženim vhodom s. Dobro poznan je tudi koničasti model nevrona, v katerem predpostavljamo, da bo nevron sprožil val električnih impulzov na izhodno vlakno takoj, ko bo vsota impulzov presegla določen prag. Prag, ki proži biološki nevron, je odvisen od časa, ki je pretekel od zadnjega proženja tega nevrona. Kot smo že povedali, je nevronska mreža neka množica medsebojno povezanih nevronov. Bistveni pomen v nevronski mreži je razvrstitev oziroma organiziranost nevronov, kar lahko z drugo besedo imenujemo topologija nevronske mreže. Nevroni so organizirani v plasteh. V posamezni plasti imamo lahko poljubno mnogo nevronov, ki pa med seboj niso povezani (Božidar, 2007, str. 16). Izhodi nevronov v neki plasti so vhodi nevronov v drugi plasti. Prvo plast nevronske mreže imenujemo vhodna plast in zadnjo plast izhodna plast. Vmesne plasti označimo kot skrite plasti nevronske mreže. Primer takšne mreže lahko vidimo na sliki 2.3. Iz nje je razvidno, da je nevronska mreža sestavljena iz vhodne plasti, ki jo sestavljajo štirje nevroni, skrite plasti iz treh nevronov in izhodne plasti, ki ima samo en nevron

20 Slika 2.3: Umetna nevronska mreža, sestavljena iz treh plasti nevronov [16] Nevronske mreže smo že razdelili na binarne in zvezne. Poznamo pa še dinamične in statične nevronske mreže [16]. Dinamične nevronske mreže so okarakterizirane s povratno informacijo, kar pomeni, da je trenutni izhod mreže odvisen od njenih prejšnjih izhodov (Božidar, 2007, str. 17). Pri statičnih nevronskih mrežah takšne povratne informacije ni. Poznamo več vrst nevronskih mrež, ki bodo predstavljene v nadaljevanju. Samoorganizirajoče se nevronske mreže (tudi Kohonenova nevronska mreža) Samoorganizirajoče se nevronske mreže (angl. Self-organizing Neural Networks) so po zgradbi in delovanju sorodne realnim biološkim nevronskim mrežam. To vrsto nevronskih mrež je leta 1982 prvi vpeljal Kohonen, zato se lahko imenuje tudi Kohonenova nevronska mreža ali ''samoorganizirajoč se zemljevid značilk'' (angl. Self-organizing Feature Map) [16]. V realnih aplikacijah takšne mreže raje nadomestimo z ekvivalentnim algoritmom, ki ga imenujemo tudi ekvivalentni algoritem samoorganizirajočih se nevronskih mrež. Samoorganizirajoča se nevronska mreža je sestavljena iz K umetnih nevronov, ki so razporejeni v eno-, dvo- ali večdimenzionalno rešetko (Božidar, 2007, str. 132)

21 Hopfieldova nevronska mreža (asociativni pomnilnik) Hopfieldova nevronska mreža je mreža z asociativnim spominom [18]. Uporabljamo jo za prepoznavanje vzorcev. Ima samo eno plast, v kateri je vsak nevron povezan z drugim. Vsi nevroni se obnašajo kot vhodi in izhodi. Slika 2.4: Diagram Hopfieldove nevronske mreže Vir: ( ) Na sliki 2.4 vidimo, da je v Hopfieldovi nevronski mreži število povratnih zank enako številu nevronov. Lastnosti Hopfieldove nevronske mreže so naslednje: ponavljajoča se mreža, pri kateri so vsa vozlišča povezana z drugimi vozlišči, vozlišča imajo binarni izhod { 1 ali 1}, uteži med vozlišči so simetrične, ni dovoljena nobena povezava med vozliščem, vozlišča so posodobljena asinhrono, mreža nima skritega vozlišča oziroma skrite plasti [9]

22 2.3.2 Genetski algoritmi Genetski algoritmi (angl. Genetic Algorithms GA) so del evolucijskega računanja, ki je hitro rastoče področje UI. Prisotni so že od zgodnjih šestdesetih let. Uporabljajo naravna pravila: evolucija prek naravnega izbora najboljših posameznikov, ki v tem primeru predstavljajo rešitve matematičnih problemov. GA so do sedaj najboljši in najbolj robustni evolucijski algoritmi. Njihov avtor je John Holland, ki jih je predstavil v svoji knjigi [8]. GA je hevrističen, kar pomeni, da poišče približek rešitve, kar se tudi ujema z večino problemov v realnem življenju. Približek je pogosto zadovoljiva rešitev. Prav tako ga je lažje poiskati kot pa neko natančno vrednost. Zaradi prevelike kompleksnosti takšnih problemov pri večini enačba ne obstaja, če pa že, traja njen izračun predolgo. Med genetskimi in drugimi algoritmi je več razlik, med katerimi je najpomembnejša, da GA deluje na množici možnih rešitev, medtem ko drugi hevristični algoritmi v svojih iteracijah uporabljajo eno samo rešitev. Druga pomembna razlika je, da so GA verjetnostni (stohastični) in ne deterministični. Vsak posameznik v populaciji GA predstavlja možno rešitev problema. Predlagana rešitev je zakodirana v ''genih'' posameznika. Na primer en posameznik ima gene: ''01101'', drugi pa: ''10010''. Dvojiško kodiranje spremenljivk v dvojiške nize konstantne dolžine je najbolj razširjeno. Dolžina organizmov se določi glede na velikost intervala, na katerem iščemo rešitev, in na želeno ločljivost spremenljivk. Dvojiško prestavitev organizma imenujemo genotip, dejansko vrednost pa fenotip [3]. Slika 2.5 prikazuje populacijo štirih organizmov, vsak posameznik pa je sestavljen iz petih genov. Slika 2.5: Izrazi pri genetskih algoritmih [3]

23 Osnovne genetske operacije Osnovne genetske operacije konvencionalnih GA so: reprodukcija, križanje, mutacija. Reprodukcija Pri operaciji reprodukcije (na sliki 2.6) daje večjo verjetnost izbora boljšim organizmom z višjo vrednostjo fenotipa, ki jih nespremenjene prenesemo v naslednjo generacijo [3]. Slika 2.6: Reprodukcija pri genetskih algoritmih [3] Križanje Slika 2.7 nam prikazuje operacijo križanja, pri kateri križanje omogoči izmenjavo genov med posameznimi organizmi. Iz dveh starševskih organizmov nastaneta dva potomca, ki imata gene od obeh staršev. Točka križanja je naključna in ni točno določena, prav tako obstaja več različnih načinov izvedbe križanja. Slika 2.7: Križanje pri genetskih algoritmih [3]

24 Mutacija Na sliki 2.8 lahko vidimo operacijo mutacije, ki čisto po naključju vnaša nov genetski material v organizme na nivoju genotipa. Slika 2.8: Mutacija pri genetskih algoritmih [3] Postopek delovanja genetskega algoritma vidimo na sliki 2.9. V genetskih algoritmih nastajajo vedno boljši organizmi, ki so sestavljeni iz najboljših članov prejšnjih generacij. Če v enem zagonu sistema ne dobimo zadovoljive rešitve, je treba razvoju podvreči več neodvisnih civilizacij (Brezočnik, 2000, str. 33). Obrazložitev neznank na sliki 2.9: civ... števec civilizacij, N... največje število civilizacij, gen... števec generacij, i... števec organizmov, M... število članov v populaciji, p r... vsota verjetnosti reprodukcije, p c... vsota verjetnosti križanja, p m... vsota verjetnosti mutacije

25 Slika 2.9: Prikaz delovanja genetskih algoritmov in genetskega programiranja [3]

26 Genetsko programiranje Genetsko programiranje je pisanje programov po vzoru naravnega izbora. Računalnik uspe sam napisati program za določen problem, ki ga rešujemo. Na začetku imamo nekaj začetnih, naključno napisanih programov, ki jih imenujemo začetna populacija. Sledijo naslednje operacije, kot so reprodukcija, križanje in mutacija. Računalniški programi so sestavljeni iz genov, ki imajo zelo različen pomen, zaradi katerega so organizmi informacijsko zelo bogati in različni [3]. Cilj genetskega programiranja je najti tisti program iz ogromne množice računalniških programov, ki najbolje reši postavljeno nalogo (Brezočnik, 2000, str. 35)

27 2.3.3 Skupinska inteligenca Skupinska inteligenca (angl. Swarm Intelligence SI) je kolektivno vedenje decentraliziranih, samoorganiziranih naravnih kot tudi umetnih sistemov. Ti sistemi so zmožni opravljati zahtevne naloge v dinamičnih okoljih brez zunanjega nadzora ali vodenja in brez centralne koordinacije. Kolektiv dosega rezultate oziroma zmogljivost, ki jih posameznik ne zmore. To področje umetne inteligence sta razvila Gerardo Beni in Jing Wang leta 1989 v okviru celičnih robotskih sistemov [23]. V nadaljevanju bomo opisali dva zelo razširjena in zanimiva področja skupinske inteligence, in sicer kolonijo mravelj in kolonijo čebel. Mravlje so naravni fenomen, saj so sposobne poiskati najkrajšo pot od gnezda do izvora hrane brez vizualnih informacij. Poleg tega so se sposobne odzvati spremembam v okolju, kot so na primer razne ovire na njihovi poti, ki nastanejo naključno, in tako najdejo novo najkrajšo pot. Na sliki 2.10a je prikazana pot, na kateri potujejo mravlje od gnezda do hrane in nazaj. Kot komunikacijsko sredstvo uporabljajo feromon. Poti, ki so najbolj obiskane, vsebujejo večjo količino feromona, zato vse mravlje dajejo prednost le-tem. V trenutku, ko se pojavi ovira (slika 2.10b), pričakujemo, da gre polovica mravelj na desno in polovica na levo stran ovire. Prav tako se zgodi na drugi strani ovire. Tista pot, ki je krajša, bo dobila več feromona, saj so za njeno prečkanje mravlje porabile manj časa (slika 2.10c). Na sliki 2.10d vidimo najkrajšo in najboljšo pot, ki je zelo utrjena s feromonom, saj jo uporabljajo vse mravlje [14]. Slika 2.10: Potovanje mravelj med izvorom hrane ter gnezdom [14]

28 Optimizacija s pomočjo kolonije mravelj Optimizacija s pomočjo kolonije mravelj (angl. Ant Colony Optimization ACO) je del večjega področja, ki se ukvarja z raziskovanjem algoritma mravelj oziroma njihove inteligence [5]. Velikega pomena so kolektivne (skupinske) aktivnosti, kot so dobava hrane, skrb za zarod, izgradnja novih poti in gnezd, čiščenje in tako dalje. Vsa ta opravila predstavljajo mehanizme samoorganizacije, komunikacije in razdelitev opravil. Optimizacija ACO je povzeta po modelu obnašanja pri nabiranju hrane. Optimizacija s pomočjo kolonije mravelj se večinoma uporablja za reševanje težkih kombinacijskih optimizacijskih procesov, kot so na primer kvadratni dodelitveni problemi, problemi razvrščanja, problem trgovskega potnika, dinamični usmerjevalni problemi v telekomunikacijskih omrežjih in tako dalje [14]. Algoritme kolonije mravelj je teoretično težko analizirati, to pa zato, ker so osnovani na zaporedjih naključnega odločanja, ki ni neodvisno in pri katerem se verjetnosti porazdelitve spreminjajo od iteracije do iteracije (Pešl, Žumer, Brest, 2006, str. 94). Vrste algoritmov kolonije mravelj V nadaljevanju bomo opisali sistem mravlje, sistem kolonije mravelj ter maksimalen in minimalen sistem mravlje. - Sistem mravlje Sistem mravlje (angl. Ant System AS) je bil uporabljen na problemu trgovskega potnika (angl. Travelling Salesman Problem TSP) in je prednik vseh raziskav na področju algoritma mravelj. Ta sistem uporablja grafično predstavitev in njegov graf je zelo podoben grafu trgovskega potnika, ki je dopolnjen s stroškom δ(r, s) in zaželenostjo τ(r, s), imenovano feromon. Feromon mravlje ves čas posodabljajo. Če je AS uporabljen na simetričnih vrstah TSP, je τ(r, s) = τ(s, r), na asimetričnih vrstah pa je možno, da τ(r, s) τ(s, r) (Pešl, Žumer, Brest, 2006, str. 94). Sistem mravlje deluje tako, da si vsaka posamezna mravlja zgenerira celotno pot z zbiranjem mest po pravilu prehoda stanj (angl. state transition rule) [14]. Mravlje se raje premikajo po poteh, ki so najkrajše (nizek strošek) in nasičene z veliko količino feromona. Ko vse mravlje opravijo svojo pot, se izvede pravilo globalne posodobitve feromona (angl

29 Global Phermone Updating Rule). Tako del feromona izhlapi in mravlje ponovno nanašajo feromon na najkrajše poti in jih tako bogatijo z njim. Ta proces se stalno pojavlja. Pravilo prehoda stanj se imenuje naključno proporcijsko pravilo (angl. Random- Propotional Rule). Pravilo prehoda stanj podaja verjetnost, s katero mravlja k v mestu r izbere mesto s, v katero se premakne: [ ( )] [ ( )] ( ) { [ ( )] [ ( )] ( ) ( ) (3) kjer je τ feromon, η = 1/δ je inverzna vrednost stroška, J k (r) je množica mest, ki ostanejo, da jih obišče mravlja k in so povezane z r (da je rešitev mogoča), in kjer je β parameter, ki določi relativno pomembnost feromona proti strošku (β > 0) (Pešl, Žumer, Brest, 2006, str. 94). Če v tej enačbi pomnožimo količino feromona na povezavi (r, s), damo prednost izbiri povezav, ki so krajše in bolj nasičene s feromonom. Pravilo globalne posodobitve pravi, da ko vse mravlje zgradijo svoje poti, je feromon posodobljen na vseh povezavah: ( ) ( ) ( ) ( ) (4) kjer je: ( ) { ( ) (5) 0 < α < 1 je parameter razpada feromona, L k je dolžina poti, ki jo naredi mravlja, k in m sta števili mravelj. Posodabljanje feromona je dodeljevanje večje količine feromona krajšim potem. Feromon, ki je postavljen na poteh mravelj, predstavlja porazdeljeni dolgoročni spomin. Ta spomin ni lokalno shranjen znotraj posamezne mravlje, ampak je globalno porazdeljen po poteh, kar predstavlja indirekten način komunikacije [14]

30 Sistem mravlje je uporaben za iskanje dobrih rešitev za majhne TSP (do 30 mest); za reševanje večjih problemov je neustrezen. Zaradi tega so bile predlagane nekatere izboljšave in spremembe algoritma, ki so pripeljale do definicije sistema kolonije mravelj (angl. Ant Colony System ACS) [15]. - Sistem kolonije mravelj Sistem kolonije mravelj ASC se od AS razlikuje v treh pogledih [14]: pravilo prehajanja stanj zagotovi direkten način za uravnovešanje med raziskovanjem novih povezav in izkoriščanjem danih in akumuliranih znanj o problemu, pravilo globalne posodobitve je dano samo povezavam, ki pripadajo samo najboljši poti mravlje, medtem ko mravlje gradijo rešitev, je uporabljeno pravilo lokalne posodobitve feromona (Pešl, Žumer, Brest, 2006, str. 95). Na sliki 2.11 je prikazan algoritem ACS, ki ga lahko zapišemo kot m mravelj je postavljenih na n mest, izbranih glede na poljubno inicializacijsko pravilo. Vsaka mravlja zgradi eno pot (mogoča rešitev TSP) s ponavljajočim se dodajanjem pravila prehoda stanj. Slika 2.11: Algoritem za ACS [14] Med konstrukcijo svoje poti mravlja spreminja količino feromona na obiskanih poteh z dodajanjem lokalnega posodobitvenega pravila. Ko mravlje zaključijo svoje poti, je količina feromona posodobljena z dodajanjem globalnega posodobitvenega pravila. Tako kot v AS tudi tukaj za gradnjo svojih poti uporabljajo hevristično informacijo (izbiranje krajših povezav) in informacijo o količini feromona

31 Pravilo prehoda stanj v ACS je: mravlja, postavljena v mesto r, izbere mesto s, kamor se bo premaknila s pravilom: { ( ) {[ ( )] [ ( )] } ( ) ( ) (6) kjer je q naključno število, uniformno razdeljeno v (0...1), q 0 je parameter (0 q 0 1) in S je naključna spremenljivka, izbrana glede na verjetnost porazdelitve v (1). Pravilo prehajanja stanj, ki je sestavljeno iz enačbe (3) in (1), se imenuje psevdonaključno proporcionalno pravilo (angl. Pseudo Random Proportional Rule). To je pravilo prehajanja stanj in je prav tako kot prejšnje naključno proporcijsko pravilo, naklonjeno k mestom, ki imajo najkrajše povezave z veliko količino feromona. Parameter q 0 določa relativno pomembnost izkoriščanja glede na raziskovanje: vsakič, ko mora mravlja v mestu r izbrati mesto s za premik, naključno izbere število 0 q 1. Če je q q 0, potem je izbrana povezava glede na (3), sicer je izbrana povezava glede na (1) (Pešl, Žumer, Brest, 2006, str. 95). Pri globalnem posodobitvenem pravilu v ACS lahko samo globalno najboljša mravlja (mravlja, ki je zgradila najkrajšo pot od začetka procesa) položi feromon. Ta izbira skupaj z uporabo psevdonaključnega proporcionalnega pravila naredi iskanje bolj direktno: mravlje iščejo v soseščini trenutno najboljše najdene poti (Pešl, Žumer, Brest, 2006, str. 95). Stopnja feromona se posodablja z uporabo globalnega posodobitvenega pravila: ( ) ( ) ( ) ( ) (7) kjer je: ( ) { ( ) ( ) (8) 0 < α < 1 je parameter izhlapevanja feromona in L gb je dolžina globalno najboljše poti. Glavni namen globalnega posodabljanja je zagotavljanje večje količine feromona na kratkih poteh. Enačba (8) nam pravi, da dobijo samo tiste povezave ojačitev, katere globalno pripadajo najboljši poti. Poznamo tudi drugi tip globalno posodobitvenega pravila, ki se imenuje ponovitveno najboljši, in uporablja L ib (dolžina najboljše poti trenutne iteracije) v enačbi (8)

32 Pri ponovitveno najboljšem pravilu dobijo ojačitev najboljše povezave. Le-te tako pripadajo najboljši poti te trenutne iteracije. Preizkusi in izkušnje so pokazali minimalne razlike med tema dvema shemama. Manjšo prednost ima uporaba globalno najboljšega pravila. Med gradnjo rešitve za TSP mravlje obiskujejo povezave in spreminjajo njihovo stopnjo feromona z uporabo lokalnega posodobitvenega pravila: ( ) ( ) ( ) (9) kjer je 0 < ρ < 1 parameter (Pešl, Žumer, Brest, 2006, str. 95). Učinek lokalnega posodabljanja je, da se zaželenost poti oziroma povezav spreminja dinamično: vsakič, ko mravlja uporabi povezavo, le-ta postane malo manj zaželena (ker izgubi malo feromona) [15]. V tej smeri bodo mravlje bolj izkoristile informacijo o feromonu: brez lokalnega posodabljanja bi vse mravlje iskale v ozki soseščini najboljše prejšnje poti (Pešl, Žumer, Brest, 2006, str. 96). - Maksimalen in minimalen sistem mravlje Direktna izboljšava AS je maksimalen in minimalen sistem mravlje (angl. Max-Min Ant System MMAS) [14]. Verjetnosti izbire so v MMAS izračunane tako kot v AS, zato lahko uporabimo isto enačbo (3). Glavne spremembe v MMAS glede na AS so: za uporabo najboljše najdene rešitve lahko po vsaki iteraciji samo ena mravlja doda feromon (kot v ACS), da se izognemo zastajanju iskanja, je dovoljeni obseg sledi feromona omejen z intervalom [τ min, τ max ], kar pomeni, da za τ ij velja τ min τ ij τ max, sledi feromona so inicializirane na zgornjo mejo, kar povzroči večje raziskovanje na začetku algoritma (Pešl, Žumer, Brest, 2006, str. 96). Ko mravlje zgradijo novo rešitev, se sledi feromona posodobijo glede na: ( ) ( ) ( ) (10) kjer. Mravlja, ki lahko doda feromon, je iteracijsko najboljša T ib ali globalno najboljša T gb. Če so nekatere povezave pogosteje uporabljene v najboljših rešitvah, bodo zato dobile večjo količino feromona

33 V MMAS so sledi feromona inicializirane na maksimalno vrednost feromona, kar povzroči povečano raziskovanje poti na začetku algoritma, ker je relativna razlika med količino feromona manj razločna [14]. Algoritem umetne kolonije čebel Ta algoritem prav tako črpa navdih iz narave in je ena veja skupinske inteligence [10]. Osredotočen je na vedenje žuželk v roju in na njihovo iskanje rešitev določenih problemov. Interakcija med žuželkami prispeva k kolektivni inteligenci kolonije socialnih žuželk. Ti komunikacijski postopki so bili prilagojeni za optimizacijo znanstvenih problemov [10]. Algoritem umetne kolonije čebel (angl. Artificial Bee Colony ABC) je bil razvit po modelu inteligentnega obnašanja domače čebele v roju [10]. Le-ta sestoji iz pašnih čebel, ki nabirajo izvor hrane. Vrednota hrane je odvisna od različnih parametrov, kot so na primer razdalja med gnezdom in izvorom hrane, bogatost hrane z energijo, količina hrane in kako lahko se bi dalo to hrano nabirati. Na kratko povedano, iščejo najbolj profiten izvor hrane [10]. Pašne čebele so lahko nezaposlene, zaposlene in izkušene [10]. Nezaposlene čebele so tiste, ki nimajo nikakršnih informacij o izvoru hrane in jim pravimo izvidne čebele ali novinke. Le-te spontano iščejo izvor hrane. Takšnih čebel je po navadi okoli 10 odstotkov. Če se novinka nezaposlene pašne čebele pridruži nihajnemu plesu druge čebele, bo ta čebela začela iskati s pomočjo podatkov od tega nihajnega plesa. Zaposlene pašne čebele so novinke, ki so si zapomnile lokacijo izvora hrane. Ko zaposlena pašna čebela nabere nektar, se vrne v panj in ga shrani v celico. Če se količina nektarja manjša oziroma je izčrpana, ta čebela postane nezaposlena. Če je količina v izvoru hrane še vedno zadostna, lahko čebela nadaljuje z nabiranjem. Ta čebela lahko potem nabira sama ali pa obvesti druge čebele s pomočjo nihajnega plesa. Izkušene pašne čebele si zapomnijo lokacije in bogatost izvora hrane ter so nekakšni kontrolorji, ki preverjajo že najdene stare lokacije izvora hrane. Če se izkaže, da je stari, že raziskan izvor hrane ponovno bogat, bodo obvestile ostale čebele z nihajnim plesom. Čebele opazujejo nihajne plese in se tako odločujejo, kateri izvor je najboljši oziroma katerega bodo nabirale [10]. Zgradba algoritma kolonije čebel je razvidna na sliki

34 Slika 2.12: Diagram algoritma ABC [10]

35 Optimizacija z rojem delcev Optimizacija z rojem delcev (angl. Particle Swarm Optimization PSO) je evolucijska računska tehnika, ki sta jo razvila Kennedy in Eberhart [11]. Posamezniki v roju posnemajo uspešnost sosednjih posameznikov in tako sledijo preprostemu cilju. Kot smo že povedali v poglavju skupinska inteligenca, kolektiv dosega rezultate, katere posameznik ne more. Prvotni namen tega modela je bila simulacija ptic v jati, v kateri ima vsaka ptica naključno pozicijo v prostoru. V vsaki iteraciji posameznik poišče svojega soseda in prilagodi svojo hitrost njegovi. Tako se celotna jata ptic premika sočasno. Roj predstavlja celotno populacijo, delec pa posameznika v njem

36 2.3.4 Mehka logika Mehka logika (angl. Fuzzy Logic FL) je nadgradnja konvencionalne Boolove logike za upravljanje s konceptom delne resnice [18]. Osnovna ideja mehkih sistemov je, da so vrednosti razporejene na invervalu [0.0, 1.0], kjer 0.0 predstavlja absolutno napačnost in 1.0 predstavlja absolutno resničnost. Na kratko lahko rečemo, da mehka logika obravnava nedoločnost realnega sveta [20]. Izvajati jo je možno v strojni ali programski opremi lahko pa tudi v kombinaciji obeh. Zagotavlja preprost način za dosego točno določenega zaključka na podlagi zelo jasnih in ne dvoumnih, nenatančnih ali manjkajočih vhodih informacij. Pri reševanju in nadziranju je pristop mehke logike podoben človeškemu logičnemu razmišljanju. Razlika je v hitrosti, saj je mehka logika veliko hitrejša [21]. Mehka logika je ena izmed boljših metod za obravnavanje realnega sveta. Ne vsebuje samo ''resnično'' (true) in ''napačno'' (false), temveč loči med več vmesnimi vrednostmi, kot so: resnično (true), večinoma resnično (mostly true), polresnično (half-true), skoraj resnično (kind of true), napačno (false). Vrednosti so tako na intervalu [0.0, 1.0] vključno z decimalnimi vrednostmi (na primer 0.3, 0.6 in tako dalje). Temu rečemo na kratko tudi stopnja pravilnosti. Operatorji mehke logike S pomočjo osnovnih operatorjev lahko združujemo enostavne izjave v kompleksnejše. Osnovni trije operatorji so NOT (ne), AND (in) in OR (ali). Te operatorje lahko definiramo tudi v mehki logiki, in sicer na več načinov: NOT, AND ( ), OR ( ), pri čemer je X stopnja pravilnosti prve izjave in Y stopnja pravilnosti druge izjave [21]

37 Proces mehke logike Na sliki 2.12 je grafično prikazan proces mehke logike. Slika 2.13: Proces mehke logike Vir: uzzy%20logic.pdf ( ) Če (IF), potem (THEN) pravilo Pravilo se glasi preprosto tako: ČE je spremenljivka lastnost, POTEM je akcija [21]. Primer: ČE je temperatura zelo nizka, POTEM ugasni ventilator, ČE je temperatura nizka, POTEM zmanjšaj obrate ventilatorja, ČE je temperatura normalna, POTEM obdrži obrate ventilatorja, ČE je temperatura visoka, POTEM povečaj obrate ventilatorja [21]

38 2.3.5 Algoritem simuliranega ohlajanja Algoritem simuliranega ohlajanja (angl. Simulated Annealing SA) je inspiracija dejanskega žarjenja iz metalurgije. Žarjenje je postopek segrevanja obdelovanca do neke določene temperature, zadrževanja na tej temperaturi ter počasnega ohlajanja do sobne temperature. Ko se obdelovanec ohladi, se nova struktura in lastnosti obdržijo. V simuliranemu ohlajanju obdržimo temperaturo spremenljivo, da simuliramo ta segrevajoč proces. Temperaturo nastavimo visoko in potem dovolimo, da se počasi ohladi, ko teče algoritem [17]. Medtem ko bo ta spremenljiva temperatura visoka, bo lahko algoritem z večjo frekvenco sprejemal rešitve, ki so slabše od naših trenutnih rešitev. To daje algoritmu možnost, da skoči iz katerega koli lokalnega optimuma, ki ga je našel že na začetku izvršitve. Ko se temperatura zniža, se prav tako zniža možnost sprejemanja slabih rešitev. Tako algoritmu omogočamo, da se popolnoma osredotoči na območje iskanja prostora, v katerem želimo v bližini najti optimalno rešitev. Ta proces popolnega ohlajevanja je tisto, kar naredi algoritem simuliranega ohlajanja izredno učinkovito pri iskanju optimalne rešitve, ko se ukvarjamo z velikimi težavami, ki vsebujejo številne lokalne optimume [17]

39 3 PRIMERI UPORABE UMETNE INTELIGENCE ZA REŠEVANJE ZAHTEVNIH INŽENIRSKIH PRIMEROV 3.1 Optimizacija parametrov pri večprehodnem rezkanju površine z uporabo netradicionalnih optimizacijskih algoritmov Rezkanje je postopek odrezavanja, pri katerem orodje (rezkalo) opravlja rotacijsko glavno gibanje, podajalna gibanja pa so lahko premočrtna ali rotacijska [17]. Podajalno gibanje ponavadi opravlja obdelovanec. Na sliki 3.1 je prikazana operacija rezkanja. Ko se orodje vrti, vsak zob odreže majhen delež materiala. Relativno gibanje med rezkalom in obdelovancem je lahko v katerikoli smeri, zato se lahko površine, ki imajo katero koli orientacijo, obdelujejo s postopkom rezkanja. Operacija rezkanja se lahko opravi v enem prehodu orodja v obdelovanec ali v več prehodih. Zaradi ekonomskih razlogov je priporočeno, da orodje naredi več prehodov [17]. Prav tako je končna površina lepša, če najprej naredimo več grobih prehodov in na koncu enega finega z majhno globino orodja v obdelovanec. Slika 3.1: Operacija rezkanja [17]

40 Glavni parametri za ta optimizacijski model so: podajanje na zob (f z ), rezalna hitrost (v) in globina rezkanja (a). Pri operaciji rezkanja je zelo pomemben celoten proizvodni čas (T pr ), saj je ta čas vsota vseh časov, ki jih rabimo pri operaciji rezkanja. Optimizacija se bo vršila s pomočjo prej opisanimi optimizacijskimi metodami, in sicer ABC, PSO in SA algoritmi. Ta primer temelji po vzorcu, ki sta ga naredila Venkata in Pawar [17]. Specifikacije zahtevanih parametrov in konstante so povzete po Sonmezu [19] Optimizacija z algoritmom umetne kolonije čebel V nadaljevanju bomo opisali posamezne korake v postopku optimizacije. - Izbira parametrov Kot smo že na začetku povedali, pri umetni koloniji mravelj izvor hrane predstavlja možno rešitev problema minimizacije proizvodnega časa. Število začetnih rešitev je pet. Vrednost vsakega izvora hrane je odvisna od fizične pripravljenosti čebele oziroma od objektivnosti funkcije v enačbi. - Računanje količine nektarja za vsak izvor hrane Zaposlene čebele se odpravijo na izvor hrane. Količina nektarja se ocenjuje na podlagi njihove telesne pripravljenosti, kot je opredeljena v ocenitveni funkciji v enačbi (11), podvržena k omejitvami z enačbami (12), (13) in (14) [17]. ( ) ( ) ( ) (11) ( ) ( ) Trdnost držala orodja:, (12)

41 kjer je rezalna sila:. (13) C zp procesna konstanta, b z, e z in u z eksponenti. Dovoljena sila: ( ) ( ) (14) k b dovoljena upogibna trdnost držala orodja, d a premer držala orodja, L a dolžina med podporo in držalom orodja, k t dovoljena torzijska napetost. α = k b /(1.3k t ) Uklon držala orodja:, (15) kjer je dovoljena sila upogiba držala orodja: (16) E modul elastičnosti materiala držala orodja, e dopustna vrednost upogiba držala orodja. Za grobo operacijo je e = 0.2 mm in za fino operacijo je e = 0.05 mm. Moč: (17) P c rezalna moč, kw = P m η, P m nazivna moč motorja, η izkoristek

42 - Določanje verjetnosti z uporabo količine nektarja Če je količina nektarja f i v izvoru hrane θ i, potem se verjetnost (P i ), ki jo izbira opazovalna čebela, izraža z enačbo [17]: [ ( )] (18) S število izvorov hrane. - Računanje števila opazovalnih čebel, ki bodo poslane k izvoru hrane Na podlagi izračunanih verjetnosti iz prejšnjega koraka je število N opazovalnih čebel, ki so poslane na izvor hrane θ i, izračunan z enačbo [17]: N = P i m. (19) m skupno število opazovalnih čebel. - Računanje vrednosti telesne pripravljenosti vsake opazovalne čebele Po opazovanju nihajnega plesa zaposlenih čebel se opazovalne čebele odpravijo na lokacijo, kjer je izvor hrane θ i po verjetnosti iz enačbe (18). Pozicija izbranega izvora hrane je izračunana s spodnjo enačbo [17]. θ i (c+1) = θ i (c) ± ø i (c) (20) c število generacij, ø i (c) naključno izdelan korak za iskanje izvora hrane z več nektarja v okolici. ø i (c) je izračunan tako, da vzamemo razliko istih delov θ i (c) in θ k (c) (k je naključno izdelan indeks) pozicije hrane. Če je količina nektarja F i (c + 1) pri θ i (c + 1) višja kot pri θ i (c), potem grejo čebele v panj in razširijo informacijo z drugimi čebelami in pozicija θ i (c) izvora hrane je spremenjena na θ i (c + 1). Če ne, ostane pri θ i (c). Če pozicije θ i izvora hrane i ni mogoče izboljšati z določenim številom poskusov, potem zaposlena čebela izvor hrane θ i

43 zapusti in postane nezaposlena oziroma izvidna čebela. Ta čebela potem išče nov izvor hrane in ko ga najde, je potem nova lokacija sprejeta kot θ i [17]. - Ovrednotenje najboljše rešitve Pozicija najboljše opazovalne čebele je identificirana za vsak izvor hrane posebej. Status globalno najboljšega roja čebel se pridobi v vsaki generaciji posebej, in sicer če je trenutna generacija boljša od prejšnje, bo zamenjala mesto, če bo imela boljšo vrednost telesne pripravljenosti [17]. - Posodobitev izvidniške čebele Število najslabše zaposlenih čebel je tolikšno, kot je izvidnih čebel, in to primerjamo z izvidno rešitvijo [17]. To pomeni, da če se izkaže, da je izvidna rešitev boljša od zaposlene, se slednja nadomesti z izvidno rešitvijo. Če ne, se zaposlena rešitev prenese v naslednjo generacijo brez sprememb. V obravnavanem primeru so različne izvedljive rezalne strategije sprejete za določitev optimalnega števila prehodov in globine za vsak prehod. Optimizacija s pomočjo umetne kolonije čebel ABC je prikazana v preglednici 1. Globino odrezavanja izberemo 5 mm in jo poizkušamo izdelati na štiri različne načine z različnimi globinami grobega in finega rezkanja. Za najbolj optimalno se izkaže strategija 2, pri kateri izberemo globino grobega rezkanja 1.5 mm in tri prehode. Globina finega rezkanja je 0.5 mm. Ta postopek zagotavlja najhitrejši proizvodni čas, ki znaša 3.24 min in najboljšo kvaliteto površine, ki jo dobimo v drugem primeru pri finem rezkanju s podajanjem mm/zob. Večje, kot je podajanje na zob (pri finem rezkanju), in manjša, kot je globina, boljša je kvaliteta oziroma hrapavost končne površine