VILNIAUS GEDIMINO TECHNIKOS UNIVERSITETAS

Raimond LAPTIK

SKRUZDŽIŲ KOLONIJŲ TECHNOLOGIJOS VAIZDAMS APDOROTI

DAKTARO DISERTACIJA

TECHNOLOGIJOS MOKSLAI, ELEKTROS IR ELEKTRONIKOS INŽINERIJA (01T)

Vilnius 2009 Disertacija rengta 2005–2009 metais Vilniaus Gedimino technikos universitete.

Mokslinis vadovas prof. dr. Dalius NAVAKAUSKAS (Vilniaus Gedimino technikos universitetas, technologijos mokslai, elektros ir elektronikos inžinerija – 01T).

VGTU leidyklos TECHNIKA 1675-M mokslo literatūros knyga http://leidykla.vgtu.lt

ISBN 978-9955-28-501-4

© VGTU leidykla TECHNIKA, 2009 © Laptik, R., 2009 [email protected] VILNIUS GEDIMINAS TECHNICAL UNIVERSITY

Raimond LAPTIK

ANT COLONY TECHNOLOGIES FOR IMAGE PROCESSING

DOCTORAL DISSERTATION

TECHNOLOGICAL SCIENCES, ELECTRICAL AND ELECTRONIC ENGINEERING (01T)

Vilnius 2009 Doctoral dissertation was prepared at Vilnius Gediminas Technical University in 2005–2009.

Scientific supervisor Prof Dr Dalius NAVAKAUSKAS (Vilnius Gediminas Technical University, Technological Sciences, Electrical and Electronic Engineering – 01T). Santrauka

Disertacijoje nagrinėjamos vaizdų apdorojimo skruzdžių kolonijomis tech- nologijos ir susieti dalykai: optimizavimo skruzdžių kolonijomis algoritmai, vaizdų apdorojimo metodai ir jų įgyvendinimas lauku programuojamomis lo- ginėmis matricomis. Tikslas yra pasiūlyti ir ištirti optimizavimu skruzdžių ko- lonijomis grįstus vaizdų apdorojimo būdus ir priemones. Atliekama analitinė optimizavimo skruzdžių kolonijomis technologijų literatūros apžvalga, pagrin- džiant konkrečių vaizdų apdorojimo būdų ir skruzdžių kolonijų atmainų parin- kimą tyrimams. Remiantis optimizavimo skruzdžių kolonijomis metaeuristika, siūlomos ir tiriamos originalios vaizdų apdorojimo metodikos. Tiriamos gali- mybės įgyvendinti optimizavimą skruzdžių kolonijomis įterptinėse sistemose, grindžiamose lauku programuojamomis loginėmis matricomis. Pirmame skyriuje atliekama evoliucinių technologijų vaizdams apdoro- ti analitinė apžvalga. Nagrinėjama evoliucinių technologijų raida ir klasifika- vimas, tinkamumas vaizdams apdoroti, įgyvendinamumas bei formuluojami disertacijos uždaviniai. Antrame skyriuje nagrinėjama vaizdų pirminio apdo- rojimo problema, naudojant max-min skruzdžių sistemą. Pateikiamos max- min skruzdžių sistemos, taikant ją vaizdams apdoroti, modifikacijos, pasiū- lomi patobulinimai, skirti pagreitinti sistemos veikimą, atliekami pasiūlytų pa- tobulinimų eksperimentiniai tyrimai, formuluojamos išvados. Trečiame sky- riuje nagrinėjama vaizdų segmentavimo, naudojant skruzdžių kolonijas, prob- lema. Siūloma ir detalizuojama daugelio skruzdžių kolonijų varžymosi grįsta metodika, tinkanti vaizdams segmentuoti. Atliekami siūlomos metodikos eks- perimentiniai tyrimai, formuluojamos išvados. Ketvirtame skyriuje nagrinėja- ma skruzdžių sistemos įgyvendinimo lauku programuojamų loginių matricų įrenginyje problema. Išanalizuojamos įgyvendinimo galimybės, įgyvendina- mas pseudo atsitiktinių skaičių generatorius bei skruzdžių sistema. Atliekamas įgyvendintos skruzdžių sistemos našumo eksperimentinis tyrimas, įvertinama įvairių modulių įtaka vykdomų skaičiavimų greičiui. Eksperimentiniams tyri- mams naudojamas keliaujančio prekeivio uždavinys, sprendžiamas perrinkimo metodu ir skruzdžių sistema, pateikiamos išvados. Disertacijos pabaigoje api- bendrinami darbo rezultatai ir pateikiamos bendrosios išvados. Darbo rezultatai paskelbti 6 straipsniuose: trys Thomson ISI Web of Scien- ce referuojamoje duomenų bazėje, vienas Thomson ISI Master Journal List re- feruojamoje duomenų bazėje, vienas recenzuojamuose mokslo žurnale ir vie- nas kituose mokslo leidiniuose. Disertacijos tema perskaityta 10 pranešimų respublikinėse bei tarptautinėse konferencijose Lietuvoje ir Lenkijoje. Abstract

In this PhD thesis ant colony technologies for image processing are presen- ted. Also related to it as ant colony optimization algorithms, image processing methods and implementation in field programmable gates array are discussed. Analytical review of ant colony optimization literature to reason the selection of ant colony optimization and image processing methods for further research is performed. Proposed and analyzed original image processing methods ba- sed on ant colony optimization metaheuristic. The possibility to implement ant colony optimization in embedded systems based on field programmable gate arrays is investigated. The first chapter covers analysis of evolutionary technologies for image processing. Discussed the place of ant colony optimization in evolutionary , development of evolutionary computation and classification, sui- tability for image processing, implementability. Presented dissertation tasks. Second chapter covers image pre-processing via max-min ant system problem. Proposed max-min ant system modifications, adapting it for image processing. Suggested system processing performance enhancement modifications. Perfor- med suggested modifications experimental analysis and presented results wi- th conclusions. Third chapter covers image segmentation via ant colony op- timization problem. Proposed and described based on multiple ant colonies competition methodology, suitable for image segmentation. Performed experi- mental analysis and presented results with conclusions. Forth chapter covers ant colony optimization implementation in field programmable gate arrays problem. Analyzed implementation possibilities of ACO. Presented pseudo- random number generator and ant system implementation. Performed experi- mental analysis of implemented ant system performance and various internal MicroBlaze units influence on it. Experimental analysis of ant system perfor- med, using traveling salesman problem, which is being solved by a brute-force and ACO methods. At the end of chapter presented results and conclusions. Work results were announced in 6 scientific papers, where 3 papers are referred in Thomson ISI Web of Science, 1 paper in Thomson ISI Master Jour- nal List, 1 paper in other reviewed scientific periodical publications and 1 in other scientific publications. Also results were presented in 10 conferences in Lithuania and Poland. Žymėjimai

α, β – jautrumas feromonui ir euristinei informacijai c1,c2 – pagreičio konstantos C – rasto kelio ilgis Cbs – geriausio iki šiol rasto kelio ilgis Cib – iteracijos geriausio kelio ilgis Cbest – iteracijos geriausio arba geriausio iki šiol rasto kelio ilgis C∗ – trumpiausio kelio ilgis d (di,j) – atstumas (tarp miestų i ir j) η (ηi,j) – euristinė informacija (tarp miestų i ir j) F – tikslo funkcijos reikšmė fi (f) – tinkamumo funkcijos (visų chromosomų įvertinimų vidurkis) j – dalelės dimensija k – skruzdės indeksas L – genų eilutės ilgis (mper) m – (perkeliamų) skruzdžių skaičius n – miestų skaičius nvid – vidutinis skruzdės pasirinkimų skaičius kiekviename mieste ( k) – nelankytų miestų aibė (pasiekiama skruzdei k iš miesto i) N Ni N sek – sėkmingų eksperimentų skaičius νi – esamas dalelės greitis νi,j – i-tosios dalelės j-toji greičio dimensija

7 8 ŽYMĖJIMAI

Pc – chromosomų sukryžminimo tikimybė Pm – geno mutacijos tikimybė p (pi,j) – tikimybė (iš miesto i pasirinkti miestą j) pmax (pmin) – viršutinė (apatinė) tikimybės riba ppas – pasirinkimas kiekviename mieste ρ – feromono garavimo koeficientas r – skruzdės rangas rn – atsitiktiniai skaičiai [0; 1] σvid – vidutinis absoliutus nuokrypis s – spiečiaus dydis τ (τi,j) – feromono kiekis (tarp miestų i ir j) τ0 – pradinis feromono kiekis τmax (τmin) – viršutinė (apatinė) feromono riba start τmax – pradinės padėties feromono viršutinė riba k ∆τ (∆τi,j) – paliekamo feromono kiekis (tarp miestų i ir j) best k ∆τi,j – iteracijos geriausios arba geriausios iki šiol skruzdės ∆τi,j t – laikas T – kelias T bs – geriausias iki šiol rastas kelias Vprd (Vgal) – pradinis (galutinis) nespalvotas vaizdas Vx (Vy) – vaizdo dydis x (y) ašimi w(∆Θ) – skruzdės krypties koeficientas pagal judėjimo kampą ∆Θ W (τ) – skruzdės jautrumo feromonui koeficientas xi – esama spiečiaus dalelės padėtis yˆi – geriausia kaimynų padėtis yi – geriausia dalelės padėtis

Santrumpos

DLPLM – daugialustė lauku programuojama loginė matrica DSK – daugelio skruzdžių kolonijos GA – genetiniai algoritmai KPU – keliaujančio prekeivio uždavinys LPLM – lauku programuojama loginė matrica MMSS – max-min skruzdžių sistema OSD – optimizavimas spiečiaus dalelėmis OSK – optimizavimas skruzdžių kolonija Turinys

Įvadas ...... 17 Tiriamoji problema ...... 17 Darboaktualumas ...... 18 Tyrimųobjektas ...... 18 Darbotikslas...... 18 Darbouždaviniai ...... 19 Tyrimųmetodika ...... 19 Darbo mokslinis naujumas ir jo reikšmė ...... 19 Darbo rezultatų praktinė reikšmė ...... 20 Ginamieji teiginiai ...... 20 Darborezultatųaprobavimas ...... 21 Disertacijosstruktūra...... 21 Padėka...... 22

1. Evoliucinių technologijų vaizdams apdoroti apžvalga...... 23 1.1. Optimizavimo skruzdžių kolonijomis vieta evoliuciniuose skaičiavimuose ...... 23 1.1.1. Evoliuciniai skaičiavimai ir jų raida ...... 24 1.1.2. Evoliucinių skaičiavimų technologijų klasifikavimas . . . . . 26 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti ...... 26

9 10 TURINYS

1.2.1. Genetiniai algoritmai ...... 27 1.2.2. Optimizavimas spiečiaus dalelėmis ...... 30 1.2.3. Optimizavimas skruzdžių kolonija ...... 32 1.2.4. Skruzdžių algoritmai...... 43 1.3. Disertacijos uždavinių formulavimas ...... 45

2. Vaizdų pirminio apdorojimo max-min skruzdžių sistema metodikos kūrimas ...... 47 2.1. Vaizdų pirminio apdorojimo problemos formulavimas ...... 47 2.1.1. Vaizdų pirminio apdorojimo svarba ...... 48 2.1.2. Vaizdų pirminio apdorojimo specifika ...... 48 2.1.3. Skruzdžių sistemų taikymo galimybės ...... 48 2.2. Max-min skruzdžių sistemos tobulinimas ...... 49 2.2.1. Bendrinė max-min skruzdžių sistema ...... 49 2.2.2. Specializuota max-min skruzdžių sistema ...... 50 2.3. Naujos vaizdų pirminio apdorojimo metodikos detalizavimas . . . . 51 2.3.1. Vaizdų pirminio apdorojimo max-min skruzdžių sistema metodika ...... 51 2.3.2. Vaizdų pirminio apdorojimo max-min skruzdžių sistema algoritmas ...... 52 2.4. Vaizdų pirminio apdorojimo metodikos tyrimas ...... 55 2.4.1. Dirbtinių vaizdų pirminio apdorojimo eksperimentų planas 55 2.4.2. Vaizdo apdorojimo operatorių ir jų skaičiaus tyrimas . . . . . 57 2.4.3. Vaizdų pirminio apdorojimo algoritmo konvergavimo trukmės tyrimas...... 59 2.5. Antrojo skyriaus išvados ...... 60

3. Vaizdų segmentavimo skruzdžių kolonijomis metodikos kūrimas .. 61 3.1. Vaizdų segmentavimo problemos formulavimas ...... 62 3.1.1. Vaizdų segmentavimo svarba ...... 62 3.1.2. Vaizdų segmentavimo specifika ...... 62 3.1.3. Optimizavimo skruzdžių kolonijomis taikymo galimybės . 62 3.2. Optimizavimo skruzdžių kolonijomis metodikos tobulinimas . . . . 63 3.2.1. Bendrinis optimizavimas skruzdžių kolonija ...... 63 3.2.2. Specializuotas optimizavimas skruzdžių kolonijomis . . . . . 65 3.3. Naujos vaizdų segmentavimo metodikos detalizavimas ...... 68 3.3.1. Vaizdų segmentavimo daugelio skruzdžių kolonijomis metodika ...... 68 11

3.3.2. Vaizdų segmentavimo daugelio skruzdžių kolonijomis algoritmas ...... 69 3.4. Vaizdų segmentavimo metodikos tyrimas ...... 71 3.4.1. Biocheminių vaizdų segmentavimo eksperimentų planas . . 71 3.4.2. Metodikos pradinių parametrų nustatymo įtakos tyrimas . . 72 3.4.3. Vaizdo segmentavimo dinamikos tyrimas ...... 76 3.5. Trečiojo skyriaus išvados ...... 78

4. Skruzdžių sistemos įgyvendinimas LPLM įrenginiu ...... 79 4.1. Skruzdžių sistemos įgyvendinimo problemos formulavimas . . . . . 80 4.1.1. DN8000k10PSX DLPLM įrenginys ...... 80 4.1.2. VHDL grandynų aprašymo kalba ...... 80 4.1.3. AccelDSP specializuotas programinis įrankis ...... 82 4.1.4. MicroBlaze programinis procesorius...... 83 4.1.5. Įgyvendinimo būdo parinkimas ...... 83 4.2. Skruzdžių sistemos įgyvendinimas MicroBlaze programiniu procesoriumi...... 83 4.2.1. Skruzdžių sistemos parinkimas ...... 84 4.2.2. Pseudo atsitiktinių skaičių generatoriaus parinkimas . . . . . 85 4.2.3. MicroBlaze programinio procesoriaus sandara ...... 88 4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas ...... 88 4.3.1. Perrinkimo metodo efektyvumo tyrimas ...... 89 4.3.2. Skruzdžių sistemos greitaveikos tyrimas ...... 89 4.3.3. Skruzdžių sistemos parametrų dinamikos tyrimas ...... 90 4.4. Ketvirtojo skyriaus išvados ...... 96

Bendrosios išvados...... 97

Literatūros sąrašas ...... 99

Autoriaus mokslinių publikacijų disertacijos tema sąrašas ...... 111

Priedas. Sąvokų žodynas ...... 113

Dalykinė rodyklė ...... 115

Contents

Introduction...... 17 Problem under Investigation ...... 17 TopicalityoftheResearchWork...... 18 ResearchObject ...... 18 TheAimoftheWork...... 18 TasksoftheWork...... 19 AppliedMethods ...... 19 Scientific Novelty and its Importance ...... 19 Practical Value of the Work Results ...... 20 Statements Presented for Defense ...... 20 ApprovaloftheWorkResults...... 21 TheScopeoftheScientificWork...... 21 Acknowledgements ...... 22

1. Review of evolutionary technologies for image processing ...... 23 1.1. Ant Colony Optimization’s place in evolutionary computation . . . 23 1.1.1. Evolutionary computation and it’s development ...... 24 1.1.2. Classification of evolutionary computation technologies . . 26 1.2. Evolutionary computation in image processing ...... 26 1.2.1. Genetic Algorithms ...... 27

13 14 CONTENTS

1.2.2. Particle Swarm Optimization ...... 30 1.2.3. Ant Colony Optimization ...... 32 1.2.4. Ant algorithms ...... 43 1.3. Formulation of dissertation tasks ...... 45

2. Development of Technique for Image Pre-processing by Max-Min Ant System ...... 47 2.1. Image pre-processing problem formulation ...... 47 2.1.1. Importance of image pre-processing ...... 48 2.1.2. Particularity of image pre-processing ...... 48 2.1.3. Ant Systems application possibilities ...... 48 2.2. Improvement of Max-Min Ant System ...... 49 2.2.1. Common Max-Min Ant System ...... 49 2.2.2. Specialized Max-Min Ant System ...... 50 2.3. Detalization of new image pre-processing technique ...... 51 2.3.1. Image pre-processing via Max-Min Ant System technique 51 2.3.2. Image pre-processing via Max-Min Ant System algorithm 52 2.4. Analysis of image pre-processing technique ...... 55 2.4.1. Artificial images pre-processing experiment plan ...... 55 2.4.2. Analysis of image pre-processing operators and their number...... 57 2.4.3. Analysis of image pre-processing algorithm convergence speed ...... 59 2.5. Second chapter conclusions ...... 60

3. Development of Technique for Image Segmentation by Ant Colonies 61 3.1. Formulation of image segmentation problem ...... 62 3.1.1. Importance of image segmentation ...... 62 3.1.2. Particularity of image segmentation ...... 62 3.1.3. Ant colony optimization application possibilities ...... 62 3.2. Development of ant colony optimization technique ...... 63 3.2.1. Common ant colony optimization ...... 63 3.2.2. Specialized ant colony optimization ...... 65 3.3. Elaboration of new image segmentation technique ...... 68 3.3.1. Image segmentation via multiple ant colonies technique . . 68 3.3.2. Algorithm of image segmentation via multiple ant colonies 69 3.4. Analysis of image segmentation technique ...... 71 3.4.1. Plan of biochemical images segmentation experiment . . . . 71 3.4.2. Initial parameters influence on technique analysis ...... 72 15

3.4.3. Analysis of image segmentation dynamics ...... 76 3.5. Third chapter conclusions ...... 78

4. Ant System implementation in FPGA device ...... 79 4.1. Formulation of Ant System implementation problem ...... 80 4.1.1. DN8000k10PSX multi FPGA device ...... 80 4.1.2. VHDL description language ...... 80 4.1.3. AccelDSP programming tool ...... 82 4.1.4. MicroBlaze processor ...... 83 4.1.5. Selection of implementation approach ...... 83 4.2. Ant System implementation in MicroBlaze software processor . . 83 4.2.1. Selection of Ant System ...... 84 4.2.2. Selection of pseudo random number generator ...... 85 4.2.3. Structure of MicroBlaze software processor ...... 88 4.3. Performance evaluation of implemented ant system ...... 88 4.3.1. Efficiency analysis of brute force method ...... 89 4.3.2. Analysis of Ant System performance ...... 89 4.3.3. Analysis of Ant System parameters dynamics ...... 90 4.4. Fourth chapter conclusions ...... 96

General Conclusions ...... 97

Bibliography ...... 99

List of Scientific Publications on the Topic of Dissertation ...... 111

Appendix. Term Dictionary ...... 113

Subject Index ...... 117

Įvadas

Tiriamoji problema

Terminas optimizavimas skruzdžių kolonijomis (OSK) apibendrina įvai- rius algoritmus, grindžiamus skruzdžių judėjimo gamtoje principais. OSK al- goritmai yra metaeuristiniai ir priklauso spiečiaus sumanumo klasei. Pastebėta, kad gamtoje skruzdės geba rasti trumpiausią kelią tarp skruzdėlyno ir maisto. Skruzdžių elgsenos principai buvo panaudoti matematiniam skruzdžių koloni- jos modeliui kurti. OSK yra palyginti jauna optimizavimo algoritmų karta. Pirmas, atlikęs de- talią analizę, pateikęs teorinį pagrindą bei veikiantį skruzdžių sistemos modelį, buvo italas Marco Dorigo, kuris 1992 metais apgynė pirmąją šios srities diser- taciją (Dorigo 1992). Skruzdžių sistemos eksperimentiniai modelio tyrimai pa- rodė, kad modelis tinkamas optimizavimo uždaviniams spręsti. Vieni plačiau- siai žinomi ir spręsti OSK uždaviniai yra keliaujančio prekeivio (ang. traveling salesman problem) (Dorigo, Gambardella 1995, 1997a; Flood 1956) ir kvad- ratinio paskirstymo (ang. quadratic assignment problem) (Lawler 1963). Šiuo metu egzistuoja aštuonios pagrindinės skruzdžių sistemos atmainos, o kasmet pasiūlomos esančių atmainų modifikacijos. Optimizavimas skruzdžių kolonijomis kaip metaeuristika, yra bendras tai- syklių rinkinys, kuris nenusako, kaip taikyti jas vaizdams apdoroti. Taip pat

17 18 ĮVADAS nėra žinoma kuriuos vaizdų apdorojimo būdus tikslinga pagrįsti OSK. Dar pil- nai neištirtas koks bus OSK našumas jeigu ją įgyvendinti šiuolaikiniuose įren- giniuose, grįstuose lauku programuojamomis loginėmis matricomis (LPLM).

Darbo aktualumas

Vaizdo pirminis apdorojimas – neišvengiamas procesas, reikalingas ren- giant vaizdą tolimesnei analizei. Įprasti vaizdų apdorojimo metodai tinka, kai vaizdo apdorojimo operatorių seka yra aiški ir tinka plačiam ratui panašių vaiz- dų. Tokią vaizdo apdorojimo seką parenka programuotojas. Kartais reikalinga vaizdui apdoroti operacijų seka nėra aiški ir jos parinkimas ilgai trunka. Dažnai keičiant seką, taikant ją prie skirtingų vaizdų, laiko sąnaudos smarkiai išauga. Evoliucinių skaičiavimų metodai, tokie kaip genetiniai algoritmai ir gene- tinis programavimas yra taikomi vaizdams apdoroti, tačiau spiečiaus sumanu- mu grįstų metodų atšaka yra palyginus nauja ir nepakankamai ištirta. OSK – vienas iš spiečiaus sumanumu grįstų metodų, kuris gali būti taikomas vaizdų apdorojime, tačiau jo taikymo galimybės vaizdams nėra pakankamai ištirtos. Taip pat mažai ištirti OSK metodų įgyvendinimo būdai įterptinėse sistemose, kurios vis dažniau naudoja lauku programuojamas logines matricas (LPLM) pasižyminčias logikos perprogramavimo lankstumu. OSK taikymas galėtų palengvinti pirminį vaizdų apdorojimą, automati- zuojant vaizdų apdorojimo operatorių sekų parinkimą. OSK naudojimas vaiz- dų segmentavime galbūt leistų atlikti tikslesnį objektų atskyrimą. OSK įgyven- dinimas LPLM galimai paspartintų diskrečiųjų optimizavimo uždavinių vyk- dymą įterptinėse sistemose.

Tyrimų objektas

Tyrimų objektas yra vaizdų apdorojimo skruzdžių kolonijomis technologi- jos ir su jomis susieti dalykai: optimizavimo skruzdžių kolonijomis algoritmai, vaizdų apdorojimo metodai ir jų įgyvendinimas LPLM.

Darbo tikslas

Darbo tikslas yra pasiūlyti ir ištirti optimizavimu skruzdžių kolonijomis grįstus vaizdų apdorojimo būdus ir priemones. 19

Darbo uždaviniai

1. Atlikti analitinę optimizavimo skruzdžių kolonijomis technologijų li- teratūros apžvalgą, pagrindžiant konkrečių vaizdų apdorojimo būdų ir skruzdžių kolonijų atmainų parinkimą tolimesniems tyrimams. 2. Remiantis optimizavimo skruzdžių kolonijomis metaeuristika, pasiū- lyti ir ištirti originalias vaizdų apdorojimo metodikas. 3. Ištirti galimybę įgyvendinti optimizavimą skruzdžių kolonijomis įterp- tine sistema, grindžiama lauku programuojama logine matrica.

Tyrimų metodika

Darbe taikomos optimizavimo skruzdžių kolonijomis vaizdų pirminio ap- dorojimo ir segmentavimo teorijos. Kompiuterinis modeliavimas atliekamas taikant MATLABTM programą. Algoritmai įgyvendinami C programavimo kal- ba, taikoma specializuota lauku programuojamų loginių matricų įranga (Dini- Group daugialustis DN8000k10PSX modulis) ir jos programavimo priemonės: Xilinx EDK su MicroBlaze programiniu procesoriumi.

Darbo mokslinis naujumas ir jo reikšmė

1. Sukurta nauja vaizdų pirminio apdorojimo, grįsta max-min skruzdžių sistema, metodika. Šios metodikos taikymas leidžia automatizuoti pir- minį vaizdų apdorojimą. 2. Sukurta nauja vaizdų segmentavimo, grįsta daugelio skruzdžių kolo- nijų varžymusi, metodika. Šios metodikos taikymas lemia tikslesnį su- siliejusių baltymų pėdsakų dvimatės elektroforezės gelio vaizde seg- mentavimą. 3. Gauti našumo įvertinimo rezultatai, įgyvendinant skruzdžių sistemą lauku programuojamoje loginėje matricoje. Parodyta kaip optimiza- vimą skruzdžių kolonijomis našiai įgyvendinti įterptinėse sistemose. 20 ĮVADAS

Darbo rezultatų praktinė reikšmė

Sukurtą vaizdų pirminio apdorojimo max-min skruzdžių sistemą galima taikyti kaip universalią priemonę, leidžiančią parinkti vaizdo apdorojimo ope- ratorių seką duotam vaizdo apdorojimo uždaviniui spręsti. Vaizdų pirminis ap- dorojimas tampa daug patogesnis, nes sistema automatiškai, atsižvelgiant į pir- minį ir galutinį vaizdus, parenka vaizdų apdorojimo operatorių seką.

Vaizdų segmentavimo optimizavimu skruzdžių kolonija metodika lemia tikslesnį nespalvotų vaizdų segmentavimą, todėl gali būti sėkmingai taikoma: apsaugos video sistemose (naktį filmuotiems vaizdams), medicinoje (rentgeno, ultragarso ir pan. vaizdams), biochemijoje (vienmatės ar dvimatės elektrofore- zės gelių vaizdams).

Optimizavimo skruzdžių kolonija įgyvendinimo lauku programuojamoje loginėje matricoje rezultatai taikyti sėkmingai užbaigtame Valstybinio mokslo ir studijų fondo remtame mokslininkų grupių projekte „Skruzdžių kolonijų op- timizavimo įgyvendinimas lauku programuojamomis loginėmis matricomis“ (registracijos Nr. T-08127, sutarties Nr. T-112/08). Parodyta, kad optimizavimą skruzdžių kolonija galima įgyvendinti lauku programuojamų loginių matricų įrenginiuose, kuriant šiuolaikinius, nedidelių gabaritų, tačiau našius prietaisus.

Ginamieji teiginiai

1. Sukurta nauja vaizdų pirminio apdorojimo, grįsta max-min skruzdžių sistema, metodika esant sudėtingiems sprendimams 30 % greičiau ran- da sprendinį nei bendrinė max-min skruzdžių sistema be pradinės skruz- džių padėties valdymo. 2. Sukurta nauja vaizdų segmentavimo, grįsta daugelio skruzdžių kolo- nijų varžymusi, metodika leidžia gauti virš 60 % geresnius baltymų pėdsakų segmentavimo rezultatus nei taikant slenksčio funkcija grįs- tas metodikas dvimatės elektroforezės gelių vaizdams. 3. Įgyvendinant skruzdžių sistemą lauku programuojamoje loginėje mat- ricoje galima pasiekti 1,9 karto didesnį veikimo greitį, naudojant slan- kaus kablelio modulį ir 32 bitų daugiklį, lyginant su įprastu MicroBla- ze procesoriumi be papildomų modulių. 21

Darbo rezultatų aprobavimas

Darbo rezultatai pateikti 6 straipsniuose, 5 iš kurių yra paskelbti recenzuo- jamose mokslo žurnaluose. Taip pat rezultatai paviešinti 10 mokslinių konfe- rencijų: • 13-toje tarptautinėje konferencijoje „Elektronika“, 2009, Kaunas, Vil- nius, Lietuva; • 1-oje tarptautinėje konferencijoje „Bio-Inspired Signal and Image Pro- cessing“, 2008, Varšuva, Lenkija; • 12-toje tarptautinėje konferencijoje „Elektronika“, 2008, Kaunas, Vil- nius, Lietuva; • XI-toje Lietuvos jaunųjų mokslininkų konferencijoje „Mokslas – Lie- tuvos ateitis“, Elektronika ir Elektrotechnika, 2008, Vilnius, Lietuva; • 11-toje tarptautinėje konferencijoje „Elektronika“, 2007, Kaunas, Vil- nius, Lietuva; • Tarptautinėje konferencijoje „International Conference on Fundamen- tals of Electrotechnics and Circuit Theory“, 2007, Gliwice, Ustron, Lenkija; • X-toje Lietuvos jaunųjų mokslininkų konferencijoje „Mokslas – Lietu- vos ateitis“, Elektronika ir Elektrotechnika, 2007, Vilnius, Lietuva; • 10-toje tarptautinėje konferencijoje „Elektronika“, 2006, Kaunas, Vil- nius, Lietuva; • IX-toje Lietuvos jaunųjų mokslininkų konferencijoje „Mokslas – Lie- tuvos ateitis“, Elektronika ir Elektrotechnika, 2006, Vilnius, Lietuva; • 5-toje tarptautinėje konferencijoje „Transport Systems Telematics“, 2005, Gliwice, Ustron, Lenkija.

Disertacijos struktūra

Disertaciją sudaro: įvadas, keturi skyriai, bendrosios išvados, literatūros sąrašas su atskirai pateiktomis autoriaus publikacijomis ir priedas. Pirmame skyriuje atliekama evoliucinių technologijų vaizdams apdoro- ti analitinė apžvalga. Nagrinėjama OSK vieta evoliuciniuose skaičiavimuose, evoliucinių technologijų raida ir klasifikacija, tinkamumas vaizdams apdoroti, įgyvendinamumas bei formuluojami disertacijos uždaviniai. 22 ĮVADAS

Antrame skyriuje nagrinėjama vaizdų pirminio apdorojimo su max-min skruzdžių sistema problema. Pateikiamos max-min skruzdžių sistemos modifi- kacijos, jas taikant vaizdams apdoroti, siūlomi patobulinimai, skirti pagreitinti sistemos veikimą, atliekami pasiūlytų patobulinimų eksperimentiniai tyrimai, formuluojamos išvados. Trečiame skyriuje nagrinėjama vaizdų segmentavimo, naudojant optimi- zavimą skruzdžių kolonija, problema. Siūloma ir detalizuojama daugelio skruz- džių kolonijų varžymusi grįsta metodika, tinkanti vaizdams segmentuoti. Atlie- kami siūlomos metodikos eksperimentiniai tyrimai, formuluojamos išvados. Ketvirtame skyriuje nagrinėjama OSK įgyvendinimo LPLM įrenginyje problema. Išanalizuojamos įgyvendinimo galimybės, įgyvendinamas pseudo atsitiktinių skaičių generatorius bei skruzdžių sistema. Atliekamas įgyvendin- tos skruzdžių sistemos našumo eksperimentinis tyrimas, įvertinama MicroBla- ze programinio procesoriaus modulių įtaka vykdomų skaičiavimų greitaveikai. Eksperimentiniams tyrimams naudojamas keliaujančio prekeivio uždavinys, sprendžiamas perrinkimo metodu ir skruzdžių sistema, pateikiamos skyriaus išvados. Disertacijos pabaigoje apibendrinami darbo rezultatai ir pateikiamos bend- rosios išvados. Priede pateikiamas disertacijoje naudotų sąvokų žodynas. Darbo apimtis yra 117 puslapių, kuriuose yra pateikta: 51 formulė, 26 pa- veikslai, 8 lentelės ir 10 algoritmų. Disertacijoje remtasi 142 kitų autorių lite- ratūros šaltiniais.

Padėka

Dėkoju darbo vadovui prof. Daliui Navakauskui už kantrybę, pagalbą, nu- kreipimą bei motyvaciją. Taip pat dėkoju Vilniaus Gedimino technikos universiteto Elektronikos fa- kulteto ir Elektroninių sistemų katedros darbuotojams už suteiktą galimybę šiai disertacijai parengti. Nuoširdžiai dėkoju savo šeimai ir artimiesiems už paramą, supratingumą ir sąlygų tęsti mokslus sudarymą. 1

Evoliucinių technologijų vaizdams apdoroti apžvalga

Evoliuciniais skaičiavimais vadinami uždavinių sprendimo būdai, kuriuo- se taikomi natūralios evoliucijos gamtoje principai. Šiame skyriuje pateikiama evoliucinių technologijų vaizdams apdoroti analitinė apžvalga. Nagrinėjamas optimizavimas skruzdžių kolonija (OSK), ir atskleidžiama jo vieta tarp kitų evoliucinių skaičiavimų. Aptariama evoliucinių technologijų raida, ir pateikia- ma evoliucinių technologijų klasifikacija. Detaliai nagrinėjami atskiri evoliu- cinių skaičiavimų būdai, jų tinkamumas vaizdams apdoroti bei galimybės įgy- vendinti aparatūrinėmis priemonėmis. Skyriaus pabaigoje formuluojami pag- rindiniai disertacijoje sprendžiami uždaviniai.

1.1. Optimizavimo skruzdžių kolonijomis vieta evoliuciniuose skaičiavimuose

Evoliucinių skaičiavimų ir jų raidos aptarimą pradėsime nuo sąvokų.

1.1 apibrėžimas. Euristika (Michalewicz, Fogel 2004) (graik. heuriskein, t. y. randu) – tai specialus kūrybos, atradimų, išradimų metodas. Įprastai, taisyklių visuma, dar vadinama strategija, kuri turi padėti, sprendžiant uždavinį ban- dymų ir klaidų metodu. Apibrėžimo sąvoka taip pat apima ir apsimokančius sprendimo būdus.

23 24 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

1.2 apibrėžimas. Metaeuristika yra viršutinio lygmens pagrindinė strategija, kuri nukreipia kitas euristikas, ieškant galimų sprendinių sudėtinguose užda- viniuose.

Metaeuristikos daugiausiai taikomos –sudėtingiems uždaviniams, to- NP kiems kaip keliaujančio prekeivio, kvadratinio paskirstymo arba tvarkaraščių sudarymo, spręsti. Žinomiausios metauristikos: tabu paieška (Glover 1989; Glover, Laguna 1997), atkaitinimo modeliavimas (Cerny 1985; Kirkpatrick et al. 1983), optimizavimas skruzdžių kolonijomis (Dorigo et al. 1991), iteracinė vietinė paieška (Lourenco et al. 2002), evoliuciniai skaičiavimai (Fogel et al. 1966; Goldberg 1989; Holland 1975; Moscato, Tinetti 1992; Rechenberg 1973). Metaeuristikos skirstomos į sprendiniu grįstas ir populiacija grįstas. Spren- diniu grįstų metaeuristikų pavyzdžiai: lokali paieška, atkaitinimo modeliavi- mas, tabu paieška. Populiacija grįstu metauristikų pavyzdžiai: genetiniai algo- ritmai, optimizavimas spiečiaus dalelėmis, evoliucijos strategija, diferenciniai evoliuciniai algoritmai. Optimizavimas skruzdžių kolonijomis (OSK) – tai metaeuristika, kurioje kolonija dirbtinių skruzdžių, bendraudama tarpusavyje, ieško gerų sprendinių sudėtingiems diskretiems optimizavimo uždaviniams spręsti. Bendravimas – tai pagrindinis kolonijos elementas. Bendravimas tarp skruzdžių vykdomas ne tiesiogiai, o naudojant stigmergiją – informacijos perdavimą per aplinkos keitimą (Grosan, Ramos 2006). OSK algoritmas gali būti taikomas statiniams ir dinaminiams uždaviniams spręsti. Statinis uždavinys – tai uždavinys, kurio charakteristikos nesikeičia sprendimo metu. Dinaminio uždavinio charakteris- tikos gali keistis sprendinio paieškos metu.

1.1.1. Evoliuciniai skaičiavimai ir jų raida

Evoliucinių skaičiavimų pradžia laikomas šeštasis dešimtmetis. Tuomet minimi pirmi eksperimentai, naudojant kompiuterį ir evoliucinius procesus – Friedberg (1958); Friedberg et al. (1959) aprašyti, kaip automatinis programa- vimas arba radimas tokios programos, kuri įgyvendina funkciją pagal duotas įėjimų ir išėjimų reikšmes. Kitas pradininkas – Fraser (1957), bandė simuliuo- ti genetinius procesus kompiuteriu. Panašiu laiku Bremermann (1962) pateikė pirmųjų bandymų rezultatus, taikydamas evoliucijos modelį lygčių sistemoms spręsti. Taip pat Bremermann et al. (1965) pateikė pirminę evoliucinių algo- ritmų teoriją su rekomendacijomis mutacijos operatoriui, sprendžiant tiesiškai atskiriamus uždavinius. Box (1957) pristatė evoliucinės operacijos idėją, kurią siūlė naudoti eksperimentų sudaryme ir rezultatų analizėje. Visos pasiūlytos 1.1. Optimizavimo skruzdžių kolonijomis vieta 25 naujovės evoliucinių skaičiavimų pradžioje buvo vertinamos labai skeptiškai, tačiau, nežiūrint į tai, teorinis pamatas formavosi. Toliau evoliuciniai skaičiavimai vystėsi atskirai. Pradžioje egzistavo trys pagrindinės šakos: evoliucijos strategijos (Rechenberg 1973), evoliucinis prog- ramavimas (Fogel et al. 1966) ir genetiniai algoritmai (Goldberg 1989; Holland 1975, 1992). Šios labai panašios šakos vystėsi apie 25 metus atskirai. Jų idėjų dėka išsivystė dar viena – genetinio programavimo – šaka. Bendras visų minė- tų šakų bruožas yra populiacijomis grįstų algoritmų naudojimas. Lietuvoje irgi vykdomi tyrimai genetinių algoritmų srityje (Goranin, Čenys 2008; Misevičius 2008a,b; Misevičius, Rubliauskas 2008; Paulinas, Ušinskas 2007). Šiuolaikinė evoliucinių skaičiavimų samprata apima daug platesnę moks- lo šakų erdvę. Palyginus nesenai atsirado naujos šakos, tokios kaip savaran- kiška spiečiaus sumanumu (ang. ) grįsta šaka, kuri nors ir netenkina tradicinės evoliucinių skaičiavimų sąvokos, bet irgi naudoja pagrin- dus iš gamtos ir yra labai efektyvi sprendžiant optimizavimo uždavinius: opti- mizavimas spiečiaus dalelėmis (ang. partical swarm optimization) (Eberhart, Kennedy 1995a,b; Kennedy, Eberhart 2001), optimizavimas skruzdžių koloni- jomis (ang. ant colony optimization) (Dorigo 1992; Dorigo et al. 1991). Optimizavimo skruzdžių kolonijomis (OSK) istorija daug trumpesnė, nors gamtoje skruzdžių tyrimai buvo pradėti pakankamai senai. Tyrinėdamas termi- tus, Grasse (1959) sukūrė teoriją ir įvedė terminą stigmergija, norėdamas apra- šyti termitų bendravimo būdus. J. L. Denenourg tyrinėjo kolektyvinį skruzdžių elgesį. Pirmieji darbai, kurie vedė prie skruzdžių elgesio modeliavimo atsirado prieš 19 metų. Apie skruzdžių savaiminį organizavimąsi rašė Moyson, Mande- rick (1988), taip pat kolektyvinį argentinietiškų skruzdžių elgesį nagrinėjo De- neubourg et al. (1990), ir jau kitais metais Deneubourg et al. (1991) aprašinėjo skruzdžių atliekamą rūšiavimą ir tokio rūšiavimo taikymą. Tais pačiais metais Dorigo (1992) pasiūlė pirmą optimizavimo algoritmą, grįstą skruzdžių elge- siu – skruzdžių sistemą. Tai galima laikyti optimizavimo skruzdžių kolonija pradžia, nes po šio darbo pasirodymo atsirado daug kitų skruzdžių elgesiu grįs- tų optimizavimo algoritmų. Dorigo, Gambardella (1995, 1996) pasiūlė Ant-Q algoritmą, Dorigo, Gambardella (1997a,b) skruzdžių kolonijų sistemą, Bulln- heimer et al. (1999) ranginę skruzdžių sistemą, Stutzle, Hoos (1999, 2000) pri- statė savo max-min skruzdžių sistemą, Blum et al. (2001) – hiper-kubo skruz- džių sistemą. Susidomėjimas ir populiarumas optimizavimo skruzdžių koloni- jomis auga ir kasmet yra publikuojami nauji darbai (Das et al. 2009). Lygiagrečiai OSK vystėsi optimizavimas spiečiaus dalelėmis (OSD), kuris buvo pirmą kartą pristatytas Eberhart, Kennedy (1995a,b). OSD populiarumas staigiai augo dėl paprastos struktūros ir tinkamumo įvairiems optimizavimo 26 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA uždaviniams spręsti. Buvo pasiūlytos įvairios OSD modifikacijos: adaptyvio- ji versija (Yasuda et al. 2003), diskrečioji versija (Clerc 2004; Salman et al. 2001). Lietuvoje OSD buvo taikoma sprendimų medžiams sudaryti (Nenortai- tė 2007). Kitos metaeuristikos, kurios buvo vystomos ir Lietuvoje, tai atkaitinimo modeliavimas (Misevičius 2008c), tabu paieška (Misevičius, Ostreika 2007; Misevičius et al. 2005, 2008).

1.1.2. Evoliucinių skaičiavimų technologijų klasifikavimas

1.3 apibrėžimas. Evoliuciniai algoritmai yra terminas aprašantis kompiute- rių pagalba uždavinius sprendžiančias sistemas, kurios, kaip pagrindinius ele- mentus, naudoja matematinius modelius, paimtus iš žinomų gamtos evoliucijos metodų.

Back et al. (2000a) ir Eiben, Smith (2003) evoliuciniams skaičiavimams priskyrė evoliucinius algoritmus, genetinius algoritmus, evoliucijos strategijas, evoliucinį programavimą, genetinį programavimą, apsimokančias klasifikato- rių sistemas (žr. 1.1 pav.).

1.4 apibrėžimas. Spiečiaus sumanumas (Engelbrecht 2006) tai dirbtinio inte- lekto tipas, grįstas decentralizuotų, save organizuojančių sistemų kolektyviniu bendravimu.

Remiantis Dorigo et al. (2008), spiečiaus sumanumui priklauso optimi- zavimas skruzdžių kolonijomis, optimizavimas spiečiaus dalelėmis, difuzinė paieška (Bishop 1989) ir bičių algoritmas (Pham et al. 2005). Spiečiaus sumanumu grįstos sistemos, dažniausiai sudaromos iš populia- cijos pakankamai paprastų individų, bendraujančių tarpusavyje ir sąveikaujan- čių su aplinka. Individai vadovaujasi labai paprastomis taisyklėmis ir, neturint centralizuoto valdymo, rodo bendrą sumanų elgesį, nebūdingą kiekvienam in- dividui atskirai. Gamtoje sutinkamas toks elgesys skruzdžių kolonijoje, bičių spiečiuje, paukščių pulke, gyvulių bandoje, bakterijų augime, žuvų būryje.

1.2. Evoliuciniai skaičiavimai vaizdams apdoroti

Apžvelgsime evoliucinių skaičiavimų taikymą vaizdams apdoroti. 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 27

METAEURISTIKA

EVOLIUCINIAI SKAIČIAVIMAI SPIEČIAUS SUMANUMAS

Optimizavimas spiečiaus Evoliuciniai algoritmai dalelėmis

Optimizavimas skruzdžių Genetiniai algoritmai kolonijomis

Evoliucinis programavimas Stochastinė difuzinė paieška

Evoliucinė strategija Bičių algoritmas

Genetinis programavimas

Mokinančių klasifikatorių sistemos

1.1 pav. Evoliucinių skaičiavimų technologijų struktūra Fig. 1.1. Technologies of evolutionary computation

1.2.1. Genetiniai algoritmai

Genetiniai algoritmai (GA) – tai optimizavimo algoritmai, sukurti remian- tis gamtoje vykstančia evoliucija (Back et al. 2000a,b; Johansson 2006; Srini- vas, Patnaik 1994). Tai nėra nauja mokslo sritis, nes gilesni tyrinėjimo darbai jau buvo vykdomi 1975 metais J. Hollando ir minėti jo knygoje (Holland 1992). GA numato ieškomų parametrų kodavimą į panašią chromosomai struktūrą bei atrankos ir kryžminimo operacijų taikymą geresnio užduoties sprendinio pa- ieškai. 28 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

GA įgyvendinimas prasideda nuo tinkamo informacijos kodavimo chro- mosoma. Esant klasikiniam GA, chromosoma – tai tam tikro ilgio L eilutė, sudaryta iš genų (bitų), kur kiekvienas bitas arba jų seka koduoja tam tikrą ieškomą parametrą. Sudaroma chromosomų pradinė populiacija, kuri dažniausiai turi atsitik- tines reikšmes, o jos dydis priklauso nuo chromosomos ilgio. Parinkus per mažą populiaciją, galimas ankstyvas konvergavimas į lokalų sprendinį, kuris gali būti toli nuo realaus sprendinio, o parinkus didelę populiaciją, sprendinio ieškojimas ilgai užtruks. Pirminė populiacija įvertinama ir kiekvienam individui, atsižvelgiant į tiks- lo funkcijos F reikšmę, priskiriamas tinkamumo įvertis fi/f. Įvertis skaičiuo- jamas, naudojant tinkamumo funkciją fi, kuri yra išvedama iš tikslo funkcijos. Tinkamumo funkcija parenkama taip, kad jos reikšmės būtų teigiamos, baigti- nės, o jos maksimizavimas atspindėtų turimos tikslo funkcijos priartėjimą prie sprendinio. f yra tinkamumo funkcijos visų chromosomų įverčių vidurkis. Atranka vykdoma pagal tinkamumo įvertį. Sveikoji tinkamumo įverčio skaičiaus dalis parodo kiek kartų chromosoma bus atkartota tarpinėje populia- cijoje. Jeigu lieka skaičiai po kablelio arba skaičius gavosi mažesnis už vienetą, tai rodo tikimybę chromosomai pakliūti į tarpinę populiaciją. Pvz., tinkamumo įvertinimas, lygus 1,63, lems, kad į tarpinę populiaciją chromosomos kopija pa- klius su tikimybe 1, o antra kopija – su tikimybe 0,63. Po atrankos vykdomas sukryžminimas. Tarpinės populiacijos lentelėje esančios chromosomos sukei- čiamos vietomis atsitiktine tvarka ir chromosomų poros yra sukryžminamos su tikimybe Pc. Vykdomas sukryžminimas vienoje vietoje pateiktas 1.2 paveik- sle, parenkant atsitiktinę chromosomos dalinimo vietą, išskyrus kraštus, kai neišskiriamas nei vienas bitas. Svarbus veiksnys yra mutacija. Su labai maža tikimybe Pm kiekvieno bito populiacijoje reikšmė keičiama į priešingą. Po su- kryžminimo ir mutacijos nauji individai sudaro naują populiaciją. 1.3 paveiksle pateikta atrankos ir sukryžminimo proceso iliustracija.

0 1 1 0 1 0 0 1

1 1 0 0 0 0 0 1 7 6 5 4 3 2 1 0

1.2 pav. GA vykdomo chromosomų sukryžminimo vienoje vietoje iliustracija Fig. 1.2. One point chromosome crossover in GA 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 29

Atranka Sukryžminimas

Eilutė 1 Eilutė 1 Palikuonis A (1 2) × Eilutė 2 Eilutė 2 Palikuonis B (1 2) × Eilutė 3 Eilutė 2 Palikuonis A (2 4) × Eilutė 4 Eilutė 4 Palikuonis B (2 4) × ......

Pradinė populiacija Tarpinė populiacija Galutinė populiacija

1.3 pav. Atrankos ir sukryžminimo proceso iliustracija Fig. 1.3. Selection and crossover illustration

GA evoliucijai stabdyti sąlyga parenkama atsižvelgus į kartų skaičių, tikslo funkcijos reikšmę arba klaidos mažėjimo žingsnį. Egzistuoja keletas evoliucijos strategijų, kurios lemia algoritmo konverga- vimo į sprendinį greitį bei kokybę. Genitor algoritmas (Whitley 1989), pagreitina konvergavimą, naudojant agresyvesnę sprendinio paiešką. Rastos geriausios chromosomos yra išlaiko- mos populiacijoje. Vykstant sukryžminimui, yra naudojama tik viena pora chro- mosomų, ir palikuoniai iškart gražinami atgal į populiaciją, pakeičiant blogiau- sius sprendinius turinčias chromosomas. Tinkamumo funkcija pagrįsta laips- nio suteikimu. CHC algoritmas, sukurtas Eshelman (1991), naudoja geriausių chromoso- mų išlaikymą per kartas, heterogeninį sukryžminimą, kataklizminę mutaciją. N geriausių unikalių individų išrenkami iš tėvų kartos ir palikuonių kartos, siekiant sudaryti naują populiaciją. Sukryžminimas leidžiamas tik tarp chro- mosomų, kurios yra atitolę viena nuo kitos per tam tikrą Hammingo atstu- mą (Hamming 1950). Tai lemia labai agresyvų sprendinio ieškojimą, bet su mažu populiacijos dydžiu algoritmas greitai atsiduria lokaliame sprendinyje, kai dauguma sukryžminamų chromosomų pasikartoja savo turiniu. Tuomet vykdomos kataklizminės mutacijos, kai keičiami bitai su didesne tikimybe. 30 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

Vėliau sukryžminimas prasideda iš naujo. Genetiniai algoritmai yra populiarūs ir Lietuvoje. Kauno technologijos universitete yra vykdomi tyrimai, skirti gerinti GA, juos taikant optimizavi- mo uždaviniams spręsti (Misevičius 2008a,b; Misevičius, Rubliauskas 2008). VGTU GA taikomi modeliuoti (Goranin, Čenys 2008) ir apdoroti vaizdus (Mel- kemi et al. 2006; Paulinas, Ušinskas 2007).

1.2.2. Optimizavimas spiečiaus dalelėmis

Optimizavimas spiečiaus dalelėmis (OSD) yra stochastinis optimizavimo algoritmas (Eberhart, Kennedy 1995a; Hu et al. 2004; Kennedy, Eberhart 2001; Omran 2004; Song, Gu 2004), grįstas socialiniu elgesiu. Spiečius yra sudary- tas iš individų, vadinamų dalelėmis. Kiekviena dalelė yra galimas uždavinio sprendimas. Sprendimo paieškos metu, dalelės juda uždavinio erdvėje ieškant geriausio sprendimo. Optimizavimo spiečiaus dalelėmis tyrimas, taikant jį ke- liaujančio prekeivio uždaviniui spręsti (Secrest 2001; Secrest, Lamont 2001; Wang et al. 2003), įrodė, kad OSD yra konkurencingas optimizavimo algorit- mas. A. Optimizavimo spiečiaus dalelėmis algoritmas Pažymėsime klaidos funkciją, kurią reikia minimizuoti f (tikslo funkcija). Tuomet geriausia dalelės padėtis:

yi(t), kai f (xi(t + 1)) f (yi(t)); yi(t +1) = ≥ (1.1) (xi(t + 1), kai f (xi(t + 1))

čia: xi – esama dalelės padėtis; νi – esamas dalelės greitis; yi – geriausia dalelės padėtis; yˆi – geriausia kaimynų padėtis. Globalaus optimizavimo būdo atveju, kaimynai yra visos spiečiaus dale- lės, tuomet viso spiečiaus geriausia dalelės padėtis:

yˆ(t) y0, y1,...,y = min f(y0(t)),f(y1(t)),...,f(y (t)) , (1.2) ∈ { s} { s } čia s – spiečiaus dydis. Greitis kiekviena dalelės kryptimi j 1,...,Nd, skaičiuojamas atskirai, ∈ νi,j yra i-tosios dalelės j-toji greičio dedamoji. Greitis skaičiuojamas pagal:

νi,j(t +1) = w νi,j(t)+ c1r1,j(t) yi,j(t) xi,j(t) + (1.3) · − c2r2,j(t) yˆj(t) xi,j(t) , −     1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 31

čia: w – inercijos momentas; c1 ir c2 – pagreičio konstantos; r1,j(t); r2,j(t) ∼ U(0,1). Didelis inercijos momentas w lemia sistemos platesnę paiešką, mažas – lemia siauresnę paiešką. Pažinimo elementas y (t) xi, parodo dalelės žinias i − apie tai, kur yra geriausias sprendinys. Socialinis elementas yˆ(t) xi(t) parodo − viso spiečiaus žinias apie tai, kur yra geriausias sprendimas. Konvergavimo sąlyga:

c1 + c2 1 < w. (1.4) 2 −

Sekanti dalelės padėtis skaičiuojama taip:

xi(t +1) = xi(t)+ νi(t + 1). (1.5)

Lokalaus optimizavimo būdo atveju, naudojamos kaimynų padėties topo- logijos (žr. 1.4 pav.).

(a) žvaigždės (b) žiedo (c) kryžiaus

1.4 pav. Kaimynų padėties topologijų pavyzdžiai Fig. 1.4. Examples of neighborhood topologies

B. Optimizavimo spiečiu algoritmo diskrečioji versija

Salman et al. (2001) ir Clerc (2004) pasiūlė diskrečiąją OSD versiją. Šio algoritmo xi, yi ir yˆ kintamųjų galimos reikšmės yra 0, 1 . Greičio vektorius i { } νi, interpretuojamas kaip tikimybė pakeisti bitą iš 0 į 1, arba iš 1 į 0, atnaujinant dalelių padėtį, todėl greičio vektorius išlieka realus skaičius. Siekiant išlaikyti νij leistinose [0, 1] ribose, naudojama sigmoidinė funkcija: 1 sig(ν)= . (1.6) 1+ e−ν 32 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

Kitos dalelės padėtis apskaičiuojama pagal:

0, kai r3j(t) sig(ν(t + 1)); xij(t +1) = ≥ (1.7) (1, kai r3j(t) < sig(ν(t + 1)),

čia: r3j U(0,1). Norint išvengti prisotinimo, rekomenduojama apriboti νij ∼ reikšmes, t. y. νij [ 4,4]. ∈ − Optimizavimas spiečiaus dalelėmis plačiai naudojamas vaizdų apdoroji- me: kreivių aproksimavime (Yin 2003, 2004) ir objektų atpažinime (Perlin et al. 2008).

1.2.3. Optimizavimas skruzdžių kolonija

Optimizavimas skruzdžių kolonijomis (OSK) yra bendras terminas, apibū- dinantis skirtingus algoritmus, grįstus skruzdžių judėjimu. Dažniausiai OSK taikomas kombinatoriniams uždaviniams spręsti. Vieni plačiausiai žinomų yra keliaujančio prekeivio uždavinys (ang. traveling salesman problem) (Flood 1956) ir kvadratinio paskirstymo uždavinys (ang. quadratic assignment prob- lem) (Lawler 1963). OSK algoritmų skirtumams aptarti, naudosime keliaujan- čio prekeivio uždavinį. Pagrindinis keliaujančio prekeivio uždavinio tikslas – surasti trumpiausią kelią visiems miestams aplankyti. Visuose OSK algoritmuose miestai tarpusa- vyje sujungti keliais, kiekvienas kelias gali turėti feromono pėdsaką τi,j, kuris lems, ar skruzdės rinksis kelią iš miesto i į miestą j. Kitas parametras, kuris yra taikomas OSK, yra euristinė informacija ηi,j = 1/di,j, atspindinti skruz- džių norą judėti į arčiausią miestą. Euristinės informacijos vertė yra atvirkščiai proporcinga atstumui d tarp miestų. Apibendrintame 1.1 algoritme pateikti es- miniai žingsniai, būdingi visoms OSK atšakoms, sprendžiant statinius uždavi- nius. Sprendiniai sudaromi pagal 1.2 algoritmą.

1.1 algoritmas (Statinio uždavinio sprendimas taikant OSK)

1. Parinkti pirminius parametrus, inicializuoti feromono pėdsakus. 2. Rasti galimus sprendinius. 3. Atlikti vietinę paiešką (nebūtina). 4. Atnaujinti feromono pėdsakus. 5. Jeigu sprendinys netenkina sąlygos, grįžti į 2 žingsnį. 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 33

1.2 algoritmas (OSK galimų sprendinių paieška)

1. Parinkti pradinį miestą remiantis pasirinktu kriterijumi. 2. Naudojant tikimybes, gautas remiantis feromono ir euristine informacija, pasirinkti ir aplankyti dar neaplankytą miestą. 3. Kartoti 2 žingsnį, kol skruzdė negrįžo į pradinį miestą.

Kai visos skruzdės ras galimus sprendinius, pasirinktinai galima atlikti vietinę paiešką, po to atnaujinti feromono pėdsaką, remiantis rastu sprendinių įverti- nimu. 1.1 lentelėje pateikta OSK algoritmų šeima. Aptarsime kiekvieną iš jų detaliau.

1.1 lentelė. Optimizavimo skruzdžių kolonijomis algoritmų šeima Table 1.1. Family of Ant Colony Optimization algorithms

OSK algoritmai KPU Pagrindinės publikacijos

Skruzdžių sistema + (Dorigo 1992; Dorigo et al. 1991) Elitinė skruzdžių sistema + (Dorigo 1992; Dorigo et al. 1991) Ant-Q + (Dorigo, Gambardella 1996) Skruzdžių kolonijų sistema + (Dorigo, Gambardella 1997a,b) Max-min skruzdžių sistema + (Stutzle, Hoos 1996, 1997) Ranginė skruzdžių sistema + (Bullnheimer et al. 1997, 1999) ANTS (Maniezzo, Carbonaro 2000) − Hiper-kubo skruzdžių sistema (Blum, Dorigo 2004; Blum et al. 2001) −

A. Skruzdžių sistema Egzistuoja trys skirtingos skruzdžių sistemos versijos (Dorigo 1992; Do- rigo et al. 1991, 1992). Jos yra grįstos skruzdžių tankiu, skruzdžių kiekiu ir skruzdžių ciklu. Skruzdžių tankiu ir skruzdžių kiekiu grįstos sistemos atnau- jina feromoną po kiekvienos skruzdės žingsnio, o tai lemia lėtą sistemos vei- kimą, todėl šios skruzdžių sistemos nebenaudojamos. Skruzdžių ciklu grįsta sistema yra greita, todėl naudojama. Kai literatūroje minima skruzdžių siste- ma, tai yra suprantama kaip skruzdžių ciklu grįsta sistema. Skruzdžių sistema 34 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA turi dvi pagrindines fazes: sprendinio sudarymą ir feromono atnaujinimą. Pra- džioje, feromono kiekį τ(0), rekomenduojama nustatyti truputį didesniu nei ti- kimasi sulaukti po pirmo skruzdžių žingsnio, apytiksliai (i,j),τi,j = τ(0) = ∀ m/Cnn, čia m – skruzdžių skaičius ir Cnn – kelio ilgis tarp miestų, gautas, naudojant artimiausio miesto algoritmą (kai kelias sudaromas judant tik į ar- čiausiai esantį, nelankytą miestą). Tai nėra griežtas reikalavimas, bet toks pasi- rinkimas leidžia išvengti skruzdžių pritraukimo prie tam tikro kelio po pirmų žingsnių ir išvengti greito užstrigimo lokaliame minimume. Kita vertus, jeigu τ(0) yra per didelis, tai daug iteracijų bus sugaišta, kol garavimas sumažins feromono kiekį iki tiek, kad rasti geresni keliai pradėtų įtakoti skruzdžių judė- jimą. Sprendinių sudarymas keliaujančio prekeivio uždaviniui spręsti remiasi skruzdžių judėjimu ir grįžimu atgal, aplankius visus miestus. Skruzdžių sistemoje, m dirbtinių skruzdžių vienu metu sudaro pilną kelią, aplankant visus miestus. Skruzdės talpinamos į miestus atsitiktinai. Po kiek- vieno žingsnio, skruzdė k priima, tam tikra tikimybe sąlygotą, sprendimą apie kitą lankomą miestą. Tikimybė skruzdei k judėti iš miesto i į miestą j aprašo- ma:

α β k (τi,j) (ηi,j) k pi,j = , kai j i , (1.8) Σ k (τ )α(η )β l∈Ni i,l i,l ∈N

čia: ηi,j = 1/di,j – euristinė informacija; α ir β – parametrai, nusakantys santykinę feromono ir euristinės informacijos įtaką; k – skruzdei k iš miesto Ni i pasiekiami nelankyti miestai. Pagal (1.8) tikimybė pasirinkti vieną ar kitą kelią auga kartu su feromo- no pėdsaku τi,j ir euristine informacija ηi,j. Jeigu α = 0, tada bus renka- mi artimiausi miestai ir algoritmas veiks kaip įprasta stochastinė paieška. Kai β = 0, tada algoritmą įtakoja tik feromonas, ir gaunami blogi sprendiniai, o ypač kai α > 1. Skruzdžių sistemai rekomenduojami parametrai yra: α = 1, β = [2 5]; garavimo koeficientas ρ = 0,5; skruzdžių skaičius m = n; ÷nn τ0 = m/C . Kai visos skruzdės randa galimus sprendinius, feromono pėdsakai yra at- naujinami. Iš pradžių feromonas yra garinamas iš visų esančių kelių:

τi,j = (1 ρ)τi,j, (i,j) L, (1.9) − ∀ ∈ čia: 0 < ρ 1 – garavimo koeficientas. ρ leidžia išvengti neriboto feromo- no augimo ir≤ kartu “pamiršti” apie anksčiau rastus blogus sprendinius. Jeigu skruzdės nepasirenka tam tikro kelio, tai feromono kiekis dėl garavimo mažėja. 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 35

Po garavimo kiekviena skruzdė palieka tam tikrą feromono kiekį:

m k τi,j = τi,j + ∆τ , (i,j) L, (1.10) i,j ∀ ∈ k=1 X k čia ∆τi,j yra kiekis feromono, kurį skruzdė k padeda savo kelyje:

k k k 1/C , kai kelias (i,j) T ; ∆τi,j = ∈ (1.11) (0, kitaip,

čia Ck – visas kelio T k kurį nuėjo skruzdė k ilgis. Iš (1.11), matome, kad kuo rastas kelias trumpesnis, tuo daugiau feromono bus padėta tame kelyje. Kitame žingsnyje skruzdės bus linkusios pasirinkti kelio atkarpas su aukštesniu fero- mono lygiu. Skruzdžių sistemos našumas, lyginant su kitais OSK algoritmais, prie sudėtingesnių uždavinių staigiai krenta, todėl buvo vykdoma daug tyrimų, bandant pagreitinti skruzdžių sistemą.

B. Elitinė skruzdžių sistema

Elitinė skruzdžių sistemos strategija pristatyta Dorigo (1992); Dorigo et al. (1991) buvo pirmas skruzdžių sistemos patobulinimas. Pagrindinė idėja buvo sustiprinti feromono pėdsaką geriausiose iki šiol rastose kelio T bs atkarpose. Papildomas feromono pėdsakas geriausiame iki šiol rastame kelyje gali bū- ti suprantamas kaip papildomas grįžtamas ryšis arba kaip papildoma elitinė skruzdė. Feromono atnaujinimas geriausiame iki šiol kelyje T bs vykdomas, didi- nant šio kelio atkarpų feromoną kiekiu e/Cbs. Feromono kiekis yra padidina- mas svoriu e, kuris priskiriamas geriausiam iki šiol rastam keliui, kurio ilgis yra Cbs. Bendras feromono atnaujinimas išreiškiamas:

m k bs τi,j = τi,j + ∆τi,j + e∆τi,j, (1.12) k=1 X k bs čia ∆τi,j – apibrėžtas (1.11), o ∆τi,j randamas iš:

bs bs bs 1/C , kai kelias (i,j) T ; ∆τi,j = ∈ (1.13) (0, kitaip. Feromono garavimas vykdomas kaip ir įprastoje skruzdžių sistemoje (1.9). Re- 36 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA komenduojami parametrai elitinei skruzdžių sistemai yra: α = 1; β = [2 5]; ÷ garavimo koeficientas ρ = 0,5; skruzdžių skaičius m = n; pradinis feromo- nn no kiekis τ0 = (e + m)/ρC ; svorį rekomenduojama parinkti lygiu miestų skaičiui e = n. Dorigo (1992) tyrimai parodė, kad parinkus atitinkamą svorį e, randami geresni, negu skruzdžių sistemos, sprendiniai per trumpesnį laiką.

C. Ranginė skruzdžių sistema

Kitas skruzdžių sistemos patobulinimas, buvo rango įvedimas, pasiūly- tas Bullnheimer et al. (1997, 1999). Ranginėje skruzdžių sistemoje kiekvie- nos skruzdės paliekamas feromono kiekis priklauso nuo jos rango. Papildomai, kaip ir elitinėje skruzdžių sistemoje, geriausią kelią radusi skruzdė palieka dau- giausia feromono. Prieš atnaujinant feromoną, skruzdės yra išrikiuojamos remiantis rasto ke- lio ilgiu. Tokiu būdu, trumpiausią kelią radusios skruzdės yra eilės pradžioje ir jų rangas r, kuris prasideda nuo 0, yra naudojamas kaip svoris feromono kie- kiui nustatyti. Jeigu kelios skruzdės rado vienodo ilgio kelius, tai aukštesnis rangas suteikiamas remiantis skruzdžių eiliškumu modelyje arba parenkamas atsitiktinai. Skruzdžių, turinčių mažiausią r skaičius, kuriam suteikiama teisė palikti feromono pėdsaką, yra lygus (w 1). Papildomai feromoną palieka vie- na skruzdė radusi geriausią kelią, kuri− nebūtinai turi aukštą rangą. Geriausio iki šiol rasto kelio ilgis Cbs per svorį w atlieka stipraus grįžtamo ryšio funkci- ją. Iteracijos geriausia skruzdė r įneša savo feromono kiekį 1/Cr , padaugintą iš svorio max 0,w r . Ranginėje skruzdžių sistemoje feromonas atnaujina- mas taip: { − } w−1 r bs τi,j = τi,j + (w r)∆τ + w∆τ , (1.14) − i,j i,j r=1 X r r bs bs čia: ∆τi,j = 1/C ; ∆τi,j = 1/C . Rekomenduojami parametrai ranginei skruzdžių sistemai yra: α = 1, β = [2 5]; garavimo koeficientas ρ = 0,1; skruzdžių skaičius m = n; pradinis fe- ÷ nn romono lygis τ0 = 0,5r(r 1)/ρC ; skruzdžių, kurios gali palikti feromono − pėdsaką skaičius w = 6. Bullnheimer et al. (1999) eksperimentinis ranginės skruzdžių sistemos įvertinimas parodė, kad sistema yra nedaug pranašesnė už elitinę skruzdžių sistemą. 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 37

D. Max-min skruzdžių sistema

Max-min skruzdžių sistema (Stutzle, Hoos 1996, 1997) išsiskiria iš skruz- džių sistemos iškart keturiais bruožais. Max-min skruzdžių sistema pakanka- mai stipriai tiria rastus geriausius kelius, leidžiant palikti feromono pėdsaką iteracijos geriausiai arba geriausią sprendinį radusiai iki šiol skruzdei. Tokia strategija lemia tai, kad labai greitai visos skruzdės pasirenka tik vieną kelią ir geriausias sprendinys nerandamas. Šiam efektui sumažinti, įvedamos feromo- no ribos [τmin,τmax]. Feromono pradinė reikšmė parenkama τmax, kas, kartu su silpnu garavimu, leidžia geriau ištirti sprendinių erdvę algoritmo vykdymo pradžioje. Galiausiai, jeigu sistema nesugeba surasti sprendinio arba kažkiek iteracijų neranda geresnio, nei iki šiol rasto sprendinio, feromono pėdsakams yra iš naujo priskiriamos pradinės reikšmės. Kai visos skruzdės randa sprendinius, atnaujinamas feromonas, tam tai- kant skruzdžių sistemos garavimą (1.9), ir paliekamas naujas feromono kiekis:

best τi,j = τi,j +∆τi,j , (1.15)

best best čia: ∆τi,j = 1/C . Skruzdė, kuriai leidžiama palikti feromono pėdsaką, best bs gali būti arba geriausią iki šiol kelią ∆τi,j = 1/C radusi skruzdė, arba best ib ib iteracijos geriausią ∆τi,j = 1/C kelią radusi skruzdė, čia C – iteracijos geriausio kelio ilgis. Bendrai, max-min skruzdžių sistemoje, strategijos yra tar- pusavyje keičiamos. Aišku, santykinio strategijos keitimo dažnio pasirinkimas turi įtakos sprendinio paieškos agresyvumui. Jeigu dažniau naudojama itera- cijos geriausios skruzdės strategija, tai feromonas yra paskirstomas didesnia- me plote, paieška lėta, bet leidžia surasti geresnį sprendinį. O kai naudojama iki šiol geriausios skruzdės strategija, tai paieška tampa labai agresyvi, vyksta greitai, apima mažą sprendinių erdvės dalį, nukenčia sprendinio kokybė. Eksperimentiniai tyrimai rodo, kad esant sąlyginai nedideliems keliaujan- čio prekeivio uždaviniams, patartina naudoti tik iteracijos geriausios skruzdės strategiją. Sprendžiant didelius keliaujančio prekeivio uždavinius, kai miestų skaičius siekia kelis šimtus, patartina dažniau taikyti iki šiol geriausios skruz- dės strategiją, pvz., didėjant iteracijų skaičiui, didinti iki šiol geriausios skruz- dės strategijos taikymo dažnį (Stutzle, Hoos 1999). Sprendinio užstrigimui išvengti, max-min skruzdžių sistemoje naudoja- mos feromono ribos [τmin,τmax]. Taip kartu ribojamos ir tikimybės pi,j, skruz- dei iš miesto i pasirinkti miestą j, ribos [pmin,pmax], kurios yra 0 < pmin k ≤ pi,j pmax 1. Tik kai skruzdė k turi vienintelį pasirinkimą = 1, ≤ ≤ |Ni | tuomet pmin = pmax = 1. 38 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

Kai iteracijų skaičiui yra pakankamai didelis ir dauguma skruzdžių, idea- liu atveju, pasirenka vieną ir tą patį trumpiausią kelią, viršutinė feromono riba tampa 1/ρC∗, čia C∗ – optimalaus kelio ilgis, kuris pradžioje nėra žinomas, todėl po kiekvieno iki šiol geriausio rasto kelio, viršutinė feromono riba per- bs skaičiuojama τmax = 1/ρC . Apatinė feromono riba irgi perskaičiuojama, atsižvelgiant į Stutzle, Hoos (2000) rekomendacijas:

1 √n 0,05 τmin = τmax − n , (1.16) (nvid 1) √0,05 − · čia nvid – vidutinis skaičius pasirinkimų, kuriuos turi skruzdė kiekviename mieste, sudarant sprendinį. Esant miestų skaičiui n, nvid = n/2. T. Stutzle eksperimentiniai rezultatai rodė, kad apatinė feromono riba turi didesnę įtaką sprendinio užstrigimui, nei viršutinė. Rekomenduojami parametrai max-min skruzdžių sistemai yra: α = 1, β = [2 5]; garavimo koeficientas ρ = 0,02; skruzdžių skaičius m = n; pradinis ÷ nn feromono lygis τ0 = 1/ρC . Max-min skruzdžių sistema yra viena iš plačiausiai tyrinėjamų ir tobulina- mų. Sprendžiant keliaujančio prekeivio uždavinį, max-min skruzdžių sistema leidžia surasti trumpesnį kelią nei kitos skruzdžių sistemos, nors ir veikia lė- čiau.

E. Skruzdžių kolonijos sistema Skruzdžių kolonijos sistema (Dorigo, Gambardella 1997a,b) skiriasi nuo įprastos skruzdžių sistemos trimis bruožais. Visų pirma plačiau tiriama spren- dinių erdvė. Feromono garavimas ir atnaujinimas vykdomas tik ant atkarpų, priklausančių iki šiol geriausiam keliui. Kiekvieną kartą, kai skruzdė praeina per kelio atkarpą (i,j), judant iš miesto i į miestą j, nuo atkarpos yra šalinamas tam tikras feromono kiekis, norint įtraukti į paiešką ir kitus kelius. Skruzdžių kolonijos sistemoje, kai skruzdė k juda iš miesto i į miestą j, miestas j pasirenkamas pagal pseudo atsitiktinės proporcijos taisyklę:

β argmax ∈N k τi,l(ηi,l) , kai q

čia: q – atsitiktinis skaičius su tolydžiu skirstiniu, ribose [0, 1]; q0 – koeficientas ribose [0, 1]; J – atsitiktinis skaičius, parinktas pagal tikimybes skirstinį (1.8), esant α = 1. Kitaip tariant, su tikimybe q0 skruzdė atliks geriausią ėjimą, at- sižvelgiant į sukauptą feromoną ir euristinę informaciją. Parametro q0 keitimas 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 39 leidžia keisti paiešką – koncentruotis ties iki šiol geriausiu keliu arba ieškoti plačiau. Skruzdžių kolonijos sistemoje, po kiekvienos iteracijos, tik viena, radusi iki šiol geriausią sprendinį, skruzdė gali palikti feromoną:

bs bs τi,j = (1 ρ)τi,j + ρ∆τ , (i,j) T , (1.18) − i,j ∀ ∈ bs bs čia ∆τi,j = 1/C . Feromono dėjimas ir garavimas atliekamas tik atkarpo- se, kurios priklauso T bs. Šitaip mažinama, su feromono atnaujinimu susijusi, skaičiavimų apimtis. Dorigo, Gambardella (1997a) eksperimentiniai tyrimai parodė, kad jeigu feromono atnaujinimui, vietoj iki šiol geriausio kelio, naudoti iteracijos geriau- sią kelią, tai nedideliam uždaviniui gaunami panašūs rezultatai, bet kai užda- vinys išauga iki šimtų miestų, tai geriausio iki šiol rasto kelio strategija yra pranašesnė. Kai skruzdė ieško galimą sprendinį, kiekvienos atkarpos feromonas atnau- jinimas: τi,j = (1 ξ)τi,j + ξτ0, (1.19) − čia 0 <ξ< 1, o rekomenduojama skaičiaus reikšmė yra 0,1. Pradiniam fe- nn romono lygiui τ0 = 1/nC , čia: n – miestų skaičius. Kiti rekomenduoja- mi parametrai: β = [2 5]; garavimo koeficientas ρ = 0,1; skruzdžių skai- ÷ čius m = 10. Tokio feromono atnaujinimo taikymas leidžia mažinti feromo- no kiekį keliuose, kurie nėra geri, platinti paieškos erdvę ir išvengti ankstyvo sprendinio užstrigimo. Skruzdžių kolonijos sistema yra grįsta Ant-Q, ankstesniu algoritmu pa- siūlytu Dorigo, Gambardella (1995). Vienintelis skirtumas tarp skruzdžių ko- lonijos sistemos ir Ant-Q yra τ0 reikšmė. Ant-Q sistemoje pasiūlyta pradinė feromono reikšmė τ0 = γmax ∈N k τi,j , čia γ – koeficientas. Maksimumas j i { } skaičiuojamas visam rinkiniui feromono pėdsakų iš atkarpų jungiančių mies- tą i, kuriame yra skruzdė k, su visais dar nelankytais miestais. Toks τ0 pasi- rinkimas buvo motyvuotas analogija su panašia formule Q-mokyme (Watkins, Dayan 1992). Išaiškinus, kad nustačius τ0 į mažą pastovią vertę, rezultatai be- veik nesiskyrė nuo skruzdžių kolonijos sistemos, pasižyminčios paprastesniu algoritmu, Ant-Q sistema daugiau nebenaudojama. Taip pat pastebimas ryšis tarp max-min skruzdžių sistemos ir skruzdžių kolonijos sistemos: abi naudoja feromono ribas, tik skruzdžių kolonijos siste- moje tos ribos nėra aiškiai išreikštos. Feromono kiekis negali būti mažesnis už τ0, todėl, kad pagal (1.18) ir (1.19), pridedamo feromono kiekis yra τ0 ≥ 40 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

1 1 2 1 2

1 1 4 skruzdė 4

1 1 1 12 20 12

1.5 pav. Skruzdės judėjimo krypties įtaka w(∆θ) Fig. 1.5. Ant movement direction influence w(∆θ)

ir pradinis nustatomas į τ0. Taip pat feromono kiekis negali būti aukštesnis bs bs už 1/C , todėl neakivaizdžios feromono ribos yra: τ0 τi,j 1/C , (i,j). ≤ ≤ ∀ Įdomu pastebėti, kad skruzdžių kolonijų sistema buvo pirmoji, kurioje, sprendžiant keliaujančio prekeivio uždavinį, buvo panaudotas miestų kandida- tų sąrašas, siekiant apriboti pasirinkimų skaičių ties arčiausiai esančiais mies- tais. Toks sąrašas leido pagreitinti skaičiavimus ir pagerinti jų kokybę (Dorigo, Gambardella 1996).

F. Skruzdžių kolonijos vaizdų apdorojime

Skruzdžių kolonijos veikimą apžvelgsime taikant ją vaizdui segmentuoti. Kolonija yra sudaryta iš skruzdžių, naudojamas gana paprastas skruzdės modelis. Skruzdės santykinę judėjimo krypties tikimybę galima užrašyti taip:

W (τj)w(∆Θ) k pi,j = , kai j i , (1.20) Σ k W (τ)w(∆Θ) l∈Ni ∈N

čia: j – ląstelės, kur galima nuvykti, indeksas; τj – feromono kiekis atitinka- mose ląstelėse; i – esama skruzdės ląstelė; w(∆θ) – judėjimo krypties įtaka kitam žingsniui (žr. 1.5 pav.), kai judėjimas vyko į šiaurę; W (τj) – feromono įtaka kitam žingsniui skaičiuojama pagal:

τ α W (τ)= 1+ , (1.21) 1+ δτ   čia: α parodo kiek stipriai feromonas įtakoja judėjimo kryptį; 1/δ – santykinis jautrumas feromonui (prie aukštų feromono koncentracijų jautrumas feromo- nui mažėja). 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 41

Kai skruzdė apsilanko ląstelėje, ji palieka tam tikrą feromono kiekį:

∆gl ∆τ = τ + g , (1.22) p 255

čia: τp – paliekamo feromono pastovus kiekis; ∆gl – kintantis feromono kiekis, priklausantis nuo skaisčio gradiento skirtumo tarp prieš tai buvusios ląstelės ir jos kaimynų ir dabartinės ląstelės ir jos kaimynų; g – konstanta. Su kiekvienu žingsniu feromono lygis visoje paieškos erdvėje mažinamas dydžiu ρ. Su tokiu paprastu skruzdžių elgesiu, siekiama sukaupti aukštą feromono lygį prie kontrastingų vaizdo sričių. Skruzdžių populiacijos valdymas vykdomas naudojant reprodukcijos ir energijos sąvokas. Kiekvienai skruzdei suteikiama pradinė energija E(0) ir kas žingsnį ji atnaujinama pagal:

∆gl E(t)= E(t 1) ∆E +∆E , (1.23) − − max∆gl

čia: t – laikas; ∆E – konstanta; max∆gl – didžiausias šios skruzdės rastas gradientas. Suteikiama pradinė energija E(0) lygi 1+∆E. Reprodukcija vyk- doma, kai šalia esančios skruzdės yra bent viena kita skruzdė ir yra laisva ląstelė. Reprodukcijos tikimybė skaičiuojama pagal:

(1 µ)∆gl P = R(n) µ + − , (1.24) R max∆  gl  čia: R(n) – reprodukcijos koeficientas (žr. 1.6 pav.); n - aplinkui užimtų ląstelių skaičius; µ – reprodukcijos konstanta. Feromono valdymas vykdomas per feromono garavimą, senėjimą, apribo- jimą ir perėjimų išlyginimą, privilegijuoto feromono dėjimą. Garavimo naudojimu išvengiama perteklinės feromono koncentracijos op- timaliuose keliuose. Skruzdės senėjimas mažina skruzdės išskiriamo feromono kiekį. Skruzdės ieško kitų sprendimo kelių. Feromono apribojimu ir išlyginimu išvengiama dominuojančių kelių su- darymo. Kartu su apribojimu turi būti naudojamas garavimas, kitaip skruzdės negalės pasirinkti tinkamo kelio. Privilegijuotas feromono palikimas skruzdžių grupei leidžiant palikti dau- giau feromono nei kitoms. Greičiau konverguojama į sprendimą. Efektas pana- šus į senėjimą. 42 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

R(n)

1 0,75 0,5 0,25

1 2 3 4 6 7 8 0 5 n

1.6 pav. Reprodukcijos koeficiento kitimas Fig. 1.6. Reproduction coeficient

Egzistuoja nemažai įvairiausių skruzdžių kolonijų vaizdams apdoroti tai- kymų: kraštų radimas (Lu, Chen 2008), spalvų paletės mažinimas (Ghanbarian et al. 2007), požymių parinkimas atpažinimui (Yan, Yuan 2004), vaizdų regu- liarizacija, naudojant maišytą OSK ir Markovo modelius (Hgarat-Mascle et al. 2007), vaizdų registravimas (Meshoul, Batouche 2002), segmentavimo (Ou- adfel, Batouche 2002, 2003), slenksčio funkcijos taikymas (Malisia, Tizhoosh 2006a,b), kontūrų sekimas (Lai et al. 2009).

G. Skruzdžių kolonijos LPLM įrenginiuose

Allaire et al. (2009); Guntsch et al. (2002); Martin (2001); Mehmood et al. (2008); Shackleford et al. (2001); Sitkoff (1995) darbuose aprašyti evoliucinių skaičiavimų įgyvendinamumo LPLM tyrimai. Išsamių našumo tyrimų, palygi- nimų su kitais metodais, kai skruzdžių sistema įgyvendinta LPLM įrenginyje, naudojant MicroBlaze programinį procesorių, pateikta nebuvo. Guntsch et al. (2002) pristatė populiacijomis grįstą optimizavimą skruz- džių kolonijomis LPLM Virtex XCV300 įrenginyje. Autoriai atliko tyrimus įgyvendinti OSK tiesiogiai sudarant modulius iš trigerių ir loginių blokų. Toks pasirinkimas leidžia pasiekti aukštą veikimo spartą bet prarandamas lankstu- mas, taikant įgyvendintą OSK kitiems uždaviniams spręsti. Huerta et al. (2005) įgyvendino OSK sistemoje su daugeliu LPLM, ku- riuose veikė MicroBlaze programinis procesorius. Autoriai atliko našumo ty- rimus perduodant duomenis iš procesoriaus į procesorių bei sistemos našumo prieaugį didinant LPLM skaičių. Tačiau autoriai neatliko individualių Mic- roBlaze programinių procesorių konfigūracijų tyrimų, įgyvendinant OSK. 1.2. Evoliuciniai skaičiavimai vaizdams apdoroti 43

1.2.4. Skruzdžių algoritmai

Skruzdžių algoritmų terminą įvedė Dorigo et al. (2000) ir Dorigo (2001). Skruzdžių algoritmai yra grįsti skruzdžių kolonija, naudojančia stigmergiją. Keičiant algoritmo stigmergiją, keičiama ir viso algoritmo sprendinio paieška. Maisto paieška, tai ne vienintelis skruzdžių elgesys, kuris naudojamas mo- deliavime. Taip pat svarbūs yra rūšiavimas ir darbo jėgos paskirstymas. A. Kiti metodai grįsti maisto paieška ir kelio ženklinimu Kaip jau žinome, maisto paieška yra OSK metaeuristikos pagrindas. Bet yra ir kitų algoritmų, kurie grindžiami maisto paieška su kelio ženklinimu. Wagner et al. (1996) ir Wagner et al. (1998) pasiūlė skruzdžių vaikščiojimą kraštinėmis ir viršūnėmis algoritmą, kuriame viena ar kelios skruzdės juda nuo vieno prie kito grafo mazgo, paliekant tam tikrą feromono kiekį. Skirtumas yra tas, kad feromonas naudojamas kaip atmintis, skruzdės yra atstumiamos fero- mono ir kreipiamos lankyti dar nelankytus mazgus. Tokio algoritmo tikslas yra aplankyti visus grafo mazgus, net nežinant grafo topologijos. Algoritmas buvo patobulintas Wagner et al. (2000) ir gali būti taikomas dinaminėms to- pologijoms. Algoritmas buvo bandomas interneto paieškos sistemai kurti, kai kiekvieną dieną atsiranda šimtai tūkstančių naujų dokumentų ir bazės papildy- mui algoritmas randa visus naujus, pakeistus ir ištrintus puslapius (Lawrence, Giles 1998). B. Skruzdžių rūšiavimas Skruzdžių rūšiavimas gali būti pastebėtas įvairiose skruzdžių kolonijose. Skruzdės rūšiuoja kolonijos perus, perkeliant kiaušinėlius ir mažas lervas į centrą, didesnes lervas į kraštus. Panašus elgesys yra aptinkamas skruzdėms valant skruzdėlyną – visos mirusios skruzdės yra sudedamos į krūveles. To- kiam elgesiui aprašyti Deneubourg et al. (1991) pasiūlė modelį, pagal ku- rį skruzdė paima arba numeta daiktus, pagal aplinkui esančių panašių daik- tų skaičių. Pvz., jeigu skruzdė neša mažą kiaušinėlį, tai su didele tikimybe ji numes kiaušinėlį jeigu aplink bus daug mažų kiaušinėlių, ir atvirkščiai, jeigu skruzdė aptinka didelį kiaušinėlį tarp mažų kiaušinėlių, tai su didele tikimybe ji pakels didelį kiaušinėlį. Lumer, Faieta (1994) ir Kuntz et al. (1999) pritaikė šį modelį grupavi- mo uždaviniui. Duotas rinkinys taškų n-matėje erdvėje ir metrika d, kuri rodo atstumą tarp taškų. Taškai turi būti projektuojami į plokštumą taip, kad pro- jekcijoje du šalia esantys taškai taip pat būtų šalia pagal metriką d. Pradinė projekcija yra atsitiktinė. Dirbtinės skruzdės atsitiktiniu būdu vaikšto perkel- 44 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA damos taškus pagal Deneubourg et al. (1991) modelį. Gauti rezultatai koky- biškai artimi gautiems rezultatams, naudojant klasikinius metodus, tokius kaip spektrinė dekompozicija ar įtempimo minimizavimas (Kuntz et al. 1999), tik su mažesnėmis skaičiavimo sąnaudomis. Handl, Meyer (2002) išplėtė modelį, pritaikė jį interneto dokumentams ir jų tematikų žemėlapiams (Fabrikant 2000) klasifikuoti. Modelis taip pat buvo taikomas robotų sistemose, kurios atlikdavo rūšiavimus be centralizuoto valdymo (Beckers et al. 1994; Holland, Melhuish 1999; Martinoli, Mondada 1998).

Visuose modelio pritaikymuose stigmergija buvo išreiškiama per objektų vietos keitimą skruzdžių pagalba.

C. Darbo jėgos paskirstymas

Skruzdžių kolonijoje kiekviena skruzdė specializuojasi tam tikrame dar- be (Robinson 1992). Skruzdės gali keisti savo elgesį priklausomai nuo aplin- kybių. Skruzdė kareivis gali tapti maisto ieškotoja, auklėtoja gali tapti apsau- gininkė. Tokiu būdu skruzdės sugeba prisitaikyti prie pastoviai besikeičian- čių sąlygų. Robinson (1992) sukūrė slenksčio metodą, kuriame dalis skruzdžių darbininkių gali turėti aukštą slenksčio lygį ir reaguoti į aukštą dirgiklio lygį, o dalis – žemą, ir reaguoti į žemą dirgiklio lygį. Tokiu būdu, augant dirgik- lio lygiui, vis daugiau skruzdžių keis savo specializaciją ir skirs tam dirgikliui dėmesį. Šiuo atveju dirgiklis yra traktuojamas kaip stigmergija.

Toks darbo jėgos paskirstymo metodas buvo panaudotas sprendžiant dina- minius darbų paskirstymo uždavinius (Bonabeau et al. 1999, 1997). Bonabeau et al. (1999) ir Campos et al. (2000) parodė modelio pritaikymą dažymo ceche. Kiekvienoje dažymo kabinoje atliekami savos spalvos dažymo darbai ir, kai ki- tos kabinos nesusitvarko su staiga padidėjusiu kėbulų srautu, dažymo kabina gali pakeisti naudojamą spalvą, siekiant tolygiau paskirstyti padidėjusį srautą. Panašūs uždaviniai buvo nagrinėjami Noyan (2002) ir Circirello, Smith (2001).

Krieger, Billeter (2000) ir Krieger et al. (2000) slenksčio modelį panau- dojo robotų grupei organizuoti. Maži robotai turėjo surinkti visus objektus ir nunešti juos į „skruzdėlyną“. Suteikta robotam energija laikui bėgant mažėjo, bet buvo padidinama kaskart kai robotas atnešdavo vieną objektą – „maistą“. Daugiau energijos suvartojama, kai robotas juda nei kai stovi „skruzdėlyne“. Kiekvienas robotas turėjo savo slenkstį kolonijos energijai. Kai tik energija su- mažėdavo iki jo slenksčio, robotas palikdavo „skruzdėlyną“ ir eidavo ieškoti objektų. 1.3. Disertacijos uždavinių formulavimas 45

D. Bendradarbiavimas transportuojant Skruzdžių bendradarbiavimo, transportuojant didelius daiktus, modelis bu- vo taikytas paskirstytuose valdymo algoritmuose valdant robotų grupę (Marti- noli, Mondada 1998). Vienas iš robotų grupės vertinimo uždavinių – tai dėžės stumdymas „skruzdėlyno“ link (Kube, Zhang 1994). Kai kurios skruzdžių rū- šys, kai nesugeba nugabenti maisto į skruzdėlyną, bando įdarbinti kitas skruz- des tiesioginio kontakto būdu arba paliekant cheminę medžiagą (Franks 1986; Moffett 1988; Studd 1965). Skruzdės juda aplink maistą, bandydamos prieiti iš įvairių pusių tol, kol sugeba pajudinti maistą skruzdėlyno link. Toks algorit- mas, panaudotas grupėje robotų, buvo įgyvendintas ir patikrintas Kube, Zhang (1994). Kitas panašus uždavinys, kuriame robotai tempia objektą „skruzdėly- no“ link, buvo įgyvendintas Dorigo et al. (2003) projekto „swarm-bots“ ribose.

1.3. Disertacijos uždavinių formulavimas

Atlikus analitinę evoliucinių skaičiavimų vaizdams apdoroti apžvalgą, for- muluosime disertacijos uždavinius. L Sprendžiant keliaujančio prekeivio uždavinį, max-min skruzdžių sistema iš visų optimizavimo skruzdžių kolonija būdų yra viena pranašiausių. Nors naudojant MMSS sprendinio paieška trunka ilgiau, tačiau pasie- kiamas tikslesnis rezultatas (sprendinys). Max-min skruzdžių sistemos taikymas vaizdų pirminiam apdorojimui mokslinėje literatūroje nenagri- nėtas. Taigi verta sukurti ir ištirti metodiką, grindžiamą max-min skruz- džių sistema, kuri tiktų atlikti vaizdų pirminį apdorojimą. Reikalui esant, gali tekti pasiūlyti patobulinimus, užtikrinančius spartesnį specializuo- to MMSS algoritmo konvergavimo greitį. Naujos metodikos sukūrimas leistų automatizuoti pirminį vaizdų apdorojimą. L Mokslinėje literatūroje pateikti du esminiai vaizdo segmentavimo dauge- liu skruzdžių kolonijomis metodai (Bocchi et al. 2005; Fernandes et al. 2005) turi trūkumų: reikalauja papildomo vaizdų apdorojimo (vanden- skyros transformacija), skruzdžių kolonijų skaičius negali būti parinktas iš anksto nežinant segmentų skaičių, pagaliau literatūroje pateikti tyrimų rezultatai naudojant nesudėtingos sandaros vaizdus. Taigi šioje tematiko- je tikslinga gilintis į skruzdžių kolonijų populiacijų valdymą. Nuspręsta sukurti ir ištirti metodiką, grindžiamą daugelio skruzdžių kolonijų sis- tema su populiacijos valdymu. Siekiant atskleisti metodikos efektyvumą verta eksperimentus atlikti su biochemijoje naudojamais vaizdais, nes jų 46 1. EVOLIUCINIŲ TECHNOLOGIJŲ VAIZDAMS APDOROTI APŽVALGA

automatinis segmentavimas yra sudėtingas (Matuzevičius, Navakauskas 2005; Serackis 2008) ir dar neišspręstas uždavinys. L Evoliuciniais skaičiavimais grįsti uždavinių sprendimo būdai dažnai rei- kalauja didelių kompiuterinių resursų. Kitą vertus jie iš esmės tinkami ly- giagretinti. Lauku programuojamų loginių matricų technologijos, būda- mos vienomis moderniausių, yra tinkamos evoliuciniams skaičiavimams įgyvendinti (Allaire et al. 2009; Guntsch et al. 2002; Martin 2001; Meh- mood et al. 2008; Shackleford et al. 2001). MicroBlaze programinio pro- cesoriaus vidinių modulių įtaka, įgyvendinant optimizavimą skruzdžių kolonija, mokslinėje literatūroje nenagrinėta. Taigi verta ištirti galimy- bę įgyvendinti skruzdžių sistemą MicroBlaze programiniu procesoriumi LPLM įrenginyje ir ištirti šio įgyvendinimo našumą bei tuo pačiu tiks- lingumą. 2

Vaizdų pirminio apdorojimo max-min skruzdžių sistema metodikos kūrimas

Pirminio vaizdų apdorojimo metu išskiriami tolimesnei vaizdo analizei reikalingi požymiai ir (arba) šalinami nereikalingi triukšmai ar fonas. Pirmi- nis vaizdų apdorojimas plačiai taikomas, pvz., telekomunikacijoje, transporto srauto kontrolės sistemose, biometrijoje ir medicinoje. Sparčiai augant vaiz- dais grįstų technologijų ir paslaugų skaičiui, iš pirminio vaizdų apdorojimo reikalaujama ne tik spartos bet ir universalumo, t. y. adaptavimosi prie besi- keičiančių sąlygų ar visiško automatizmo. Šiame skyriuje sprendžiama vaizdų pirminio apdorojimo, naudojant max-min skruzdžių sistemą, problema. Patei- kiama bendrinė max-min skruzdžių sistema, pasiūlant originalią metodiką, ji pritaikoma atlikti pirminį vaizdų apdorojimą. Sukuriami ir vėliau ištiriami du, nauja vaizdų pirminio apdorojimo metodika grįsti, algoritmai. Pateikti tyrimo rezultatai viešai skelbti autoriaus publikacijoje (Laptik et al. 2009a).

2.1. Vaizdų pirminio apdorojimo problemos formulavimas

Vaizdų pirminis apdorojimas yra šiuolaikinis ir svarbus uždavinys, išsiski- riantis specifiniais vaizdų apdorojimui keliamais reikalavimais. Didelė įvairovė

47 48 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS taikomų vaizdo apdorojimo funkcijų ir parametrų reikalauja šioje srityje taikyti netradicinius, dirbtiniu intelektu grįstus metodus.

2.1.1. Vaizdų pirminio apdorojimo svarba

Pradinis vaizdas savyje turi daug informacijos ir pirminio vaizdų apdoro- jimo metodai skirti šią informaciją vaizde išskirti arba pašalinti nereikalingą. Vaizdų pirminis apdorojimas yra vienas iš svarbių žingsnių visoje apdorojimo sekoje, nes nuo pirminio apdorojimo priklauso tolimesnių vaizdo analizės eta- pų sėkmė. Transporto srauto sekimo sistemose pirminis apdorojimas gali būti taikomas fonui šalinti, normalizuoti skaisčio histogramą. Biometrijoje, pvz., veido atpažinime, irgi reikalingas fono šalinimas, apšvietimo kompensavimas ir veido vietos nustatymas atpažinimo algoritmams. Medicinoje gautų nuotrau- kų kokybei gerinti taikomas pirminis apdorojimas leis išskirti dominančias sa- vybes, kas lems didesnę tikimybę gydytojui teisingai diagnozuoti ligą. Pirmi- nis vaizdų apdorojimas taikomas telekomunikacijoje glaudinant vaizdus prieš perdavimą, taip pat koduojant vaizdus saugojimui.

2.1.2. Vaizdų pirminio apdorojimo specifika

Atliekant pirminį vaizdų apdorojimą dažnai yra neaišku, kokius vaizdo ap- dorojimo operatorius ar funkcijas naudoti, norint gauti vieną ar kitą efektą. Pir- minio apdorojimo veiksmų seka yra kuriama kiekvienam uždaviniui atskirai. Netgi panaudojus reikiamus vaizdo apdorojimo operatorius, rezultatas būna ne visada toks, kokio tikimasi. Vaizdo apdorojimo funkcijos dažnai turi ne vieną parametrą, o kelis, ir jų reikšmės gali stipriai įtakoti rezultatą. Taigi priminio vaizdų apdorojimo veiksmų sekos parinkimas tampa sudėtingu optimizavimo uždaviniu.

2.1.3. Skruzdžių sistemų taikymo galimybės

Max-min skruzdžių sistema yra bendrosios paskirties optimizavimo meto- das, iš esmės skirtas spręsti kombinacinius uždavinius, ir dar netaikytas pirmi- niame vaizdų apdorojime.

Problema. Turint baigtinę vaizdų apdorojimo operatorių seką l, konkre- čius pradinį Vprd ir galutinį Vgal nespalvotus vaizdus, nėra žinoma kaip taikyti max-min skruzdžių sistemą, norint tinkamai atlikti pirminį vaizdų apdorojimą, t.y. rasti sąryšį tarp pradinio ir galutinio vaizdų. 2.2. Max-min skruzdžių sistemos tobulinimas 49

2.2. Max-min skruzdžių sistemos tobulinimas

Prieš pateikiant originalius patobulinimus, pradžioje aptarsime bendrinį max-min skruzdžių sistemos metodą.

2.2.1. Bendrinė max-min skruzdžių sistema

Originalų max-min skruzdžių sistemos modelį pasiūlė Stutzle, Hoos (1996, 1997). Pirmas iš esminių skruzdžių sistemos skirtumų nuo kitų optimizavimo skruzdžių kolonijomis metodų yra feromono atnaujinime. Įprastai feromoną palieka kiekviena skruzdė. Skruzdžių sistemoje, feromoną palieka tik lokaliai geriausią arba globaliai geriausią sprendimą radusi skruzdė. Keliaujančio prekeivio uždavinys (KPU), tai paplitęs būdas, siekiant patik- rinti algoritmo gebėjimus spręsti optimizavimo uždavinius. Pagrindinis KPU tikslas prekeiviui – aplankyti visus miestus trumpiausiu maršrutu. Patikrinimui naudojamas simetrinis KPU, kai nuvykimo pirmyn ir atgal kaina yra vienoda. Kai miestų skaičius yra nedidelis, uždavinys yra paprastas, bet jam didėjant, galimų sprendimų skaičius, kai miestų yra n, tampa n!. Naudojant skruzdžių sistemą, skruzdžių skaičius m parenkamas lygus mies- tų skaičiui. Pradžioje skruzdės miestuose išdėstomos atsitiktinai, dažniausiai po vieną skruzdę į miestą. Kiekviename žingsnyje skruzdės juda į dar neaplan- kytą miestą pagal tam tikrą tikimybę. Skruzdės judėjimo tikimybė skaičiuoja- ma pagal (1.8), įtakojama feromono pėdsaku τi,j(t) ir vietine euristine infor- macija η = 1/dij, kuri priklauso nuo atstumo dij tarp miestų i ir j. Skruzdės su didesne tikimybe pasirenka miestus, kurie yra arti ir sujungti stipriu fero- mono pėdsaku. α ir β yra du parametrai, kurie nusako feromono ir euristinės k informacijos santykinę svarbą. Nl yra rinkinys dar neaplankytų miestų. Feromono pėdsakai atnaujinami tik tada, kai visos skruzdės aplankė visus miestus. Prieš pėdsakų atnaujinimą, atliekamas feromono garavimas remiantis garavimo parametru ρ (0 ρ 1): ≤ ≤

τi,j(t +1) = ρ τi,j(t). (2.1) · Feromonas paliekamas rastame trumpiausiame kelyje:

best τi,j(t +1) = τi,j(t)+∆τi,j , (2.2)

best best best čia: ∆τi,j = 1/f(s ); f(s ) – sprendinio ilgis. Sprendinio ilgis gali būti vienos iteracijos geriausias sbest = sib arba globaliai geriausias. 50 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

Antrasis max-min skruzdžių sistemos skirtumas yra feromono ribų naudo- jimas: 1 1 τmax = ; (2.3a) 1 ρ · f(sgb) − n τmax (1 √pbest) τmin = · − n , (2.3b) (nvid 1) √pbest − ·

čia: pbest = ppas; ppas – pasirinkimas kiekviename mieste; vidutinis pasirinki- mų skaičius nvid = n/2; τmin > 0.

Pradžioje visos feromono reikšmės prilyginamos τmax. Po kiekvienos itera- cijos feromono ribos atnaujinamos. Po atnaujinimo atliekama feromono reikš- mių patikra: τ (t)= τ , kai τ (t) >τ ; i,j max i,j max (2.4) (τi,j(t)= τmin, kai τi,j(t) <τmin.

Feromono ribų dėka, paprastai formuluojama konvergavimo sąlyga: kai tik vienas feromono pėdsakas siekia τmax, o visi kiti pėdsakai siekia τmin, sprendi- nys rastas. Uždaviniui iš n = 20 miestų, tipiniai max-min skruzdžių sistemos para- metrai: skruzdžių skaičius m = 20; α = 1; β = 2; ρ = 0,02; pbest = 0,05.

2.2.2. Specializuota max-min skruzdžių sistema

Bendrinė max-min skruzdžių sistema turi būti patobulinta siekiant ją pri- taikyti konkrečiam pirminio vaizdų apdorojimo uždaviniui. Visų pirma turime padaryti prielaidą, kad pasirinktoje vaizdų apdorojimo operatorių sekoje yra konkretiems vaizdams apdoroti tinkami operatoriai, t.y., taikant bent vieną iš pasirinktų vaizdo apdorojimo operatorių pradiniam vaizdui, gauname galuti- nio vaizdo artinį. Teikiami sistemai vaizdai yra nespalvoti ir vienodo dydžio. Sistemai parinkti operatorių seką, teikiami pirminis ir galutinis vaizdai. Pagrindinė specializuotos max-min skruzdžių sistemos kūrimo idėja yra ta, kad skruzdės juda vaizdo apdorojimo operatorių ir funkcijų parametrų grafe (žr. 2.1 pav.). Kiekvienas šio grafo mazgas susietas su vieninteliu vaizdo apdo- rojimo operatoriumi arba funkcijos parametru. Grafo briaunos – tai skruzdžių keliai, kuriais skruzdės keliaus palikdamos feromoną ir taip pasirinkdamos ge- riausio kelio arba geriausios operatorių sekos sprendinį. 2.3. Naujos vaizdų pirminio apdorojimo metodikos detalizavimas 51

2.1 pav. Vaizdo pirminio apdorojimo operatorių sekos radimo iliustracija Fig. 2.1. Illustration of search for image pre-processing operators sequence

2.3. Naujos vaizdų pirminio apdorojimo metodikos detalizavimas

Naujos vaizdų pirminio apdorojimo metodikos detalizavimą pateiksime dviem žingsniais: pirma aptarsime esminius metodikos žingsnius, o vėliau pa- teiksime galimą metodikos įgyvendinimą – vaizdų pirminio apdorojimo max- min skruzdžių sistemą algoritmą.

2.3.1. Vaizdų pirminio apdorojimo max-min skruzdžių sistema metodika

2.2 algoritme pateikti pagrindiniai pirminio vaizdo apdorojimo taikant max-min skruzdžių sistemą metodikos žingsniai.

2.1 algoritmas (Vaizdų pirminio apdorojimo MMSS metodika)

1. Max-min skruzdžių sistemos inicializavimas. 2. Pirminių sprendinių parinkimas. 3. Vietinė paieška. 4. Feromono atnaujinimas. 5. Konvergavimo sąlygos patikrinimas. 6. Jeigu sąlyga netenkinama grįžtama prie 2 žingsnio. 52 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

Pirmuoju etapu skruzdžių sistemos parametrams priskiriamos pradinės reikšmės. Pateikiami pradinis ir galutinis nespalvoti vaizdai. Paruošiama vaiz- dų apdorojimo operatorių ir parametrų lentelė. Antruoju etapu, sudaromi priminiai sprendiniai iš vieno operatoriaus ir tikrinama, koks pasiektas sutapimas tarp gauto ir pateikto galutinio vaizdų. Sprendinių sudarymas tęsiamas parenkant papildomus operatorius, kad sekos ilgis padidėtų iki dviejų operatorių. Vėl tikrinamas sutapimas tarp gauto ir pa- teikto galutinio vaizdų. Jeigu aptiktas geresnis rezultatas, operatorių seka už- rašoma. Šie veiksmai kartojami kol sprendinių sekų ilgis pasiekia maksimalų leistiną ilgį. Tuomet, atsižvelgiant į kiekvienos skruzdės rastas sekas, išrenka- ma ta seka, kurios rezultatas mažiausiai skiriasi nuo pateikto gautinio vaizdo. Taip netiesiogiai atliekama vietinė paieška (trečiasis metodikos etapas). Ketvirtuoju etapu, feromonas paliekamas tik operatoriuose kurie priklauso rastai sekai. Išskirtinė savybė siūlomos metodikos: skruzdžių pradinės padėties valdymas feromono pagalba. Siūlomi du skruzdžių pradinės padėties valdymo būdai: pirmas – grįstas tiesiogine priklausomybe nuo feromono lygio; kitas – grįstas pastoviu kiekiu perkeliamų skruzdžių iš operatorių su žemiausiu fero- mono lygiu į operatorius su aukščiausiu feromono lygiu. Feromono garinimas atliekamas visiems operatoriams. Užbaigimo sąlyga įvykdoma, kai pasiektas maksimalus iteracijų skaičius arba kai randama vaizdų apdorojimo operatorių seka, kuri leidžia išgauti ten- kinamą galutinį vaizdą (penktasis ir šeštasis metodikos etapai).

2.3.2. Vaizdų pirminio apdorojimo max-min skruzdžių sistema algoritmas

Max-min skruzdžių sistemos algoritmui, skirtam pirminiam vaizdų apdo- rojimui, inicializavimo metu pateikiami pradinis Vprd ir galutinis Vgal vaizdai. Tuomet skaičiuojamas pbest = 1/n. Pradinės feromono ribos τmax ir τmin skai- čiuojamos pagal (2.3). nvid = n, nes kiekvienas operatorius vienodai galimas sekoje. Blogiausio sprendimo nuostoliai:

best f(s )= Vx Vy 255, (2.5) · ·

čia: Vx ir Vy vaizdo taškų skaičius atitinkamomis kryptimis; 255 – skaisčio reikšmių skaičius. Įprastai sprendinį sudaro baigtinis operatorių skaičius. Skaičiavimams su- paprastinti skruzdžių kelio ilgis ribojamas, t.y., lmax = 6. Bendrinis max-min skruzdžių sistemos metodas taiko vieną skruzdę vie- 2.3. Naujos vaizdų pirminio apdorojimo metodikos detalizavimas 53 nam miestui. Toks skruzdžių išdėstymas suteikia lygią tikimybę skruzdėms su- rasti geriausią sprendimą. Vykdant max-min skruzdžių sistemos algoritmą keliaujančio prekeivio už- daviniui, kiekviena skruzdė aplanko dar neaplankytus miestus. Vaizdo apdoro- jimo atveju, tas pats operatorius gali būti taikomas kelis kartus (žr. 2.2.2 sky- rių). Skruzdė turi turėti galimybę aplankyti jau lankytus miestus. Tam tikslui euristinė informacija η keičiama į: 1 η = op . (2.6) 1+ lmax l − Tokiu būdu η tampa priklausoma nuo taikyto operatoriaus atstumo laike lop. Ką tik taikytas skruzdės operatorius, turi mažesnę tikimybę būti panaudotas, negu operatorius sekoje kuris dar nebuvo taikytas. Bendrinėje max-min skruzdžių sistemoje, sprendžiant keliaujančio prekei- vio problemą, kiekviena skruzdė turi vienodą tikimybę rasti gerą sprendinį. Vaizdo apdorojimo atveju, pradžia tam tikrame mieste gali lemti geresnį spren- dinį, todėl bendrinės max-min skruzdžių sistemos metodas keičiamas jį pa- pildant skruzdžių pirminio išdėstymo feromono valdymu. Pirminio išdėstymo start start feromono matricai τ priskiriama pradinė reikšmė τmax : 1 1 τ start = , (2.7) max 1 ρ · n − ir kiekvieną žingsnį τ start keičiamas taip:

τ start(t +1) = τ start(t) ρ + n ∆τ best. (2.8) i i · i q Siūlomos dvi pradinio skruzdžių išdėstymo, grįstos feromono valdymu, modifikacijos: Mod1 ir Mod2. MMSS Mod1 – pirma modifikacija, kur skruzdžių padėties valdymas iš- reiškiamas: start start k τi (t) pi (t)= start , (2.9) l∈N τl (t) start k čia: pi – tikimybė skruzdei k pradėtiP mieste i; N – miestai. Pradinė padėtis renkama ruletės sukimo metodu, naudojant tikimybių vektorių pstart. MMSS Mod2 – antra pradinės skruzdžių padėties valdymo modifikacija. Su kiekviena iteracija tam tikras skaičius skruzdžių mper perkeliamas iš miestų start su žemiausiu feromono lygiu τmin į miestus su aukščiausiu feromono lygiu start τmax . 54 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

Lokali paieška naudojama, siekiant rasti lokaliai geriausią sprendimą, ku- rio kaštas f(sbest) būtų mažiausias. Lokali paieška ne tik randa lokaliai geriau- sią seką, bet ir tampa skruzdės stabdymo kriterijumi. 2.2 ir 2.3 algoritmuose detalizuotai pateikti atitinkamai Mod1 ir Mod2 mo- difikacijos vaizdų pirminio apdorojimo su max-min skruzdžių sistema žings- niai.

2.2 algoritmas (Vaizdo pirminis apdorojimas MMSS Mod1)

1. Priskirti parametrų pradines reikšmes: n = 84; m = 84; α = 1; β = start start 2; ρ = 0,02; lmax = 6; nvid = n; pbest = 1/n;τ0 = τmax – apskaičiuoja- mas pagal (2.7).

2. Paruošti pradinį Vprd ir galutinį Vgal vaizdus. 3. Išdėstyti skruzdes po vieną prie operatoriaus ar funkcijos su parametrais. 4. Įvertinti ribas pagal (2.4). 5. Pagal (2.9), perkelti skruzdes iš operatorių su mažiausių feromono kiekių į operatorius su didesniu feromono kiekiu. 6. Apskaičiuoti η pagal (2.6). 7. Kitą operatorių parinkti pagal (1.8). 8. Įrašyti buvusį operatorių į skruzdės k operatorių seką l. 9. Įvertinti esamą sprendinį, jeigu geresnis nei iki šiol rastas, įsiminti esamą.

10. Jei nepasiektas lmax, grįžti į 6 žingsnį. 11. Atlikti feromono garavimą pagal (2.1). 12. Skruzdė, kuri rado geriausią sprendinį, palieka feromoną pagal (2.2). 13. Skruzdė, kuri rado geriausią sprendinį, pažymi savo pradinį operatorių fe- romonu pagal (2.8). 14. Jeigu nerasta tinkama operatorių seka ir nepasiektas maksimalus iteracijų skaičius grįžtama prie 3 žingsnio.

2.3 algoritmas (Vaizdo pirminis apdorojimas MMSS Mod2)

1. Priskirti parametrų pradines reikšmes: n = 84; m = 84; mper = 0,20 start start· m; α = 1; β = 2; ρ = 0,02; lmax = 6; nvid = n; pbest = 1/n;τ0 = τmax – apskaičiuojamas pagal (2.7).

2. Paruošti pradinį Vprd ir galutinį Vgal vaizdus. 2.4. Vaizdų pirminio apdorojimo metodikos tyrimas 55

3. Išdėstyti skruzdes po vieną prie operatoriaus ar funkcijos su parametrais. 4. Įvertinti ribas pagal (2.4).

5. Perkelti iš mper miestų su mažiausiu feromono kiekiu, skruzdes į mper mies- tus su didžiausiu feromono kiekiu. 6. Apskaičiuoti η pagal (2.6). 7. Kitą operatorių parinkti pagal (1.8). 8. Įrašyti buvusį operatorių į skruzdės k operatorių seką l. 9. Įvertinti esamą sprendinį, jeigu geresnis nei iki šiol rastas, įsiminti esamą.

10. Jei nepasiektas lmax, grįžti į 6 žingsnį. 11. Atlikti feromono garavimą pagal (2.1). 12. Skruzdė, kuri rado geriausią sprendinį, palieka feromoną pagal (2.2). 13. Skruzdė, kuri rado geriausią sprendinį, pažymi savo pradinį operatorių fe- romonu pagal (2.8). 14. Jeigu nerasta tinkama operatorių seka ir nepasiektas maksimalus iteracijų skaičius grįžtama prie 3 žingsnio.

2.4. Vaizdų pirminio apdorojimo metodikos tyrimas

Prieš pateikiant metodikos tyrimo rezultatus, aptarsime eksperimentų pla- ną.

2.4.1. Dirbtinių vaizdų pirminio apdorojimo eksperimentų planas

A. Tyrimo objektas Tiriamos trys max-min skruzdžių sistemos (MMSS) algoritmų modifika- cijos: • MMSS – be pradinio skruzdžių padėties valdymo. • MMSS Mod1 – su pradiniu skruzdžių padėties valdymu, remiantis fe- romono kiekiu. • MMSS Mod2 – su pradiniu skruzdžių padėties valdymu, remiantis nu- statytu perkeliamų skruzdžių kiekiu. 56 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

B. Tyrimo tikslas

• Palyginti MMSS, MMSS Mod1 ir MMSS Mod2 algoritmų tinkamu- mą pirminiam vaizdo apdorojimui, esant sprendinio ilgiui nuo 1 iki 6 operatorių.

C. Tyrimo uždaviniai

• Rasti perkeliamų skruzdžių skaičių MMSS Mod2 algoritmui, norint gauti geriausius sprendinius. • Įvertinti MMSS, MMSS Mod1 ir MMSS Mod2 algoritmų konvergavi- mo greitį prie įvairių sprendinio ilgių ir palyginti rezultatus su MMSS algoritmu. • Įvertinti gaunamų sprendinių kokybę, esant įvairiom pradinio skruz- džių išdėstymo strategijom, prie įvairių sprendinio ilgių ir palyginti su įprasta MMSS be pradinės skruzdžių išdėstymo strategijos. • Įvertinti algoritmo konvergavimo trukmės vidutinį absoliutųjį nuokry- pį nuo vidurkio, esant įvairiom pradinio skruzdžių išdėstymo strate- gijom prie įvairių sprendinio ilgių ir palyginti su įprasta MMSS be pradinės skruzdžių išdėstymo strategijos.

D. Tyrimo sąlygos

Prieš atliekant tyrimus, reikia įvertinti uždavinio sudėtingumą ir pateik- ti pirminius max-min skruzdžių sistemos parametrus. Kadangi skruzdės gali aplankyti jau lankytus miestus, galimų sprendimų skaičius gali būti nlmax . Ži- nant, kad skruzdžių skaičius m yra lygus miestų skaičiui n, per vieną iteraciją, max-min skruzdžių sistemos modelis gali patikrinti n sprendinių. Modelio patikrai, buvo sukurtas dirbtinis vaizdas ir, taikant nuo 1 iki 6 vaizdo apdorojimo operatorių, gauti vaizdai vėliau buvo naudojami kaip no- rimi galutiniai vaizdai. Taip buvo užtikrinta, kad geriausias sprendinys tikrai egzistuoja. Nustatant max-min skuzdžių sistemos parametrus remiantis rekomendaci- ja (Stutzle, Hoos 1997): α = 1; β = 2; ρ = 0,98; buvo atlikti eksperimentai, norint įvertinti modelio efektyvumą, randant sprendinį, lyginant su paprastu perrinkimo metodu. Kiekvienai parametrų kombinacijai įvykdyta po 100 eksperimentų. 2.4. Vaizdų pirminio apdorojimo metodikos tyrimas 57

E. Taikyti tyrimo įvertinimo kriterijai

Algoritmų vidutinė konvergavimo trukmė vertinama vidutiniu skaičiumi iteracijų, reikalingu geriausiam vaizdo pirminio apdorojimo uždavinio spren- diniui pasiekti: 100 vid 1 I = Ii, (2.10) 100 i=1 X čia: Ii – i-tojo eksperimento iteracijų skaičius; Ivid – iteracijų skaičiaus vidur- kis. Jeigu geriausias sprendinys nepasiekiamas per maksimalų iteracijų skaičių, parenkama pirma iteracija, kai buvo gautas geriausias visų iteracijų sprendinys. Algoritmo sprendimo kokybė vertinama procentais sėkmingai pasiektų ge- riausių sprendinių. Žinant, kad buvo atliekama po 100 eksperimentų, koky- bės Q reikšmė tapati sėkmingų eksperimentų skaičiui N sek. Algoritmo konvergavimo trukmės vidutinis absoliutus nuokrypis yra:

100 vid =1 Ii I σvid = i | − |. (2.11) 100 P 2.4.2. Vaizdo apdorojimo operatorių ir jų skaičiaus tyrimas

Analizuojant pateiktų uždavinių sprendimo kokybę (žr. 2.2 pav.), visi mo- deliai randa geriausią sprendinį, esant iki 4 operatorių ilgiui. Kai sprendinio ilgis padidėja iki 6 operatorių, tuomet MMSS modelis geba rasti geriausią sprendinį tik iš 49 % pateiktų uždavinių, MMSS Mod1 ir MMSS Mod2 iš 75 % pateiktų uždavinių. Keičiant perkeliamų skruzdžių skaičių MMSS Mod2 modelyje, esant 20 % perkeliamų skruzdžių prie 6 operatorių ilgio sprendinio, geriausias buvo rastas 75 % pateiktų uždavinių. Staigus geriausių sprendinių radimo sumažėjimas, esant sprendinio ilgiui daugiau 5 operatorių, gali būti paaiškintas staigiu sprendinių erdvės padidėji- mu. Prie 5 operatorių įmanomų sprendinių skaičius yra apie 4,2 109, o prie 11 · 6 operatorių, jau 3,5 10 . Esant tokiam skaičiui įmanomų sprendinių, reika- lingas skruzdžių skaičiaus· didinimas. Jeigu analizuoti 2.2 ir 2.3 paveikslus drauge, tai matyti, kad staigus al- goritmo konvergavimo trukmės vidutinio absoliutaus nuokrypio augimas, yra ženklas, kad skruzdžių sistema nesugeba rasti geriausio sprendinio. Esant iki 5 operatorių ilgio uždaviniams, beveik visi modeliai rado geriausią sprendinį ir tik MMSS Mod2, esant 5 operatorių sprendiniui, nesugebėjo rasti geriausio iš 8 % pateiktų uždavinių. 58 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

MMSS MMSSMod1 MMSSMod2

100 90 80 70 60 50

40 1 2 3 4 5 6 Vaizdo apdorojimo operatorių skaičius Algoritminio sprendimo kokybė, % 2.2 pav. Algoritminio sprendimo kokybės priklausomybė nuo sprendinio sudėtingumo Fig. 2.2. Algorithmic solution quality dependence on problem complexity

MMSS MMSS Mod1 MMSS Mod2 180 160 140 120 100 80 60 40 20 0 1 2 3 4 5 6

Vidutinis aboliutus nuokrypis Vaizdo apdorojimo operatorių skaičius

2.3 pav. Algoritmų konvergavimo trukmės vidutinio absoliutaus nuokrypio priklausomybė nuo sprendinio sudėtingumo Fig. 2.3. Algorithm convergence speed average absolute deviation dependence on problem complexity

Rezultatai rodo, kad parametrai tinkami, ir bendrinė max-min skruzdžių sistema yra pakankamais efektyvi sprendžiant daugiamatį uždavinį. α didini- mas lėmė greitesnį sprendimą, bet sprendinys dažniau užstrigdavo lokaliame minimume. β ir ρ parametrų keitimas irgi lėmė dažnesnį sprendinio užstrigi- mą lokaliame minimume, todėl parametrų reikšmės buvo paliktos tokios, ko- kios buvo rekomendacijoje. 2.4. Vaizdų pirminio apdorojimo metodikos tyrimas 59

2.4.3. Vaizdų pirminio apdorojimo algoritmo konvergavimo trukmės tyrimas

Analizuojant iteracijų skaičiaus augimą (žr. 2.4 pav.) galima aproksimuo- ti eksponente. Toks iteracijų skaičiaus augimas gali būti paaiškintas, nes di- dėjant uždaviniui, eksponentiškai auga ir sprendinių erdvė. Esant pastoviam skruzdžių skaičiui, jos didelės įtakos sprendinio laiko augimui neturi. Kaip ir buvo tikėtasi, feromono valdoma pradinė padėtis padidino algorit- mo konvergavimo greitį. Dvi pasiūlytos modifikacijos panašiai pagreitino al- goritmą (žr. 2.4 pav). Lyginant su bendrine max-min skruzdžių sistema, greičio padidėjimas pasireiškė pradedant nuo sprendinio ilgio l = 3 ir, esant sprendi- nio ilgiui l = 6, geriausias pasiekimas buvo apie 30 %, lyginant su bendrine max-min skruzdžių sistema be pradinės padėties valdymo. MMSS Mod2 pa- rodė geriausią rezultatą esant 20 % perkeliamų skruzdžių, kas lėmė 5 % geres- nį rezultatą negu MMSS Mod1 prie l = 6. Tolimesnis didinimas perkeliamų skruzdžių skaičiaus susiaurino paieškos lauką, ir sprendinys būdavo lokaliame minimume.

Perrinkimo MMSS MMSSMod1 MMSSMod2

400

350

300

250

200

150

100

Iteracijų skaičius 50

0 1 2 3 4 5 6 Vaizdo apdorojimo operatorių skaičius

2.4 pav. Algoritmų konvergavimo trukmės priklausomybė nuo sprendinio sudėtingumo Fig. 2.4. Algorithm convergence speed dependence on problem complexity 60 2. VAIZDŲ PIRMINIO APDOROJIMO METODIKOS KŪRIMAS

2.5. Antrojo skyriaus išvados

L Išnagrinėjus bendrinę max-min skruzdžių sistemą, jos pagrindu sukur- ta nauja vaizdų pirminio apdorojimo metodika, leidžianti automatizuoti apdorojimo procesą. L Vaizdų pirminio apdorojimo, naudojant max-min skruzdžių sistemą, me- todikos pagrindu sukurti du nauji algoritmai: MMSS Mod1 – su pra- diniu skruzdžių padėties valdymu remiantis feromono kiekiu ir MMSS Mod2 – su pradiniu skruzdžių padėties valdymo remiantis nustatytu per- keliamu skruzdžių skaičiumi, taip įrodant metodikos įgyvendinamumą. L Atlikus eksperimentinius įgyvendintų MMSS, MMSS Mod1 ir MMSS Mod2 algoritmų tyrimus su dirbtinių vaizdų ir 84 vaizdo apdorojimo operatorių porų rinkiniais pagrįstas naujos metodikos tikslingumas ir gauti šie svarbūs rezultatai: L Pradinis skruzdžių dėstymas, esant sudėtingiems uždavinio spren- dimams efektyviai didina MMSS algoritmo konvergavimo greitį – tiriant 6 vaizdo apdorojimo operacijų automatinio parinkimo ga- limybę MMSS Mod1 ir MMSS Mod2 algoritmai konvergavo per apie 30 % trumpesnį laiką nei MMSS algoritmas. L Pradinis skruzdžių dėstymas remiantis nustatytu perkeliamų skruz- džių skaičiumi yra geriausias iš tirtų algoritmų, nes: • pasižymi panašia kaip MMSS Mod1 algoritmo sprendimo ko- kybe, tuo pačiu užtikrina vidutiniškai 20 % geresnę sprendi- nio kokybę nei MMSS algoritmas (tiriant 6 vaizdo apdorojimo operacijų automatinio parinkimo galimybę). • pasižymi mažiausiu algoritmo iteracijų skaičiaus vidutiniu ab- soliučiu nuokrypiu. L Nustatyta, kad MMSS Mod2 algoritme 20 % visų skruzdžių turi būti perkeliamos. 3

Vaizdų segmentavimo skruzdžių kolonijomis metodikos kūrimas

Vaizdų segmentavimo metu, remiantis parinktais požymiais ar charakte- ristikomis, vaizdas suskirstomas į segmentus. Vaizdo segmentavimas plačiai taikomas: medicinoje – žmogaus organų ar kaulų sritims rentgenogramose, to- mogramose ir pan. rasti (Ušinskas, Navakauskas 2003); biomedicinoje – bal- tymų pėdsakams elektroforezės gelių vaizduose atskirti; transporte – automo- bilių valstybiniams registracijos numeriams atpažinti (Laptik et al. 2005a,b); kompiuterijoje – kompiuterinei regai įgyvendinti. Segmentavimo teisingumas ir tikslumas yra svarbiausi šio vaizdų apdorojimo proceso vertinimo kriterijai. Kaip ir pirminiame vaizdų apdorojime, taip ir čia siekiama kurti automatinius segmentavimo įrankius.

Šiame skyriuje sprendžiama vaizdų segmentavimo, naudojant optimizavi- mą daugeliu skruzdžių kolonijomis, problema. Nagrinėjamas bendrinis opti- mizavimas skruzdžių kolonija. Pasiūloma ir detalizuojama daugelio skruzdžių kolonijų varžymusi grįsta metodika, tinkanti vaizdams segmentuoti. Sukuria- mi ir vėliau ištiriami du, nauja vaizdų segmentavimo metodika grįsti, algo- ritmai. Tyrimams naudojami dirbtinių ir originalių (dvimatės elektroforezės gelių) vaizdų rinkiniai.

Pateikti tyrimo rezultatai viešai skelbti autoriaus publikacijose (Laptik et al. 2007a,b).

61 62 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

3.1. Vaizdų segmentavimo problemos formulavimas

Vaizdo segmentavimo metu jis suskirstomas į segmentus pagal tam tikrą vizualų požymį ar požymių kombinacijas. Vaizdo segmentu laikoma vaizdo taškų grupė kuriai priskiriamas tam tikras pavadinimas. Požymiais gali bū- ti: skaistis, spalva, tekstūra, kontūro forma ir panašiai. Vaizdo segmentavimo tikslas yra paversti skaitmeninį vaizdą į prasmingesnę ir lengviau analizuojamą formą.

3.1.1. Vaizdų segmentavimo svarba

Didėjant kompiuterių pajėgumui vis dažniau bandoma naudoti kompiuterį kaip patarėją nagrinėjant sudėtingus ir svarbius klausimus. Kompiuterių rega yra viena iš sričių kuri sparčiai vystosi ir yra labai svarbi norint automatizuoti aplinkos analizę. Svarbios kompiuterių regai sritys yra veido, piršto atspaudų atpažinimas, transporto srautų valdymas, medicininių vaizdų analizė. Medici- ninių vaizdų analizė yra vienas iš būdų padėti gydytojams priimant sprendi- mus, palengvinti jų darbą. Segmentavimas yra vienas iš pagrindinių objektų išskyrimo vaizde procesų. Segmentavimas gali būti naudojamas augliams ir patologijoms aptikti, matuoti audinių storį, gelbėti vykdant chirurgines opera- cijas, atlikti išankstinė diagnostiką.

3.1.2. Vaizdų segmentavimo specifika

Vaizdai gali turėti daug skaisčio lygmenų ar atspalvių, ir tokiame vaizde atskirti objektus, jeigu jie irgi atvaizduoti skirtingais atspalviais, yra labai su- dėtinga. Jeigu skirstyti vaizdą atsižvelgiant į šalia esančių taškų atspalvius, ga- lima gauti labai daug segmentų ir taip nenustatyti kokios formos yra objektas. Segmentavime taikant didesnį atspalvių išbarstymą, galima prarasti detales. Jeigu objektai yra arti vienas kito ir panašaus atspalvio, vėl iškyla klausimas – kaip rasti ribą tarp vieno ir kito objekto?

3.1.3. Optimizavimo skruzdžių kolonijomis taikymo galimybės

Optimizavimas skruzdžių kolonija yra taikomas spręsti diskrečius optimi- zavimo uždavinius. Pavyzdžiais galėtų būti maršrutizavimo uždaviniai, tokie 3.2. Optimizavimo skruzdžių kolonijomis metodikos tobulinimas 63 kaip keliaujančio prekeivio uždavinys, komercinio transporto prekių pristaty- mo. Taip pat paskirstymo uždaviniai, kai rinkinį gamyklų, resursų ir transportą reikia paskirstyti taip, kad jų sąveika reikalautu mažiausiai išlaidų, tvarkaraš- čių sudarymas. Sprendžiant minėtus uždavinius, OSK taikymas pasižymėjo pakankamai gerais rezultatais, tačiau tokie uždaviniai, kaip vaizdų apdoroji- mas, nėra pakankamai ištirti ir rezultatų pateikta nedaug.

Problema. Turint nespalvotą dvimatės elektroforezės gelio vaizdą Vprd, nėra aišku kaip jį segmentuoti taikant OSK.

3.2. Optimizavimo skruzdžių kolonijomis metodikos tobulinimas

Prieš pateikiant originalius patobulinimus, pradžioje aptarsime bendrinį optimizavimo skruzdžių kolonija metodą.

3.2.1. Bendrinis optimizavimas skruzdžių kolonija

Optimizavimo skruzdžių kolonija metodo esmė ta, kad skruzdės juda pilko vaizdo paviršiumi. Kiekviena skruzdė gali užimti vieną ląstelę (vaizdo tašką). Skruzdė turi tam tikrą tikimybę judėti į neužimtą ląstelę ir palikti feromono pėdsaką. Vienoje ląstelėje vienu metu gali būti tik viena skruzdė. Jeigu visos esančios aplink ląstelės yra užimtos, skruzdė liks savo ląstelėje. OSK veiki- mo metu skruzdės gali mirti ir gali daugintis. Inicializavimo metu skruzdės išdėstomos vaizde atsitiktinai. Kiekviena iteracija skruzdės juda atsižvelgiant į ankstesnę judėjimo kryptį, aplink esančias skruzdes ir feromono lygį. 3.1 paveiksle pateiktas skruzdės krypties koeficiento w(∆Θ) parinkimo pavyzdys, čia ∆Θ yra nuokrypio nuo judėjimo krypties kampas. Paveiksle pri- imama, kad skruzdė judėjo į šiaurę. Šio koeficiento reikšmės naudojamos kaip euristinė informacija. Kitas susietas su skruzde koeficientas yra W (τ). Jis yra susietas su fero- mono koncentracija τ ir aprašo skruzdės jautrumą feromonui:

τ α W (τ)= 1+ , (3.1) 1+ δτ   čia: 1/δ – yra skruzdės feromono jutiklio pajėgumas; α – nusako kaip stipriai skruzdė yra traukiama feromono. 64 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

1/2 1 1/2

1/4 1/4

1/12 1/20 1/12

3.1 pav. Skruzdės judėjimo krypties koeficiento w(∆Θ) reikšmės Fig. 3.1. Ant movement direction coeficient w(∆Θ) values

Tikimybė skruzdei judėti iš ląstelės i į ląstelę j:

W (τj)w(∆Θ) k pi,j = , kai j i . (3.2) Σ k W (τ)w(∆Θ) l∈Ni ∈N

Kiekviename žingsnyje skruzdė palieka tam tikrą feromono kiekį:

∆gl ∆τ = τ + g , (3.3) p 255

čia: τp – pastovus feromono kiekis; g – pastovioji, nusakanti feromono kiekį, kurį lemia vaizdo skaisčio gradientas ∆gl. Po kiekvieno žingsnio feromono kiekis yra mažinamas (išgarinamas) pastoviu kiekiu ρ. Inicializavimo metu skruzdėms suteikiamas nustatytas pradinis energijos E(0) kiekis. Energijos atnaujinimas vykdomas pagal:

∆gl E(t)= E(t 1) ∆E +∆E , (3.4) − − max∆gl

čia: t – iteracija; ∆E – konstanta; max(∆gl) – maksimalus surastas gradientas. Pradinė skruzdės energija E(0) nustatoma lygi 1+∆E. Reprodukcija vykdoma tada, kai šalia skruzdės „tėvo“ yra bent viena skruz- dė. Reprodukcijos tikimybė skaičiuojama pagal:

(1 µ)∆gl P = R(n) µ + − , (3.5) R max∆  gl  3.2. Optimizavimo skruzdžių kolonijomis metodikos tobulinimas 65

1

0.8

0.6

0.4

0.2 Reprodukcijos koeficientas

0 012345678

Užimtų ląstelių skaičius

3.2 pav. Reprodukcijos koeficiento priklausomybė nuo užimtų ląstelių Fig. 3.2. Reproduction coeficient dependece on occupied cells

čia: R(n) – reprodukcijos koeficientas, kurio priklausomybė nuo šalia esančių skruzdžių n parodyta 3.2 paveiksle; µ – reprodukcijos konstanta.

3.2.2. Specializuotas optimizavimas skruzdžių kolonijomis

Pagrindinis tikslas kuriant daugelio skruzdžių kolonijų metodus buvo skai- čiavimų lygiagretinimas (Middendorf et al. 2000). Šiuose metoduose kiekviena kolonija atlieka savo paiešką, tačiau periodiškai dalinasi informacija su kito- mis kolonijomis. Įgyvendinus kiekvieną koloniją skirtingais procesoriais gali- ma pagreitinti skaičiavimus. Vaizdų apdorojime daugelis skruzdžių kolonijų naudojama kitiems tiks- lams pasiekti. Pradinė idėja buvo pasiulyta Bocchi, Ballerini ir Hassler (Bocchi et al. 2005), kur skirtingos skruzdžių kolonijos užimdavo visą vaizdą dalinda- mos jį į sritis, taip atlikdamos vaizdo segmentavimą. Šis metodas yra palyginti lėtas, ypač tada, kai vaizde didžiąją dalį užima viena sritis. Kitokį metodą vaiz- dams segmentuoti pasiūlė Fernandes, Ramos ir Rosa (Fernandes et al. 2000). Jie pristatė populiacijos valdymo būdą, kas leido mažinti populiaciją ir greitin- ti skaičiavimus, tačiau autoriai naudojo vienos kolonijos skruzdžių sistemą ir 66 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS vandenskyros (Beucher, Lantuéjoul 1979; Beucher, Meyer 1993) transformaci- ją vaizdui segmentuoti.

Vaizdo pirminis apdorojimas yra būtinas prieš vykdant segmentavimą: rei- kia pašalinti vaizdo triukšmus ir paruošti vaizdo kaukę. Kaukės naudojimas pagreitina skaičiavimus, nes taip yra šalinamos vaizdo sritys, kurioms segmen- tavimas nereikalingas. Pradinis vaizdas Vprd yra nespalvotas dvimatės elektro- forezės gelio vaizdas (žr. 3.3a pav.). Triukšmų šalinimui ir kraštų išplovimui naudojamas Gauso filtras (žr. 3.3b pav.), su tokiu branduoliu:

0 1 0 1 G = 1 4 1 . (3.6) 8   0 1 0   Kitu žingsniu atliekama Gauso filtru apdoroto vaizdo inversija (žr. 3.3c pav.):

prd Vi,j = max(Vprd) V . (3.7) − i,j

Paskutinis žingsnis – vaizdo kaukės B gavimas. Kaukės skaičiavimas at- liekamas priskiriant pradinę reikšmę:

Bi,j(t)= Vi,j. (3.8)

Atliekama daugyba, išskirianti dėmes:

Bi,j(t +1) = Bi,j(t) Vi,j, t [1,4]. (3.9) · ∈

Kaukė normalizuojama:

Bi,j Bi,j = 255, (3.10) max(Bi,j) · ir po slenksčio funkcijos jos reikšmės tampa 0 arba 1:

0, Bi,j < 2; Bi,j = (3.11) (1, kitaip. Galutinis kaukės vaizdas matomas 3.3d paveiksle. 3.2. Optimizavimo skruzdžių kolonijomis metodikos tobulinimas 67

(a) pradinis vaizdas (b) filtruotas a vaizdas

(c) invertuotas b vaizdas (d) vaizdo a kaukė

3.3 pav. Vaizdo pirminio apdorojimo iliustracija Fig. 3.3. Image pre-processing illustration

(a) pradinis vaizdas (b) segmentuotas vaizdas

3.4 pav. Dirbtinio vaizdo segmentavimo iliustracija Fig. 3.4. Illustration of artificial image segmentation 68 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

3.3. Naujos vaizdų segmentavimo metodikos detalizavimas

Naujos vaizdų segmentavimo metodikos detalizavimą pateiksime dviem žingsniais: pirma aptarsime esminius metodikos žingsnius, o vėliau patikrinsi- me galimą metodikos įgyvendinimą – daugelio skruzdžių kolonijų varžymusi grįstą vaizdo segmentavimo algoritmą.

3.3.1. Vaizdų segmentavimo daugelio skruzdžių kolonijomis metodika

3.1 algoritme pateikti pagrindiniai vaizdo segmentavimo daugelio skruz- džių kolonijomis metodikos žingsniai.

3.1 algoritmas (Vaizdų segmentavimo metodika)

1. Inicializavimas. 2. Skruzdžių pajudėjimas vaizdo paviršiumi. 3. Feromono atnaujinimas – skruzdžių varžymasis. 4. Energijos mažinimas. 5. Skruzdžių reprodukcija. 6. Konvergavimo sąlygos patikrinimas. 7. Jeigu sąlyga netenkinama, grįžtama į 2 žingsnį.

Pirmuoju etapu atliekant segmentavimą skruzdžių kolonijomis, kintamie- siems priskiriamos pradinės reikšmės. Parenkamas skruzdžių skaičius ir skruz- dės atsitiktiniu būdu patalpinamos vaizdo paviršiuje. Kiekviena skruzdė priklauso skirtingai kolonijai ir žymi kelią savo rūšies feromonu. Antruoju etapu skruzdės juda vaizdo paviršiumi traukiamos bal- tymų pėdsakų gradiento ir savos kolonijos skruzdžių feromono. Po kiekvieno žingsnio skruzdės palieka tam tikrą feromono kiekį, atsižvelgiant į aptiktą vaiz- do skaisčio gradientą. Skirtinis siūlomos metodikos bruožas glūdi feromono atnaujinime. Skruz- džių kolonijų varžymasis vyksta feromono pagalba. Trečiame etape, jeigu skruz- dė aptinka savos kolonijos feromoną, ji yra traukiama jo, jeigu feromonas pri- klauso kitai kolonijai, skruzdė yra atstumiama feromono ir kuo didesnė fero- mono koncentracija, tuo stipriau. Paliekamo feromono kiekis priklauso nuo 3.3. Naujos vaizdų segmentavimo metodikos detalizavimas 69 esamo feromono kiekio ir skruzdės rasto vaizdo skaisčio gradiento. Jeigu fe- romonas priklausė tai pačiai kolonijai, tai feromono kiekis auga, jeigu kitai kolonijai – tai mažėja, kol pasiekia nulį. Kiekviena skruzdė turi pradinį energijos kiekį, kuris su kiekvienu žingsniu mažėja. Ketvirtame etape, kai skruzdė aptinka vaizdo skaisčio gradientą, kuris yra aukštesnis nei iki šiol skruzdės aptiktas, tuomet energijos kiekis yra didi- namas. Kai energijos kiekis pasiekia nulį, skruzdė yra šalinama iš kolonijos. Penktame etape – skruzdės gali reprodukuoti, kai šalia yra bent viena skruzdė ir palikuoniui yra laisva ląstelė. Palikuonis turi aukštą tikimybę pri- klausyti tai kolonijai kurios skruzdžių aplink yra daugiausia. Reprodukcija daž- niausiai vykdoma esant aukštam gradientui. Segmentavimui pagreitinti siūloma šalinti skruzdės iš tų vaizdo vietų, kur baltymų pėdsakų nėra. Tam sudaroma kaukė kurią galima taikyti kas tam tikrą kiekį iteracijų. Yra sukurti du algoritmai, vienas be kaukės, kitas – su kauke. Antras išskirtinumas siūlomos metodikos yra konvergavimo sąlygoje (šeš- tas etapas). Siūloma naudoti populiacijos dydžio kitimą stabdant algoritmą. Pastebėta, kad esant antram populiacijos dydžio maksimumui pasiekiamas di- džiausias teisingai išskirtų baltymų pėdsakų skaičius.

3.3.2. Vaizdų segmentavimo daugelio skruzdžių kolonijomis algoritmas

Norint vaizdą segmentuoti į daug segmentų, kiekviena skruzdė priskiria- ma skirtingai kolonijai. Skirtingų kolonijų skruzdės gali daugintis su lygia ti- kimybe. Naujos skruzdės kolonija pasirenkama iš aplink esančių skruzdžių ir skruzdės tėvo. Kuo daugiau vienos kolonijos skruzdžių yra aplink, tuo didesnė tikimybė, kad nauja skruzdė priklausys tai kolonijai. Optimizavimo skruzdžių kolonija vaizdui segmentuoti pagrindinis bruo- žas glūdi feromono palikime. Čia pasireiškia skruzdžių kolonijų varžymasis. Kiekviena kolonija palieka skirtingą feromono tipą. Vienoje ląstelėje negali būti skirtingo tipo feromono. Kai skruzdė palieka feromoną ląstelėje, kurioje jau yra kitos kolonijos feromonas, esamo feromono lygis yra tiesiog mažinamas skruzdės turimu kiekiu ∆τ. Paliekamo feromono kiekis skaičiuojamas pagal (3.12). Kuomet skruzdė palieka feromoną ląstelėje, kur jau yra tos pačios kolo- nijos feromonas, tai feromono kiekiai sumuojasi. Feromono kiekis τi,j ląstelėje 70 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS su koordinatėmis i ir j išreiškiamas:

τi,j(t 1) ∆τ , kai kolonijos skirtingos; τi,j(t)= | − − | (3.12) (τi,j(t 1)+∆τ, kai ta pati kolonija. − Jei esamos kolonijos feromono lygis pasiekia nulį, jo vieta priskiriama kitai kolonijai. Antras optimizavimo skruzdžių kolonijomis vaizdui segmentuoti skiria- masis bruožas yra feromono koncentracijos WS(τ) skaičiavime: 1 , kai kolonijos skirtingos; W (τ)= W (τ) (3.13) S  W (τ), kai ta pati kolonija. Iš šios išraiškos matyti, kad skruzdės iš vienos kolonijos yra atstumiamos ne jų kolonijos feromono ir tokiu būdu formuojamas vaizdo ploto segmentas. Fero- mono garavimas τ(t) su ρ garavimo konstanta skaičiuojamas pagal:

τ(t 1) τ(t)= − . (3.14) ρ + 1 Toks garavimo būdas leidžia išlaikyti informaciją apie koloniją net tada, kai visa kolonija išmirė. 3.2 ir 3.3 algoritmuose pateikti esminiai vaizdų segmentavimo daugelio skruzdžių kolonijomis žingsniai: pirmame algoritme vaizdo kaukė netaikoma, antrame – taikoma.

3.2 algoritmas (Vaizdų segmentavimas netaikant kaukės)

1. Priskirti parametrams pradines reikšmes:µ = 0,06; ∆E = 0,025; α = 3,5; δ = 0,2; τp = 0,07; g = 1,5; ρ = 0,01; E(0) = ∆E + 1. 2. Parinkti pradinį skruzdžių skaičių S = 30% vaizdo dydžio. 3. Priskirti kiekvieną skruzdę skirtingai kolonijai. 4. Pajudinti skruzdes vaizde pagal (3.2). 5. Po kiekvieno žingsnio palikti feromono kiekį pagal (3.12) atsižvelgiant į (3.13) sąlygą. 6. Perskaičiuoti skruzdžių energiją pagal (3.4). 7. Šalinti skruzdes su nepakankama energija. 8. Vykdyti reprodukciją pagal (3.5). 3.4. Vaizdų segmentavimo metodikos tyrimas 71

9. Atlikti feromono garinimą pagal (3.14). 10. Jeigu stabdymo sąlyga netenkinama grįžti prie 4 žingsnio.

3.3 algoritmas (Vaizdų segmentavimas taikant kaukę)

1. Priskirti parametrams pradines reikšmes:µ = 0,06; ∆E = 0,025; α = 3,5; δ = 0,2; τp = 0,07; g = 1,5; ρ = 0,01; E(0) = ∆E + 1. 2. Parinkti pradinį skruzdžių skaičių S = 30% vaizdo dydžio. 3. Priskirti kiekvieną skruzdę skirtingai kolonijai. 4. Pagal (3.6)–(3.11) sudaryti vaizdo kaukę. 5. Pajudinti skruzdes vaizde pagal (3.2). 6. Po kiekvieno žingsnio palikti feromono kiekį (3.12) atsižvelgiant į (3.13) są- lygą. 7. Perskaičiuoti skruzdžių energiją (3.4). 8. Šalinti skruzdes su nepakankama energija. 9. Vykdyti reprodukciją pagal (3.5). 10. Atlikti feromono garinimą pagal (3.14). 11. Kas antrą žingsnį pritaikyti kaukę pagal (3.16). 12. Jeigu stabdymo sąlyga netenkinama grįžti prie 5 žingsnio.

3.4. Vaizdų segmentavimo metodikos tyrimas

Prieš pateikiant pasiūlytos vaizdų segmentavimo metodikos eksperimenti- nio tyrimo rezultatus, aptarsime eksperimentų planą.

3.4.1. Biocheminių vaizdų segmentavimo eksperimentų planas

A. Tyrimo objektas Tiriamos dvi daugelio skruzdžių kolonijų (DSK) algoritmų modifikacijos: • DSK1 – be vaizdo kaukės taikymo. • DSK2 – su vaizdo kaukės taikymu. 72 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

B. Tyrimo tikslas Palyginti DSK1 ir DSK2 algoritmus tinkamus dvimatės elektroforezės ge- lių vaizdams segmentuoti. C. Tyrimo uždaviniai

• Įvertinti daugelio skruzdžių kolonijų sistemos veikimą, segmentuojant dirbtinius vaizdus. • Įvertinti daugelių skruzdžių kolonijų sistemos veikimą, segmentuojant dvimatės elektroforezės gelių vaizdus. D. Tyrimo sąlygos Dirbtinis vaizdas (žr. 3.4a pav.) sudarytas iš 8 dėmių: viena atskira dė- mė, dvi dėmės sujungtos horizontaliai, dvi dėmės sujungtos vertikaliai ir trys dėmės sujungtos kartu. Pradinės parametrų reikšmės parenkamos atsižvelgiant į Fernandes et al. (2000) rekomendacijas: ∆E = 0,025; α = 3,5; δ = 0,2; τp = 0,07; g = 1,5; ρ = 0,01; µ = 0,1. Populiacijos dydis S sudaro 30 % vaizdo dydžio. Simuliacija vykdoma MATLABTM aplinkoje. E. Taikyti tyrimų įvertinimo kriterijai Segmentavimo rezultatai vertinami pagal išskirtų pėdsakų procentą:

Dišsk Dp = 100, (3.15) Dvisos · čia: Dp – teisingai išskirti pėdsakai, %; Dišsk – teisingai išskirtų baltymų pėd- sakų skaičius; Dvisos – visų, esančių vaizde, baltymų pėdsakų skaičius. Segmentavimo greičio prieaugis vertinamas sekundėmis, matuojant vyk- dymo laiką.

3.4.2. Metodikos pradinių parametrų nustatymo įtakos tyrimas

Vaizdų segmentavimas daugeliu skruzdžių kolonijomis valdomas 8 pa- rametrais. Galutinis rezultatas stipriai priklauso nuo šių parametrų pradinių reikšmių. Skruzdžių kolonijų parametrai parenkami vykdant eksperimentus su dirbtiniais vaizdais. Įvykdyta 3200 iteracijų. Po kiekvienos 25-os iteracijos išsaugomas fero- 3.4. Vaizdų segmentavimo metodikos tyrimas 73 mono vaizdas. Peržiūrint feromono vaizdus galima stebėti skruzdžių elgesį. Kas antrą žingsnį, skruzdžių A ir feromono F matricoms taikoma kaukė B:

Ai,j = Ai,j Bi,j, (3.16a) · τi,j = τi,j Bi,j. (3.16b) · Kiekvieno eksperimento metu bandomi skirtingi parametrai segmentavimui pagerinti. Rezultatai pateikti 3.1 lentelėje. Čia N – skaičius išskirtų dėmių, o tinkamiausios parametrų reikšmės yra pabrėžtos. Naudojant šias parametrų reikšmes atliekami eksperimentai su realiais vaiz- dais (rezultatai pateikti 3.5 paveiksle.). Pagrindinė problema išskiriant baltymų pėdsakus iš dvimatės elektroforezės gelių vaizdų yra ta, kad baltymų pėdsakai dažnai būna susilieję. Todėl metodika taip pat tikrinama su vaizdais turinčiais susiliejusių baltymų pėdsakus. Skruzdžių kolonijų parametrų parinkimas yra optimizavimo uždavinys. Parametrai parenkami naudojant greičiausio nusilei- dimo metodą, keičiant kiekvieną parametrą atskirai ir stebint sprendinį. Aptar- sime kaip elgiasi kolonija esant skirtingoms parametrų reikšmėms.

3.1 lentelė. Daugelio skruzdžių kolonijų parametrų parinkimo tyrimo rezultatai Table 3.1. The results of multiple ant colonies parameters selection analysis Populiacijos Skruzdžių Skruzdžių Feromono dydis reprodukcija energija trauka S, % N µ N ∆E N α N 10 0 0,05 4 0,013 4 2,0 4 20 2 0,06 6 0,025 6 2,5 5 30 5 0,07 6 0,035 4 3,0 4 40 5 0,08 4 0,050 3 3,5 6 50 3 0,10 5 – – 4,0 4 – – 0,20 4 – – 5,0 4 Skruzdės Skruzdės Jautrumas Feromono jautrumo riba feromonas gradientui garavimas

δ N τp N g N ρ N 0,1 5 0,05 5 0,5 4 0,0005 4 0,2 6 0,06 5 1,0 5 0,0010 6 0,3 4 0,07 6 1,5 6 0,0015 5 0,4 4 0,08 5 2,0 5 0,0020 4 – – 0,09 4 3,0 4 0,0005 4 74 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

(a) pradinis vaizdas (b) segmentuotas vaizdas

3.5 pav. Dvimatės elektroforezės gelio vaizdo segmentavimo rezultatas Fig. 3.5. The result of 2D electrophoresis gel image segmentation

Pradinis populiacijos dydis yra vienas iš pagrindinių parametrų, įtakojan- čių iteracijos vykdymo trukmę. Kuo daugiau skruzdžių, tuo ilgiau trunka viena iteracija. Kai kolonijos populiacijos dydis S sudaro daugiau nei 30 % vaizdo dydžio, tai sukelia persegmentavimą – kelių kolonijų buvimą viename baltymų pėdsake. Kai S imamas mažesnis, skaičiavimai atliekami greičiau, bet vaizdo padengimas yra nepakankamas ir kai kurie baltymų pėdsakai lieka nepastebėti. Reprodukcijos parametro µ didinimas skatina skruzdes reprodukuoti vi- same vaizde ir kolonijos populiacijos dydis ilgą laiką išlieka didelis. Dažnai pasitaiko, kad viena kolonija užima kelis baltymų pėdsakus. Reprodukcijos parametro µ mažinimas lemia skruzdžių kolonijos greitą senėjimą ir išmiri- mą. Baltymų pėdsakai lieka nepilnai išskirti, vienas baltymų pėdsakas užimtas kelių kolonijų feromonu. Esant aukštoms energijos koeficiento ∆E reikšmėms, skruzdės gali ke- liauti toliau ir pakeliui daugintis, didinant populiaciją. Vienos kolonijos skruz- dės stengiasi užimti daug baltymų pėdsakų. Su mažomis ∆E reikšmėmis skruz- dės greitai miršta ir lieka neišskirtų baltymų pėdsakų. Didesnis jautrumas feromonui α verčia skruzdes keliauti aplink baltymo pėdsaką su didesne tikimybe praleisti baltymo pėdsako viršūnę. Esant žemam jautrumui feromonui, skruzdės juda pagal vaizdo skaisčio gradientą, varžyma- sis mažėja, baltymų pėdsakai nepilnai dengiami feromonu. Su maža feromono jautrumo riba 1/δ, esant aukštam feromono lygiui, skruzdės išsibarsto ir užima aplink esančius baltymų pėdsakus. Su didele fero- mono jautrumo riba, skruzdės stipriai traukiamos feromono ir baltymų pėdsa- kai išskiriami neteisingai. Esant aukštam pirminiam skruzdės feromonui τp pėdsakai išsilaiko ilges- nį laiką ir kitos skruzdės gali lengviau surasti baltymų pėdsakus. Bet baltymų 3.4. Vaizdų segmentavimo metodikos tyrimas 75 pėdsakai neišskiriami teisingai, nes kitos kolonijos skruzdės yra įtakojamos feromono, kuris neleidžia judėti gradiento link. Kai τp yra mažas, didėja tiki- mybė, kad kolonija bus padalinta kitos kolonijos ir įvyks neteisingas baltymų pėdsakų išskyrimas. Jautrumas gradientui g leidžia skruzdėms plačiau apimti pėdsakus ir padė- ti daugiau feromono esant silpnam vaizdo skaisčio gradientui. Tuo tarpu kaip 1/δ riboja skruzdžių jautrumą prie didelių feromono koncentracijų. Santykis δ/g yra svarbus, nes nedidelė jo reikšmė leis feromonui traukti skruzdes esan- čias netoli baltymo pėdsako. Per didelė arba per maža δ/g reikšmė lems fero- mono trūkumą arba perteklių. Greitas feromono garavimas ρ lems žemą feromono kiekį, ir viena ko- lonija galės lengvai užimti kitos kolonijos baltymų pėdsaką. Lėtas garavimas lems aukštą bendrą feromono kiekį ir dėl 1/δ skruzdėlės bus traukiamos net žemesnio feromono kiekio. Matyti, kad parametrų parinkimas yra sudėtingas optimizavimo procesas, todėl rastos reikšmės nebūtinai geriausios. Dirbtiniai vaizdai, sukurti naudojant dirbtinės kaukės Euklido atstumo trans- formaciją (Borgefors 1986) stipriai skiriasi nuo realių vaizdų. Dvimatės elekt- roforezės gelio vaizde baltymų pėdsakai persidengia, turi skirtingas skaisčio vertes ir jų skaisčio histograma gali būti pakankamai siaura. Septyni dvimatės elektroforezės gelio vaizdų segmentavimo rezultatai pateikti 3.2 lentelėje. Pir- mi šeši eksperimentai (Nr. 1–6) atlikti su vaizdais, kurie turi persidengiančių pėdsakų. Paskutinio eksperimento rezultatai (Nr. 7), naudojant vaizdą be per- sidengiančių baltymų pėdsakų, patvirtina, kad galima gauti pilnai segmentuotą vaizdą. Blogiausias rezultatas gautas penkto eksperimento metu, kai baltymų pėdsakai buvo persidengę, vaizdo skaisčio histograma buvo siaura ir pastumta į šviesesnę pusę.

3.2 lentelė. Dvimatės elektroforezės gelių vaizdų segmentavimo rezultatai Table 3.2. The results of 2D elecrophoresis gel images segmentation

Eksperimento Žingsnių Išskirti numeris skaičius pėdsakai, % 1 1200 55,5 2 200 62,5 3 350 75,0 4 200 75,0 5 1000 44,4 6 500 50,0 7 325 100,0 76 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

3.4.3. Vaizdo segmentavimo dinamikos tyrimas

Panagrinėsime vaizdo segmentavimo dinamiką, pasirinkę ketvirto eksper- imento dvimatės elektroforezės gelio vaizdą (žr. 3.6 pav.). Dėl skruzdžių var- žymosi, mirties ir reprodukcijos, populiacijos dydžio kaita, pavaizduota 3.7 pa- veiksle, turi maksimumus ir minimumus. Pirmas maksimumas atsiranda, kai po skruzdžių dėstymo įvyksta dauginimasis. Po to populiacijos dydis staigiai mažėja, nes skruzdžių perteklius šalinamas su B kauke, kuri taikoma kas antrą žingsnį. Pirmas minimumas (apytiksliai po 45 žingsnių) atsiranda dėl nuo bado mirusių skruzdžių, kurios buvo toli nuo aukšto gradiento lygio. Antras maksi- mumas (apytiksliai po 200 žingsnių) atsiranda dėl dauginimosi, kai skruzdės pasiekia pakankamai aukštą vaizdo skaisčio gradiento lygį (baltymo pėdsaką). Pėdsakų išskyrimas gali būti stabdomas, nes tęsiant, kolonijos pradės užiminėti kitų kolonijų pėdsakus ir pastarieji bus blogai išskirti.

(a) po 2 žingsnių (b) po 25 žingsnių

(c) po 100 žingsnių (d) po 2500 žingsnių

3.6 pav. Dvimatės elektroforezės gelio vaizdo segmentavimo dinamika Fig. 3.6. 2D electrophoresis gel image segmentation dynamics 3.4. Vaizdų segmentavimo metodikos tyrimas 77

500

400

300

200

Populiacijos dydis

100

0 0 500 1000 1500 2000 2500 3000 Iteracija

3.7 pav. Ketvirto eksperimento metu vykęs skruzdžių kolonijų populiacijos kitimas Fig. 3.7. Ant colonies population variation during the fourth experiment

Segmentavimo dinamika vaizdžiai pateikta 3.6 paveiksle. Matyti, kad po dviejų žingsnių (žr. 3.6a pav.) yra daug skirtingų kolonijų, ir feromonas išdėsty- tas pakankamai chaotiškai. Po 25 žingsnių (žr. 3.6b pav.) feromono išdėstymas darosi tvarkingesnis, skruzdės pasiekė aukštą gradiento lygį, kolonijų mažiau. Po 100 žingsnių (žr. 3.6c pav.), feromono ribos yra daug arčiau pėdsakų ribų, skruzdžių kolonijų skaičius mažėja. Geriausias rezultatas pasiekiamas esant 200 žingsniui (žr. 3.5b pav.), tai atitinka antrą piką ir 75 % teisingai išskirtų baltymų pėdsakų. Tęsiant eksperimentą, populiacijos dydis kartu su kolonijų skaičiumi mažėja, ir po 2 500 žingsnių (žr. 3.6d pav.) išlieka kelios feromono sritys likusios nuo dominuojančių kolonijų. Gauti segmentavimo rezultatai buvo palyginti su slenksčio funkcijos gau- tais rezultatais. Slenkstis buvo parenkamas kiekvienam vaizdui atskirai, sie- kiant geriausiai išskirti pėdsakus. Segmentavimo rezultatai buvo 67 % geres- ni su vaizdais turinčius susiliejusius pėdsakus ir skirtingas baltymų pėdsakų skaisčio vertes. B kaukės naudojimas lėmė ne tik geresnį segmentavimą, bet ir žymų veiks- mų pagreitinimą. 40 30 taškų vaizdui prireikė 108 s, kad pasiekti 200 žingsnių ribą su kauke, ir 408× s – be kaukės. Pilnam apdorojimui (2 600 žingsniai) pri- reikė 1 440 s su kauke ir 5 400 s be kaukės. Laikas buvo matuojamas taikant kompiuterį su Intel Mobile 1.6 GHz procesoriumi. 78 3. VAIZDŲ SEGMENTAVIMO METODIKOS KŪRIMAS

3.5. Trečiojo skyriaus išvados

L Išnagrinėjus bendrinį optimizavimą skruzdžių kolonijomis ir iškėlus ko- lonijų varžymosi idėją, daugeliu skruzdžių kolonijų optimizavimo pag- rindu sukurta nauja vaizdų segmentavimo metodika, leidžianti šį procesą automatizuoti. L Vaizdų segmentavimo, paremto daugeliu skruzdžių kolonijų varžymu- si, metodikos pagrindu bei pasiūlius originalią vaizdo kaukės formavi- mo procedūrą sukurti du algoritmai: ODSK1 – optimizavimo daugeliu skruzdžių kolonijomis be vaizdo kaukės taikymo ir ODSK2 – su vaizdo kaukės taikymu, taip įrodant metodikos įgyvendinamumą. L Atlikus eksperimentinius įgyvendintų ODSK1 ir ODSK2 algoritmų ty- rimus su dirbtiniais ir dvimatės elektroforezės gelių vaizdais pagrįstas naujos metodikos tikslingumas, o taip pat: • Atskleista siūlomų segmentavimo algoritmų parametrų įtaka skruz- džių elgesiui bei vaizdo segmentavimo rezultatams; • Eksperimentiškai rasti tinkami optimizavimo daugeliu skruzdžių ko- lonijomis algoritmų parametrai, leidžiantys tinkamai segmentuoti dvi- matės elektroforezės gelių vaizdus. • Pasiūlyta originali vaizdo kaukės formavimo procedūra, trumpinanti vaizdo segmentavimo trukmę ir leidžianti pagerinti segmentavimo tikslumą. • Ištyrus skruzdžių kolonijų populiacijos dinamiką, pasiūlyta vykdyti segmentavimo proceso stabdymą, remiantis skruzdžių populiacijos svyravimais. • Vaizdų segmentavimo, paremto daugeliu skruzdžių kolonijų varžy- musi, rezultatai iki 67 % tikslesni lyginant su slenksčio funkcijos tai- kymu. 4

Skruzdžių sistemos įgyvendinimas LPLM įrenginiu

Lauku programuojamų loginių matricų (LPLM) technologija yra šiuolai- kinė greitai plintanti skaitmeninių sistemų kūrimo sritis. Šios technologijos taikymas leidžia ženkliai sumažinti skaitmeninės sistemos kūrimo laiką, o tin- kamai parinkus algoritmą, labai pagreitina skaičiavimus. LPLM sėkmingai taikomos telekomunikaciniuose tinkluose, vaizdų srautų apdorojime, signalų kriptografijoje, įterptinėse sistemose. Optimizavimo skruzdžių kolonija (OSK) algoritmų taikymas yra pripažintas sėkmingu tokiose srityse kaip mobiliojo ryšio paslaugų maršrutizavimas, automobilių ir lėktuvų maršrutų planavimas, komunikacijose apkrovų paskirstyme. Dar pilnai neištirta, koks bus OSK na- šumas jeigu ją įgyvendinti šiuolaikiniuose įrenginiuose, grįstuose lauku prog- ramuojamomis loginėmis matricomis. Šiame skyriuje nagrinėjama OSK įgyvendinimo LPLM įrenginyje prob- lema. Išanalizuojamos įgyvendinimo galimybės, įgyvendinamas pseudo atsi- tiktinių skaičių generatorius bei skruzdžių sistema. Atliekamas įgyvendintos skruzdžių sistemos našumo eksperimentinis tyrimas, įvertinama įvairių modu- lių įtaka vykdomų skaičiavimų greičiui. Eksperimentiniams tyrimams naudo- jamas keliaujančio prekeivio uždavinys (KPU), kuris sprendžiamas perrinkimo metodu ir skruzdžių sistema, pateikiamos skyriaus išvados. Šiame skyriuje pateikti tyrimo rezultatai viešai skelbti autoriaus publika- cijoje (Laptik et al. 2009b).

79 80 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

4.1. Skruzdžių sistemos įgyvendinimo problemos formulavimas

Prieš įgyvendinant skruzdžių sistemą, aptarsime įgyvendinimo būdus, jų trūkumus ir privalumus.

4.1.1. DN8000k10PSX DLPLM įrenginys

DiniGroup daugialustis DN8000k10PSX modulis (toliau DLPLM) jungia- mas į PCI prievadą. Jis turi tris Virtex-4 kartos LPLM: vieną LX100 ir du SX55 tipo. Kiekviena iš jų turi tiesioginį sujungimą su DDR2 tipo atmintimi. Modu- lis naudoja Spartan-2 kartos LPLM kitų įrenginių programavimui bei ryšiams su kitais moduliais užtikrinti. Papildomai modulis turi Ethernet, RS232, JTAG, USB ir Compact Flash atminties kortelių prievadus. Virtex-4 LX100 LPLM gaminamos pagal 90 nm KMOP technologiją. Turi virš 110 000 loginių blokų ir 4,3 Mb vidinę statinę atmintį. LX kartos matri- cose įdiegta logika, skirta įgyvendinti greitas operacijas ir leidžia atlikti 48 milijardus dauginimo su kaupimu operacijų per sekundę. Virtex-4 SX55 LPLM irgi gaminamos pagal 90 nm KMOP technologiją, tačiau yra skirtos skaitmeninių signalų apdorojimui. Jų 512 aritmetinių mo- dulių bendros galimybės leidžia atlikti iki 256 milijardų dauginimo su kaupi- mu operacijų per sekundę. Tiesa, tokia specializacija lemia lėtesnį MicroBlaze programinio procesoriaus darbą.

4.1.2. VHDL grandynų aprašymo kalba

VHDL (Pedroni 2004) (ang. Very high speed integrated circuit Hardware Description Language) – tai programavimo kalba, skirta projektuoti integri- nius grandynus, tame tarpe ir LPLM (Brown, Vranesicz 2005; Naylor, Jones 1997). Ši programavimo kalba pradžioje buvo kuriama JAV gynybos departa- mente siekiant palengvinti integrinių grandynų veikimo analizės dokumenta- vimą. Vėliau ji tapo esminiu integrinių grandynų projektavimo įrankiu. VHDL kalba yra gerai standartizuota ir pastoviai tobulinama. Pagrindiniai etapai, kuriuos apima VHDL kalba atliekamas grandyno pro- jektavimas, pateikti 4.1 paveiksle. VHDL kalba aprašoma, kaip įgyvendinti konkretų loginį grandyną LPLM (analoginės LPLM šiame darbe nenagrinė- jamos). Sunkumai atsiranda tada, kai sintezės įrankis, keičiantis VHDL ko- do išraiškas į žemesnio lygio loginių elementų seką, nesugeba to atlikti. Tai- 4.1. Skruzdžių sistemos įgyvendinimo problemos formulavimas 81

VHDL

Veikimo aprašymo lygis Dalinimas į saugojimo ir apdorojimo sritis Registrų lygis

Loginių elementų sintezė

Loginių elementų lygis

Loginių elementų išdėstymas ir sujungimas Veikiantis įrenginys

4.1 pav. VHDL taikymo veiksmų diagrama Fig. 4.1. VHDL application steps gi programos atitikimas VHDL standartui negarantuoja jos įgyvendinamumo. Kiekvienos LPLM gamintojas siūlo savo sintezės įrankį, pritaikytą konkrečiai LPLM rūšiai. Slankiojo kablelio operacijos ir duomenų tipai yra įgyvendin- ti VHDL standarte, tam sukuriant specialiąsias bibliotekas. Sukūrus progra- mą, kuri taikys slankiojo kablelio aritmetiką, atlikti bandymus (simuliavimą) kompiuteryje pavyks, tačiau įgyvendinti šios programos LPLM su Xilinx XST sintezavimo įrankiu nepavyks, nes slankiojo kablelio grandynai nėra sintezuo- jami. Kitas veiksnys, dažnai sunkinantis darbus programuojant VHDL kalba, yra LPLM integravimas į aplinkinį grandyną. Šiam veiksmui atlikti reikia de- talių žinių apie duomenų įvesties ir išvesties grandynus prijungtus prie LPLM (projektavimo metu nurodomi konkretūs LPLM išvadai ir jų ryšys su išore), taip pat projektuotojas turi rūpintis duomenų kaitos su išoriniais įrenginiais protokolo teisingumu. Pagrindinis VHDL kalbos privalumas yra universalumas ir, pakankamai žemo programavimo lygmes dėka, sintezuojami mažesnės apimties ir didelės veikimo spartos grandynai. Sudėtingų skaičiavimų (tame tarpe skruzdžių ko- lonijų optimizavimo algoritmų) įgyvendinimas vien tik VHDL programavimo kalba teoriškai yra įmanomas, tačiau praktiškai reikalauja per daug laiko ir žmoniškųjų išteklių, taigi moksliniams tyrimams nėra tinkamas. 82 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

4.1.3. AccelDSP specializuotas programinis įrankis

Bandant palengvinti LPLM organizuojamų skaičiavimų programavimą ir siekiant tik neženkliai sumažinti skaičiavimų greitį, Xilinx kompanija siūlo naudoti AccelDSP specializuotą programinį įrankį. AccelDSP yra skirtas įgy- vendinti skaitmeninio signalų apdorojimo algoritmus, taikant visuotinai papli- tusią, sistemų modeliavimo ir įgyvendinimo programą MATLABTM. Šis įrankis yra programos MATLABTM ir VHDL programavimo kalbų jungiančioji grandis. Slankiojo kablelio aritmetikos taikymą AccelDSP programinis įrankis spren- džia taip: slankiojo kablelio aritmetika automatizuotai transformuojama į svei- kų skaičių aritmetiką, vėliau, taikant programą MATLABTM, gautas įrenginys patikrinamas ir, esant mažai paklaidai, LPLM įgyvendinimas. Deja, AccelDSP programinis įrankis turi nedaug programoje MATLABTM įgyvendintų funkcijų (SIMULINK modulių), kurios gali būti automatizuotai perkeliamos į LPLM įrenginius. Taikant programos MATLABTM priedą — SIMULINK, vartotojas per grafinę sąsają turi galimybę interaktyviai apjungti reikiamus SIMULINK modulius į vieną schemą, simuliuoti schemą, ir, taikant dar vieną Xilinx kom- panijos sukurtą System Generator įrankį, automatiškai generuoti VHDL prog- ramos kodą. Minėtų įrankių taikymas apibendrintai atvaizduotas 4.2 paveiksle.

MATLABTM MATLABTM ir Simulink

AccelDSP System Generator

Standartinis įtaiso įgyvendinimas su Xilinx ISE

Veikiantis įrenginys

4.2 pav. AccelDSP ir System Generator įrankių taikymas Fig. 4.2. AccelDSP and System Generator tools application

Įrenginio projektuotojas turi užtikrinti įvedimo ir išvedimo grandyno įgy- vendinimą ir garantuoti tinkamą jo susiejimą su automatiškai generuojamu VHDL kodu. Nors System Generator ir turi tam tikrą standartinių įvesties ir iš- vesties SIMULINK modulių rinkinį, projektuotojas turi gerai žinoti naudojamą įrangą, siekiant užtikrinti jos suderinamumą. Kaip jau buvo minėta, taikant Ac- 4.2. Skruzdžių sistemos įgyvendinimas MicroBlaze 83 celDSP programinį įrankį, LPLM įgyvendintas grandynas neišvengiamai bus kiek didesnis ir lėtesnis lyginant su vien tik VHDL kalba kurtu grandynu. Pag- rindinis veiksnys, stabdantis sudėtingų skaičiavimų įgyvendinimą AccelDSP programiniu įrankiu, vėlgi yra per didelės laiko sąnaudos – šiuo atveju turi būti skirta nemažai laiko reikiamų SIMULINK modulių sukūrimui, jų suderinimui su System Generator įrankiu.

4.1.4. MicroBlaze programinis procesorius

Xilinx kompanijos sukurtas MicroBlaze programinis procesorius skirtas veikti Virtex ir Spartan šeimos LPLM įrenginiuose. MicroBlaze programinio procesoriaus branduolys yra Platform Studio / EDK paketo dalis, pateikiama kartu su kitais moduliais skirtais dirbti su išoriniais įrenginiais. MicroBlaze programinis procesorius palengvina įrenginių įgyvendinimą, leidžia naudoti C programavimo kalbą. Gali vykdyti skaičiavimo operacijas su slankaus kablelio skaičiais, tinkamas įterptinėms sistemoms realizuoti. MicroBlaze programinio procesoriaus taikymas labai pagreitina LPLM programavimą, tačiau sukurtas grandynas dažniausiai užimą daug didesnį LPLM plotą ir atitinkamai veikia lėčiau.

4.1.5. Įgyvendinimo būdo parinkimas

Įvertinus nepakankamai ištirtą MicroBlaze programinio procesoriaus tai- kymą OSK įgyvendinti, taip pat anksčiau aptartų LPLM įgyvendinimo būdų privalumus ir trūkumus, taip pat ribotus išteklius ir programavimo lankstumą, pasirinkta taikyti 32 bitų MicroBlaze programinį procesorių, tiekiamą kartu su programų paketu Xilinx Embedded Development Kit.

Problema. Įgyvendinant skruzdžių sistemą MicroBlaze programiniame procesoriuje nėra aišku kokia bus sistemos greitaveika ir kokia bus MicroBlaze vidinių modulių įtaka greitaveikai.

4.2. Skruzdžių sistemos įgyvendinimas MicroBlaze programiniu procesoriumi

Aptarsime skruzdžių sistemos įgyvendinimo apribojimus bei parinkto op- timizavimo skruzdžių kolonija algoritmo įgyvendinimą. 84 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

4.2.1. Skruzdžių sistemos parinkimas

Aptarsime skruzdžių sistemos parinkimo apribojimus. A. Evoliucinių algoritmų įgyvendinimo apribojimai Taikant OSK algoritmą programuojamai logikai, pirmiausia reikia įvertin- ti būsimos architektūros apribojimus. Šie apribojimai yra susiję su skaičiavi- mo, atminties, įvesties ir išvesties ištekliais, kintamųjų tipais bei informacijos paskirstymu. Pats nesudėtingiausias sprendimas yra įdiegti feromono matricą LPLM įrenginyje. Šis būdas apima visus apdorojimo žingsnius ir reikiamos atminties išteklius kiekvienam statinės matricos elementui. Sistoliniame mo- delyje skruzdžių judėjimas gali būti valdomas per matricą. Tuomet kiekvie- na skruzdė užima matricos eilutę, kuri atitinka tikrąjį sprendimą. Akivaizdu, kad toks sprendimas pareikalautų per daug išteklių (išteklių poreikis didėja kvadratiniu dėsniu). Skruzdžių kolonijų optimizavimo algoritmų įgyvendini- mą LPLM įrenginiuose apsunkina šie veiksniai: • Feromono vertėms ir atsitiktiniams skaičiams saugoti reikalingas slan- kaus kablelio formatas. Toks pateikimas netinka perprogramuojamos logikos įgyvendinimui (HDL programinei įrangai). • Garavimui ir euristinės informacijos integravimui reikia daugybos ope- racijų. LPLM esantys skaičiavimo resursai neefektyviai palaiko dau- gybos grandžių įgyvendinimą. Kai kurie LPLM turi savyje įdiegtus riboto dydžio daugybos blokus. • Norint veiksmus atlikti remiantis tikimybiniu skirstiniu, skaičiuojama sandaugos rezultato skaitiklyje priešdėlinė suma kaip vis dar neparink- tas įrašas parinkimo aibėje. Todėl turi būti paskirta n ciklų priešdėlinei sumai apskaičiuoti — po vieną ciklą feromono matricos eilutei. Reika- lingos vietos suradimas ir laiko sąnaudų numatymas yra gana sudėtingi uždaviniai programuojamoms loginėms matricoms. Kadangi šie veiksniai riboja DLPLM taikymą, tenka ieškoti specialių OSK algoritmo modifikacijų. B. Įgyvendinami OSK algoritmai Norint išaiškinti skaičiavimo tikslumui keliamus reikalavimus, skruzdžių sistemos algoritmas buvo vykdomas kompiuteryje. Keliaujančio prekeivio už- daviniui (Flood 1956) spręsti, pseudo atsitiktinių skaičių generatoriaus reikš- minių skaitmenų skaičius priklauso nuo miestų skaičiaus n. Kiekviename mies- te pasirinkimui reikia log10(n 1) skaitmenų, o skruzdžių kolonijos pasirin- − 4.2. Skruzdžių sistemos įgyvendinimas MicroBlaze 85 kimams reikia papildomai dviejų skaitmenų. Skruzdžių nukeliautam atstumui skaičiuoti išaiškėjo, kad reikia mažiau nei 6 skaitmenų. Tolimesniems tyri- mams nutarta naudoti viengubo tikslumo skaičius, nes jų tikslumas tenkina mūsų reikalavimus. Pagrindiniai skirtumai įgyvendinto algoritmo, palyginus su įprasta skruz- džių sistema, yra:

• Visos skruzdės startuoja iš vieno miesto. • Feromoną palieka tik iteracijos geriausią sprendinį radusi skruzdė. • Didėjant miestų skaičiui, didinamas feromono garavimo koeficientas. Skruzdžių skaičius parenkamas lygus miestų skaičiui, nes taip dažnai rekomen- duojama keliaujančio prekeivio uždaviniui spręsti.

4.2.2. Pseudo atsitiktinių skaičių generatoriaus parinkimas

Skruzdžių sistema naudoja atsitiktinių skaičių generatorių judėjimo kryp- čiai pasirinkti (Dorigo et al. 1996). Norint įgyvendinti sistemą skirtingose plat- formose ir gauti vienodus rezultatus, reikia nesudėtingo ir greito pseudo atsitik- tinių skaičių generatoriaus. Tam parenkamas daugyba su perkėlimu algoritmu grįstas pseudo atsitiktinių skaičių generatorius (Couture, L’Ecuyer 1995, 1997; Marsaglia 1994).

A. Marsaglia pseudo atsitiktinių skaičių generatorius

G. Marsaglia pasiūlytas greitas generatoriaus algoritmas su tolydžiu pseu- do atsitiktinių skaičių skirstiniu. Generatoriaus veikimo pseudo kodas pateiktas 4.1 algoritme.

4.1 algoritmas (Marsaglia pseudo atsitiktinių skaičių algoritmas)

1. z ir w priskirti didelius pirminius skaičius. 2. Apskaičiuoti z: z = 36969 (z 65535) + z 16. · ∧  3. Apskaičiuoti w: w = 18000 (w 65535) + w 16. · ∧  4. Apskaičiuoti r: r = z 16+(w 65535).  ∧ 5. Apskaičiuoti f: f = r/232. 6. Kitam atsitiktiniam skaičiui gauti, grįžti į 2 žingsnį. 86 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

Iš pateikto 4.1 algoritmo matyti, kad operacijos yra vykdomos su 32 bitų sveikaisiais skaičiais ir tik paskutiniame žingsnyje sveikasis skaičius yra pa- 32 verčiamas į slankaus kablelio skaičių. 32 bitų skaičius turi log10(2 ) = 9,63 reikšminių skaitmenų. Toks reikšminių skaitmenų skaičius yra didesnis nei viengubo tikslumo ir mažesnis nei dvigubo tikslumo slankaus kablelio reikš- minių skaitmenų skaičius. Norint naudoti dvigubo tikslumo skaičius, pateiktas algoritmas gali netenkinti tikslumo sąlygų. Naudojant viengubo tikslumo skai- čius, šis algoritmas tenkina tikslumo sąlygas. B. Generatoriaus įgyvendinimo patikros aplinka Pseudo atsitiktinių skaičių generatoriaus patikrinimui DLPLM įrenginy- je, buvo įgyvendintas Monte-Karlo metodu (Metropolis, Ulam 1949) grįstas π skaičiaus skaičiavimo 4.2 algoritmas.

4.2 algoritmas (Monte-Karlo metodo π skaičiui apskaičiuoti algoritmas)

1. Nustatyti reikiamą žingsnių skaičių i. 2. Rasti atsitiktinę x koordinatę [0,1]. 3. Rasti atsitiktinę y koordinatę [0,1]. 4. Jeigu x2 + y2 < 1, tuomet k = k + 1. 5. Sugrįžti į 2 žingsnį, jeigu neįvykdytas numatytas žingsnių skaičius. 6. Apskaičiuoti π iš: π = 4 k/i. ·

Skaičiaus π = Saps/Skv radimui taikomos žinomos apskritimo ploto Saps = π 2 2 · r ir kvadrato ploto Skv = r santykio formulės. Skaičiavimams supaprastinti r = 1, koordinatės x ir y teigiamos. Žinant apskritimo formulę x2 + y2 = r2, skaičiuojamas taškų su atsitiktinėmis koordinatėmis patekimas į ketvirčio ap- skritimo Tapskritimas ir viso skaičiaus Tvisi (žr. 4.3 pav.) santykis. Iš čia skaičius π = 4 Tapskritimas/Tvisi. ·

r

r

4.3 pav. Monte-Karlo metodo π skaičiaus vertei apskaičiuoti iliustracija Fig. 4.3. Monte-Carlo method for number π calculation 4.2. Skruzdžių sistemos įgyvendinimas MicroBlaze 87

C. Įgyvendinto pseudo atsitiktinių skaičių generatoriaus tyrimas Algoritmas buvo įgyvendintas asmeniniame kompiuteryje ir DLPLM įren- ginyje. Patikrinimo metu gauti vienodi rezultatai, naudojant viengubo ir dvigu- bo tikslumo skaičius, vykdant kompiuteryje ir DLPLM įrenginyje. Vykdymo DLPLM įrenginyje rezultatai pateikti 4.1 lentelėje.

4.1 lentelė. DLPLM įrenginyje įgyvendinto pseudo atsitiktinių skaičių generatoriaus rezultatai Table 4.1. Results of pseudo random number generator’s implemented in multi FPGA device Iteracijų Absoliuti Skaičiavimo skaičius klaida laikas, s 1E+2 0,021593 – 1E+3 0,026407 0,13 1E+4 0,023193 1,28 1E+5 0,001927 12,18 1E+6 0,000227 123,60 1E+7 0,000179 1235,00

Šis eksperimentas leido įvertinti pseudo atsitiktinių skaičių generatoriaus našumą dirbant su viengubo ir dvigubo tikslumo slankaus kablelio skaičiais. Eksperimento rezultatai pateikti 4.2 lentelėje.

4.2 lentelė. Pseudo atsitiktinių skaičių generatoriaus veikimo sparta Table 4.2. Pseudo random number generator’s performance results

Skaičiavimo laikas, s Be slankaus kablelio modulio Su slankaus kablelio moduliu Iteracijų Viengubas Dvigubas Viengubas Dvigubas skaičius tikslumas tikslumas tikslumas tikslumas 1 000 0,15 0,20 0,13 0,20 10 000 1,56 1,96 1,28 1,90 100 000 15,10 19,57 12,18 19,40 1 000 000 150,00 194,00 123,60 193,00

Iš gautų rezultatų galima teigti, kad pseudo atsitiktinių skaičių generato- riaus skaičiavimo laikas tiesiškai priklauso nuo iteracijų skaičiaus. Viengubo tikslumo skaičių formato naudojimas reikalauja 1,3 karto mažiau laiko be slan- kaus kablelio modulio ir apie 1,5 karto mažiau su slankaus kablelio moduliu. 88 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

4.2.3. MicroBlaze programinio procesoriaus sandara

A. MicroBlaze programinio procesoriaus vidiniai moduliai

MicroBlaze programinio procesoriaus branduolys gali turėti papildomus modulius, kurie, užimant daugiau vietos LPLM, gali paspartinti skaičiavimus. Papildomi MicroBlaze programinio procesoriaus moduliai:

• Pagrindinis slankaus kablelio modulis (SKM) leidžia paspartinti vien- gubo tikslumo aritmetines operacijas. • Išplėstas slankaus kablelio modulis papildo MicroBlaze keliomis funk- cijomis pvz. kvadratinės šaknies funkcija. • Sveikųjų skaičių daugintuvas spartina sveikųjų skaičių daugybą. Jis ga- li būti 32 bitų arba 64 bitų. • Postūmio modulis atlieka postūmio operacijas su bitų sekomis. • Sveikųjų skaičių dalybos modulis atlieka sveikųjų skaičių dalybą. • Būsenos registro modulis greitina darbą su būsenos registro atskirais bitais. • Komparatoriaus modulis leidžia greitinti (ypač kai lyginamos bitų se- kos) logines palyginimo operacijas.

B. MicroBlaze programinio procesoriaus galimybės

MicroBlaze gali operuoti viengubo arba dvigubo tikslumo slankaus kab- lelio skaičiais. Viengubo tikslumo skaičiai yra 32 bitų ilgio, iš jų 24 bitai skirti 24 log10(2 ) = 7,22 reikšminių skaitmenų kodavimui. Dvigubo tikslumo skai- 53 čiai yra 64 bitų ilgio, iš jų 53 bitai skirti log10(2 ) = 15,95 reikšminių skait- menų kodavimui. Xilinx Embedded Development Kit leidžia kurti pirmines programas Mic- roBlaze procesoriui, naudojant C programavimo kalbą.

4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas

Įgyvendinus skruzdžių sistemą DLPLM įrenginyje, atliktas jos našumo įvertinimas ir palygintas su perrinkimo metodu. Aptarsime tai detaliau. 4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas 89

4.3.1. Perrinkimo metodo efektyvumo tyrimas

Žinoma, kad sprendžiant keliaujančio prekeivio kombinatorinį uždavinį, galimų sprendimų skaičius priklauso nuo miestų skaičiaus n. Tuomet galimų kombinacijų skaičius, tarus, kad prekeivis visada išeina iš to paties miesto bei gali tik vieną kartą aplankyti konkretų miestą, lygus (n 1)!. Perrinkimo me- todas garantuoja geriausią sprendinį, nes patikrinama kiekviena− kombinacija. Taikant skruzdžių sistemos algoritmą, geriausio sprendinio radimas negali būti garantuotas. Taigi šis algoritmas taikomas esant dideliam miestų skaičiui, kai perrinkimo metodo taikyti dėl didelių laiko sąnaudų negalima. Siekiant paly- ginti abu būdus, jie buvo įgyvendinti. Perrinkimo metodo rezultatai pateikti 4.3 lentelėje. Po 11 miestų uždavinio, ekstrapoliuojant gauname laiko sąnau- das, reikalingas patikrinti didesnės apimties uždavinius. Jau prie 14 miestų už- davinio, laiko sąnaudos siekia 20 metų, o tai yra svarus argumentas ieškoti kitų sprendimo būdų.

4.3 lentelė. DLPLM įrenginyje įgyvendinto perrinkimo metodo rezultatai Table 4.3. Results of brute force method implemented in multi FPGA device Miestų Kombinacijų Trumpiausias Skaičiavimo skaičius skaičius atstumas laikas, s 8 5,04E+03 8,0000 2,00E+00 9 4,03E+04 9,4142 5,20E+01 10 3,63E+05 10,0000 1,32E+03 11 3,63E+06 11,4142 3,33E+04 12* 3,99E+07 12,0000 1,02E+06 13* 4,79E+08 13,4142 2,55E+07 14* 6,23E+09 14,0000 6,40E+08 * – rezultatai gauti ekstrapoliuojant

4.3.2. Skruzdžių sistemos greitaveikos tyrimas

Papildomų Mikroblaze programinio procesoriaus modulių įtaka buvo ver- tinama lyginant skruzdžių sistemos su perrinkimo metodu skaičiavimo laikus (žr. 4.4 lentelę). Vertinimui buvo pasirinktas 14 miestų uždavinys, nes tokio dydžio uždavinio sprendimo laikas skruzdžių sistema sutampa su 9 miestų už- davinio sprendimu perrinkimo metodu. Iš 4.4 lentelėje pateiktų rezultatų galima matyti, kad papildomų modu- 90 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

4.4 lentelė. MicroBlaze branduolio modulių įvertinimas Table 4.4. MicroBlaze core units evaluation

Skaičiavimo laikas, s Perrinkimo Skruzdžių MicroBlaze papildomi moduliai metodas sistema Tik branduolys 54,0 57,0 Pagrindinis SKM 53,0 33,4 Išplėstas SKM 53,0 – 32 bitų daugintuvas 53,5 43,0 64 bitų daugintuvas – – Postūmio – – Sveikųjų skaičių dalybos 54,0 57,0 Būsenos registro 54,0 57,0 Komparatoriaus 54,0 57,0 Pagrindinis SKM su 32 bitų daugintuvu 52,0 23,0 lių panaudojimas nevienodai įtakoja skaičiavimų spartą, o kai kurių modulių panaudojimas netgi yra netinkamas. Matyti, kad dalybos modulis nepadidino skaičiavimo spartos, o paprasto slankiojo kablelio modulis skruzdžių sistemos algoritmo atveju padidino spartą net 1,7 karto. Kitas modulis paspartinęs skai- čiavimus yra 32 bitų sveikųjų skaičių daugintuvas. Taikant šį modulį skruz- džių sistemos algoritmo įgyvendinime, skaičiavimai paspartėjo 1,32 karto. Re- miantis šio tyrimo rezultatais įgyvendinant skruzdžių sistemą nuspręsta kartu panaudoti paprastą SKM ir 32 bitų daugintuvą. Tai net 2,47 karto padidino šio algoritmo greitį. Tokius skaičiavimų paspartėjimus galima paaiškinti slankaus kablelio operacijų naudojimu skaičiuojant judėjimo tikimybes, feromono lygį ir atstumus tarp miestų. Perrinkimo metodo spartos prieaugis buvo daug ma- žesnis, (tik apie 1,04 karto) dėl daug mažesnės atliekamų per vieną iteraciją skaičiavimų apimties. Tolimesnis nagrinėjimas prie didesnio miestų skaičiaus (žr. 4.4 pav.), parodė, kad skruzdžių sistemai skaičiavimo greitis mažėja ir sta- bilizuojasi ties 1,9 reikšmę.

4.3.3. Skruzdžių sistemos parametrų dinamikos tyrimas

Taikant skruzdžių sistemos algoritmą keliaujančio prekeivio problemai spręsti, svarbu parinkti tinkamas pradines sąlygas – tai padidina tikimybę ras- ti optimalų sprendimą. Remiantis pripažintomis rekomendacijomis (Dorigo et al. 1996), parinkta: skruzdės jautrumas feromonui α = 1; skruzdės jautru- mas euristiniai informacijai β = 2 (sprendžiamo uždavinio atveju, tai atstumas 4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas 91

2,6

2,5

2,4

2,3

2,2

2,1

2

1 9 Greitaveikos prieaugis, kartais , 14 15 16 17 18 19 Miestų skaičius

4.4 pav. Greitaveikos prieaugio priklausomybė nuo uždavinio sudėtingumo Fig. 4.4. Performance gain dependence on problem comlexity tarp miestų); pradinis feromono lygis τ(0) = 0,2; skruzdžių kiekis N ir fero- mono garavimo koeficientas ρ didinamas priklausomai nuo miestų skaičiaus. Leidžiant po vieną skruzdę iš pradinio miesto, feromonas buvo atnaujinamas, atsižvelgiant į rasto kelio ilgį. Po kiekvieno eksperimento geriausias kelias įra- šytas, o feromono vertės gražintos į pradines. Kiekvienam miestų skaičiui at- likta po 1 000 eksperimentų (rezultatai pateikti 4.5 lentelėje). Eksperimento metu skruzdžių sistemos parametrai buvo keičiami, siekiant išgauti kuo didesnį skaičių teisingų sprendinių. Aptarsime parametrų kitimą eksperimento metu. Augant miestų skaičiui, auga kelio ilgis ir įmanomų kelių skaičius. Tam, kad išlaikyti feromono informaciją apie rastus kelius, garavimo koeficientas turi didėti. Atsižvelgiant į 4.5 paveiksle pateiktą garavimo koeficiento kitimą, galima aproksimuoti eksponente, nes jo maksimali vertė negali būti daugiau vieneto ir augant miestų skaičiui, jis artėja prie vieneto. Atliekant eksperimen- tus, garavimo koeficientas nebuvo didinamas, tol, kol nesuprastėdavo randamų sprendinių vidurkis. Esant miestų skaičiui 14, garavimo koeficientas buvo 0,5, bet jau esant 20 miestų uždaviniui, garavimo koeficientą teko padidinti iki 0,8. Skruzdžių skaičius irgi turi būti didinamas, augant miestų skaičiui, nes su kiekvienu miestu, galimų sprendinių skaičiui auga pagal faktorialo dėsnį. Vyk- dant eksperimentą, skruzdžių skaičius buvo didinamas tik esant suprastėjusiam sprendinių vidurkiui. Sprendžiant 14 miestų uždavinį, užtekdavo 6 skruzdžių. 92 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU laikas, s Skaičiavimo ezultatai Feromono garavimas nuokrypis Standartinis atstumas Blogiausias atstumas Geriausias DLPLM įrenginyje įgyvendintos skruzdžių sistemos tyrimo r Analysis of Ant System implemented in multi-FPGA device vidurkis Atstumo Table 4.5. 4.5 lentelė. 67 19,1793 20,5569 14,0000 15,4142 24,3890 25,1131 1,516134 1,537905 0,5 0,6 23 58 9 21,5220 16,0000 25,8323 1,696412 0,6 84 16161616 22,4686 23,3956 24,7863 17,4142 27,3147 18,0000 19,4142 26,9655 20,0000 28,4826 29,1355 1,624658 33,6448 1,722103 1,667936 1,888431 0,6 0,6 0,7 0,8 161 190 210 232 23242425 27,467928 28,2904 29,8633 21,4142 31,1123 22,0000 31,6145 23,4142 32,1710 24,0000 33,3557 25,4142 35,8677 1,790653 37,7390 1,875039 37,2066 1,887759 1,910824 0,8 1,934931 0,8 0,8 0,8 0,8 357 421 463 526 638 skaičius Skruzdžių 14 17 16 18 21 15 19 20 22 23 25 24 Miestų skaičius 4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas 93

0,9

0,85

0,8

0,75

0,7

0,65

0,6

0,55 Garavimo koeficientas 0 5 , 14 16 18 20 22 24 26 Miestų skaičius

4.5 pav. Garavimo koeficiento kitimas Fig. 4.5. Variation of evaporation coefficient

30

25

20

15

10 Skruzdžių skaičius

5 14 16 18 20 22 24 26 Miestų skaičius

4.6 pav. Skruzdžių skaičiaus priklausomybė nuo miestų skaičiaus Fig. 4.6. Ants number dependence on number of cities

Esant 25 miestų uždaviniui, skruzdžių skaičius buvo 28. Skruzdžių skaičiaus didinimą, atsižvelgiant į 4.6 paveikslą, galima aproksimuoti tiese. Pagal reko- mendacijas, skruzdžių skaičius turėtų būti lygus miestų skaičiui. Atliekant eksperimentą, taip pat buvo matuojamas visų bandymų atitin- 94 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU

700

600

500

400

300

200

Vykdymo laikas, s 100

0 14 16 18 20 22 24 26 Miestų skaičius

4.7 pav. Vykdymo laiko priklausomybė nuo miestų skaičiaus Fig. 4.7. Execution time dependence on number of cities

Vidutinis Geriausias Blogiausias 40

35

30

25

20

Kelio ilgis 15

10 14 16 18 20 22 24 26 Miestų skaičius

4.8 pav. Sprendinių įvertinimas Fig. 4.8. Evaluation of solutions kančių vienam miestų skaičiui vykdymo laikas. Iš 4.7 paveikslo matyti, kad visą laiko kreivę aproksimuoti tiese nelabai galima, nes laikas priklauso ne tik nuo miestų skaičiaus, bet ir nuo skruzdžių skaičiaus. Grafiko dalį, nuo 17 iki 20 miestų, kurioje skruzdžių skaičius išlikdavo pastovus, galima aproksimuoti tiese, bet skruzdžių skaičiaus padidinimas lėmė ilgesnį vykdymo laiką ir pagal 4.3. Įgyvendintos skruzdžių sistemos našumo įvertinimas 95

2

1,9

1,8

1,7

1,6

1,5 Standartinis nuokrypis 1 4 , 14 16 18 20 22 24 26 Miestų skaičius

4.9 pav. Standartinio nuokrypio kitimas Fig. 4.9. Variation of standard deviation rekomendacijas miestų ir skruzdžių skaičius turėtų augti kartu. Didelis eksperimentų skaičius leido fiksuoti eksperimentų statistiką: ge- riausius ir blogiausius sprendinius, sprendinio vidurkius (žr. 4.8 pav.) ir stan- dartinį nuokrypį (žr. 4.9 pav.). Parametrai buvo parenkami taip, kad bent vie- nas sprendinys iš 1 000 atitiktų trumpiausią kelią. Buvo sudarytas toks už- davinys, kad būtu žinomas trumpiausias kelias esant duotam miestų skaičiui. Tokio uždavinio trumpiausio kelio ilgio priklausomybė nuo miestų skaičiaus galima aproksimuoti tiese. Stebint blogiausią sprendinį ir sprendinių vidurkį, galima spręsti apie sistemos parametrų tinkamumą ir atitinkamai juos keisti. Esant 20 miestų uždaviniui, matome staigų vidurkio ir blogiausio sprendinio padidėjimą, kurį lėmė nepakankamas skruzdžių skaičius esamam uždaviniui. Padidinus skruzdžių skaičių, esant 21 miesto uždaviniui, sprendinių vidurkis ir blogiausias sprendinys sumažėjo. Kitas svarbus sistemos veikimo stebėjimo rodiklis yra standartinis nuokry- pis (žr. 4.9 pav.). Standartinio sprendinių nuokrypio stebėjimas leidžia laiku keisti parametrus. Staigus standartinio nuokrypio padidėjimas esant 16 miestų uždaviniui, rodė nepakankamą skruzdžių skaičių. Padidinus skruzdžių skai- čių nuo 9 iki 16, standartinis nuokrypis sumažėjo. Kitas staigus standartinio nuokrypio padidėjimas esant 20 miestų uždaviniui, reikalavo skruzdžių skai- čiaus ir garavimo koeficiento didinimo. Didinant miestų skaičių, natūralu, kad sprendinių erdvė augs ir standartinis nuokrypis bei skirtumai tarp geriausio ir blogiausio sprendinio augs. Standartinis nuokrypis gali būti naudojamas spren- 96 4. SKRUZDŽIŲ SISTEMOS ĮGYVENDINIMAS LPLM ĮRENGINIU dinio kokybei įvertinti – kai nuokrypis tampa lygiu nuliui, stochastinis algorit- mas tampa determinuotu. Standartinio nuokrypio vertė gali būti maža dėl: • Uždaviniui taikyta per didelė skruzdžių kolonija – sprendinių vidurkis labai arti arba sutampa su geriausiu sprendiniu. • Neteisingai parinkti skruzdžių kolonijos parametrai – kolonija dažnai „užstringa“ tame pačiame (lokalaus minimumo) sprendinyje. Didėjanti standartinio nuokrypio vertė rodo algoritmo efektyvumo mažėjimą – sprendinio paieška tampa visiškai atsitiktinė, t. y., algoritmo sprendinius mažai ar visai neįtakoja euristinė ir feromono informacija: • Sprendžiamam uždaviniui taikyta per maža skruzdžių kolonija – spren- dinių vidurkis toli nuo geriausio sprendinio. • Parinkti prasti skruzdžių kolonijos parametrai – kolonija nesugeba ieš- koti greta geresnių sprendinių. Optimizavimo algoritmai negarantuoja geriausio sprendinio radimo ir pa- kankamai didelės apimties uždaviniui geriausio sprendinio rasti nepavyks, ta- čiau rasti sprendiniai bus arti geriausio.

4.4. Ketvirtojo skyriaus išvados

L Išanalizuotas stochastinių algoritmų lauku programuojamų loginių mat- ricų įrenginiuose įgyvendinimas šiais pagrindiniais būdais: • specializuota kalba VHDL; • taikant AccelDSP specializuotą programinį įrankį; • naudojant MicroBlaze programinį procesorių. L Aptarti stochastinių algoritmų įgyvendinimo apribojimai. L Parinktas pseudo atsitiktinių skaičių generatorius, grįstas daugyba su perkėlimu ir atliktas jo našumo įvertinimas, taikant generatorių skai- čiui π apskaičiuoti Monte-Karlo metodu. L Daugialusčiame LPLM įgyvendinta modifikuota skruzdžių sistema ke- liaujančio prekeivio uždaviniui spręsti. L Įvertinta MicroBlaze procesoriaus blokų įtaka skruzdžių sistemos na- šumui. Parinkus tinkamą MicroBlaze procesoriaus blokų kombinaciją, skruzdžių sistemos greitaveika padidinta 1,9 karto. L Išanalizavus skruzdžių sistemos parametrų pokyčius, keičiant uždavinio dydį, siūloma skruzdžių sistemos parametrus keisti remiantis skruzdžių sistemos sprendinio standartiniu kvadratiniu nuokrypiu. Bendrosios išvados

Disertacijoje pasiūlyti ir ištirti optimizavimu skruzdžių kolonijomis grįsti vaizdų apdorojimo būdai ir priemonės bei gauti šie elektros ir elektronikos inžinerijos mokslo krypčiai svarbūs rezultatai: 1. Sukurta nauja vaizdų pirminio apdorojimo, paremto max-min skruz- džių sistema, metodika, kuri esant sudėtingiems sprendiniams randa sprendinį 30 % greičiau nei bendrinė max-min skruzdžių sistema be pradinio skruzdžių padėties valdymo. 2. Sukurta nauja vaizdų segmentavimo, paremto daugelio skruzdžių ko- lonijų varžymusi, metodika leidžianti gauti virš 60 % tikslesnius susi- liejusių baltymų pėdsakų dvimatės elektroforezės gelių vaizduose seg- mentavimo rezultatus nei taikant slenksčio funkciją. 3. Atlikti skruzdžių sistemos įgyvendinimo lauku programuojamoje lo- ginėje matricoje tyrimai, lyginant su įprastu MicroBlaze procesoriumi be papildomų modulių, leido pasiekti 1,9 karto didesnę veikimo spartą, sprendžiant keliaujančio prekeivio užduotį, naudojant slankaus kable- lio modulį ir 32 bitų daugiklį. 4. Parengtos šios rekomendacijos: • Vaizdų pirminio apdorojimo metodikoje, kai naudojama max-min skruzdžių sistema, rekomenduojama pradinį skruzdžių dėstymą at- likti perkeliant 20 % skruzdžių.

97 98 BENDROSIOS IŠVADOS

• Vaizdų segmentavimo, paremto daugeliu skruzdžių kolonijų varžy- musi, metodikoje rekomenduojama segmentavimo procesą stabdy- ti remiantis skruzdžių populiacijos dydžio svyravimais. • Įgyvendintos daugialusčiame LPLM įrenginyje su MicroBlaze prog- raminiu procesoriumi skruzdžių sistemos parametrus rekomenduo- jama keisti remiantis skruzdžių sistemos sprendinio standartiniu kvadratiniu nuokrypiu. Literatūros sąrašas

Allaire, F. C.; Tarbouchi, M.; Labonté, G.; Fusina, G. 2009. Fpga implementation of for uav real-time path planning, J. Intell. Robotics Syst. 54(1–3): 495–510. ISSN 0921-0296.

Back, T.; Fogel, D. B.; Michalewicz, Z. (Ed.). 2000a. Evolutionary Computation I. Basic Algorithms and Operators, Institute of Physics Publishing, ISBN 0-7503- 0664-5.

Back, T.; Fogel, D. B.; Michalewicz, Z. (Ed.). 2000b. Evolutionary Computation II. Advanced Algorithms and Operators, Institute of Physics Publishing, ISBN 0-7503-0665-3.

Beckers, R.; Holland, O. E.; Deneubourg, J. L. 1994. From local actions to global tasks: Stigmergy and collective robotics, in Artificial Life IV, Brooks, R.; Maes, P. Cambridge, MIT Press, 181–189.

Beucher, S.; Lantuéjoul, C. 1979. Use of watersheds in contour detection, in Proc. Int. Workshop on Image Processing, 17–21.

Beucher, S.; Meyer, F. 1993. The morphological approach to segmentation: The wa- tershed transformation, in Mathematical Morphology in Image Processing, 433– 481.

Bishop, J. M. 1989. Stochastic searching networks, in Proceedings of First IEE International Conference on Artificial Neural Networks, 329–331.

99 100 LITERATŪROS SĄRAŠAS

Blum, C.; Dorigo, M. 2004. The hyper-cube framework for ant colony optimization, in IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics 34(2): 1161–1172.

Blum, C.; Roli, A.; Dorigo, M. 2001. Hc-aco: The hyper-cube framework for ant colony optimization, in Metaheuristics International Conference, 2, 399–403.

Bocchi, L.; Ballerini, L.; Hassler, S. 2005. A new evolutionary algorithm for image segmentation, in Lecture Notes in Computer Science, 264–273.

Bonabeau, E.; Dorigo, M.; Theraulaz, G. 1999. Swarm Intelligence: From Natural to Artificial Systems, New York: Oxford University Press.

Bonabeau, E.; Sobkowski, A.; Theraulaz, G.; Deneubourg, J. L. 1997. Adaptive task allocation inspired by a model of division of labor in social insects, in Bio- Computaion and Emergent , 36–45.

Borgefors, G. 1986. Distance transformations in digital images, Computer Vision, Graphics, and Image Processing 34(3): 344–371.

Box, G. E. P. 1957. Evolutionary operation: a method for increasing industrial productivity, Applied Statistics 6: 81–101.

Bremermann, H. J. 1962. Optimization through evolution and recombination, Self- Organizing Systes.

Bremermann, H. J.; Rogson, M.; Salaff, S. 1965. Search by evolution, in Biophysics and Cybernetic Systems, 157–167.

Brown, S.; Vranesicz, Z. 2005. Fundamentals of Digital Logic with VHDL Design, McGraw-Hill.

Bullnheimer, B.; Hartl, R.; Strauss, C. 1997. A new rank based version of the Ant System—A computational study Ataskaita, Institute of Management Science, Uni- versity of Vienna.

Bullnheimer, B.; Hartl, R.; Strauss, C. 1999. A new rank-based version of the ant system: A computational study, Central European Journal for Operations Research and Economics 7(1): 25–38.

Campos, M.; Bonabeau, E.; Théraulaz, G.; Deneubourg, J.-L. 2000. Dynamic sche- duling and division of labor in social insects, Adaptive Behavior 8(2): 83–95.

Cerny, V. 1985. A thermodynamical approach to the traveling salesman problem, in Journal of Optimization Theory and Applications. 101

Circirello, V. A.; Smith, S. F. 2001. Ant colony control for autonomous decentra- lized shop floor routing, in Proceedings of the 5th International Symposium on Autonomous Decentralized Systems, IEEE Computer Society Press, 383–390.

Clerc, M. 2004. Discrete particle swarm optimization, New Optimization Tech- niques in Engineering, Springer-Verlag.

Couture, R.; L’Ecuyer, P. 1995. Linear recurrences with carry a uniform random number generators, in Proceedings of the 1995 Winter Simulation Conference, 263–267.

Couture, R.; L’Ecuyer, P. 1997. Distribution properties of multiply-with-carry ran- dom number generators, Mathematics of Computation 66: 591–607.

Das, S.; Abraham, A.; Konar, A. 2009. Metaheuristic Clustering, Studies in Com- putational Intelligence, Springer, ISBN 3540921729.

Deneubourg, J. L.; Aron, S.; Goss, S.; Pasteels, J. M. 1990. The self-organizing exploratory pattern of the argentine ant, Journal of Insect Behavior 3: 159–168.

Deneubourg, J. L.; Goss, S.; Franks, N.; Sendova-Franks, A.; Detrain, C.; Chretien, L. 1991. The dynamics of collective sorting: Robot-like ants and ant-like robots, in Proceedings of the First International Conference on Simulation of Adaptive Behavior: From Animals to Animats, MIT Press, 356–363.

Dorigo, M. 1992. Optimization, Learning and Natural Algorithms, , Dipartimento di Elettronica, Politecnico di Milano.

Dorigo, M. 2001. Ant algorithms solve difficult optimization problems, in Procee- dings of the Sixth European Conference on Artificial Life, 2159, Klemen, J. Berlin: Springer-Verlag, 2159, 11–22.

Dorigo, M.; Birattari, M.; Blum, C.; Clerc, M.; Stutzle, T.; Winfield, A. F. T. (Ed.) 2008. Ant Colony Optimization and Swarm Intelligence, Springer, ISBN 3540875263.

Dorigo, M.; Bonabeau, E.; Theraulaz, G. 2000. Ant algorithms and stigmergy, Future Generation Computer Systems 16(8): 851–871.

Dorigo, M.; Gambardella, L. M. 1995. Ant-q: A reinforcement learning approach to the traveling salesman problem, in Proceedings of the Twelfth International Conference on , Morgan Kaufmann, 252–260.

Dorigo, M.; Gambardella, L. M. 1996. A study of some properties of ant-q, Procee- dings of Fourth International Conference on Parallel Problem Solving from Nature, 1141. Springer-Verlag, 656–665. 102 LITERATŪROS SĄRAŠAS

Dorigo, M.; Gambardella, L. M. 1997a. Ant colonies for traveling salesman prob- lem, BioSystems 43(2): 73–81.

Dorigo, M.; Gambardella, L. M. 1997b. Ant colony system: A cooperative learning approach to the traveling salesman problem, IEEE Transactions on Evolutionary Computation 1(1): 53–56.

Dorigo, M.; Maniezzo, V.; Colorni, A. 1991. Positive feedback as a search strategy, Ataskaita, Dipartimento di Elettronica, Politecnico di Milano.

Dorigo, M.; Maniezzo, V.; Colorni, A. 1992. Distributed optimization by ant colo- nies, Proceedings of the First European Conference on Artificial Life, Cambridge, MIT Press.

Dorigo, M.; Maniezzo, V.; Colorni, A. 1996. The ant system: Optimization by a co- lony of cooperating agents, IEEE Transactions on Systems, Man, and Cybernetics — Part B 26(1): 1–13.

Dorigo, M.; Trianni, V.; Sahin, E.; Labella, T.; Gross, R.; Baldassarre, G.; Nolfi, S.; Deneubourg, J. L.; Mondada, F.; Floreano, D.; Gambardella, L. M. 2003. Evolving self-organizing behaviors for a Swarm-bot, Ataskaita, IRIDIA, Universite Libre de Bruxelles, Brussels.

Eberhart, R. C.; Kennedy, J. 1995a. A new optimizer using particle swarm theory, in Proceedings of the Sixth International Symposium on Micromachine and Human Science, 39–43.

Eberhart, R. C.; Kennedy, J. 1995b. Particle swarm optimization, in Proceedings of IEEE International Conference on Neural Networks, 1942–1948.

Eiben, A. E.; Smith, J. E. 2003. Introduction to Evolutionary Computing, Natural Computing Series, Springer, ISBN 3540401849.

Engelbrecht, A. P. 2006. Fundamentals of Computational Swarm Intelligence, John Wiley & Sons, ISBN 0470091916.

Eshelman, L. 1991. The chc adaptive search algorithm: How to have safe search when engaging in nontraditional genetic recombination, in Foundations of Genetic Algorithms, 256–283.

Fabrikant, S. I. 2000. Spatial Metaphors for Browsing Large Data Archives , Uni- versity of Colorado at Boulder.

Fernandes, C.; Ramos, V.; Rosa, A. 2005. Self-regulated artificial ant colonies on digital image habitats, International Journal of Lateral Computing 1(2).

Fernandes, C.; Ramos, V.; Rosa, A. C. 2000. Self-Regulated Artificial Ant Colonies on Digital Image Habitats Ataskaita, Technical Univercity of Lisbon. 103

Flood, M. M. 1956. The traveling-salesman problem, Operations Research 4(1): 61–75.

Fogel, L. J.; Owens, A. J.; Walsh, M. J. 1966. Artificial Intelligence through Simu- lated Evolution, John Willey & Sons.

Franks, N. R. 1986. Teams in social insects: Group retrieval of prey by army ants (ection burchelli, hymenoptera: Formicidae), Behavioral Ecology and Sociobiolo- gy 18: 425–429.

Fraser, A. S. 1957. Simulation of genetic systems by atomatic digital computers, Biological Science 10: 484–499.

Friedberg, R. M. 1958. A learning machine: part i, IBM 2: 2–13.

Friedberg, R. M.; Dunham, B.; North, J. H. 1959. A learning machine: part ii, IBM 3: 282–287.

Ghanbarian, A. T.; Kabir, E.; Charkari, N. M. 2007. Color reduction based on ant colony, Letters 28(12): 1383–1390.

Glover, F. 1989. Tabu search–part i, ORSA Journal on Computing 1(3): 190–206.

Glover, F.; Laguna, M. 1997. Tabu Search, Springer.

Goldberg, D. E. 1989. Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley.

Goranin, N.; Čenys, A. 2008. Genetic algorithm based internet worm propagation strategy modeling, Information Technology and Control 37(2): 133–140. ISSN 1392-124X.

Grasse, P. P. 1959. La reconstruction du nid et les coordinations inter-individuelles chez belicositermes natalensis et cubitermes sp. la théorie de la stigmergie : Essai d’interprétation du comportement des termites constructeurs, Insectes Sociaux 6: 41–80.

Grosan, A. A. C.; Ramos, V. (Ed.) 2006. Stigmergic Optimization, Springer, ISBN 3540346899.

Guntsch, M.; Scheuermann, B.; Schmeck, H.; Middendorf, M.; Diessel, O.; ElGin- dy, H.; So, K. 2002. Population based ant colony optimization on fpga, in Proce- edings of the IEEE International Conference on Field-Programmable Technology (FPT), Hong Kong, 2002, 125–133.

Hamming, R. W. 1950. Error detecting and error correcting codes, Bell System Technical Journal 29(2): 147–160. 104 LITERATŪROS SĄRAŠAS

Handl, J.; Meyer, B. 2002. Improved ant-based clustering and sorting in a document retrieval interface, in Proceedings of PPSN-VII, Seventh International Conference on Parallel Problem Solving from Nature, 2439 Lecture Notes in Computer Scien- ce, Merelo, J. J.; Adamidis, P.; Beyer, H. G.; Fenandez-Villacanas, J. L.; Schwefel, H. P. Berlin: Springer-Verlag, 2439 Lecture Notes in Computer Science, 913–923.

Hgarat-Mascle, S. L.; Kallel, A.; Descombes, X. 2007. Ant colony optimization for image regularization based on a nonstationary markov modeling, IEEE Transac- tions on Image Processing 16(3): 865–878.

Holland, J. H. 1975. Adaptation in Natural and Artificial Systems, University of Michigan Press.

Holland, J. H. 1992. Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence, The MIT Press.

Holland, O.; Melhuish, C. 1999. Stigmergy, self-organization, and sorting in colle- ctive robotics, Artificial Life 5(2): 173–202.

Hu, X.; Shi, Y.; Eberhart, R. 2004. Recent advances in particle swarm. Congress on Evolutionary Computation, 1. 1, 90–97. ISBN 0-7803-8515-2.

Huerta, P.; Castillo, J.; Martinez,´ J. I.; López, V. 2005. Multi microblaze system for , in ICC’05: Proceedings of the 9th International Conferen- ce on Circuits, Stevens Point, Wisconsin, USA: World Scientific and Engineering Academy and Society, 1–6. ISBN 960-8457-29-7.

Johansson, M. 2006. Image Registration with and Genetic Algorithms, Magistro baigiamasis darbas School of Computer Science and Engine- ering, Royal Institute of Technology.

Kennedy, J.; Eberhart, R. C. 2001. Swarm Intelligence, Morgan Kaufmann Publis- hers, ISBN 1-55860-595-9.

Kirkpatrick, S.; Gelatt, C. D.; Vecchi, M. P. 1983. Optimization by simulated an- nealing, SCIENCE 220(4598): 671–680.

Krieger, M. J. B.; Billeter, J. B. 2000. The call of duty: Self-organised task allo- cation in a population of up to twelve mobile robots, Robotics and Autonomous Systems 30(1–2): 65–84.

Krieger, M. J. B.; Billeter, J. B.; Keller, L. 2000. Ant-like task allocation and rec- ruitment in cooperative robots, Nature 406: 992–995.

Kube, C. R.; Zhang, H. 1994. Collective robotics: From social insects to robots, Adaptive Behavior 2: 189–218. 105

Kuntz, P.; Snyers, D.; Layzell, P. 1999. A stochastic heuristic for visualizing graph clusters in a bidimensional space prior to partitioning, Journal of Heuristics 5(3): 327–351.

Lai, D. X.; Chang, Y. H.; Zhong, Z. H. 2009. Active contour tracking of moving objects using edge flows and ant colony optimization in video sequences, Pacific Rim Symposium on Advances in Image and Video Technology, 1104–1116.

Lawler, E. L. 1963. The quadratic assignment problem, Management Science 9(4): 586–599.

Lawrence, S.; Giles, C. L. 1998. Searching the world wide web, Science 280: 98–100.

Lourenco, H. R.; Martin, O.; Stutzle, T. 2002. Iterated local search, Hanbook of Metaheuristics, 57 International Series in Operations Research and Manage- ment Science, GLOVER, F.; KOCHENBERGER, G., Kluwer Academic Publis- hers, 321–353.

Lu, D. S.; Chen, C. C. 2008. Edge detection improvement by ant colony optimiza- tion, Pattern Recognition Letters 29(4): 416–425.

Lumer, E.; Faieta, B. 1994. Diversity and adaptation in populations of clustering ants, in Proceedings of the Third International Conference on Simulation of Adap- tive Behavior: From Animals to Animats, Meyer, J. A.; Wilson, S. W. Cambridge, MIT Press, 501–508.

Malisia, A. R.; Tizhoosh, H. R. 2006a. Applying ant colony optimization to binary thresholding, in International Conference on Image Processing, 2409–2412.

Malisia, A. R.; Tizhoosh, H. R. 2006b. Image thresholding using ant colony opti- mization, in Computer and Robot Vision, 26–26.

Maniezzo, V.; Carbonaro, A. 2000. An ants heuristics for the frequency assignment problem, Future Generation Computer Systems 16(8): 927–935.

Marsaglia, G. 1994. Yet another rng, Electronic billboard sci.stat.math .

Martin, P. 2001. A hardware implementation of a genetic programming system using fpgas and handel-c, Genetic Programming and Evolvable Machines 2(4): 317–343. ISSN 1389-2576.

Martinoli, A.; Mondada, F. 1998. Probabilistic modelling of a bio-inspired col- lective experiment with real robots, in Proceedings of the Fourth International Symposium on Distributed Autonomous Robotic Systems, Dillman, T. L. R.; Dario, P.; Worn, H. Berlin: Springer-Verlag, 289–308. 106 LITERATŪROS SĄRAŠAS

Matuzevičius, D.; Navakauskas, D. 2005. Investigation of segmentation methods for proteomics, Electronics and Electrical Engineering 7(63): 66–70. ISSN 1392- 1215. In Lithuanian.

Mehmood, S.; Cagnoni, S.; Mordonini, M.; Matrella, G. 2008. Hardware-oriented adaptation of a particle swarm optimization algorithm for object detection, in DSD ’08: Proceedings of the 2008 11th EUROMICRO Conference on Digital System Design Architectures, Methods and Tools, Washington, DC, USA: IEEE Computer Society, 904–911. ISBN 978-0-7695-3277-6.

Melkemi, K. E.; Batouche, M.; Foufou, S. 2006. A multiagent system approach for image segmentation using genetic algorithms and extremal optimization heuristics, Pattern Recognition Letters 27(11): 1230–1238.

Meshoul, S.; Batouche, M. 2002. Ant colony system with external dynamics for point matching and pose estimation, ICPR02. III: 823–826.

Metropolis, N.; Ulam, S. 1949. The monte carlo method, Journal of the American Statistical Association 44(247): 335–341.

Michalewicz, Z.; Fogel, D. B. 2004. How to solve it: modern heuristics, New York, NY, USA: Springer-Verlag New York, Inc. ISBN 3-540-22494-7.

Middendorf, M.; Reischle, F.; Schmeck, H. 2000. Information exchange in multi colony ant algorithms, Parallel and Distributed Processing, Springer Berlin / Hei- delberg, Lecture Notes in Computer Science, 645–652. ISBN 978-3-540-67442-9.

Misevičius, A. 2008a. An entropy-based genetic algorithm. Continuous Optimiza- tion and Knowledge-Based Technologies, Sakalauskas, L.; Weber, G. W.; Zavads- kas, E. K. Technika, 7–12. ISBN 978-9955-28-283-9.

Misevičius, A. 2008b. Restart-based genetic algorithm for the quadratic assignment problem. in Research and Development in Intelligent Systems, Proceedings of AI-2008, BRAMER, M.; COENEN, F.; PETRIDIS, M. Springer, 91–104, ISBN 978-1-84882-170-5.

Misevičius, A. 2008c. Simulated annealing algorithm for the solution of the tra- veling salesman problem. International Conference on Information and Software Technologies, Sakalauskas, L.; Weber, G. W.; Zavadskas, E. K. Technologija, 19– 24. ISSN 2029-0020.

Misevičius, A.; Ostreika, A. 2007. Defining tabu tenure for the quadratic assignment problem, Information Technology and Control 36(4): 341–347. ISSN 1392-124X.

Misevičius, A.; Rubliauskas, D. 2008. Enhanced improvement of individuals in genetic algorithms, Information Technology and Control 37(3): 179–186. ISSN 1392-124X. 107

Misevičius, A.; Smolinskas, J.; Tomkevičius, A. 2005. Iterated tabu search for the traveling salesman problem: new results, Information Technology and Control 34(4): 327–337. ISSN 1392-124X.

Misevičius, A.; Tomkevičius, A.; Karbauskas, J. 2008. Stagnation-protected tabu search variants for unstructured quadratic assignment problems, Information Tech- nology and Control 35(4): 363–370. ISSN 1392-124X.

Moffett, M. W. 1988. Cooperative food transport by an asiatic ant, National Geo- graphic Research 4: 386–394.

Moscato, P.; Tinetti, F. 1992. Blending Heuristics with a Population-Based Appro- ach: A Memetic Algorithm for the Traveling Salesman Problem, Ataskaita 92–12, Universidad Nacional de La Plata.

Moyson, F.; Manderick, B. 1988. The collective behaviour of ants : an example of self-organization in massive parallelism, Spring Symposium on Parallel Models of Intelligence.

Naylor, D.; Jones, S. 1997. VHDL: A Logic Synthesis Approach, Chapman & Hall.

Nenortaitė, J. 2007. A particle swarm optimization approach in the construction of decision-making model, Information Technology and Control 36(1): 158–163. ISSN 1392-124X.

Noyan, S. 2002. Agent-based approach to dynamic task allocation. in Proceedings of ANTS 2002–From Ant Colonies to Artificial Ants: Third International Workshop on Ant Algorithms, 2463 Lecture Notes on Computer Science, Dorigo, M.; Caro, G. D.; Sampels, M. Berlin: Springer-Verlag, 2463 Lecture Notes on Computer Science, 28–39.

Omran, M. G. H. 2004. Particle Swarm Optimization Methods for Pattern Recog- nition and Image Processing, University of Pretoria.

Ouadfel, S.; Batouche, M. 2002. Unsupervised image segmentation using a colony of cooperating ants, in Biologically Motivated Computer Vision, 109–116.

Ouadfel, S.; Batouche, M. 2003. Ant colony system with local search for markov random field image segmentation, International Conference on Image Processing, I: 133–136.

Paulinas, M.; Ušinskas, A. 2007. A survey of genetic algorithms applications for image enhancement and segmentation, Information Technology and Control 36(3): 278–284, ISSN 1392-124X.

Pedroni, V. A. 2004. Circuit Design with VHDL, Cambridge, MA, USA: MIT Press, ISBN 0262162245. 108 LITERATŪROS SĄRAŠAS

Perlin, H. A.; Lopes, H. S.; Centeno, T. M. 2008. Particle swarm optimization for object recognition in computer vision, New Frontiers in Applied Artificial Intelligence 5027: 11–21, ISSN 0302-9743.

Pham, D. T.; Ghanbarzadeh, A.; Koc, E.; Otri, S.; Rahim, S.; Zaidi, M. 2005. The Bees Algorithm, Ataskaita Manufacturing Engineering Centre, Cardiff University.

Rechenberg, I. 1973. Evolutionsstrategie—Optimerung technischer Systeme nach Prinzipien der biologischen Information, Fromman Verlag.

Robinson, G. E. 1992. Regulation of division of labor in insect societies, Annual Review of Entomology 37: 637–665.

Salman, A.; Imtiaz, A.; Al-Madani, S. 2001. Discrete particle swarm optimization for heterogeneous task assignment problem, in Proceedings of World Multiconfe- rence on Systemics, Cybernetics and Informatics.

Secrest, B. R. 2001. Traveling salesman problem for surveillance mission using particle swarm optimization, Magistro baigiamasis darbas, School of Engineering and Management of the Air Force Institue of Technology.

Secrest, B. R.; Lamont, G. B. 2001. Communication in particle swarm optimization illustrated by the traveling salesman problem, in Proceedings of the Workshop on Particle Swarm Optimization.

Serackis, A. 2008. Vaizdo rekonstravimo technologijos baltymų pėdsakams pa- rametrizuoti, Daktaro disertacija, Vilniaus Gedimino technikos universitetas, Nr. 1549 M.

Shackleford, B.; Snider, G.; Carter, R. J.; Okushi, E.; Yasuda, M.; Seo, K.; Yasuura, H. 2001. A high-performance, pipelined, fpga-based genetic algorithm machine, Genetic Programming and Evolvable Machines 2(1): 33–60, ISSN 1389-2576.

Sitkoff, N. 1995. Implementing a genetic algorithm on a parallel custom computing machine, in FCCM ’95: Proceedings of the IEEE Symposium on FPGA’s for Cus- tom Computing Machines, Washington, DC, USA: IEEE Computer Society, 180, ISBN 0-8186-7086-X.

Song, M. P.; Gu, G. C. 2004. Research on particle swarm optimization: A review, IEEE.

Srinivas, M.; Patnaik, L. M. 1994. Genetic algorithms: A survay, IEEE Computer 27(6): 17–26, ISSN 0018-9162.

Studd, J. H. 1965. The transport of prey by ants, Behaviour 25: 234–271. 109

Stutzle, T.; Hoos, H. H. 1996. Improving the Ant System: A detailed report on MAX-MIN Ant System, Ataskaita, FG Intellektik, FB Informatik, TU Darmstadt, Germany.

Stutzle, T.; Hoos, H. H. 1997. The max-min ant system and local search for the traveling salesman problem, in Proceedings of the 1997 IEEE International Con- ference on Evolutionary Computation (ICEC’97), 309–314.

Stutzle, T.; Hoos, H. H. 1999. Max-min ant system and local search for combinatio- nal optimization problems, Meta-Heuristics: Advances and Trends in Local Search Paradigms for Optimization, 137–154.

Stutzle, T.; Hoos, H. H. 2000. Max-min ant system, Future Generation Computer Systems 16(8): 889–914.

Ušinskas, A.; Navakauskas, D. 2003. Segmentation of ischemic stroke in CT ima- ges of human brain, Information Technology and Control 28(3): 47–53, ISSN 1392-124X.

Wagner, I. A.; Lindenbaum, M.; Bruckstein, A. M. 1996. Smell as computational resource – a lesson we can learn from the ant, in Proceedings of the Fourth Israeli Symposium on Theory of Computating and Systems, Vardi, M. Y. IEEE Computer Society Press, 219–230.

Wagner, I. A.; Lindenbaum, M.; Bruckstein, A. M. 1998. Efficient graph search by a smell-oriented vertex process, Annals of Mathematics and Artificial Intelligence 24: 211–223.

Wagner, I. A.; Lindenbaum, M.; Bruckstein, A. M. 2000. Ants: Agents, networks, trees and subgraphs, Future Generation Computer Systems 16(8): 915–926.

Wang, K. P.; Huang, L.; Zhou, C. G.; Pang, W. 2003. Particle swarm optimization for traveling salesman problem, in Proceedings of International Conference on Machine Learning and Cybernetics, 1583–1585.

Watkins, C. J. C. H.; Dayan, P. 1992. Q-learning, Machine Learning 8(3): 279–292. ISSN 0885-6125.

Whitley, D. 1989. The genitor algorithm and selection pressure: Why rank-based allocation of reproductive trials is best, in Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann, 116–121.

Yan, Z.; Yuan, C. 2004. Ant colony optimization for feature selection in face re- cognition, Biometric Authentication, 221–226.

Yasuda, K.; Ide, A.; Iwasaki, N. 2003. Adaptive particle swarm optimization, in Proceedings of IEEE International Conference on Systems, Man and Cybernetics, 1554–1559. 110 LITERATŪROS SĄRAŠAS

Yin, P. Y. 2003. Ant colony search algorithms for optimal polygonal approximation of plane curves, Pattern Recognition 36(8): 1783–1797.

Yin, P. Y. 2004. A discrete particle swarm algorithm for optimal polygonal approxi- mation of digital curves, Journal of Visual Communication and Image Represen- tation 15(2): 241–260. Autoriaus mokslinių publikacijų disertacijos tema sąrašas

Recenzuojamuose mokslo žurnaluose Laptik, R.; Arminas, V; Navakauskas, D. 2009. Ant System Implementation using Microblaze: Some Preliminary Results on Efficiency Study, Electronics and Electri- cal Engineering 6(94): 27–30. ISSN 1392-1215. [Thomson WEB of Science] Laptik, R.; Navakauskas, D. 2009. MAX-MIN Ant System in Image Preprocessing, Electronics and Electrical Engineering 1(89): 21–24. ISSN 1392-1215. [Thomson WEB of Science] Laptik, R.; Navakauskas, D. 2007. Application of Ant Colony Optimization for Image Segmentation, Electronics and Electrical Engineering 8(80): 13–18. ISSN 1392-1215. [Thomson WEB of Science] Laptik, R.; Navakauskas, D. 2005. Dirbtinių neuronų tinklų taikymas automobilių re- gistracijos numeriams atpažinti, Electronics and Electrical Engineering 8(64): 27–30. ISSN 1392-1215. [Thomson ISI Master Journal List] Laptik, R.; Navakauskas, D. 2005. Application of Artificial Neural Networks in Num- ber Plate Recognition System, Transport Systems Telematics: 249–257. PL ISSN 0209- 3324. Kituose mokslo leidiniuose Laptik, R.; Navakauskas, D. 2007. Ant Colony Optimization Application for Image Segmentation, in Proceedings of the IC-SPETO Conference: 151–152. ISBN 978-83- 85940-29-6. [INSPEC]

111

Priedas. Sąvokų žodynas

A ant colony optimization – optimizavimas skruzdžių kolonija ant colony system – skruzdžių kolonijų sistema ant system – skruzdžių sistema

B bees algorithm – bičių algoritmas

E elitist ant system – elitinė skruzdžių sistema euristics – euristika evolutionary algorithms – evoliuciniai algoritmai evolutionary computation – evoliuciniai skaičiavimai evolutionary strategy – evoliucinė strategija

F field programmable gate array – lauku programuojama loginė matrica

G genetic algorithm – genetinis algoritmas genetic programming – genetinis programavimas

H hyper-cube ant system – hiper-kubo skruzdžių sistema

113 114 PRIEDAS. SĄVOKŲ ŽODYNAS

L learning classifier system – mokinantys klasifikatorių sistemos

M max-min ant system – max-min skruzdžių sistema metaeuristics – metaeuristika

P particle swarm optimization – optimizavimas spiečiaus dalelėmis pheromone – feromonas

Q quadratic assignment problem – kvadratinio paskirstymo uždavinys

R rank based ant system – ranginė skruzdžių sistema

S soft processor – programinis procesorius stigmergy – stigmergija stochastic diffusion search – stochastinė difuzinė paieška swarm intelligence – spiečiaus sumanumas

T traveling salesman problem – keliaujančio prekeivio uždavinys Dalykinė rodyklė

A konvergavimo trukmės ...... 57 AccelDSP...... 80 parametrų...... 88 algoritmas populiacijos dydžio ...... 75 π skaičiui apskaičiuoti ...... 84 segmentavimo ...... 73, 75 Ant-Q...... 23,30,36 skruzdžių skaičiaus...... 89 MMSSMod1...... 52 sprendinio kokybės ...... 55 MMSSMod2...... 52 sprendinių...... 89 pseudo atsitiktinių skaičių...... 83 disertacijos vaizdų pirminio apdorojimo. . .50, 52 struktūra...... 19 vaizdų segmentavimo ...... 68 uždavinių formulavimas...... 42 vaizdų segmentavimo su kauke . . . 69 DLPLM ...... 78, 82, 84–86 DN8000k10PSX...... 78 D DSK...... 69,70 darbo aktualumas...... 16 E mokslinis naujumas...... 17 euristika...... 21 praktinė reikšmė ...... 18 evoliuciniai rezultatų aprobavimas...... 19 algoritmai...... 22,24 tikslas...... 16 skaičiavimai...... 21–24 uždaviniai...... 17 evoliucinis programavimas ...... 22 dinamika evoliucinės absoliutaus nuokrypio ...... 55 strategijos...... 22 garavimo koeficiento ...... 88 technologijos ...... 21

115 116 DALYKINĖ RODYKLĖ

G S GA...... 22,24,26,27 skruzdėlynas ...... 15, 40–42 genetinis programavimas ...... 22 skruzdžių sistema ...... 23, 30 ginamieji teiginiai ...... 18 elitinė...... 30,32–34 hiper-kubo...... 23,30 I kolonijų ...... 23, 30, 37 išvados ...... 42, 58, 76, 94 max-min ...... 23, 30, 34, 35, 37, 42, 45–47, 58 K ranginė ...... 23, 30, 33, 34 KPU...... 31,47,77 specializuota max-min ...... 48–50 spiečiaus sumanumas ...... 23, 24 L stigmergija...... 22, 23, 40, 41 LPLM.16, 20, 39, 40, 43, 77–82, 86, 94 T M tyrimo metaeuristika ...... 21–24, 40 metodika...... 17 metodika objektas ...... 16, 53, 69 vaizdų pirminio apdorojimo ...... 49 sąlygos ...... 54,70 vaizdų segmentavimo ...... 66 tikslas...... 54,70 MicroBlaze...... 81 uždaviniai...... 54,70 galimybės...... 86 įvertinimo kriterijai ...... 55, 70 vidiniai moduliai...... 86 vidinių modulių įvertinimas ...... 87 V MMSS ...... 42, 49, 51–55, 57 vaizdų MMSSMod1...... 52 pirminis apdorojimas . . 45, 48–50, 57 MMSSMod2...... 52 segmentavimas...... 59 VHDL...... 78 O OSD ...... 22–24, 27–29 OSK . . 15, 16, 19–23, 29–32, 39, 40, 61, 77, 81, 82 P problema ...... 15, 46, 61, 81 programavimas evoliucinis...... 22 genetinis...... 22 R rezultatai greitaveikos prieaugio ...... 87 perrinkimo metodo ...... 87 pseudo atsitiktinių skaičių generato- riaus...... 85 skruzdžių sistemos tyrimo...... 89 Raimond Laptik

SKRUZDŽIŲ KOLONIJŲ TECHNOLOGIJOS VAIZDAMS APDOROTI Daktaro disertacija Technologijos mokslai, elektros ir elektronikos inžinerija (01T)

ANT COLONY TECHNOLOGIES FOR IMAGE PROCESSING Doctoral Dissertation Technological Sciences, Electrical and Electronic Engineering (01T)

2009 11 05. 11,25 sp. l. Tiražas 20 egz. Vilniaus Gedimino technikos universiteto leidykla „Technika“, Saulėtekio al. 11, LT-10223 Vilnius, http://leidykla.vgtu.lt Spausdino UAB „Baltijos kopija“, Kareivių g. 13B, LT-09109 Vilnius, http://www.kopija.lt