UMETNI IMUNSKI SISTEM S STRANI BIOLOGIJE NAVDIHNJENO RAČUNANJE

Similar documents
Reševanje problemov in algoritmi

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA

matematika + biologija = sistemska biologija? Prof. Dr. Kristina Gruden Prof. Dr. Aleš Belič Doc. DDr. Jure Ačimovič

Iskanje najcenejše poti v grafih preko polkolobarjev

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R

OPTIMIRANJE IZDELOVALNIH PROCESOV

Theoretical advances in artificial immune systems

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

TOPLJENEC ASOCIIRA LE V VODNI FAZI

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Parcialne diferencialne enačbe Partial differential equations. Študijska smer Study field

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

OPTIMIZACIJA Z ROJEM DELCEV

USING SIMULATED SPECTRA TO TEST THE EFFICIENCY OF SPECTRAL PROCESSING SOFTWARE IN REDUCING THE NOISE IN AUGER ELECTRON SPECTRA

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Analiza 3 Course title: Analysis 3. Študijska smer Study field ECTS

Študijska smer Study field. Samost. delo Individ. work Klinične vaje work. Vaje / Tutorial: Slovensko/Slovene

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Analiza 1 Course title: Analysis 1. Študijska smer Study field. Samost. delo Individ.

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Optimizacija 1 Course title: Optimization 1. Študijska smer Study field

Pohitritev izvajanja evolucijskih algoritmov z večprocesorskimi in multiračunalniškimi sistemi

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. O neeksaknotsti eksaktnega binomskega intervala zaupanja

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI

Attempt to prepare seasonal weather outlook for Slovenia

Zgoščevanje podatkov

MATRIČNI POPULACIJSKI MODELI

ENAČBA STANJA VODE IN VODNE PARE

UČNI NAČRT PREDMETA / COURSE SYLLABUS Numerical linear algebra. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK

Katastrofalno zaporedje okvar v medsebojno odvisnih omrežjih

Minimizacija učne množice pri učenju odločitvenih dreves

Dejan Petelin. Sprotno učenje modelov na podlagi Gaussovih procesov

Hipohamiltonovi grafi

METAHEVRISTIČNO REŠEVANJE

Biološka ekvivalenca Statistične metode. Iztok Grabnar

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo MAGISTRSKA NALOGA. Tina Lešnik

Domen Perc. Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom

The consequences of quantum computing

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

Stiskanje slik z algoritmi po vzorih iz narave

PROBLEM SIMETRIČNEGA TRGOVSKEGA POTNIKA IN OPTIMIZACIJA Z GENETSKIMI ALGORITMI

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

Particija grafa, odkrivanje skupnosti in maksimalen prerez

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

Optimizacija razporeditve preizkušanja in vzdrževanja varnostne opreme na podlagi najmanjšega tveganja

Miha Troha. Robotsko učenje in planiranje potiskanja predmetov

2A skupina zemeljskoalkalijske kovine

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SAŠO ZUPANEC MAX-PLUS ALGEBRA DIPLOMSKO DELO

Usmerjene nevronske mreže: implementacija in uporaba

Razpoznavanje govora GOVORNE IN SLIKOVNE TEHNOLOGIJE. prof. dr. France Mihelič

MODELIRANJE IN SIMULACIJA TER NJUNA UPORABA V MEDICINI IN FARMACIJI

IZPELJANKE ALGORITMA LZW

Problem umetnostne galerije

Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo)

INTELLIGENTNI SISTEMI Mehka Logika

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

JEDRSKA URA JAN JURKOVIČ. Fakulteta za matematiko in fiziko Univerza v Ljubljani

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Študijska smer Study field ECTS

Ekstrakcija časovnega znanja iz dogodkov v spletnih novicah

1) V diagramu sta prikazana plazemska koncentracijska profila po večkratnem intravenskem odmerjanju učinkovine v dveh različnih primerih (1 in 2).

TEORIJA GRAFOV IN LOGISTIKA

Teorija verjetnosti uvod. prof. dr. Jurij Tasič Asistent Emil Plesnik Laboratorij za digitalno obdelavo signalov, slik in videa

Vsebina Od problema do načrta programa 1. del

JERNEJ TONEJC. Fakulteta za matematiko in fiziko

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. Gregor Ambrož

Primerjava metod aproksimativnega sklepanja pri izolaciji napak - simulacijska študija

2 Zaznavanje registrske tablice

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Strojno učenje iz interakcije

VAJE 2: Opisna statistika

Metode rangiranja spletnih strani

Computing the steady-state response of nonlinear circuits by means of the ǫ-algorithm

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL

Verifikacija napovedi padavin

POGLAVJE IV: Klasični in kvantni Monte-Carlo

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2016/17) Diferencialne enačbe. Študijska smer Study field ECTS

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

NIKJER-NIČELNI PRETOKI

Razpoznavanje znakov prstne abecede na osnovi računalniškega vida

Fakulteta za matematiko in fiziko Univerza v Ljubljani. Seminar. Kvantni računalniki. Avtor: Matjaž Gregorič. Mentor: prof. N.S.

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO.

modeli regresijske analize nominalnih spremenljivk

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Študijska smer Study field ECTS

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

FRAKTALNA DIMENZIJA. Fakulteta za matematiko in fiziko Univerza v Ljubljani

OPTIMIZACIJA ENODIMENZIONALNEGA RAZREZA PO SKUPINAH

arxiv: v1 [cs.dm] 21 Dec 2016

Univerza na Primorskem FAMNIT, MFI STATISTIKA 2 Seminarska naloga

Študijska smer Study field. Samost. delo Individ. work Klinične vaje work. Vaje / Tutorial: Slovensko/Slovene

Simulation System Design

SVM = Support Vector Machine = Metoda podpornih vektorjev

Topološka obdelava slik

Iterativne metode podprostorov 2010/2011 Domače naloge

Hadamardove matrike in misija Mariner 9

Increasing process safety using analytical redundancy

POLDIREKTNI PRODUKT GRUP

SIMETRIČNE KOMPONENTE

Linearne enačbe. Matrična algebra. Linearne enačbe. Linearne enačbe. Linearne enačbe. Linearne enačbe

Transcription:

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Andrej Barovič Karpov UMETNI IMUNSKI SISTEM S STRANI BIOLOGIJE NAVDIHNJENO RAČUNANJE Magistrsko delo Maribor, junij 2016

Smetanova ulica 17 2000 Maribor, Slovenija UMETNI IMUNSKI SISTEM S STRANI BIOLOGIJE NAVDIHNJENO RAČUNANJE Magistrsko delo Študent: Študijski program: Smer: Mentor: Somentor(ica): Lektor(ica): Andrej Barovič Karpov Računalništvo in informatika, podiplomski študij red. prof. dr. Marjan MERNIK I

ZAHVALA Zahvaljujem se mentorju red. prof. dr. Marjanu Merniku in doc. dr. Mateju Črepinšku za pomoč in vodenje pri opravljanju magistrske naloge. II

UMETNI IMUNSKI SISTEM S STRANI BIOLOGIJE NAVDIHNJENO RAČUNANJE Ključne besede: inteligentni sistemi, evolucijsko računanje, evolucijski algoritmi, evolucijske strategije, genetsko programiranje, genetski algoritmi, umetni imunski sistem UDK: 004.89:615.37(043.2) Povzetek Cilj magistrskega dela je opis (njihova sestava in princip, po katerem delujejo), implementacija algoritmov umetnega imunskega sistema (AIS) in njihova integracija v obstoječo EARS okolje. V AIS skupino algoritmov spadajo CLONALG, NSA, ainet in drugi. Te algoritme smo primerjali z ostalimi optimizacijskimi algoritmi, kot so: PSO, DE, ABC, in TLBO. Primerjavo med algoritmi smo izvedli na CEC skupini problemov in pri tem uporabili statistične teste (NHST) ter novejši pristop CRS4EAs. Rezultati vsake generacije so bili podvrženi dodatnim testom za ugotavljanje eksploracijskih (raziskovalnih) in eksploatacijskih (izkoriščevalnih) lastnosti algoritma AIS. III

BIOLOGY INSPIRED COMPUTING ARTIFICIAL IMMUNE SYSTEM Keywords: Intelligent systems, evolutionary computation, evolutionary algorithms, evolutionary strategy, genetic programming, genetic algorithms, artificial immune system UDK: 004.89:615.37(043.2) Abstract The aim of the master thesis is the description and implementation of artificial immune system algorithms and their integration into existing EARS environment. The AIS group of algorithms consists of CLONALG, NSA, ainet and others. These algorithms were compared with other optimization algorithms such as PSO, DE, ABC, and TLBO. The comparison between algorithms was performed on the CEC group of problems while using statistical tests (NHST) and the newer approach CRS4EAs. The results of each generation have been subjected to additional tests to determine the exploratory and exploitative characteristics of the AIS algorithm. IV

KAZALO 1 UVOD 10 2 IMUNSKI SISTEM IN NJEGOVE BIOLOŠKE OSNOVE 11 3 ALGORITMI UMETNEGA IMUNSKEGA SISTEMA 15 3.1 Teorija klonske selekcije (CST) 19 3.2 Algoritem negativne selekcije 22 3.3 Imunske mreže 25 4 ZGODOVINA RAZISKAV ALGORITMOV UMETNEGA IMUNSKEGA SISTEMA 27 4.1 Začetki AIS (raziskave pred 1990) 27 4.2 Obdobje pionirjev AIS (raziskave med 1990 in 2000) 27 4.3 AIS kot uveljavljena skupina algoritmov (raziskave med 2000 in 2010) 28 4.4 Najnovejše raziskave (od 2010 do danes) 28 5 PRIMERI UPORABE ALGORITMOV UMETNEGA IMUNSKEGA SISTEMA 30 5.1 AIS aplikacije pred 2000 30 5.2 AIS aplikacije od 2000 in primeri uporabe AIS algoritmov v obdobju najnovejših raziskav 31 6 DRUGI MODERNI METAHEVRISTIČNI ALGORITMI 34 6.1 PSO (optimizacija z roji delcev) 34 6.2 DE (diferencialna evolucija) 35 6.3 ABC (algoritem kolonije čebel) 36 V

6.4 TLBO (optimizacijski algoritem na osnovi učitelj učenec) 36 7 IMPLEMENTACIJA AIS ALGORITMOV 38 7.1 Algoritem negativne selekcije (NSA) 39 7.2 Umetno imunsko omrežje (ainet) 40 7.3 Algoritem klonske selekcije (CLONALG) 43 7.4 B celičen algoritem (BCA) 44 8 PRIMERJAVA REZULTATOV ALGORITMOV 45 8.1 Primerjava z NHST in CRS4EAs 46 8.2 Preliminarna analiza glede na začetno populacijo 53 8.3 Primerjava glede na eksploracijo in eksploatacijo 58 8.4 Diskusija 67 9 ZAKLJUČEK 68 9.1 Cilji 68 9.2 Spoznanja in razprave 68 10 LITERATURA 69 VI

KAZALO SLIK SLIKA 1: INTERAKCIJA MED B IN T CELICO... 12 SLIKA 2: PRIMER OPERACIJ KLONIRANJA IN MUTACIJ PROTITELES... 13 SLIKA 3: PRIMER HAMMINGOVEGA KODIRANJA... 18 SLIKA 4: PRIMER PRINCIPA NEGATIVNE SELEKCIJE... 23 SLIKA 5: GRAFIČNI PRIKAZ RAZVRSTITVE (OB DRUGEM ZAGONU)... 49 SLIKA 6: GRAFIČNI PRIKAZ RAZVRSTITVE ALGORITMOV (PRVA TEKMA)... 49 SLIKA 7: GRAFIČNI PRIKAZ RAZVRSTITVE ALGORITMOV (DRUGA TEKMA, CEC2010 PROBLEMI)... 51 SLIKA 8: GRAFIČNI PRIKAZ Z CRS4EAS DOBLJENIH OBČUTNIH RAZLIK... 52 SLIKA 9: GRAFIČNI PRIKAZ ŠTEVILA POTREBNIH KORAKOV POSAMEZNEGA ALGORITMA... 55 KAZALO TABEL TABELA 1: REZULTAT CLONALG GLEDE NA ZADAN PROBLEM (OB DRUGEM ZAGONU)... 48 TABELA 2: REZULTAT CLONALG GLEDE NA OSTALE ALGORITME (OB DRUGEM ZAGONU)... 48 TABELA 3: RAZVRSTITEV ALGORITMOV PO DOSEŽENIH TOČKAH (PRVA TEKMA)... 50 TABELA 4: RAZVRSTITEV ALGORITMOV PO DOSEŽENIH TOČKAH (DRUGA TEKMA, CEC2010 PROBLEMI)... 51 TABELA 5: ŠTEVILO POTREBNIH KORAKOV PRI PREISKOVANJU Z ROBA... 54 TABELA 6: ŠTEVILO POTREBNIH KORAKOV PRI PREISKOVANJU SPHERE IN GRIEWANK Z BLIŽINE... 56 TABELA 7: ŠTEVILO POTREBNIH KORAKOV PRI PREISKOVANJU ROSENBROCK Z BLIŽINE... 57 TABELA 8: MERITEV EVKLIDSKE RAZDALJE VSI IN USPEŠNI (CLONALG, SPHERE, PRAG 0.1)... 59 TABELA 9: MERITEV EVKLIDSKE RAZDALJE CLONALG IN DE (USPEŠNI, SPHERE, PRAG 0.1)... 60 TABELA 10: MERITEV EVKLIDSKE RAZDALJE ZA PRAG 0.001 IN 0.01 (CLONALG, VSI, SPHERE)... 61 TABELA 11: MERITEV EVKLIDSKE IN MANHATTAN RAZDALJE (CLONALG, PRAG 0.001, USPEŠNI, SPHERE)... 62 TABELA 12: MERITEV EVKLIDSKE RAZDALJE CLONALG IN DE (USPEŠNI, GRIEWANK, PRAG 0.001)... 63 TABELA 13: MERITEV MANHATTAN RAZDALJE CLONALG IN DE (USPEŠNI, GRIEWANK, PRAG 0.001)... 64 TABELA 14: PRIKAZ POVPREČJA IN STANDARDNEGA ODKLONA PRI MERJENJU EVKLIDSKE RAZDALJE MED STARŠEM IN POTOMCEM... 65 TABELA 15: PRIKAZ POVPREČJA IN STANDARDNEGA ODKLONA PRI MERJENJU MANHATTAN RAZDALJE MED STARŠEM IN POTOMCEM... 66 VII

SEZNAM UPORABLJENIH KRATIC ABC - Artificial Bee Colony ainet, AINE - Artificial Immune Network AIRS - Artificial Immune Recognition System AIS - Artificial Immune System ALC - Artificial Lymphocytes APC - Antigen-Presenting Cells BCA - B-Cell Algorithm CLONALG - Clonal Selection Algorithm CNF - Conjunctive Normal Form CRHO - Contiguous Region Hypermutation Operator CRS4EAs - Chess Rating System for Evolutionary Algorithms CST - Clonal Selection Theory DARS - Distributed Autonomous Robotic Systems DCA - Dentritic Cell Algorithm DE - Differential Evolution DNA - Deoxyribonucleic Acid EA - Evolution Algorithm ENSA - Evolutionary Negative Selection Algorithm EP - Evolution Programming ES - Evolution Strategies GA - Genetic Algorithm GAIS - Genetic Algorithm with Iterative Shrinking GP - Genetic Programming HLA - Human Leukocyte Antigen ICARIS - International Conference on Artificial Immune Systems IgG, IgA, IgM, IgE, IgD - Immunoglobulin G, A, M, E, D JSON - JavaScript Object Notation MHC - Major Histocompatibility Complex MISA - Multi-Objective Immune System Algorithm MOM-AiNet - Multi-Objective Optimised ainet NHST - Null Hypothesis Significance Testing NSA - Negative Selection Algorithm omni-ainet - Omni Optimised ainet VIII

opt-ainet opt-ainet-aa-clust opt-ia PDP PSO RWA SAT SVM TEA TFH TLBO TSP - Optimised ainet - opt-ainet for Amino Acid Clustering - Optimization Immune Algorithm - Parallel Distributed Processing - Particle Swarm Optimization - Random Walk Algorithm - Satisfiability - Support Vector Machine - Trend Evaluation Algorithm - Follicular Helper T Cells - Teaching-Learning-Based Optimization - Travelling Salesman Problem IX

Uvod 1 UVOD S strani biologije navdihnjeno računanje je področje strojnega učenja, umetne inteligence, ki se v veliki meri opira na področje biologije, računalništva in matematike. Je izdelava algoritmov, kateri se zgledujejo po bioloških sistemih in vključujejo evolucijske algoritme, inteligenco roja (npr. kolonije mravelj, čebel), nevronske mreže in algoritme na osnovi celičnih struktur. Znanstveniki s področja računalništva že od nekdaj poskušajo posnemati čudežno funkcionalnost človeškega telesa in ob zgoraj naštetih že uveljavljenih algoritmih se pojavljajo tudi novi algoritmi, ki temeljijo na umetnem imunskem sistemu (AIS). Cilj naloge je bil raziskati in implementirati na umetnem imunskem sistemu zgrajene algoritme. Zanimalo nas je tudi, kakšna je njihova uspešnost v primerjavi s podobnimi algoritmi ter kakšne so njihove eksploracijske in eksploatacijske lastnosti. Naloga je sestavljena iz predstavitve teorije imunskega sistema in teorije do sedaj najbolj uporabljanih AIS algoritmov. Prikazali smo zgodovino raziskav in primere uporabe AIS algoritmov. Ker smo AIS algoritme primerjali z drugimi, na bioloških sistemih zgrajenimi algoritmi, smo tudi te, ki so sodelovali v tekmi, na kratko opisali. V sedmem in osmem poglavju smo predstavili jedro našega dela, implementacijo AIS algoritmov in primerjavo rezultatov med algoritmi. 10

Imunski sistem in njegove biološke osnove 2 IMUNSKI SISTEM IN NJEGOVE BIOLOŠKE OSNOVE Imunski sistem [5] je zapleten mehanizem, ki dnevno ščiti človeško telo pred milijoni bakterij, mikrobov, virusov, strupov in parazitov. Deluje v vsakem trenutku na tisoče različnih načinov in njegovo delovanje ostane neopaženo, dokler ne pride do odpovedi delovanja. Par primerov odpovedi oz. napačnega delovanja: - pri vreznini se imunski sistem odzove protiinfekcijsko in omogoči tkivu, da se zaceli. V kolikor pride od izpada imunskega sistema, rana zateče in se zagnoji, - prehlad je posledica izpada imunskega sistema pri uničenju virusov ali bakterij, ki se prenašajo po zraku, - do reakcije z neprimerno hrano pride v primeru, kadar želodčna kislina ne uspe uničiti patogenov, ki jih v telo vnašamo s hrano, - alergije so primer pretiranega delovanja imunskega sistema z neustreznim odzivom. Imunski sistem človeka spada med skupino imunskega sistema sesalcev, katerega sestavljajo [2]: - limfatični organi (priželjc, vranica, bezgavke in limfne kapilare ter žile), - limfociti (zaradi svojih sposobnosti uničevanja tujih zajedalcev predstavljajo glavni del obrambnih mehanizmov oz. 20 35 % vseh levkocitov), - imunoglobulini (topne glikoproteinske molekule, ki so se sposobne vezati na tujke in jim s tem preprečijo, da bi škodovali organizmu), - citokini (delujejo kot posredniki med elementi imunskega sistema), - sistem komplementa (sestavlja okrog 30 majhnih beljakovin, proencimov, ki nastanejo v jetrih in se nahajajo v krvi). Levkociti oz. bela krvna telesa se razvijejo iz osnovne matične celice (hemocitoblast-a) in se delijo na: limfoblast, prolimfocit, veliki limfocit, mali limfocit, limfoplazmocitoidno celico, imunoblast, imunocit, centroblast, centrocit, plazmoblast, proplazmocit in plazmatko. Po funkcionalnosti delimo limfocite na T celice, ki so nosilci celične imunosti in imajo tri različne vloge: neposredno uničujejo antigene, zavirajo delovanje antigenov, v obrambi sodelujejo z B celicami ter B celice, ki predstavljajo specifično imunost in za svojo aktivacijo potrebujejo aktivatorje. Aktivirane B celice se razvijejo v plazmatske celice in z kloniranjem proizvajajo nova protitelesa. 11

Imunski sistem in njegove biološke osnove Slika 1: Interakcija med B in T celico Interakcija med B in T celicami [25] je precej kompleksna in pomembna. Znano je, da B celice za izdelavo specifičnih protiteles zahtevajo pomoč T celic. Klasični poskusi kažejo, da antigensko specifične T celice pomagalke reagirajo z antigensko specifičnimi B celicami preko antigenskega "mostu". B celice se vežejo na antigenske molekule ("tujke"), medtem ko se T celice pomagalke vežejo na njihovo predstavitev oz. APC. APC dobimo z reakcijo antigena in T celic, te predstavitve pa se v kodirani obliki shranjujejo v predstavitvi MHC, ki deluje kot leksikon telesu do sedaj poznanih tujkov. V vsaki celici telesa je shranjen tudi zapis HLA, ki markira to celico kot lastno celico in ne kot tujek. Take celice imunski sistem ignorira. Pri novorojencih se mamin MHC prenese na otroka, vendar ta ni trajen. Vsak osebek si mora leksikon zgraditi sam. V pomoč nam pridejo cepiva (oslabljeni primerki bolezni), ki dopolnijo leksikon z nam do sedaj pozabljenimi boleznimi, kakor tudi v primerih, kjer se bolezen lahko tako hitro razširi, da imunski sistem sam ni sposoben pravočasno zagotoviti ustreznega obrambnega mehanizma. Zanimiv pa je tudi HLA in z njim povezani defekti. V primeru transplantacij ni nujno, da se HLA dveh osebkov ujema, zato se vedno preverja ujemanje donatorja in prejemnika. V nasprotnem primeru telo transplant smatra kot tujek. V primeru, kadar se v telesu dogajajo okvare pri zapisu HLA ali pri razumevanju HLA s strani imunskega sistema, prihaja do avtoimunskih bolezni. Takrat imunski sistem ne ločuje lastnega telesa in tujkov ter napada vse celice po vrsti. 12

Imunski sistem in njegove biološke osnove Slika 2: Primer operacij kloniranja in mutacij protiteles [40] Normalno delovanje imunskega sistema spremlja nizka stopnja spontanih mutacij (ena mutacija na 106 celičnih delitev). V primeru bolezenskega stanja pa se imunski sistem odzove s primarnim in sekundarnim odzivom. Primarni odziv v začetku bolezenskega stanja se odraža v proizvodnji za antigen specifičnih protiteles, ki se dogaja v limfnih organih (vranica in bezgavke). Proizvodnja B celic sestoji iz mutacij (ena na 1600 delitev) in kloniranja. Ko se zgodi dovolj veliko število mutacij, se nad klonirano populacijo B celic izvaja selekcija z njimi sorodnimi TFH (T celice pomagalke) celicami, kjer se glede na rezultat (afiniteto oz. ujemanje) celice delijo na tri skupine: večina klonov direktno sodeluje v obrambi, delež celic sodeluje kot spominske celice s podaljšano življenjsko dobo in tiste z najmanjšo afiniteto do antigena doleti apoptoza (oz. celična smrt). Sekundarni odziv se nanaša na spominske celice, kjer se odziv klonov na enak antigen odraža v akumulaciji sorodnih celic. Do sedaj ni znano, kdaj tak model doseže optimum delovanja oz. kdaj rezultat gravitira k točno določeni rešitvi t.j. populaciji klonov, ki se med seboj ne razlikujejo. 13

Imunski sistem in njegove biološke osnove Protitelesa se razlikujejo po velikosti, obliki molekul (vsa so sestavljena iz štirih polipeptidnih verig: dveh težkih in dveh lahkih) in po vlogi, ki jo imajo v imunskem sistemu. Verige so razporejene v obliki črke Y. So med seboj povezane z disulfidnimi mostički. Protitelesa z obema vrhovoma krakov Y (aminokislinskih ostankih) vežejo različne tujke (antigene) in jih razvrščamo v več razredov: IgG, IgA, IgM, IgE in IgD. V telesu je največ imunoglobulinov iz razreda IgG, zato so te molekule nekakšni prototipi za vsa protitelesa. Aminokislina je v kemiji na splošno vsaka molekula, ki vsebuje tako aminsko ( NH2) kot karboksilno ( COOH) funkcionalno skupino. Variacije različnih aminokislin tako določajo število kombinacij različnih antigenov. 14

Algoritmi umetnega imunskega sistema 3 ALGORITMI UMETNEGA IMUNSKEGA SISTEMA Algoritmi umetnega imunskega sistema (AIS) so definirani kot: "Adaptivni sistemi, ki temeljijo na teoriji imunologije in opaženih imunskih funkcij, načel in modelov, kateri se uporabljajo za reševanje problemov." [10] So eden od številne vrste algoritmov, ki se zgledujejo po bioloških sistemih, kot so: evolucijski algoritmi, inteligenca množic, nevronske mreže in računanje celičnih membran. Evolucijski algoritmi spreminjajo dedni zapis s tremi osnovnimi operatorji: mutacija, selekcija in rekombinacija. Pri inteligenci množic posamezne entitete sledijo preprostim pravilom, kako se obnašajo kot posamezniki, med seboj in s svojim okoljem. Poznamo algoritme po vzoru kolonij mravelj, čebel, ptic, rast bakterij, mikrobov in druge. Nevronske mreže so sestavljene iz množice umetnih nevronov (pragovnih funkcij), ki imajo več različno uteženih vhodov in en izhod ter so med seboj povezani. Uteži vhodov posameznih nevronov, povezave med nevroni ter prag, pri katerem nevron na izhodu odda signal, se oblikujejo z učenjem, dokler nevronska mreža ni zmožna optimalno rešiti nekega problema. Koncept računanja celičnih membran v splošnem predstavlja membrano kot ločilo dveh regij in zagotavlja selektivno komuniciranje med obema regijama. Regije povezujejo pravila, ki določajo, kako so objekti proizvedeni, porabljeni, preneseni na druge regije, in kako vplivajo drug na drugega. Navdih AIS algoritmov prihaja iz človeškega imunskega sistema. Obstaja veliko različnih podvrst algoritma, med katerimi so najpomembnejši: teorija klonske selekcije, negativna selekcija in teorija imunskih omrežij. Teorija klonske selekcije (CST) [64] je teorija, ki zajema osnovne odzive imunskega sistema na tujke (antigene). Tiste celice, ki imajo sposobnost prepoznavanja antigena, se razmnožujejo, medtem ko se tiste, ki antigena ne prepoznajo, uničijo. Celice delimo na T in B celice. B celica postane aktivirana, ko se na njene receptorje veže antigen, kar omogoči nastanek spominskih celic. Pri tem procesu se proizvajajo tudi kloni B celic, ki gredo skozi mutacijo, kar zagotavlja raznolikost populacije B celic. Za spominske celice na splošno velja, da imajo dolgo življenjsko dobo in zagotavljajo hiter odziv ob poznejšem srečanju z isto (ali podobno) obliko antigena, kar predstavlja fenomen pridobljene imunosti. Kakor na zunanje vsiljivce, lahko limfociti reagirajo tudi na material, ki prihaja iz celic gostitelja. Če to vodi do polnega imunskega odziva, lahko povzroči škodo na gostiteljevem organizmu (avtoimunost). Samoreaktivni limfociti se lahko pojavijo, ker so gradniki protiteles (B celic) različni genski segmenti, ki so naključno sestavljeni in gredo skozi 15

Algoritmi umetnega imunskega sistema proces mutacije. Negativna selekcija je mehanizem pomoči pri zaščiti telesa kot proizvodnja limfocitov, ki so sposobni prepoznati samopodobne antigene. Negativna selekcija T celic se dogaja v priželjcu ali timusu (žlezi, ki je nameščena znotraj prsnega koša, neposredno izza prsne kosti). Ta skrbi za dozorevanje T celic tako, da tvori visoko nepropustne ovire makromolekulam, kjer gredo nedozorele T celice skozi postopek izbire, preden so izpostavljene antigenom. Imunska omrežja [64] predstavlja mreža B celic. Ta mreža se gradi preko ujemanja paratopov in idiotopov, ki se nahajajo na vsaki B celici. Vez, ki se zgradi med paratopom ene B celice in idiotopom druge, ima učinek spodbujanja B celic in preko tega je imunski sistem sposoben doseči stabilno pomnilniško strukturo (imunološki spomin). Za preprečevanje kreiranja neželenih vezi obstaja določena količina zatiranja med celicami B, ki deluje kot regulatorni mehanizem. Obstaja veliko razlogov, zakaj je bil imunski sistem obravnavan kot vir navdiha za načrtovanje novih algoritmov in sistemov. Ima veliko lastnosti: samoorganizacijo, učenje in spomin, prilagajanje, prepoznavanje, robustnost in razširljivost; ki so v inteligentnih sistemih zaželene. Umetni imunski sistem je področje raziskav, ki povezuje discipline imunologije, računalništva in inženiringa. Raziskovalno delo o AIS lahko razdelimo na imunsko modeliranje, teoretičen AIS in aplikativen AIS. Imunsko modeliranje vključuje delo, ki opisuje modele in simulacije naravnih in umetnih imunskih sistemov. Teoretičen AIS opisuje teoretične vidike AIS in vključuje matematično modeliranje algoritmov, konvergenčno analizo, analizo zmogljivosti in zapletenosti teh algoritmov. Aplikativen AIS se nanaša na razvoj algoritmov umetnega imunskega sistema, gradnjo imunološko navdihnjenih računalniških sistemov, uporabo AIS v raznih aplikacijah v realnem svetu. Osnove umetnega imunskega sistema Ogrodje biološko navdihnjenega algoritma, zlasti kadar gre za AIS, morajo sestavljati naslednji osnovni elementi [64]: - predstavitev osnovnih gradnikov sistema, - nabor mehanizmov za oceno interakcije posameznika z okoljem in med seboj (okolje je običajno simulirano z eno ali več ocenitvenimi funkcijami), - postopki prilagajanja, ki urejajo dinamiko sistema (to je, kako se vedenje algoritma spreminja skozi čas). 16

Algoritmi umetnega imunskega sistema Osnovni gradniki Posledica kreiranja tega preprostega ogrodja je večslojni pristop k razvoju AIS. Mnogi avtorji so trdili, da je aplikacija predpogoj h gradnji AIS, saj gradniki in sama predstavitev temelji na danem problemu (npr. reševanje neke funkcije potrebuje čisto drugačne gradnike kot optimizacija problema trgovskega potnika). Osnovni gradniki v AIS [64] so zastopani v različnih oblikah kot npr. realna števila, Hammingov zapis števil ali katero koli drugo kodiranje, od katerih vsaka oblika nosi svojo posebnost in mora biti izbrana primerno problemu. Nabor mehanizmov za oceno interakcije Ko je predstavitev osnovnih gradnikov izbrana, se uporablja ena ali več oblik meritev afinitete oz. načinov za merjenje interakcije med elementi sistema. To je npr. lahko Hammingova ali evklidska metrika razdalje, ki ponovno ima svojo posebnost. Funkcija afinitete mora prav tako biti izbrana z veliko pozornostjo, saj lahko vpliva na splošno učinkovitost sistema. Postopki prilagajanja Perelson in Oster sta uvedla pojem oblike prostora [55] kot kvantitativen način za opis afinitete med celicami in antigeni. Osnovna ideja oblike prostora je, da stopnja ujemanja med receptorji na površini imunske celice in epitopi (molekularni strukturi, ki se ujema z receptorji) določa trdnost vezave (afiniteto) [64] oz. v kolikšni meri se molekule fizično ujemajo, kar je odvisno od njihove oblike. Količina afinitete določa, kateri tip celic bo stimuliran ter se bo s klonsko selekcijo množil, in kateri tip bo nazadoval. Analogijo ujemanja receptorjev in antigenov lahko na enostaven način predstavimo z ujemanjem ključa in ključavnice. Vrata odpira ključ, ki se poda v ključavnico, medtem ko ujemanje epitopov in receptorjev daleč od perfektnega in vendar lahko pride do stimulacije, ker je stopnja ujemanja ustrezna. Ko modeliramo stopnjo ujemanja, lahko receptor predstavimo s točko (ali obširneje z regijo) v obliki prostora določene dimenzije. Epitop je prav tako predstavljen s točko (ali regijo), afiniteto med njima pa definiramo z razdaljo med točkami. V biološkem okolju dimenzija oblike prostora ni nujno enako fizičnem prostoru, v katerem merimo, ampak število različnih koordinat, ki so potrebne za določitev posplošene oblike vpletenih osebkov (epitopov in receptorjev). 17

Algoritmi umetnega imunskega sistema Za enostaven primer vzemimo enodimenzionalni prostor, kjer vsak celični receptor vsebuje nabor dolžin l, in epitopi, ki se povezujejo, morajo imeti dolžino manjšo ali enako dolžini l iz nabora. Afiniteto v tem primeru predstavlja ujemanje dolžin. V tem enodimenzionalnem prostoru imajo receptorji in epitopi gradnike iz realnih števil, afiniteto iz pozitivnih realnih števil pa zapišemo s x [0, l] in l predstavlja maksimalno afiniteto. Za receptor s koordinatami x = (x 1, x 2,... x n ) in epitop z y=(y 1, y 2,... y n ), nam standardna evklidska metrika med njima da afiniteto D(x, y) = n j=1 (x j y j ) 2. Kot poenostavitev sta Perelson in Oster predlagala "prepoznavno žogo" [59] radija B(x) = {y D(x, y) < r} in v tej poenostavitvi odziv lahko zapišemo kot t. Epitopi znotraj radija izzivajo imunski odziv, tisti zunaj pa glede na receptor nimajo nobenega odziva. Velikost žoge (radij r) je v splošnem odvisna od receptorja. Žoga pa ni zmeraj okrogla. Večina modelov AIS algoritmov kljub pomanjkljivostim uporablja diskretno aproksimacijo zveznega prostora, kjer realna števila prinašajo veliko razdrobljenost številk za decimalno vejico in relativno grobo zrnatost ob pogledu večjih vrednosti. Bolj primerna bi bila Hammingova predstavitev v diskretnem prostoru [64], ki uporablja štiri simbole, temelječe na DNA kodiranju (Adenin, Citozin, Gvanin in Timin). Sama predstavitev vsebuje pravila kodiranja receptorjev in epitopov, kot tudi abstrakcijo funkcije prileganja. Večinoma se je s tem ukvarjal Percus v delu»predvidevanje velikosti receptorja T celice in protiteles s kombiniranjem regij z upoštevanjem učinkovitosti razlikovanja sebe in tujka«[54] in naj iz njegovega dela povzamemo definicijo:»element e L, z e=(e 1, e 2,... e L ) se ujema po r-ponovitvenem pravilu, če obstaja pozicija p kjer e i =d i za i=p,, p+r-1, p Lr+1. Torej dva elementa se ujemata, če se ujema r znakov. Slika 3: Primer Hammingovega kodiranja Glavnina raziskav v AIS se osredotoča na tri imunološke teorije: klonsko selekcijo, negativno selekcijo in imunska omrežja. 18

Algoritmi umetnega imunskega sistema 3.1 Teorija klonske selekcije (CST) Obstaja kar nekaj algoritmov, ki temeljijo na klonski selekciji in večina se uporablja za reševanje optimizacijskih problemov (npr. CLONALG [13], opt-ia [52], B celičen algoritem BCA [42] in mnogo točkovna optimizacija [16],[19]. Iz računske perspektive ideja klonske selekcije sestoji v algoritmih, ki iterativno izboljšujejo nabor osebkov. Ti rešujejo problem skozi proces kloniranja, mutacije in selekcije, kar je precej podobno genetskim algoritmom. Če se osredotočimo na enostaven primer, kjer za osebke (B celice) lahko rečemo, da je vsaka celica neodvisna entiteta (brez interakcije do ostalih celic), predstavljena kot L-dimenzionalen vektor v, v binarnem Hammingovem zapisu. Ocenitvena funkcija g v populaciji P, se izračuna za vsak g(v), nakar se B celice klonirajo v populacijo C. V populaciji C se dogajajo spremembe (mutacije), za dosego raznolikosti v iskanju rešitev pa se dodajajo tudi naključni osebki. Velikost populacije C je ponavadi enaka velikosti populacije P, vendar to ni nujno zmeraj tako. Mutacije se dogajajo po iterativnem mehanizmu hipermutacijskega operatorja somatskih regij (CRHO), kjer ρ določa verjetnost spremembe vsakega bita v nizu. Za uspešno računanje je vrednost ρ veliko večja kot mutacije v naravi in je bila določena empirično [42]. Za razliko od genetskih algoritmov, BCA in ostalih, algoritmi CST ne uporabljajo operacij križanja. Na poti B celic k globalnem optimumu je za ustavitveni kriterij uporabljena funkcija, ki meri razdaljo do znanega lokalnega optimuma. V kolikor se vrednosti v nekem času ne izboljšajo, se algoritem prisilno ustavi. Algoritem BCA vhod: g(v) = funkcija, ki jo moramo optimizirati izhod: P = populacija osebkov begin 1. Izberi osebke prvotne populacije P v prostoru Σ L, 2. Ponavljaj do ustavitvenega kriterija 2.1. Za vsak v P, preračunaj g(v) in ustvari klonirano populacijo C, 2.2. Izberi naključen v C in izvajaj CRHO, 2.3. Preračunaj g(v ); če g(v ) > g(v) potem zamenjaj v z klonom v, 3. Izpiši populacijo P kot rešitev end. 19

Algoritmi umetnega imunskega sistema CST algoritmi [64] so stohastične narave, zato je evolucija populacije v diskretnem prostoru odvisna le od trenutnega stanja sistema (in ne od preteklosti). To pravilo, kot tudi način, kako se izračuna naslednja generacija populacije, velja tudi za Markove verige in lahko to vrsto AIS algoritmov obravnavamo po teh znanih pravilih. Splošen CST algoritem ima populacijo N p osebkov, kjer je vsak osebek x L. je končna množica določene abecede (ponavadi = {0, 1}). Stanje, v katerem se nahaja sistem, lahko zapišemo kot X=(x 1, x 2, x Np ) in prostor kot LNp. Ker je prostor končen, lahko določimo vrednost za katerikoli X, če preštejemo elemente iz LNp ter tako identificiramo vsa stanja od 1 do M, kjer je M = LNp število vseh možnih stanj. Ker je algoritem stohastičen, za vsak korak (ali generacijo) t obstaja naključna spremenljivka X t vrednosti od 1 do M, ki odgovarja stanju sistema. Obnašanje algoritma lahko zakodiramo kot neskončno zaporedje naključnih spremenljivk X 0, X 1, X 2,..., ob tem pa nas zanima verjetnost prehoda v X t in obnašanje sistema kadar t. Naj v t označujejo vrstice enodimenzionalnega vektorja za verjetnostno porazdelitev X t, tako da je j-ta komponenta vektorja v t, j = P (X t = j), kar predstavlja verjetnost, da je sistem v stanju j v času t. Za generičen algoritem klonske selekcije verjetnost, da se sistem premakne iz j v k, v času t + 1, ni odvisna od t. Verjetnostna porazdelitev v času t+1, ob pravilih o pogojeni verjetnosti, se glasi [64]: M P(X (t+1) = k) = j=1 P(X (t+1) = k X t = j)p(x t = j); oz. bolj podrobno M v (t+1,k) = v (t,j) P jk j=1 kjer je P jk = P(X t+1 = k X t = j) verjetnost prehoda iz stanja j v k oziroma P jk = P(X 1 =k X 0 =j), torej zaporedje spremenljivk X t predstavlja homogeno Markovo verigo. Zgornjo enačbo lahko povzamemo v matrični obliki, kot v t+1 = v t P, kjer je P = (P jk ) matrika prehoda, M M prehodnih verjetnosti. Sledi v t = v 0 P t, tako da je asimptotska porazdelitev verige odvisna od mejnega obnašanja P t kadar t. Za posamezno stanje verige j rečemo, da se absorbira, če P jk = 0 za vsak k j oz. ko sistem doseže to stanje, ki ga ne bo nikoli zapustil. Markova veriga se absorbira, če ima vsaj eno absorbno stanje, ki ga je možno doseči iz katerekoli točke. Da bi razumeli konvergenčni dokaz je koristno, da predstavimo še eno teorijo. Stanje j verige, če P(X t =j za nek t 1 X 0 =j) = 1, imenujemo končno. V nasprotnem primeru ga imenujemo prehodno. Če se sistem prične v končnem stanju, je verjetnost, da tam konča, 1. Za prehodno pa ni nujno, da se sistem v njega vrne. 20

Algoritmi umetnega imunskega sistema Analiza BCA Algoritmi klonske selekcije se običajno uporabljajo pri optimizaciji funkcij in iskanju rešitev določenih problemov. Zlasti BCA predstavlja tipičen primer imunskega algoritma, ki se uporablja za optimizacijo, medtem ko je za bolj splošen problem večkriterijske optimizacije uporabljan MISA [19], kot večkriterijski algoritem umetnega imunskega sistema. Preden se osredotočimo na podrobnosti B celičnega algoritma [64], je vredno poudariti podobnosti med AIS algoritmi klonske selekcije in genetskimi algoritmi (GA). Z nastavitvijo matrike prehoda vidimo bolj pregledno analizo, kako se značilnosti Markove verige ujemajo z operatorji algoritma. Evolucijski algoritmi so že kar nekaj časa modelirani po principu Markovih verig. Nix in Vose [53] sta npr. predstavila natančen model Markove verige preprostega genetskega algoritma, ki je bil analiziran v številnih študijah. Model ne prikazuje konvergentnosti GA, čeprav se izkaže, da je z dodatnim pogojem elitizmom, algoritem konvergenten. Pravzaprav novejše raziskave s strani G. Rudolpha [58] govorijo o splošnih zadostnih pogojih za konvergenco. Torej je dovolj, da so ti pogoji izpolnjeni in ni potrebe po podrobnem modeliranju. V tem smislu obstaja splošno ogrodje za razumevanje konvergence GA, kar vleče vzporednico splošnemu matematičnemu ogrodju, ki bi omogočil prikaz konvergence kompletni AIS družini algoritmov, namesto iskanja specifičnega dokaza za vsak algoritem posebej. V. Cutello, G. Nicosia, P. Oliveto, M. Romeo [20] govorijo prav o takem modelu v študiji "O konvergenci imunskih algoritmov", ki vključuje izbiro različnih shem hipermutacije, staranja in drugih zadostnih pogojev za konvergenco. Ena izmed najbolj zanimivih značilnosti BCA je operator predstavljen s strani E. Clark, A. Hone, J. Timmis, v študiji "Model Markove verige za BCA" [15] kot uvod v dokaz konvergence. Iz strukture operatorja mutacije je mogoče razumeti najpomembnejše značilnosti prehoda matrike P, povezane z algoritmom. Kot je bilo že omenjeno, BCA vzdržuje dve populaciji rešitev: nabor v spominskih celicah in bazen klonov. V primeru, ko ima bazen klonov C samo enega člana, je možno dobiti formulo verjetnosti vseh možnih mutacij (dokaz je mogoče razširiti za primer poljubne velikosti klonskega bazena). Seštevek teh verjetnosti dobimo s preštevanjem vseh možnih načinov pojavljanja enake mutacije. Naj bo f T verjetnost prehoda iz nič do nekega števila T (Tstanje niza dolžine L), torej velja [64]: a L 1 A f T = 1 [ (1 ρ)(m+1 n k) ρ k + n(1 ρ) (L+1 n k) ρ k ], L2 n=1 m=b n=1 21

Algoritmi umetnega imunskega sistema kjer je: a položaj prvega zamenjanega bita in b položaj zadnjega zamenjanega bita (oba merjena z razdaljo od najbolj pomembnega bita), k je skupno število bitov, ki jih je treba obrniti pri mutaciji od 0 do T in ρ je verjetnost, da je bit mutiran v sosedno regijo. V tem okolju imamo 0 T 2 L 1, a b L in 0 ρ 1. Enačbo lahko uporabimo za računanje verjetnosti vseh mutacij, ki niso enake nič in ta formula je dovolj splošna, da se lahko uporablja tudi za Gray-evo ali katerokoli drugo binarno kodiranje sistema. Naj bodo ne-optimalna stanja prehodna za 0<ρ<1 in matrika elementov naj vsebuje le bite, ki niso enaki 0. Jasno je, da bo f T >0, če je (1-ρ)>0 in ρ>0. Možno je doseči lokalni optimum v enem koraku iz kateregakoli začetnega stanja, ne glede na podrobnosti primerjalne funkcije. Torej za ne-optimalno stanje j je verjetnost, da ostane v tem stanju za en časovni korak p=p jj <1. Potem ko lokalni optimum preide v stanje večje afinitete, se v lokalni optimum ne vrne nikoli več, saj verjetnost prehodne matrice prepoveduje prehode v enako ali nižjo afiniteto. Tako sledi, da če P jk (n) je j, k nivo P n potem [64]: P jj (n) = p n n=0 kjer sledi, da je stanje j prehodno. n=0 = 1 1 p < 3.2 Algoritem negativne selekcije Osnovna ideja algoritma negativne selekcije je ustvariti več detektorjev v komplementarni nabor N in nato uporabiti te detektorje za razvrstitev novih podatkov kot lastnih vrednosti ali tujkov. Algoritmi negativne selekcije se v veliki meri uporabljajo v raziskavah AIS in so bili med razvojem podvrženi številnim spremembam. Kot osnovo vzemimo študijo S. Forrest, A.S. Perelson, L. Allen in R. Cherukuri iz leta 1994 s simpozija o razvoju in varnosti o "Ločevanje lastnih vrednosti tujkov v računalniku" [27]. Tam opisan algoritem lahko povzamemo v naslednjih korakih: vhod: S = nabor lastnih vrednosti izhod: D = nabor generiranih detektorjev begin 1. Določi lastne vrednosti kot nabor elementov S v prostoru Σ L, 2. Generiraj nabor detektorjev D, tako da se vsak element iz D ne ujema z elementi iz S. 3. Preglej δ Σ L z nenehnim ujemanjem detektorjev D proti δ. Vrednosti, ki se ujemajo označimo kot lastne, ostale kot tujke. end. 22

Algoritmi umetnega imunskega sistema Oblika prostora Σ L vsebuje nabor lastnih vrednosti S Σ L ter nabor tujkov N Σ L, ki je komplement N = Σ L \ S, tako da Σ L = S N in S N =. Slika 4: Primer principa negativne selekcije [64] Algoritem negativne selekcije je eden izmed najbolj pogosto uporabljenih algoritmov za reševanje problemov odkrivanja anomalij. V realnem svetu se izkaže, da je ugotovitev učinkovitih r-mestnih detektorjev računsko neizvedljiva, če dolžina ujemanja r prevelika (npr. r>32). Pri analizi naključnega generiranja detektorjev se osredotočimo na k-cnf zadostitveni problem ter ugotovitev, da je iskanje detektorjev ekvivalent iskanju dodelitvenih nizov k-cnf primerov. Verjetnost zaznave naključne generacije detektorjev Aproksimacija verjetnosti naključno najdenega detektorja iz prostora {0,1} L (pri uporabi pravila ujemanja r-dolžine) izhaja iz naključno sestavljenega antigena in rezultatov iz teorije verjetnosti, kjer je problem formuliran kot: "Zaporedje n znakov S in F, ki vsebuje 23

Algoritmi umetnega imunskega sistema toliko S nizov dolžine r, kot je neprekrivajočih neprekinjenih blokov, ki vsebujejo le zaporedja S dolžine r. je [64]: Verjetnost neuspeha L poskusov nizov dolžine r z rezultati S (uspeh), F (neuspeh) 1 px. 1 kjer p = q = 1 in x = 1 + (r+1 rx)q x L+1 2 qpr + (r + 1)(qp r ) 2 +... Zgornji izraz lahko pretvorimo v verjetnost uspeha, da detektor prepozna naključni antigen: P WF = 1 ( 1 px. 1 (r+1 rx)q x L+1) Naj bo {0, 1} L prostor v Hammingovem zapisu, {D 0, D, S} {0, 1} L in D 0 = število začetnih detektorjev (pred negativno selekcijo) D = število detektorjev (po negativni selekciji) S = število lastnih elementov v S P WF = verjetnost iz enačbe zgoraj P S = verjetnost naključnega elementa iz {0, 1} L, ki se ne ujema z elementom iz S = (1 P WF ) S e P WF S P fail = verjetnost, da D detektorji ne odkrijejo tujega bitnega niza. P fail = (1 P WF ) D e P WF D Glede na vnaprej določeno število naključno pripravljenih začetnih detektorjev D 0, S in P WF, dobimo število primernih detektorjev D, ki se ne ujemajo z nobenim elementom iz S, kot sledi: D = D 0 P S. Število detektorjev D, ki ne zazna tujega bitnega niza z verjetnostjo P fail je D = ln (P fail). Iz obeh enačb za D pa dobimo število začetnih P WF detektorjev D 0 = ln (P fail), kar pomeni, da za detekcijo tujega bitnega niza ob P WF P S verjetnosti P fail, kjer D detektorjev ne zazna tujega bitnega niza, potrebujemo D 0 začetnih detektorjev. S preoblikovanjem zgornje enačbe v e PWF S ( ln(p fail) ) se zdi, da D 0, oz. število začetnih detektorjev raste eksponentno s S in da ta naključni pristop iskanja postane neizvedljiv za velik S. P WF Povezava med detektorji dolžine r in k-cnf zadostitvenim problemom Boolean zadostitveni problem lahko oblikujemo v smislu problema odločitve oziroma v jeziku SAT [18] in sicer kot formulo v normalni konjunktivni obliki (CNF). K-CNF Boolova formula je zadostna, če obstaja niz vrednosti (0 lažnih in 1 resničnih), ki povzroči, da je skupna vrednost formule 1, torej ima logično vrednost true. 24

Algoritmi umetnega imunskega sistema Kompleksnost L-k-CNF Iskanje vseh r-mestnih detektorjev zahteva najmanj Ω (2 k ) vrednotenj bitnih nizov, kar utemeljuje dejstvo, da je Ω (2 k ) ocen potrebnih, da najdemo vse zadovoljive nabore za prvi stavek vsakega od s S. Preostale (l-r) stavke od vseh s S je treba preveriti, in ugotoviti, za katerega od njih zadošča O( S 2 k ) izračunov. K-CNF zadostitveni problem je odločitveni problem, kjer je vhod boolean formula f in izhod logična vrednost "da", če je f zadovoljiva in "ne" v nasprotnem primeru. Trenutno najhitrejši znani determinističen algoritem, ki rešuje 3-CNF [34] problem, potrebuje O (1.473 n ), pri čemer je n število spremenljivk. Radi bi poudarili še, da k-cnf algoritmi odločajo, kdaj je boolean formula zadovoljiva, vendar ne vrača vseh možnih rešitev. 3.3 Imunske mreže ainet algoritem sta razvila avtorja de Castro in von Zuben [9]. Cilj je najti čim manjši niz točk, ki natančno predstavljajo nabor vhodnih točk, oz. zgoščen vhodni niz, sestavljen s čim manj redundance. Razvoj populacije k nizu učinkovitih detektorjev je zelo podoben CST pristopu, s to razliko, da je interakcija med člani populacije preko mehanizma zatiranja, kar pomeni, da člane, katerih rezultat medsebojne tekme pade pod določeno mejo, odstranimo. Poenostavljeno različico ainet lahko opišemo kot: vhod: G = vzorec za prepoznavo, množica N naključnih detektorjev, število najboljših protiteles n izhod: M = množica generiranih detektorjev, ki znajo prepoznati vhodni vzorec begin 1. Ustvari začetno naključno populacijo B. 2. Ponovi za vsak naučen vzorec: 2.1. Vsakemu članu iz N določi inverzno razdaljo za vzorec v B, 2.2. Izberi n članov iz B, ki se najbolje ujemajo z vzorcem 2.3. Kloniraj in mutiraj n članov v razmerju s tem, kako dobro se prilegajo vzorcu. 2.4. Ohrani člana z najvišjim ujemanjem n in ga shrani v niz M 2.5. S pomočjo omrežja izvedi tekmo v M in odstrani šibke člane iz M 2.6. Ustvari b naključnih elementov in jih shrani v B end. 25

Algoritmi umetnega imunskega sistema Teoretična podlaga algoritmov imunskega omrežja Navdih AIS algoritmov izhaja iz modelov teoretične imunologije, predstavljene že leta 1986 v članku J.D. Farmer, N.H. Packard, A.S. Perelson, z naslovom "Imunski sistem, prilagoditve in strojno učenje" [26]. Ti modeli so oblikovani v smislu avtomatov, diferencialnih enačb ter nelinearnih diferencialnih enačb za mreže celic in populacije antigenov. Ob tem, da teorija dinamičnih sistemov vsebuje široko paleto orodij za analizo nelinearnih modelov, se vprašamo, ali bi lahko ta orodja uporabili tudi za reševanje AIS. Glede na to, da je število imunskih celic v človeškem telesu reda 10 12, je smiselno uporabiti zvezni model populacije limfocitov (diferencialnih enačb), kjer je število celic, ki predstavljajo populacijo klonov, med deset in sto. Ne glede na to, ali je izbran zvezni ali diskretni dinamični model, je le-ta v celoti determinističen, medtem pa se AIS naslanja na algoritme CST, ki so po naravi stohastični. Algoritmi imunskega omrežja imajo dva glavna dela: sistem diferencialnih enačb, ki opisuje interakcije v omrežju in kako se populacija razvija s časom ter nabor pravil za spreminjanje in posodabljanje vezi medsebojnega delovanja, spreminjanje velikosti populacije in spreminjanje osebkov v omrežju. Kadar se populacija spreminja zelo hitro, se mreža obnaša kot zvezen Markov proces in ne kot determinističen. Tudi če nam je jasno, kako se sistem (kjer velikost omrežja ostaja nespremenjena) obnaša v zelo kratkem času, je težko napovedati njegovo obnašanje za daljše časovno obdobje, kar predstavlja velik izziv za dinamično modeliranje omrežnih algoritmov AIS. 26

Zgodovina raziskav algoritmov umetnega imunskega sistema 4 ZGODOVINA RAZISKAV ALGORITMOV UMETNEGA IMUNSKEGA SISTEMA Teorije umetnega imunskega sistema, kakor tudi sam pojem "AIS" so se začeli pojavljati po letu 1980. Osnutki idej so vidni že prej, kakor na primer v delu F. M. Burnet-a z naslovom "Teorija klonske selekcije pridobljene imunosti" [8], izdane leta 1959, s strani založbe Univerze v Cambridgeu in v delu N. K. Jerne z naslovom "K mrežni teoriji imunskega sistema, anali imunologije" [39] iz leta 1974. 4.1 Začetki AIS (raziskave pred 1990) Prve teoretične osnove opisujejo šele J. D. Farmer, N. H. Packard in A. S. Perelson v "Imunski sistem, prilagoditev in strojno učenje" [26] iz leta 1986, ter ostala dela kot "Teorija imunskih mrež" [26] (A. S. Perelson, 1989) in "Kognitivna omrežja: imunska, nevronska in druga" [67] (F. Varela, A. Coutinho, B. Dupire, N. Vaz, 1988). Pomembnost teh del je dejstvo, da opisujejo teorijo klonske selekcije, negativno selekcijo in imunske mreže kot koncepte gradnje algoritmov. 4.2 Obdobje pionirjev AIS (raziskave med 1990 in 2000) Prvi aplikativni primeri segajo v leto 1990, kjer z uporabo imunskih mrež avtorja H. Bersini in F. S. Varela [7] opisujeta reševanje problema uravnoteženja vozička ter v leto 1994, kjer je algoritem na principu negativne selekcije uporabljen v primeru reševanja računalniške varnosti. Članek, ki so ga leta 1994 napisali S. Forrest, A. S. Perelson, L. Allen, R. Cherukuri [27] je imel velik vpliv na nastanek bodočih člankov na temo reševanja problemov z algoritmi umetnega imunskega sistema. Razen naštetih avtorjev so v tem obdobju svoja dela prispevali tudi R. R. Hightower [33], S. Hofmeyr in A. Somayaji [62]. Kar se drugih zgodnjih del tiče, je potrebno izpostaviti tudi delo o porazdeljenem diagnostičnem sistemu, ki temelji na interakciji znotraj imunskega sistema avtorja Y. Ishide [38], v letu 1990. Avtor je po seriji podobnih člankov napisal knjigo o sistemih, ki temeljijo na imunskem sistemu. V sredini 90-tih se je AIS iz množice biološko motiviranih algoritmov formiral v lastno skupino. Kephart [41] in Dasgupta [23] sta Forrestino [27] delo nadaljevala in izvedla obsežne študije o negativni selekciji algoritmov. Hunt in Cooke [17] sta začela delati na imunskem omrežnem modelu v letu 1995, ga v naslednjih letih razširila preko del: "Učenje 27

Zgodovina raziskav algoritmov umetnega imunskega sistema z uporabo umetnega imunskega sistema" [36], "Razvoj umetnega imunskega sistema za uporabo v vsakdanjih aplikacijah" [37] in svoje teorije v zbrani obliki prepisala, poenostavila in dala v prosto uporabo. 4.3 AIS kot uveljavljena skupina algoritmov (raziskave med 2000 in 2010) "Umetni imunski sistem: tehnike podatkovne obdelave navdihnjene s strani imunskega sistema" [63] kot doktorska disertacija avtorja J. Timmisa iz leta 2000 je na področju strojnega učenja pritegnila mnoge druge avtorje, kot na primer: S. Wierzchon, V. Kuzelewska [72], M. Neal [51]. Tudi delo "Izkoriščanje analogije med imunologijo in raztresenim porazdeljenim spominom: sistem za povezovanje premikajočih podatkov v množice." E. Harta in P. Rossa [31] iz leta 2002 je pripomoglo k nadaljnjim raziskavam s strani A. Watkinsa, J. Timmisa, L. Boggessa v delu "AIRS (Umetni imunski sistem prepoznave): imunsko navdihnjen nadzorovan algoritem strojnega učenja" [71]. Naslednje delo "Preiskava vira moči AIRS, kot umetnega imunskega sistema za razvrščanje." so napisali Goodman, Boggess, in Watkin [29], dodatne raziskave pa so A. Watkinsa privedle do pisanja doktorske disertacije iz "Izkoriščanje imunoloških metafor za razvoj vzporednih, zaporednih in porazdeljenih učečih se algoritmov" [70]. Ob bok drugim znanim avtorjem sta se leta 2001 zapisala tudi L. N. De Castro in F. J. Von Zuben tako na področju teorije klonske selekcije [13] kot tudi imunskih omrežij [11]. Razen strojnega učenja se je od leta 2000 umetni imunski sistem pričel uporabljati za reševanje problemov na mnogih področjih: računalniška varnost, optimizacija numeričnih funkcij, kombinatorična optimizacija (problem trgovskega potnika in porazdelitev dela v delovnem procesu), učenje, bio-informatika, obdelava slik, robotika, adaptivni sistemi kontrole, prepoznavanje virusov, podatkovno rudarjenje itd. Naraščajoče zanimanje za algoritme na principu umetnega imunskega sistema je združevalo številne raziskovalce, kar je posledično privedlo do nastanka internacionalne konference ICARIS (International Conference on Artificial Immune Systems), ki se prireja od leta 2002 naprej. Gradivo, predstavljeno na tej konferenci, služi kot referenca na mnogih področjih AIS tako na teoretičnem kot tudi aplikativnem nivoju. 4.4 Najnovejše raziskave (od 2010 do danes) Obdobje najnovejših raziskav vsebuje glavnino neraziskanih in medijsko neprepoznanih del, ki slonijo na temeljih, postavljenih s strani prej naštetih avtorjev. S 28

Zgodovina raziskav algoritmov umetnega imunskega sistema pomočjo Web Of Science in Science Direct je možno iskanje po ključnih besedah in kot rezultat dobimo članke, objavljene v priznanih revijah (kot npr. Elsevier). Naštejemo nekaj takih prispevkov: - Monitoring applications: An immune inspired algorithm for software-fault detection. [46] - A novel fuzzy hybrid quantum artificial immune clustering algorithm based on cloud model. [73] - MAIS-IDS: A distributed intrusion detection system using multi-agent AIS approach. [60] - Immune clonal coevolutionary algorithm for dynamic multiobjective optimization. [61] - Integration of artificial immune network and K-means for cluster analysis. [44] - An artificial immune network for multiobjective optimization problems. [45] - Heterogeneous computing and grid scheduling with parallel biologically inspired hybrid heuristics. [69] - Reference direction based immune clone algorithm for many-objective optimization. [47] - An AIS-based hybrid algorithm for static job shop scheduling problem. [56] - An Intelligent Artificial System : Artificial Immune based Hybrid Genetic Algorithm for the Vehicle Routing Problem. [35] - Constrained Optimization via Artificial Immune System. [74] - Implementation of Immunological Algorithms in Solving Optimization Problems. [14] - A Survey on Biologically Inspired Algorithms for Computer Networking. [75] 29

Primeri uporabe algoritmov umetnega imunskega sistema 5 PRIMERI UPORABE ALGORITMOV UMETNEGA IMUNSKEGA SISTEMA Po vseh teoretičnih obravnavah je še zmeraj ostalo vprašanje, kje se ti algoritmi največ uporabljajo, kako se odrežejo ob zadanih nalogah in kako so primerljivi z drugimi algoritmi. Kot je nakazano že v 4. poglavju, je spekter uporabe AIS zelo širok. Prva sta seznam uporabe razdelala Leandro Nunes de Castro in Fernando José Von Zuben [12] v letu 2000. Drug seznam, ki so se ga lotili Dipankar Dasgupta, Senhua Yu in Fernando Nino [24], je bil objavljen 2011 in se nanaša na modele uporabe, ki so se skozi čas razvijali. Prva klasifikacija je razdelana pod "AIS aplikacije pred 2000" in druga kot "AIS aplikacije od 2000 in primeri uporabe AIS algoritmov v obdobju najnovejših raziskav". Seznam različnih prilagoditev oz. modifikacij algoritmov iz drugega dela je zanimiv v primeru dodatnega proučevanja obstoječih algoritmov. 5.1 AIS aplikacije pred 2000 Robotika Pri pobiranju smeti robot imunoid na vsakem koraku porablja energijo in ne sme ostati brez nje. Antigeni so zadolženi za informacijo o smeteh, ovirah, bazi in količini energije. Množica protiteles zgrajenih na danih antigenih skrbi za pravilno obnašanje robota. Model sta razvila Ishiguro in Watanabe [12]. V porazdeljenem avtonomnem robotskem sistemu roboti individualno razumejo smisel sistema, okolje in obnašanje drugih robotov. Pri tem se pri dosegu cilja sami odločajo o sodelovanju z drugimi roboti. Strategije se med roboti izmenjujejo s pomočjo kloniranja, imunski sistem pa kontrolira obnašanje in prilagajanje med roboti. Model sta razvila Jun in Lee [12]. Optimizacija Avtorja Endo in Toma [12] sta se reševanja problema n-trgovskih potnikov (N-TSP) lotila s prilagojevalnim optimizacijskim algoritmom, ki temelji na modelu imunske mreže in predstavitvi MHC peptidov. V modelu principi imunske mreže predstavljajo obnašanje potnikov, MHC pa predstavlja tekmovalnost med potniki. Potniki vsebujejo senzor, ki posnema predstavitev MHC peptidov z makrofagi, T celice kontrolirajo obnašanje in B celice predstavljajo obnašanje potnikov. 30

Primeri uporabe algoritmov umetnega imunskega sistema Odkrivanje nepravilnosti: Forrest [27] je raziskovala varnost računalnikov. Teorija je bila predstavljena kot razumevanje razlike med lastnimi podatki in podtaknjenimi podatki. Iz lastnih podatkov se najprej tvorijo osebki imunskega sistema. Po določenem času ti preverjajo, ali so bili prvotni podatki spremenjeni. Deaton [12] je predstavil negativno selekcijo na osnovi DNA. Postopek je enak kot pri prejšnjem primeru, le da ta izkorišča načelo spajanja A-T in C-G elementov iz DNA teorije. Lastni podatki se lahko spojijo z generiranimi, spremenjeni pa ne. Kephart [41] je predstavil prepoznavanje in uničevanje virusov, kjer je množica protiteles po principu imunskega sistema prepoznavala in odstranjevala viruse. Poseben poudarek je avtor posvetil avtoimunem odzivu (zamenjavi legitimne programske opreme z virusom). Učenje Avtorja Forrest in Perelson [27] sta pri razpoznavanju vzorcev uporabila model binarnega imunskega sistema in z njim raziskovala ohranjevanje raznolikosti in možnost detektiranja običajnih shem, ki se izmenjujejo med antigeni. Zanimivost pristopa je v uporabi poljubnega (*) simbola, tako da so nizi sestavljeni iz {0,1,*} množice znakov. Rezultat je razvoj protitelesa, ki skozi detekcijo običajnih shem ustreza raznim antigenom. Potter in De Jong [12] sta raziskovala konceptualno učenje, tako da sta zgradila model imunskega sistema, ki za dan koncept najde razliko med vzorcem in proti-vzorcem. Model je omejen na sodelovanje med B celicami in protitelesi. Pri konceptualnem učenju se uporablja tako, da pozitivne in negativne vzorce enači z lastnimi in tujimi molekulami. V primeru vzorcev brez šuma algoritem prepozna vse tuje in nobenega lastnega vzorca. 5.2 AIS aplikacije od 2000 in primeri uporabe AIS algoritmov v obdobju najnovejših raziskav Teorija klonske selekcije se je razvijala skozi CLONALG algoritem s strani L. N. D. Castra in F. J. V. Zubena [13] med letoma 2000 in 2002. Ciccazzo [24] je 2008 predstavil nov algoritem EIP (elitistično imunsko programiranje). Halavati [24] je 2007 CLONALG razširil za delo po pod-problemih, kjer manjkajoča protitelesa dobimo z naključnimi. May [24] je 2007 predstavil variacijo CLONALG za testiranje mutacij, kjer vsako protitelo predstavlja samostojni test in rezultat mutacij ovrednoti afinitito (oz. ocenitveno funkcijo). 31

Primeri uporabe algoritmov umetnega imunskega sistema Cuttelo [24] je 2007 v algoritem dodal inverzno hipermutacijo in hipermakromutacijo. Wilson [24] je 2006 CLONALG nadomestil s TEA (algoritem evalvacije trenda). Negativno selekcijo (NSA) je 1994 začela razvijati Forrest [27] in leta 2007 je Dasgupta [24] naredil revizijo. Gao je 2006 predstavil genetski algoritem na osnovi optimizacijske sheme negativne selekcije in v vzporednem članku metodo klonske optimizacije NSA za iskanje anomalij. Shapiro [24] je 2006 hiper kroglo zamenjal s hiper elipsoidnimi detektorji ter nad temi detektorji izvajal optimizacijo s pomočjo evolucijskih algoritmov (EA). Ostaszewski [24] je tekom 2006 in 2007 z genetskimi algoritmi in koevolucijskimi algoritmi preiskoval detektorje hiper kvadra. Luo [24] je 2006 prispeval več člankov. V enem je predlagal r[]-nsa algoritem bitnih nizov, v drugem pa hevristično metodo kreiranja detektorjev iz elementov {0, 1, *}. V naslednjem članku iz leta 2007 predstavi hiter algoritem negativne selekcije z raziskovanjem ujemanja vzorcev, medtem ko v članku iz leta 2005 dvo-evolucijski negativno selekcijski algoritem (ENSA). Ma [24] je 2008 predlagal mehanizem povratnih informacij antigenov za kreiranje efektivnih detektorjev. Chmielewski [24] je 2006 uporabil drevesno strukturo za pohitritev zmogljivosti V detektorjev. Stibor [24] je 2005 detekcijo lastnih vrednosti opredelil v območju znotraj radija r s ter metodo na istem vzorcu primerjal z V-detektorsko in SVM. V 2006 je za iskanje lukenj v anomalijah [24] ugotavljal, da je nujno potreben negativni bitni niz, luknje pa predstavljajo neznane lastne vrednosti. Še v enem članku [24] iz istega leta je raziskoval nepravilno posploševanje in semantično predstavitev z uporabo Hammingove negativne selekcije. V letu 2007 je s pristopom naključnega iskanja v k-cnf problemu [24] ugotavljal, da je v prehodni regiji iskanje detektorjev najtežje in da lahko razdaljo merimo s pomočjo modeliranja verjetnosti. V istem letu je Caldas [24] predstavil nov algoritem selekcije, temelječ na algoritmu negativne selekcije in teoriji odločanja. Odločitve se shranjujejo v podatkovno bazo, vsaka celica pa predstavlja odločitveni problem, ki je razrešitev evalvacije n-receptorjev. Graaff [24] je v 2006 predstavil genetski umetni imunski sistem (GAIS), kjer dobimo dinamični nabor umetnih limfocitov (ALC) s pomočjo genetskih algoritmov. Imunske mreže so se začele pojavljati že 1974, ko je Jerne [39] predstavil teorijo, kjer mreža B celic lahko doseže imunološki spomin. Farmer [24] je 1986 predstavil model simulirana imunska mreža, 1990 pa je Ishida [38] na tem modelu zgradil prvi algoritem. Hunt in Cooke [24] sta v 1996 prvotna dela razširila z mrežo B celic iz kostnega mozga in populacijo antigenov, ki mrežo naključno dopolnjujejo. V 1999 je Hunt [24] prepisal prvotni model in njegovo implementacijo v Javi poimenoval Jisys [37]. Uporablja relacijsko podatkovno bazo, populacija B celic pa se deli na dva dela prvotno, ki se zgradi iz 32

Primeri uporabe algoritmov umetnega imunskega sistema naključnih antigenov in klonirano. Klonirana uporablja funkcije genetskih algoritmov in teorijo omrežij. Implementacijo je ponovno definiral in popravil Timmis [24] v letu 2000. Razširil jo je naslednje leto in algoritme razdelil na AINE, razširjen AINE, zabrisan AINE in dinamično obtežen AINE. V splošnem si AINE izposoja osnovne ideje iz CST, saj se B celice klonirajo, mutirajo in so podvržene postopku izbire, preden se pojavijo v mreži. Castro je v 2001 predstavil ainet [9] kot učeči se algoritem. Čeprav spada v podvrsto AINE, popolnoma temelji na CST (saj vsebuje razmnoževanje, mutacijo in selekcijo). 2002 je Castro [10] za reševanje optimizacijskih problemov multi-modalnih funkcij definiral optainet, ki lahko dinamično prilagaja velikost populacije, ima možnost preiskovanja okolice z eksploracijo in eksploatacijo [22] ter za dosego boljših rezultatov uporablja lokalne in globalne metode iskanja. V 2007 je Pacheco [24] predstavil algoritem abstraktnega imunskega sistema, ki temelji na Farmerjevem modelu iz leta 1986. V 2006 sta Schmidtchen in Behn [24] preiskovala minimalističen model idiotopskega omrežja B limfocitov, kjer bitni nizi predstavljajo vozlišča omrežja ter da naključna evolucija lahko zgradi omrežje visoko organizirane arhitekture. Večina prispevka temelji na razlagi teh kompleksnih mrežnih struktur in podrobnem analitičnem razumevanju postopkov gradnje ter na preračunavanju velikosti in povezljivosti idiotopskih skupin. V 2006 sta Coelho in Zuben [24] objavila članek o omni-ainet algoritmu za preračunavanje enojnih in večtočkovnih optimizacijskih problemov z eno ali več rešitvami, ki je poenotil koncepte omni-optimizacije. Eksploracija se avtomatsko prilagaja preiskovanemu prostoru, velikost vzorca se spreminja glede na prenastavljeno velikost, razpršenost iskanja se po posebnem mrežnem mehanizmu porazdeli po preiskovanem prostoru. 2008 sta Coelho in Zuben [24] objavila študijo o MOM-AiNet kot večtočkovni večpopulacijski umetni imunski omrežni algoritem, ki se od drugih razlikuje po tem, da vrača več nedominantnih rešitev v primerjavi z ostalimi algoritmi, ki vračajo eno dominantno rešitev. Kot zadnjega izmed naštetih omrežnih imunskih algoritmov naj omenimo še opt-ainet-aa-clust, podvrsto optainet, ki so ga Secker, Timmis in drugi [24] implementirali v 2008. Ta se razlikuje po novi predstavitvi proteinov, ki omogočajo večjo natančnost predvidevanja v hierarhičnih klasifikacijskih algoritmih z napovedovanjem funkcije proteinov. 33

Drugi moderni metahevristični algoritmi 6 DRUGI MODERNI METAHEVRISTIČNI ALGORITMI Metahevristike so strategije, ki usmerjajo proces iskanja po poljubno velikem prostoru, kjer imamo o samem problemu zelo malo ali nič predpostavk. Tehnike iskanja vključujejo enostavna iskanja kakor tudi zapletene procese učenja. Mnogi metahevristični algoritmi se zgledujejo po naravnih sistemih, njihovo računanje pa temelji na strategijah lokalnega in globalnega preiskovanja. Med algoritme spadajo: optimizacija s kolonijami mravelj, optimizacija z roji delcev, evolucijski računanje, algoritem kolonije čebel itd. Algoritmi, ki so opisani v nadaljevanju, sodelujejo v osmem poglavju, kjer primeramo njihove rezultate z rezultati AIS algoritmov. 6.1 PSO (optimizacija z roji delcev) Optimizacija z roji delcev (PSO) je računska metoda, ki optimizira rešitev problema z iterativno uporabo kriterijske funkcije za evalvacijo kandidatov. Optimizacija populacije (rešitev) poteka s premikanjem delcev po preiskovanem prostoru po principu preprostih matematičnih formul, ki upoštevajo položaj delca in hitrost. Na gibanje vsakega delca vpliva lokalni optimum ter ostale pozicije rešitev, pridobljene s premikanjem v iskalnem prostoru, kjer je samoumevno, da se roj premakne proti najboljši rešitvi. Začetke PSO so osnovali Kennedy, Eberhart in Shi [6] kot simulacijo socialnega vedenja. Z določenimi poenostavitvami so opazili, da je algoritem možno uporabljati za optimizacijo. PSO je metahevrističen, saj ne pozna podrobnosti problema in lahko preišče zelo velik prostor rešitev, kar pa samo po sebi ne zagotavlja najdbe optimalne rešitve. PSO ne zahteva, da mora biti problem optimizacije odvedljiv, kot to zahtevajo klasične optimizacijske metode in se lahko uporablja tudi na optimizacijskih problemih, katerih krivulje so nepravilnih oblik, vsebujejo šum, ali pa se spreminjajo s časom. Osnovna različica PSO algoritma ima populacijo kandidatov rešitev, imenovano roj delcev. Z S označimo število vseh delcev v roju. Vsak delec naj ima položaj x i R n in hitrost v i R n. Naj bo p i najboljši položaj delca i in g najboljši položaj celotnega roja. Ocenitvena funkcija je predstavljena kot vektor realnih števil (f: R n R), katere rešitev prav tako predstavlja realno število. Cilj je najti tak a, v f(a) f(b) za vse b v preiskovanem prostoru, kjer a predstavlja globalni minimum, oz. njegovo nasprotje, ki predstavlja globalni maksimum. Na sam rezultat pa zelo vpliva tudi izbira parametrov algoritma in obravnavanje podmnožic v primeru konvergence. begin 1. Za vsak delec i=1,, S: 34

Drugi moderni metahevristični algoritmi 1.1. vzpostavi položaj naključnih vektorjev x i ~ U(b lo, b up ), kjer sta b lo spodnja in b up zgornja meja preiskovanega prostora 1.2. vzpostavi najboljši položaj delca p i x i glede na začetni položaj 1.3. če (f(p i ) < f(g)) shrani najboljši položaj roja: g p i 1.4. vzpostavi hitrost delca v i ~ U(- b up -b lo, b up -b lo ) 2. Dokler ustavitveni kriterij (npr. število iteracij) ni dosežen ponavljaj za vsak delec i=1,, S: 2.1. izberi naključne vrednosti r p, r g ~ U(0,1) 2.2. osveži hitrost delca v i,d ω v i,d + φ p r p (p i,d -x i,d ) + φ g r g (g d -x i,d ) 2.3. osveži položaj delca x i x i + v i 2.4. če (f(x i ) < f(p i )) shrani najboljši položaj delca p i x i 2.5. če (f(p i ) < f(g)) shrani najboljši položaj roja: g p i 3. Ko je ustavitveni kriterij dosežen, g predstavlja rešitev. end. Velikokrat se osnoven PSO ujame v lokalni maksimum. Mnogi to rešujejo ne le s pravilno izbiro parametrov, ampak tudi s topologijo (povezavo delca s sosedi in kreiranjem komunikacijske mreže med njimi). Poznamo različne topologije: obroč (najbolj poznana), polno povezan (kot obroč, vendar so vsi delci med seboj povezani), mreža, stohastična zvezda, drevo itd. Kadar PSO uporabljamo za večtočkovno optimizacijo, se možica delcev združi v pareto fronto in se primerjava vrši med različnimi frontami. Zraven PSO algoritma z realnimi števili poznamo še: binarne, diskretne in kombinatorične PSO. 6.2 DE (diferencialna evolucija) Diferencialna evolucija (DE) je metoda, ki optimizira rešitve kandidatov (agentov) s premikanjem le-teh po preiskovanem prostoru. Kakor PSO je tudi DE metahevristična in se prav tako uporablja na optimizacijskih problemih, katerih krivulje so nepravilnih oblik, vsebujejo šum, ali pa se spreminjajo s časom. Njene začetke sta zasnovala Storn in Price [4]. Tudi na rešitve DE precej vpliva izbira parametrov F (diferencialna utež), CR (verjetnost križanja) in NP (velikost populacije). begin 1. Izberi naključne položaje za vse agente 2. Ponavljaj za vsakega agenta x v populaciji dokler ustavitveni kriterij (npr. število iteracij) ni dosežen: 2.1. izberi 3 naključne od x različne agente a, b, c 2.2. izberi naključni indeks R {1,, n}, kjer je n dimenzija problema 2.3. izračunaj agentov naslednji položaj y = [y 1,, y n ] kjer za vsak i izberemo enakomerno porazdeljeno številko r i U(0,1) 35

Drugi moderni metahevristični algoritmi 2.4. če r i < CR ali i = R je y i = a i + F x(b i -c i ) drugače y i = x i 2.5. če (f(y) < f(x)) zamenjaj agenta x z agentom y 3. Ko je ustavitveni kriterij dosežen, agent z najboljšo ocenitveno funkcijo predstavlja rešitev. end. 6.3 ABC (algoritem kolonije čebel) ABC je optimizacijski algoritem, ki temelji na inteligentnem obnašanju roja čebel ter ga je leta 2005 predstavil Karaboga [3]. Kolonijo v modelu ABC sestavljajo nabiralke, izvidniki in nadzorne čebele. Za nabiralke se predpostavlja, da je njihovo število odvisno od virov hrane v okolici (ena čebela za vsak vir). Če vir usahne, se nabiralka spremeni v izvidnika in začne iskati druge alternativne vire. Nadzorne čebele glede na obnašanje nabiralk izbirajo, kateri vir hrane se bo trenutno uporabljal. Glavni koraki algoritma: begin 1. Izberi naključne hrano za nabiralke 2. Ponavljaj za vse čebele v koloniji dokler ustavitveni kriterij (npr. število iteracij) ni dosežen: 2.1. nabiralka iz spomina sledi viru hrane, preuči sosednji vir in glede na količino izbere določeno obnašanje - ples 2.2. nadzorna čebela prepozna ples nabiralke, se odpravi na preiskano lokacijo in iz okolice izbere nove lokacije - pašnike 2.3. izčrpane vire nadomestijo novi pašniki, katere najdejo izvidniki 2.4. najboljši vir (pašnik) - S se shrani 3. Ko je ustavitveni kriterij dosežen, S predstavlja rešitev. end. Torej v ABC položaj vira hrane predstavlja možno rešitev problema optimizacije in količina hrane ustreza rešitvi ocenitvene funkcije. Število nabiralk je enako številu rešitev v populaciji. Pod pogojem, da je količina novega vira višja od prejšnjega vira, si čebela zapomni nov položaj, v nasprotnem primeru se ohranja položaj starega vira. Kadar nabiralke končajo cikel, nadzorne čebele na osnovi evalvacije nabiralk izbirajo nove vire iz okolice. 6.4 TLBO (optimizacijski algoritem na osnovi učitelj učenec) Poučevanje učenje je proces, kjer se vsak posameznik poskuša naučiti nekaj od drugih posameznikov. Rao in Patel sta predlagala algoritem, znan kot Teaching-Learning- Based Optimization (TLBO) [57], ki simulira tradicionalno poučevanje učenje in vsebuje dva temeljna načina učenja: 36

Drugi moderni metahevristični algoritmi - z učiteljem (znan kot fazo učitelja) in - v stiku z drugimi učenci (znan kot fazo učenca). V TLBO [21] je populacija skupina študentov in različni predmeti predstavljajo analogijo z različnimi spremenljivkami optimizacijskega problema. Rezultat učenec predstavlja rešitev ocenitvene funkcije problema optimizacije. Najboljša rešitev v celotni populaciji predstavlja učitelja. Faza učitelj Denimo, da obstaja m predmetov, ki so na voljo n učencem (velikosti populacije k = 1,2,..., n). Ob koncu vsakega cikla poučevanja i, predstavlja M j,i rezultat učencev za določen predmet j = 1,2,..., m. Razlika med rezultatom učitelja od učencev v vsakem predmetu se izrazi kot: Difference_Mean j, i = r i (X j, kbest, i - T F M j, i ), kjer je X j, kbest, i rezultat učitelja (tj. najboljši učenec) za predmet j. Naj bo T F faktor poučevanja in določen z enačbo T F = round[1 + rand(0, 1){2 1}]. Vrednost T F ni parameter algoritma, ampak je njegova vrednost naključna. Vrednost nove generacije učencev je definirana kot: X' j,k,i = X j,k,i +Difference_Mean j, i in nadomesti trenutno, le če se vrednost poveča. Faza učenec Ta faza algoritma simulira učenje študentov skozi medsebojno interakcijo. Učenec se bo naučil novih znanj, če imajo drugi učenci več znanja od njega. Naključno izberemo dva učenca, P in Q, kjer X' total-p,i X' total-q,i. Vrednosti teh učencev po ciklu učenja dobimo z: X" j, P, i = X' j, p, i + r i (X' j, P, i X' J, Q, i ), če X' total-p, i > X' total-q, i, X" j, P, i = X' j, p, i + r i (X' j, Q, i X' J, P, i ), če X' total-q, i > X' total-p, i kadar iščemo maksimum. Faza izločanja podvojitev Ta faza vključuje zamenjavo najslabšega rezultata vsake skupine z elitnim rezultatom in zamenjavo podvojenih rezultatov z naključnimi. Tako pridemo do skupnega števila izračunov v TLBO algoritmu, ki znaša {(2 velikost populacije število generacij) + (število izračunov potrebnih ob eliminaciji podvojenih rezultatov)}. 37

Implementacija AIS algoritmov 7 IMPLEMENTACIJA AIS ALGORITMOV Teoretična podlaga AIS algoritmov je bila predstavljena v okviru 3. poglavja. Preden začnemo opisovati implementacijo različnih AIS algoritmov, na kratko predstavimo eksploracijo in eksploatacijo [22], ki same algoritme dopolnjuje. Za eksploracijo lahko rečemo, da predstavlja iskanje novih regij v iskanem prostoru, medtem ko eksploatacija preiskuje okolico že obiskanih točk. Pojma se uporabljata vsaj od leta 1992. Do sedaj sta se eksploracija in eksploatacija pojavljala predvsem v EA, EP, ES, GA, GP. V EA je težko razlikovati med njima, saj je meja precej zabrisana. Dejavniki, ki vplivajo na oboje, so ne le izbira, mutacija in križanje (v primeru EA); izbira, celična delitev, kloniranje, mutacija, apoptoza (v primeru AIS); ampak tudi velikost populacije in predstavitev posameznikov. Pri tem je zelo pomembno, kako dosežemo ravnovesje med eksploracijo in eksploatacijo. Kadar sta faktorja križanja in mutacije visoka, se algoritem nagiba k eksploraciji in naključnemu iskanju. Kadar sta faktorja križanja in mutacije nizka, se algoritem nagiba k eksploataciji in algoritmom vzpenjanja na hrib, tehniki iz družine lokalnih iskanj. Iz raziskav o parametriziranju EA ugotovimo, da so določeni parametri uspešni na enem tipu problemov in povsem odpovejo na drugem tipu. Za doseganje boljših rezultatov je pametno dinamično spreminjati parametre, kar posledično pomeni, da se razmerje med eksploracijo in eksploatacijo skozi različne faze evolucijskega procesa spreminja zdaj v korist enega in nato v korist drugega. Tak način predstavlja skupino samoadaptivnih parametrov za razliko od determinističnih (na začetku nastavljenih) in adaptivnih skupin. V okviru ocen doseganja rezultatov lahko proces parametriziranja razčlenimo na pristop ene spremenljivke in pristop več spremenljivk. Prav tako želimo proces prilagajanja parametrov oceniti. Da to lahko storimo, je potrebno znati ovrednotiti raznolikost genotipa, fenotipa (v primeru EA), oziroma imunoglobulinov (v primeru AIS). Raznolikost delimo glede na: - razlike med osebki v populaciji, - medsebojno oddaljenost osebkov, - entropijo oz. nered znotraj populacije, - verjetnost pripadanja istemu rodu (EA) oz. vrsti imunoglobulinov (AIS), kar predstavlja oceno biološke raznolikosti habitata, - prednike t.j. ali osebek trenutne populacije pripada določenemu osebku prejšnje generacije. Več o nastavljanju parametrov, vrednotenju raznolikosti, oceni prilagajanja v korist eksploracije ali eksploatacije v nadaljevanju. 38

Implementacija AIS algoritmov 7.1 Algoritem negativne selekcije (NSA) Ideja negativne selekcije pri umetnem imunskem sistemu kot tudi sam algoritem sta opisana v poglavju 3.2. Algoritmi NSA, kot tudi drugi algoritmi na osnovi negativne selekcije, v splošnem služijo razpoznavi vzorcev, tujkov in anomalij. Poskusimo si minimum ali maksimum predstavljati kot anomalijo, ki jo iščemo. V kolikor rešitev poznamo, je algoritem izvedljiv, saj ga natančno povzamemo v korakih, prikazanih na straneh 22 in 23. Kaj storiti, kadar nam rešitev ni znana? Sam algoritem ne vsebuje kriterija ovrednotenja, kdaj in kako se bližamo rešitvi. Odpade ujemanje detektorjev D proti δ, ki je bistvo NSA, sam algoritem pa v najboljšem primeru lahko postane le RWA (algoritem naključnih korakov). Enak primer je tudi DCA (algoritem dendritskih celic), ki v primeru iskanja vzorcev uporablja kontekst zrelosti vrednosti antigenov MCAV in teorijo nevarnosti. Tudi za ta algoritem velja enako kot pri NSA, da se ne uporablja kot optimizacijski algoritem. Povzetek algoritma zgleda takole [30]: begin 1. inicializiraj: št. vh. signalov na kategorijo (I), št. kategorij vh. signala (J), št. antigenov v vektorju tkiva (K), št. DC ciklov (L), velikost DC populacije (M), št. DC vektorjev (N), št. izh. signalov na DC (P), št. na cikel vzorčenih antigenov (Q), max. št. na DC vzorčenih antigenov v ciklu (R), T max = velikost vektorja tkiva antigenov 2. Ponavljaj dokler (l<l) 2.1. ponastavi A in S 2.2. za vsak m od 0 do M ponavljaj 2.2.1. za vsak q od 0 do Q DC m vzorči Q antigen iz A 2.2.2. za vsak i od 0 do I in j od 0 do J s DC ij = s ij 2.2.3. za vsak n od 0 do N DC m obdela a DC nm 2.2.4. za vsak p od 0 do P preračunaj o p, o p (m) = o p (m) + o p, če je o 0 (m) > t m : 2.2.4.1. DC m odstranimo iz populacije 2.2.4.2. DC m selimo, izpišemo antigen in vsebino 2.2.4.3. DC m ponastavimo vektor antigenov in vse signale 2.3. povečaj l, analiziraj antigen in izračunaj MCAV end 39

Implementacija AIS algoritmov 7.2 Umetno imunsko omrežje (ainet) Algoritem, ki predstavlja umetno imunsko omrežje, temelji na teoriji, opisani v poglavju 3.3, njegova implementacija pa izhaja iz članka "An Artificial Immune Network for Multimodal Function Optimisation" [11]. Inicializacija vhodnih parametrov vsebuje: - numinitcells (N=20) predstavlja začetno populacijo mrežnih celic, - numclones (N c =10) populacijo klonov, ki nastanejo iz vsake mrežne celice, - maxiterations (N gen =500) maksimalno število iteracij algoritma, - suppresionthreshold (σ s = 0.2) prag zatiranja celičnega omrežja, - errorthreshold povprečen prag napake ob klonski selekciji, - divratio (d=40%) del populacije, ki bo uporabljen, kadar želimo dodati raznolikost populacije, - mutationparam (β=100) parameter mutacije proporcionalen afiniteti, - numdimension dimenzija optimizacijskega problema, - lowerbounds {-1.0,-1.0} spodnja omejitev polja dimenzije, - upperbounds {1.0,1.0} zgornja omejitev polja dimenzije. Nastavitev parametrov ustreza parametrom N gen =200, n=n=100, d=10, β=0.1 v kolikor bi problem reševali z algoritmom ClonAlg. Za razliko od ClonAlg, opt-ainet uporablja mutacijo po Gauss-u, ki je obratno sorazmerna normalizirani ocenitveni funkciji staršev (t.j. osebkov prejšnje generacije). Opt-aiNet ima podobnosti z evolucijskimi strategijami (ES), saj je mehanizem selekcije enak kot pri (μ+λ)-es, kjer μ staršev naredi λ potomcev, ki so zmanjšani na število μ novih staršev, selekcija pa vsebuje tako starše kot potomce, kjer starši preživijo, dokler jih ne izrine eden od potomcev. V opt-ainet je μ=n (celotna populacija) in λ=n c. Tudi ES uporablja mutacijo po Gauss-u, ki pa ni odvisna od ocenitvene funkcije. Glavna razlika med naštetima strategijama je, da opt-ainet dinamično nastavlja velikost populacije z uporabo naključnih novih osebkov in s pomočjo vpliva mreže, medtem ko ima ES konstantno število osebkov populacije. Zaradi lažjega spremljanja napredka pri eksploraciji in eksploataciji smo se držali poenostavitve in namesto iskanja medsebojnih povezav med parametri izbrali raje strnjeno populacijo blizu rešitve, ter tako, ki je od rešitve precej oddaljena. Več o rezultatu v naslednjem poglavju. V kolikor želimo prikazati le delovanje samega algoritma oz. v primeru tekme opt-ainet z drugimi algoritmi, se prva generacija prične z naključnimi osebki. Ta generacija gre skozi klonsko selekcijo, kjer se ovrednoti in klonira ter izračuna ocenitvena funkcija celotne mreže. Ob ovrednotenju afinitete mrežnih celic se tisti osebki, ki se znajdejo pod pragom zatiranja, odstranijo. Kloni, ki dosežejo boljši rezultat ocenitvene funkcije, zamenjajo osebke, iz katerih so nastali, ti, ki pa dosežejo slabši rezultat, se zavržejo. 40

Implementacija AIS algoritmov Izvorna koda klonske selekcije: private void clonalselection(task taskproblem) { boolean proceed; // Loop stopping condition variable double preavgfitness = 0.0; // Average population fitness before clonal selection double postavgfitness; // Average population fitness after clonal selection double fitnesssum; // Sum of fitnesses of all network cells // Iterate until stopping condition is met do { fitnesssum = clonecells(taskproblem); postavgfitness = fitnesssum/celllist.size(); if ((postavgfitness-preavgfitness) < errorthres) proceed = false; else { proceed = true; preavgfitness = postavgfitness; } } while (proceed); } private double clonecells(task taskproblem) { NetworkCell currentcell; NetworkCell clones[] = new NetworkCell[numClones]; int best; // Array index of the current best clone in the clonal pool // All cells in the network undergo cloning, mutation and selection double lowestfitness = celllist.get(0).geteval(); double highestfitness = celllist.get(0).geteval(); double totalfitness = 0.0; for(int i=0; i<celllist.size(); i++) { double currentfitness = celllist.get(i).geteval(); if (lowestfitness > currentfitness) lowestfitness = currentfitness; if (highestfitness < currentfitness) highestfitness = currentfitness; } for (int i=0; i<celllist.size(); i++) if (!taskproblem.isstopcriteria()) { currentcell = celllist.get(i); bestindex = 0; double fitnessnorm = (currentcell.geteval() - lowestfitness) / (highestfitness - lowestfitness); if (taskproblem.ismaximize()) fitnessnorm = 1. - fitnessnorm; double alpha = (1.0/mutnParam) * Math.exp(-1 * fitnessnorm); for (int j=0; j<numclones; j++) if (!taskproblem.isstopcriteria()) { clones[j] = new NetworkCell(currentCell); // clone double[] cellvalues = clones[j].x; mutate(cellvalues, alpha, taskproblem); clones[j] = new NetworkCell(cellValues); if (taskproblem.isfirstbetter(clones[j].individual, clones[bestindex].individual)) bestindex = j; } 41

Implementacija AIS algoritmov if (!taskproblem.isstopcriteria() && (taskproblem.isfirstbetter(clones[bestindex].individual, currentcell.individual))) { celllist.set(i, clones[bestindex]); if (taskproblem.isfirstbetter(celllist.get(i).individual, best.individual)) { best = new NetworkCell(cellList.get(i)); } totalfitness += celllist.get(i).eval; } } private void mutate(double[] cellvalues, double alpha, Task taskproblem) { for (int i = 0; i < cellvalues.length; i++) { double gauss = Util.rnd.nextGaussian(); // double gauss = getgaussian(0, taskproblem.getintervallength()[i]); cellvalues[i] = taskproblem.feasible(cellvalues[i] + alpha*gauss, i); } } private double getgaussian(double amean, double avariance) { return amean + Util.rnd.nextGaussian() * avariance; } Izvorna koda interakcije omrežja: private void networkinteractions(task taskproblem) { double affinities[][] = new double [celllist.size()][celllist.size // Calculate affinities between all network cells, only the upper diagonal // of the affinities array needs to be filled out for (int i=0; i<celllist.size(); i++) for (int j=0; j<celllist.size(); j++) { if (i > j) affinities[i][j] = 0; else affinities[i][j] = celllist.get(i).getaffinity(celllist.get(j)); } NetworkCell[] cellarray = celllist.toarray(new NetworkCell[0]); // For each pair of cells in the network (the upper diagonal of the // affinities array), if their affinity is below a threshold determined by // the suppthres parameter, then the cell with the lowest fitness is removed // from the network for (int i=0; i<cellarray.length; i++) for (int j=0; j<cellarray.length; j++) if ((i < j) && (affinities[i][j] < suppthres)) { if (taskproblem.isfirstbetter(cellarray[j], cellarray[i])) celllist.remove(cellarray[i]); else celllist.remove(cellarray[j]); } } 42

Implementacija AIS algoritmov Izvorna koda izračuna afinitete: public double getaffinity(networkcell cell) { double affinity = 0; double[] dims = getx(); double[] celldims = cell.getx(); // Calculate the Euclidean distance between the network cells for (int i=0; i<dims.length; i++) affinity = affinity + Math.pow((dims[i]-cellDims[i]),2); return Math.sqrt(affinity); } 7.3 Algoritem klonske selekcije (CLONALG) Teoretična podlaga za ClonAlg kakor tudi BCA je opisana v poglavju 3.1. Sam ClonAlg ima dve možni različici. Splošni model izhaja iz članka»learning and optimization using the clonal selection principle.«[13] in ga lahko strnemo v: Antibody.task = taskproblem; init(taskproblem); Arrays.sort(memCells); Antibody best = new Antibody(memCells[0]); while (!taskproblem.isstopcriteria()) { for (int generation=0; generation<generations; generation++) { double totalaffinity=0; for(int i=0; i<pop_size; i++) totalaffinity += memcells[i].getaffinity(); Antibody[] clones = new Antibody[clones_size]; for(int i=0;i<pop_size;i++) { int Nc=pop_size-i; double pm=(double)memcells[i].getaffinity()/totalaffinity; for(int j=0;j<nc;j++) { clones[nc]=new Antibody(memCells[i]); if (!taskproblem.isstopcriteria()) { double xx[] = clones[nc].getnewx(); for(int k=0;k<taskproblem.getdimensions();k++) { xx[k]=taskproblem.feasible(xx[k]+change,k); } clones[nc]=new Antibody(taskProblem.eval(xx)); } nc++; } } Arrays.sort(clones); } for(int i=2;i<pop_size;i++) { if (taskproblem.isstopcriteria()) break; memcells[i] = Antibody.getRandom(); } 43

Implementacija AIS algoritmov } Arrays.sort(memCells); if (taskproblem.isfirstbetter(memcells[0], best)) return best; best = new Antibody(memCells[0]); Bolj zanimiv pristop pa izhaja iz članka»a Micro Artificial Immune System«[32], ki govori o populaciji 3 do 5 osebkov. Ti ustvarijo 15 klonov, algoritem je časovno manj potraten in hitreje konvergira k optimalni rešitvi. Micro AIS pa ni edini algoritem z majhnim številom osebkov. Krishnakumar [43], Toscano, Coello [66], Ming, Cheng [50], Mendoza, Morales in López [49] so razvijali različne mikro GA, Fuentes in Coello [28] pa tudi mikro PSO. Iz naštetega se poraja ideja, da bi tudi opt-ainet lahko preračunavali z bistveno manjšo populacijo. Zaradi lažjega spremljanja napredka pri eksploraciji in eksploataciji smo se tudi tu držali poenostavitve in namesto iskanja medsebojnih povezav med parametri izbrali raje strnjeno populacijo blizu rešitve, ter tako, ki je od rešitve precej oddaljena. Več o rezultatu v naslednjem poglavju. 7.4 B celičen algoritem (BCA) BCA kot tudi ClonAlg poskušata implementirati teorijo klonske selekcije in sta v osnovi precej podobna. Oba vsebujeta operacije kloniranja, selekcije, mutacije in apoptozo. Posebnost BCA je, da se vse operacije izvajajo nad bitnimi nizi. Primer razlike implementacije operatorja mutacije med BCA: public static boolean[][] mutate(int pop_dimension, boolean[][] population) { for (int i=0; i<pop_size; i++) for (int j=0; j<pop_dimension; j++) if (Math.random() < mutation_probability) population[i][j] =!population[i][j]; return population; } in ClonAlg: for(int k=0; k<taskproblem.getdimensions(); k++) { alpha = Util.rnd.nextDouble(); if (Util.rnd.nextDouble() < 0.5) change=(double)((double)alpha*range*(generation+1))/nc; else change=(double)((double)(alpha*range)/((double)(generation+1)*nc)); xx[k]=taskproblem.feasible(xx[k]+change,k); } Implementacija BCA je povzeta po članku:»assessing the Performance of Two Immune Inspired Algorithms and a Hybrid Genetic Algorithm for Function Optimisation«[65]. Članek je zanimiv iz razloga, ker izmed vseh algoritmov umetnega imunskega sistema v primeru reševanj optimizacijskih problemov na koncu izbiramo med ainet in BCA/ClonAlg algoritmi. 44

Primerjava rezultatov algoritmov 8 PRIMERJAVA REZULTATOV ALGORITMOV Preden se lotimo primerjave algoritmov, povejmo nekaj besed o okolju EARS [1], kjer so vsi algoritmi podvrženi enakim pogojem in v katerem smo izvajali primerjavo algoritmov. Okolje vsebuje: - razred tipa opravilo, kjer lahko določimo zaustavitveni kriterij, maksimalno št. izračunov, natančnost in definiramo, kateri problem rešujemo; - razred tipa problem, kjer so definirani testni problemi (Ackley, B2, Beale, Booth, Branin, DeJong, Easom, GoldSteinAndPrice, Griewank, MartinAndGaddy, PowellBadlyScaledFunction, Rastrigin, Rosenbrock, Schwefel in Sphere); kot tudi tekmovalni problemi (t.j. skupina CEC2010 in CEC2014 problemov); - razred tipa algoritem, kateremu smo prilagodili strukturo, v tem in v naslednjem poglavju naštetih algoritmov; - razred tipa individual, ki predstavlja elementarni delec algoritma (t.j. osebek oz. član populacije). Algoritme v okolju lahko zaganjamo posamično ali v tekmi z drugimi algoritmi. Posamične zagone smo uporabljali v preliminarni analizi in pri raziskovanju eksploracije in eksploatacije, tekmo pa v medsebojni primerjavi algoritmov. Algoritme lahko primerjamo po NHST (Null Hypothesis Significance Testing) [32], kar je izrednega pomena, saj lahko znanstveno dokažemo boljšo zmogljivost enega algoritma v primerjavi z drugim. Izhajamo iz trditve ničelne hipoteze (Null Hypothesis oz. H 0 ), da sta dva algoritma po rezultatih izenačena. Alternativna hipoteza H a predpostavlja, da je H 0 napačna, torej da je en algoritem boljši. Test je postopek, kjer poskušamo H 0 ovreči, kar počnemo na večjem številu algoritmov, z večimi podatkovnimi nizi in zagoni algoritmov. Test po tipu delimo na parametričen in neparametričen, razlika med tipoma pa je v lastnostih podatkovnih nizov. Drug novejši pristop primerjanja algoritmov se imenuje CRS4EAs (Chess Rating System for Evolutionary Algorithms) [32], [68]. Pri tem so uporabljene naslednje analogije: - igralec šaha = poljuben algoritem, - partija šaha = iskanje najboljšega rezultata za podan problem, z uporabo zgornje omejitve izračunov ocenitvene funkcije, - šahovski turnir = primerjava algoritmov na določeni množici problemov, ki poteka tako, da poljubna dva algoritma med seboj tekmujeta, turnir pa se konča, kadar s tekmo zaključijo vsi tekmovalci, - razvrščanje = tako kot stopnja oz. naziv, ki ga lahko doseže šahist, se po doseženih točkah razvščajo tudi algoritmi. 45

Primerjava rezultatov algoritmov CRS4EAs ima veliko podobnosti s NHST, po drugi strani tudi nekaj dodatnih ugodnosti, kot so: robustnost ob odstopanjih, nadzorni mehanizem, je preprost za uporabo, je brez nevarnosti namernih zlorab ali takih iz nerazumevanja (pri statističnih metodah je taka zloraba možna), točno ocenitev zmogljivosti algoritma dosežemo že ob majhnem številu zagonov (do 25). Ima tudi nekaj omejitev, kot so: - število zagonov (iger) je odvisno od števila primerjanih algoritmov, - seznam razvrščanja se spreminja z vsakim novo dodanim algoritmom, - ponovna uporaba dobljenih podatkov v drugih statističnih testih ni možna, - rezultat razvrstitve različnih zagonov med seboj ni primerljiv, - rezultat posamičnega algoritma za določen problem ni izpostavljen, saj gre zmeraj za primerjavo dveh algoritmov. 8.1 Primerjava z NHST in CRS4EAs Kot smo ugotovili v sedmem poglavju, vsi algoritmi ne ustrezajo reševanju zastavljenih problemov. V primerjavi so sodelovali iz šestega poglavja opisani algoritmi: ABC, TLBO, PSO (ponekod zapisan tudi kot PSO_Wiki), DE (ponekod zapisan tudi kot DE_Wiki). V prvem zagonu testa sta sodelovala tudi 2 AIS algoritma: ClonAlg in opt-ainet. Priprava programa za prvi zagon testa: Util.rnd.setSeed(System.currentTimeMillis()); ArrayList<Algorithm> players = new ArrayList<Algorithm>(); players.add(new PSO()); players.add(new MojDE(1, 20)); players.add(new BeeColonyAlgorithm()); players.add(new TLBOAlgorithm()); players.add(new RandomWalkAlgorithm()); players.add(new MicroClonAlg()); players.add(new OptAinet()); ResultArena ra = new ResultArena(100); RatingRPUOed2 suopm = new RatingRPUOed2(); //Create banchmark for (Algorithm al:players) { ra.addplayer(al.getid(), 1500, 350, 0.06,0,0,0); //init rating 1500 suopm.registeralgorithm(al); } Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=10 5 ): opt-ainet NP=20, Clones=10, suppthres=0.2, errorthres=0.001, divratio=0.4, mutnparam=100.0 ClonAlg NP=5, Clones=15 ABC NP=20, limit = 100 TLBO NP=20, elitism=false, removeduplicates=true PSO NP=10, omega=0.7, phig=2, phip=2 DE NP=20, Cr=1, F=20 RWS - 46

Primerjava rezultatov algoritmov Pri tem je RWS brez parametrov, NP velikost populacije, Cr faktor križanja, F diferencialna utež, parametri opt-ainet in ClonAlg pa razloženi v sedmem poglavju. Rezultat prvega testa (poseben poudarek na opt-ainet): Rezultat prve (Booth) funkcije prikaže, da opt-ainet izgublja proti skoraj vsem algoritmom. Pri v poglavju 7.2 omenjenem članku je bilo govora o počasnejši konvergenci opt-ainet v primerjavi z ClonAlg. Tudi znotraj implementacije opt-ainet smo to opazili in nismo našli načina, kako bi to izboljšali, da pri tem ne bi spreminjali: operatorja mutacije: c' = c + αn(0,1), α = (1/β) exp ( f*), multimodalnosti, ali naraščanja populacije σ s = 0.2; d = 40% in pri tem spremenili algoritem do te mere, da ne bi več ustrezal opisu iz članka. Problem je, da multimodalnost poveča preiskovalni prostor, vendar ni učinkovitega mehanizma medsebojnega vpliva mrežnih celic. Afiniteta (razdalja med celicami) enostavno ni dovolj. Drug problem je naraščanje populacije ob omejenem številu računskih operacij. Rezultat druge (Branin) funkcije prikaže, da opt-ainet pade iz intervala sprejemljivih rešitev, kar privede do zaustavitve testa. Posledica tega je, da je opt-ainet nesprejemljiv kandidat tekme. Priprava programa za drug zagon testa: Ni bistvene razlike od priprave za prvi zagon (zakomentirana je le vrstica za zaganjanje opt-ainet). Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=10 5 ): ClonAlg NP=5, Clones=15 ABC NP=20, limit = 100 TLBO NP=20, elitism=false, removeduplicates=true PSO NP=10, omega=0.7, phig=2, phip=2 DE NP=20, Cr=1, F=20 RWS - Rezultati drugega testa (tokrat brez opt-ainet): Rezultate, ki jih dobimo iz EARS, vsebujejo razvrstitev, št. zmag, št. zgub, št. neodločenih rezultatov, seznam problemov, v katerih so algoritmi znotraj tekme sodelovali in 47

Primerjava rezultatov algoritmov medsebojne rezultate tekme. Iz dobljenega lahko prikažemo tabelo rezultatov ClonAlg algoritma glede na zadan problem: Problem Zmaga Poraz Neodločeno Beale 123 127 0 B2 100 150 0 Griewank 193 57 0 Martin&Gaddy 73 177 0 Ackley 100 150 0 Goldstein&Price 78 172 0 Schwefel Rigle 147 103 0 Easom 143 107 0 Powell badly scaled 98 152 0 Sphere 100 150 0 Rastrigin 115 135 0 Schwefel 76 174 0 Rosenbrock 208 42 0 Booth 100 150 0 De Jong 157 93 0 Branin 81 169 0 Skupaj 1892 2108 0 Tabela 1: Rezultat ClonAlg glede na zadan problem (ob drugem zagonu) Iz dobljenih rezultatov lahko sestavimo tudi tabelo rezultatov ClonAlg algoritma glede na ostale algoritme: Algoritem Zmaga Poraz Neodločeno ClonAlg vs ABC 251 549 0 ClonAlg vs TLBO 86 714 0 ClonAlg vs PSO 99 701 0 ClonAlg vs DE 768 32 0 ClonAlg vs RWS 688 112 0 Skupaj 1892 2108 0 Tabela 2: Rezultat ClonAlg glede na ostale algoritme (ob drugem zagonu) Iz dobljenih rezultatov drugega testa smo ugotovili, da privzeti parametri DE niso sprejemljivi in smo jih kasneje v tekmi zamenjali s klasičnimi nastavitvami (NP=20, Cr=0.9, F=0.5), ki prinesejo mnogo boljše rezultate. Iz drugega testa, razen rezultatov podanih v tabeli 1 in tabeli 2, dobimo tudi rezultat razvrstitve udeleženih algoritmov po doseženih točkah, ki je prikazan v naslednjem grafu: 48

Primerjava rezultatov algoritmov 2.000,00 1.800,00 1.600,00 1.400,00 1.200,00 1.000,00 800,00 600,00 400,00 200,00 0,00 TLBO PSO_Wiki ABC ClonAlg RWSi DE_Wiki Razvrstitev po točkah Slika 5: Grafični prikaz razvrstitve (ob drugem zagonu) Po zagnanem prvem in drugem testu smo v EARS naredili tekmo (t.j. 25 ponovnih zagonov), pri kateri smo za vsak zagon beležili razvrstitev algoritmov. Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=10 5 ): ClonAlg NP=5, Clones=15 ABC NP=20, limit = 100 TLBO NP=20, elitism=false, removeduplicates=true PSO NP=10, omega=0.7, phig=2, phip=2 DE NP=20, Cr=0.9, F=0.5 RWS - Grafični prikaz tabelaričnih vrednosti razvrstitve (tabele 3), kjer je za vsak algoritem prikazana razvrstitev od minimalne do maksimalne vrednosti ter povprečna vrednost: Slika 6: Grafični prikaz razvrstitve algoritmov (prva tekma) 49

Primerjava rezultatov algoritmov Rezultat prve tekme, razvrstitev po doseženih točkah: Zagon št. DE_Wiki TLBO PSO_Wiki ABC ES(1+1) ClonAlg RWSi 1 1768,00 1716,10 1677,20 1510,80 1425,40 1298,20 1104,30 2 1766,00 1707,30 1676,90 1505,70 1436,60 1307,30 1100,10 3 1767,10 1711,70 1689,90 1503,10 1421,20 1303,60 1103,40 4 1768,70 1712,90 1677,20 1506,70 1438,30 1299,50 1096,70 5 1762,70 1705,60 1688,30 1506,40 1434,70 1301,50 1101,00 6 1765,10 1708,30 1687,60 1506,30 1430,00 1298,20 1104,40 7 1772,20 1707,70 1678,10 1502,80 1435,20 1295,00 1109,00 8 1773,80 1714,40 1663,30 1503,50 1443,10 1294,30 1107,60 9 1763,30 1714,80 1675,20 1513,20 1430,60 1303,20 1099,80 10 1754,10 1704,90 1675,80 1512,40 1448,30 1303,00 1101,40 11 1753,80 1726,90 1684,40 1505,80 1425,70 1301,70 1101,70 12 1772,30 1709,20 1670,90 1499,70 1445,10 1300,80 1102,10 13 1763,30 1716,60 1684,40 1496,20 1441,00 1294,10 1104,40 14 1764,90 1706,00 1684,20 1501,90 1442,60 1299,00 1101,40 15 1766,40 1702,90 1681,20 1505,80 1441,50 1297,60 1104,60 16 1759,20 1707,20 1685,10 1506,30 1433,30 1301,90 1107,00 17 1761,80 1704,80 1674,50 1507,40 1449,70 1300,00 1101,80 18 1764,10 1721,70 1674,50 1497,90 1440,20 1300,20 1101,40 19 1761,00 1712,80 1677,90 1497,00 1439,00 1304,90 1107,40 20 1764,60 1713,20 1676,40 1507,00 1446,40 1294,50 1097,80 21 1770,40 1707,00 1677,00 1505,20 1433,80 1304,70 1101,80 22 1762,30 1713,90 1678,20 1511,50 1432,00 1296,70 1105,40 23 1769,10 1716,10 1665,70 1504,10 1445,50 1294,20 1105,30 24 1757,60 1712,90 1679,00 1501,50 1433,30 1308,40 1107,40 25 1771,60 1709,60 1678,40 1506,70 1433,40 1300,80 1099,50 Povprečje 1764,94 1711,38 1678,45 1505,00 1437,04 1300,13 1103,07 Min 1753,80 1702,90 1663,30 1496,20 1421,20 1294,10 1096,70 Max 1773,80 1726,90 1689,90 1513,20 1449,70 1308,40 1109,00 Tabela 3: Razvrstitev algoritmov po doseženih točkah (prva tekma) Po zagnani prvi tekmi smo tekmo (t.j. 25 ponovnih zagonov) ponovili še na CEC2010 problemih. Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=10 5 ): ClonAlg NP=5, Clones=15 ABC NP=20, limit = 100 TLBO NP=20, elitism=false, removeduplicates=true PSO NP=10, omega=0.7, phig=2, phip=2 DE NP=20, Cr=0.9, F=0.5 RWS - 50

Primerjava rezultatov algoritmov Rezultat druge tekme, razvrstitev po doseženih točkah: Zagon št. DE_Wiki TLBO PSO_Wiki ABC ES(1+1) ClonAlg RWSi 1 1731,70 1614,40 1674,80 1575,50 1467,00 1306,30 1130,20 2 1711,00 1628,00 1680,60 1612,50 1483,60 1271,10 1113,30 3 1717,40 1595,30 1654,90 1608,70 1505,50 1306,90 1111,40 4 1707,70 1578,10 1648,00 1639,80 1502,30 1304,00 1120,00 5 1691,50 1597,80 1638,90 1618,80 1552,80 1291,20 1109,00 6 1730,10 1597,70 1673,10 1624,00 1497,10 1274,30 1103,70 7 1736,40 1601,20 1650,00 1646,80 1451,10 1290,90 1123,60 8 1714,40 1596,90 1652,30 1634,00 1491,30 1280,50 1130,60 9 1719,50 1613,80 1675,20 1604,00 1518,90 1260,40 1108,30 10 1716,90 1591,40 1643,40 1626,80 1527,20 1272,30 1122,10 11 1746,20 1606,30 1661,10 1607,10 1465,30 1283,00 1130,90 12 1723,60 1625,80 1682,50 1589,50 1515,70 1261,90 1101,00 13 1735,80 1586,90 1668,10 1631,30 1453,40 1292,50 1131,90 14 1737,00 1613,80 1653,00 1590,70 1484,90 1289,90 1130,80 15 1709,40 1596,40 1660,70 1624,10 1572,20 1243,80 1093,50 16 1740,00 1585,20 1663,30 1630,80 1460,30 1294,70 1125,60 17 1731,60 1605,40 1661,20 1621,20 1464,30 1285,50 1130,80 18 1734,50 1586,20 1644,10 1625,40 1477,40 1315,00 1117,30 19 1751,90 1589,50 1665,40 1636,20 1425,60 1299,00 1132,40 20 1722,70 1585,70 1645,80 1615,20 1517,80 1280,90 1131,90 21 1743,40 1592,90 1667,30 1613,80 1488,60 1283,10 1110,90 22 1725,70 1583,70 1678,40 1626,60 1469,50 1284,80 1131,40 23 1711,30 1620,30 1659,90 1598,00 1518,00 1280,10 1112,40 24 1735,30 1609,60 1663,90 1641,40 1449,60 1277,00 1123,30 25 1722,40 1605,00 1655,90 1615,90 1541,30 1258,70 1100,70 Povprečje 1725,90 1600,29 1659,41 1618,32 1492,03 1283,51 1119,08 Min 1691,50 1578,10 1638,90 1575,50 1425,60 1243,80 1093,50 Max 1751,90 1628,00 1682,50 1646,80 1572,20 1315,00 1132,40 Tabela 4: Razvrstitev algoritmov po doseženih točkah (druga tekma, CEC2010 problemi) Grafični prikaz tabelaričnih vrednosti razvrstitve: Slika 7: Grafični prikaz razvrstitve algoritmov (druga tekma, CEC2010 problemi) 51

Primerjava rezultatov algoritmov Za vsak algoritem je prikazana razvrstitev od minimalne do maksimalne vrednosti ter povprečna vrednost. Iz dobljenih rezultatov lahko dobimo tudi grafični prikaz z CRS4EAs dobljenih občutnih razlik. Dva algoritma sta občutno različna, kadar se z 99.7% gotovostjo, intervala razvrstitve ne prekrivata. Slika 8: Grafični prikaz z CRS4EAs dobljenih občutnih razlik Iz obeh tekem ugotovimo, da je s pravimi parametri DE nesporni zmagovalec tekme. V prvem primeru tekme algoritmi rešujejo naslednje probleme: Beale, B2, Griewank, Martin and Gaddy, Ackley, Goldstein and Price, Schwefel Rigle, Easom, Powell badly scaled, Sphere, Rastrigin, Schwefel, Rosenbrock, Booth, De Jong in Branin. Ta tekma vsebuje zelo majhno divergenco med rezultati razvrstitve algoritmov in je lažje razvidno, kako so se algoritmi uvrščali. V primeru tekme po CEC2010 problemih se rezultati razvrstitve za ABC, PSO in TLBO prekrivajo, o čem govori tudi grafični prikaz z CRS4EAs dobljenih občutnih razlik. Glede na prvo tekmo PSO implementacija prehiti TLBO, prav tako pa se tudi s TLBO izenači ABC. Razvrstitev ClonAlg na žalost v drugi tekmi ni toliko napredovala kot razvrstitev nekaterih drugih algoritmov. 52