umetni imunski sistem s strani biologije ...imunski sistem ôloveka spada med skupino imunskega...
TRANSCRIPT
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
I
Smetanova ulica 17
2000 Maribor, Slovenija
UMETNI IMUNSKI SISTEM – S STRANI BIOLOGIJE
NAVDIHNJENO RAČUNANJE
Magistrsko delo
Študent: Andrej Barovič Karpov
Študijski program: Računalništvo in informatika, podiplomski študij
Smer:
Mentor: red. prof. dr. Marjan MERNIK
Somentor(ica):
Lektor(ica):
II
ZAHVALA
Zahvaljujem se mentorju red. prof. dr. Marjanu
Merniku in doc. dr. Mateju Črepinšku za pomoč
in vodenje pri opravljanju magistrske naloge.
III
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.
IV
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.
V
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
VI
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
VII
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
VIII
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
IX
opt-aiNet - Optimised aiNet
opt-aiNet-AA-Clust - opt-aiNet for Amino Acid Clustering
opt-IA - Optimization Immune Algorithm
PDP - Parallel Distributed Processing
PSO - Particle Swarm Optimization
RWA - Random Walk Algorithm
SAT - Satisfiability
SVM - Support Vector Machine
TEA - Trend Evaluation Algorithm
TFH - Follicular Helper T Cells
TLBO - Teaching-Learning-Based Optimization
TSP - Travelling Salesman Problem
Uvod MAGISTERIJ
10
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.
Imunski sistem in njegove biološke osnove MAGISTERIJ
11
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.
Imunski sistem in njegove biološke osnove MAGISTERIJ
12
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.
Imunski sistem in njegove biološke osnove MAGISTERIJ
13
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.
Imunski sistem in njegove biološke osnove MAGISTERIJ
14
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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
15
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
Algoritmi umetnega imunskega sistema MAGISTERIJ
16
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).
Algoritmi umetnega imunskega sistema MAGISTERIJ
17
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).
Algoritmi umetnega imunskega sistema MAGISTERIJ
18
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 𝑥 ∈ [0, 𝑙] in l predstavlja maksimalno afiniteto. Za
receptor s koordinatami x = (x1, x2, ... xn) in epitop z y=(y1, y2, ... yn), nam standardna
evklidska metrika med njima da afiniteto 𝐷(𝑥, 𝑦) = √∑ (𝑥𝑗 − 𝑦𝑗)2𝑛𝑗=1 . Kot poenostavitev sta
Perelson in Oster predlagala "prepoznavno žogo" [59] radija B(x) = y|D(x, y) < 𝑟 in v
tej poenostavitvi odziv lahko zapišemo kot 𝑡 → ∞. 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 𝑒 ∈ ∑ ,𝐿 z e=(e1, e2,... eL) se
ujema po r-ponovitvenem pravilu, če obstaja pozicija p kjer ei=di za i=p,… , p+r-1, p≤L-
r+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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
19
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 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 𝑣 ∈ 𝑃, preračunaj 𝑔(𝑣) in ustvari klonirano populacijo C,
2.2. Izberi naključen 𝑣′ ∈ 𝐶 in izvajaj CRHO,
2.3. Preračunaj 𝑔(𝑣′); če 𝑔(𝑣′) > 𝑔(𝑣) potem zamenjaj 𝑣 z klonom 𝑣′,
3. Izpiši populacijo P kot rešitev
end.
Algoritmi umetnega imunskega sistema MAGISTERIJ
20
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 Np osebkov, kjer je vsak osebek 𝑥 ∈ ∑L. ∑ je
končna množica določene abecede (ponavadi ∑ = 0, 1). Stanje, v katerem se nahaja
sistem, lahko zapišemo kot X=(x1, x2, … xNp) 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 Xt
vrednosti od 1 do M, ki odgovarja stanju sistema. Obnašanje algoritma lahko zakodiramo
kot neskončno zaporedje naključnih spremenljivk X0, X1, X2, ..., ob tem pa nas zanima
verjetnost prehoda v Xt in obnašanje sistema kadar 𝑡 → ∞.
Naj vt označujejo vrstice enodimenzionalnega vektorja za verjetnostno porazdelitev Xt,
tako da je j-ta komponenta vektorja vt, j = P (Xt = 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]:
𝑃(𝑋(𝑡+1) = 𝑘) = ∑ 𝑃(𝑋(𝑡+1) = 𝑘|𝑋𝑡 = 𝑗)𝑃(𝑋𝑡 = 𝑗);𝑀𝑗=1 oz. bolj podrobno
𝑣(𝑡+1,𝑘) = ∑ 𝑣(𝑡,𝑗)𝑃𝑗𝑘
𝑀
𝑗=1
kjer je Pjk = P(Xt+1 = k|Xt = j) verjetnost prehoda iz stanja j v k oziroma Pjk = P(X1=k|X0=j),
torej zaporedje spremenljivk Xt predstavlja homogeno Markovo verigo. Zgornjo enačbo
lahko povzamemo v matrični obliki, kot vt+1 = vt P, kjer je P = (Pjk) matrika prehoda, M × M
prehodnih verjetnosti.
Sledi vt = v0 Pt, tako da je asimptotska porazdelitev verige odvisna od mejnega
obnašanja Pt kadar 𝑡 → ∞. Za posamezno stanje verige j rečemo, da se absorbira, če
Pjk = 0 za vsak 𝑘 ≠ 𝑗 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(Xt=j za nek t ≥ 1 | X0=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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
21
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 fT verjetnost prehoda iz nič do nekega števila T (T-
stanje niza dolžine L), torej velja [64]:
𝑓𝑇 =1
𝐿2[∑ ∑ (1 − 𝜌)(𝑚+1−𝑛−𝑘)
𝐿−1
𝑚=𝑏
𝑎
𝑛=1
𝜌𝑘 + ∑ 𝑛(1 − 𝜌)(𝐿+1−𝑛−𝑘)
𝐴
𝑛=1
𝜌𝑘],
Algoritmi umetnega imunskega sistema MAGISTERIJ
22
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≤2L–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 fT>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=Pjj<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 Pjk(n) je j, k nivo Pn potem [64]:
∑ 𝑃𝑗𝑗(𝑛)
∞
𝑛=0
= ∑ 𝑝𝑛
∞
𝑛=0
=1
1 − 𝑝< ∞
kjer sledi, da je stanje j prehodno.
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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
23
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,1L (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
Algoritmi umetnega imunskega sistema MAGISTERIJ
24
toliko S nizov dolžine r, kot je neprekrivajočih neprekinjenih blokov, ki vsebujejo le
zaporedja S dolžine r.
Verjetnost neuspeha L poskusov nizov dolžine r z rezultati S (uspeh), F (neuspeh)
je [64]: 1−𝑝𝑥
(𝑟+1−𝑟𝑥)𝑞.
1
𝑥𝐿+1 kjer 𝑝 = 𝑞 =1
2 in 𝑥 = 1 + 𝑞𝑝𝑟 + (𝑟 + 1)(𝑞𝑝𝑟)2+. ..
Zgornji izraz lahko pretvorimo v verjetnost uspeha, da detektor prepozna naključni
antigen: 𝑃𝑊𝐹 = 1 − (1−𝑝𝑥
(𝑟+1−𝑟𝑥)𝑞.
1
𝑥𝐿+1)
Naj bo 0, 1L prostor v Hammingovem zapisu, D0, D, S ⊆ 0, 1L in
|D0| = število začetnih detektorjev (pred negativno selekcijo)
|D| = število detektorjev (po negativni selekciji)
|S| = število lastnih elementov v S
PWF = verjetnost iz enačbe zgoraj
P¬S = verjetnost naključnega elementa iz 0, 1L, ki se ne ujema z elementom iz
𝑆 = (1 − 𝑃𝑊𝐹)|𝑆| ≈ 𝑒−𝑃𝑊𝐹·|𝑆|
Pfail = verjetnost, da |D| detektorji ne odkrijejo tujega bitnega niza.
𝑃𝑓𝑎𝑖𝑙 = (1 − 𝑃𝑊𝐹)|𝐷| ≈ 𝑒−𝑃𝑊𝐹·|𝐷|
Glede na vnaprej določeno število naključno pripravljenih začetnih detektorjev |D0|, |S| in
PWF, dobimo število primernih detektorjev |D|, ki se ne ujemajo z nobenim elementom iz S,
kot sledi: |D| = |D0|·P¬S. Število detektorjev |D|, ki ne zazna tujega bitnega niza z
verjetnostjo Pfail je |𝐷| = −ln(𝑃𝑓𝑎𝑖𝑙)
𝑃𝑊𝐹. Iz obeh enačb za |D| pa dobimo število začetnih
detektorjev |𝐷0| = −ln(𝑃𝑓𝑎𝑖𝑙)
𝑃𝑊𝐹⋅𝑃¬𝑆, kar pomeni, da za detekcijo tujega bitnega niza ob
verjetnosti Pfail, kjer |D| detektorjev ne zazna tujega bitnega niza, potrebujemo |D0|
začetnih detektorjev. S preoblikovanjem zgornje enačbe v 𝑒𝑃𝑊𝐹·|𝑆| ∙ (−ln(𝑃𝑓𝑎𝑖𝑙)
𝑃𝑊𝐹) se zdi, da
|D0|, oz. število začetnih detektorjev raste eksponentno s |S| in da ta naključni pristop
iskanja postane neizvedljiv za velik |S|.
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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
25
Kompleksnost L-k-CNF
Iskanje vseh r-mestnih detektorjev zahteva najmanj Ω (2k) vrednotenj bitnih nizov, kar
utemeljuje dejstvo, da je Ω (2k) ocen potrebnih, da najdemo vse zadovoljive nabore za
prvi stavek vsakega od s ∈ 𝑆. Preostale (l-r) stavke od vseh s ∈ 𝑆 je treba preveriti, in
ugotoviti, za katerega od njih zadošča O(|S| · 2k) 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.473n), 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.
Algoritmi umetnega imunskega sistema MAGISTERIJ
26
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 1012, 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.
Zgodovina raziskav algoritmov umetnega imunskega sistema MAGISTERIJ
27
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
Zgodovina raziskav algoritmov umetnega imunskega sistema MAGISTERIJ
28
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
Zgodovina raziskav algoritmov umetnega imunskega sistema MAGISTERIJ
29
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]
Primeri uporabe algoritmov umetnega imunskega sistema MAGISTERIJ
30
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.
Primeri uporabe algoritmov umetnega imunskega sistema MAGISTERIJ
31
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).
Primeri uporabe algoritmov umetnega imunskega sistema MAGISTERIJ
32
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 rs 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
Primeri uporabe algoritmov umetnega imunskega sistema MAGISTERIJ
33
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 opt-
aiNet, 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 opt-
aiNet, 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.
Drugi moderni metahevristični algoritmi MAGISTERIJ
34
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 xi ∈ℝn in
hitrost vi ∈ℝn. Naj bo pi najboljši položaj delca i in g najboljši položaj celotnega roja.
Ocenitvena funkcija je predstavljena kot vektor realnih števil (𝑓: ℝn → ℝ), katere rešitev
prav tako predstavlja realno število. Cilj je najti tak a, v 𝑓(𝑎) ≤ 𝑓(𝑏) 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:
Drugi moderni metahevristični algoritmi MAGISTERIJ
35
1.1. vzpostavi položaj naključnih vektorjev xi ~ U(blo, bup), kjer sta blo
spodnja in bup zgornja meja preiskovanega prostora
1.2. vzpostavi najboljši položaj delca pi ← xi glede na začetni položaj
1.3. če (f(pi) < f(g)) shrani najboljši položaj roja: g ← pi
1.4. vzpostavi hitrost delca vi ~ U(-|bup-blo|, |bup-blo|)
2. Dokler ustavitveni kriterij (npr. število iteracij) ni dosežen
ponavljaj za vsak delec i=1,…, S:
2.1. izberi naključne vrednosti rp, rg ~ U(0,1)
2.2. osveži hitrost delca vi,d ← ω vi,d + φp rp (pi,d-xi,d) + φg rg (gd-xi,d)
2.3. osveži položaj delca xi ← xi + vi
2.4. če (f(xi) < f(pi)) shrani najboljši položaj delca pi ← xi
2.5. če (f(pi) < f(g)) shrani najboljši položaj roja: g ← pi
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 𝑅 ∈ 1, … , 𝑛, kjer je n dimenzija problema
2.3. izračunaj agentov naslednji položaj y = [y1, …, yn] kjer za vsak i
izberemo enakomerno porazdeljeno številko 𝑟𝑖 ≡ 𝑈(0,1)
Drugi moderni metahevristični algoritmi MAGISTERIJ
36
2.4. če ri< CR ali i = R je yi = ai + F x(bi-ci) drugače yi = xi
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:
Drugi moderni metahevristični algoritmi MAGISTERIJ
37
- 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 Mj,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_Meanj, i = ri (Xj, kbest, i - TFMj, i), kjer je Xj, kbest, i rezultat
učitelja (tj. najboljši učenec) za predmet j. Naj bo TF faktor poučevanja in določen z
enačbo TF = round[1 + rand(0, 1)2 − 1]. Vrednost TF ni parameter algoritma, ampak je
njegova vrednost naključna. Vrednost nove generacije učencev je definirana kot: X'j,k,i =
Xj,k,i+Difference_Meanj, 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 + ri (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 + ri (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).
Implementacija AIS algoritmov MAGISTERIJ
38
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.
Implementacija AIS algoritmov MAGISTERIJ
39
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), Tmax = 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 DCm vzorči Q antigen iz A
2.2.2. za vsak i od 0 do I in j od 0 do J sDCij = sij
2.2.3. za vsak n od 0 do N DCm obdela aDC
nm
2.2.4. za vsak p od 0 do P preračunaj op, op(m) = op(m) + op,
če je o0(m) > tm:
2.2.4.1. DCm odstranimo iz populacije
2.2.4.2. DCm selimo, izpišemo antigen in vsebino
2.2.4.3. DCm ponastavimo vektor antigenov in vse signale
2.3. povečaj l, analiziraj antigen in izračunaj MCAV
end
Implementacija AIS algoritmov MAGISTERIJ
40
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 (Nc=10) – populacijo klonov, ki nastanejo iz vsake mrežne celice,
- maxIterations (Ngen=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 Ngen=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 λ=Nc. 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.
Implementacija AIS algoritmov MAGISTERIJ
41
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;
Implementacija AIS algoritmov MAGISTERIJ
42
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]);
Implementacija AIS algoritmov MAGISTERIJ
43
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();
Implementacija AIS algoritmov MAGISTERIJ
44
Arrays.sort(memCells);
if (taskProblem.isFirstBetter(memCells[0], best))
best = new Antibody(memCells[0]);
return best;
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.
Primerjava rezultatov algoritmov MAGISTERIJ
45
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. H0), da sta
dva algoritma po rezultatih izenačena. Alternativna hipoteza Ha predpostavlja, da je H0
napačna, torej da je en algoritem boljši. Test je postopek, kjer poskušamo H0 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.
Primerjava rezultatov algoritmov MAGISTERIJ
46
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=105):
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 -
Primerjava rezultatov algoritmov MAGISTERIJ
47
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=105):
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
Primerjava rezultatov algoritmov MAGISTERIJ
48
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:
Primerjava rezultatov algoritmov MAGISTERIJ
49
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=105):
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)
0,00
200,00
400,00
600,00
800,00
1.000,00
1.200,00
1.400,00
1.600,00
1.800,00
2.000,00
TLBO PSO_Wiki ABC ClonAlg RWSi DE_Wiki
Razvrstitev po točkah
Primerjava rezultatov algoritmov MAGISTERIJ
50
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=105):
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 -
Primerjava rezultatov algoritmov MAGISTERIJ
51
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)
Primerjava rezultatov algoritmov MAGISTERIJ
52
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.
Primerjava rezultatov algoritmov MAGISTERIJ
53
8.2 Preliminarna analiza glede na začetno populacijo
Preliminarno analizo glede na začetno populacijo smo testirali na treh različnih
algoritmih: ClonAlg, PSO in DE. Testiranje je potekalo na funkcijah: Sphere, Griewank in
Rosenbrock.
Znotraj zagona posamičnega algoritma nas je namesto naključne začetne populacije
zanimal tudi primer, kadar je bil vsak osebek izbran z roba:
// tmp = taskProblem.getRandomIndividual();
tmp = taskProblem.getFarAwayIndividual();
kar je znotraj opravila definirano kot:
public Individual getFarAwayIndividual() throws StopCriteriaException
double[] individuals=new double[getDimensions()];
for (int j = 0; j < individuals.length; j++)
if (Math.random() > 0.5)
individuals[j] = getIntervalLeft()[j];
else
individuals[j] = getIntervalRight()[j];
Individual in = eval(individuals);
return in;
Prav tako nas je zanimalo tudi, kadar je osebek postavljen v bližino rešitve s:
// tmp = taskProblem.getRandomIndividual();
tmp = taskProblem.getNearIndividual();
Nastavitev osebka je odvisna od same funkcije in različna za Sphere, Griewank oz.
Rosenbrock.
Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=106):
opt-aiNet NP=20, Clones=10, suppThres=0.2, errorThres=0.001, divRatio=0.4,
mutnParam=100.0
ClonAlg NP=5, Clones=15
PSO NP=10, omega=0.7, phiG=2, phiP=2
DE NP=20, Cr=0.9, F=0.5
Iz spodnje tabele so razvidni rezultati konvergence za problem Sphere (dimenzije 5) in
problem Griewank (dimenzije 5). Pri problemu Griewank DE in PSO nista konvergirala, pri
problemu Rosenbrock (dimenzije 5) noben od algoritmov ni konvergiral pred 100.000
koraki (Max_Fes=106). Prav tako smo zagon z roba izvajali na opt-aiNet in rezultati pod
100.000 koraki se pojavljajo le redko. Zato smo se odločili prikazovanje le-teh izpustiti.
Primerjava rezultatov algoritmov MAGISTERIJ
54
Rezultati približevanja algoritmov, kjer je začetna populacija z roba:
Po vsakem zagonu z roba smo dobili število potrebnih korakov posameznega algoritma
za preiskovane probleme. Naredili smo 25 ponovitev in rezultate prikazali v spodnji tabeli:
Sphere ClonAlg DE_Wiki PSO_Wiki
Griewank ClonAlg DE_Wiki PSO_Wiki
1 1022 1479 971
1 927 100000 100000
2 970 2016 914
2 1001 100000 100000
3 21205 1649 100000
3 2309 100000 100000
4 28796 100000 1045
4 2109 100000 100000
5 2148 1356 902
5 1035 100000 100000
6 1560 1399 749
6 1329 100000 100000
7 8280 100000 719
7 855 100000 100000
8 519 1536 877
8 20924 100000 100000
9 1608 1442 1009
9 5513 100000 100000
10 2862 2397 1015
10 7793 100000 100000
11 569 1336 100000
11 1676 100000 100000
12 1699 1739 816
12 2586 100000 100000
13 2099 1152 897
13 1268 100000 100000
14 1013 1534 1038
14 1214 100000 100000
15 2007 1638 973
15 1196 100000 100000
16 2041 1447 1034
16 1498 100000 100000
17 1833 1268 856
17 1241 100000 100000
18 3507 1526 898
18 874 100000 100000
19 1698 1397 969
19 1314 100000 100000
20 2322 1464 934
20 18787 100000 100000
21 21900 1393 828
21 2221 100000 100000
22 16669 100000 748
22 946 100000 100000
23 967 1299 965
23 2225 100000 100000
24 2150 1443 921
24 886 100000 100000
25 7082 1443 920
25 13596 100000 100000
Povprečje 5461,04 13334,12 9526,65
Povprečje 3812,92 100000,00 100000,00
Min 519,00 1152,00 719,00
Min 855,00 100000,00 100000,00
Max 28796,00 100000,00 100000,00
Max 20924,00 100000,00 100000,00
Stdev.S 7841,86 32664,37 27436,11
Stdev.S 5591,43 0,00 0,00
Tabela 5: Število potrebnih korakov pri preiskovanju z roba
Za ClonAlg bi dejali, da so njegove preiskovalne lastnosti z roba kar dobre. V primeru
problema Sphere ni tako zanesljiv kot PSO kljub temu, da standardni odklon kaže
drugačno sliko. Oba DE kot tudi PSO imata nekaj zagonov brez da bi algoritem
konvergiral (število korakov je 100.000). Če bi to lahko ignorirali, bi standardni odklon
PSO znašal manj kot pri ClonAlg, res pa je tudi, da ClonAlg zmaga tudi z najnižjim
številom poskusov (519).
Primerjava rezultatov algoritmov MAGISTERIJ
55
Kar ClonAlg naredi zmagovalca, je predvsem reševanje Griewank problema. Če DE
ali PSO porinemo pri tem problemu na obrobje, se ne znata dovolj hitro vrniti k pravi
rešitvi (število korakov je bilo zmeraj 100.000). Pri reševanju Rosenbrock dimenzije 5
odpovejo vsi trije algoritmi.
Slika 9: Grafični prikaz števila potrebnih korakov posameznega algoritma
Rezultati približevanja algoritmov, kjer je začetna populacija blizu rešitve:
Nastavitve algoritmov v tem primeru zahtevajo premislek in poznavanje problemskega
področja, v našem primeru poznavanje funkcij: Sphere, Griewank in Rosenbrock. Tako
pridemo do nastavitev začetne populacije in dimenzije problema. Že pri zagonu z roba
smo ugotovili, da Rosenbrock dimenzije 5 predstavlja v danem okvirju računskih omejitev
nerešljiv problem za vse algoritme. Zaradi tega smo dimenzijo znižali s 5 na 2. Začetno
populacijo za algoritme smo nastavili:
individuals[j] = 1-Util.rnd.nextDouble()/10; // Rosenbrock
individuals[j] = Util.rnd.nextDouble()/10; // Sphere+Griewank
saj pri Rosenbrock predvidevamo rešitve okrog točke 1, pri Sphere in Griewank pa okrog
točke 0.
Parametri programov (dimenzija problema = 5, razen Rosenbrock = 2, število ocenitvenih
funkcij Max_Fes=106):
opt-aiNet NP=20, Clones=10, suppThres=0.2, errorThres=0.001, divRatio=0.4,
mutnParam=100.0
0
5000
10000
15000
20000
25000
30000
1 3 5 7 9 11 13 15 17 19 21 23 25
ClonAlg - Sphere
DE_Wiki - Sphere
PSO_Wiki - Sphere
ClonAlg - Griewank
Primerjava rezultatov algoritmov MAGISTERIJ
56
ClonAlg NP=5, Clones=15
PSO NP=10, omega=0.7, phiG=2, phiP=2
DE NP=20, Cr=0.9, F=0.5
Po vsakem zagonu z bližine rešitve smo dobili število potrebnih korakov posameznega
algoritma za preiskovane probleme. Naredili smo 25 ponovitev in rezultate prikazali v
spodnjih tabelah:
Sphere ClonAlg DE_Wiki PSO_Wiki
Griewank ClonAlg DE_Wiki opt-aiNet
1 19835 352 892
1 719 91 100000
2 2997 570 884
2 5848 242 100000
3 2047 331 754
3 12747 310 100000
4 29901 396 887
4 14140 266 75571
5 31009 261 841
5 2600 153 100000
6 10809 321 933
6 10880 332 100000
7 5283 314 1142
7 2119 171 90637
8 1058 327 902
8 369 199 100000
9 6149 427 1014
9 2584 341 100000
10 14249 221 1010
10 687 166 100000
11 4051 371 921
11 528 138 100000
12 11896 301 887
12 2091 127 100000
13 2524 647 880
13 1690 243 100000
14 5551 448 1096
14 747 136 98219
15 10892 280 894
15 4585 304 100000
16 695 369 867
16 553 176 87502
17 16452 437 100000
17 1231 257 100000
18 11601 270 963
18 5641 153 100000
19 16048 391 899
19 5118 447 100000
20 29948 287 843
20 2049 202 100000
21 4665 257 1087
21 4894 387 71140
22 65502 294 831
22 7088 100 100000
23 576 437 947
23 12643 147 100000
24 58700 264 845
24 3649 150 100000
25 2570 386 836
25 6219 346 40635
Povprečje 14600,32 358,36 5229,52
Povprečje 4456,76 223,36 94074,09
Min 576,00 221,00 754,00
Min 369,00 91,00 40635,00
Max 65502,00 647,00 100000,00
Max 14140,00 447,00 100000,00
Stdev.S 17027,56 99,14 19816,42
Stdev.S 4166,50 96,30 13628,79
Tabela 6: Število potrebnih korakov pri preiskovanju Sphere in Griewank z bližine
Pri preiskovanju Sphere smo prikazovanje opt-aiNet izpustili, v primeru Griewank pa ima
boljše rezultate od PSO in smo le-te prikazali. V primeru Rosenbrock je dimenzija
problema dovolj majhna, da konvergirajo vsi štirje algoritmi.
Primerjava rezultatov algoritmov MAGISTERIJ
57
Rosenbrock ClonAlg DE_Wiki PSOOmega opt-aiNet
1 5139 113 2588 10788
2 1114 270 100000 8044
3 47 197 1387 20136
4 2784 139 9318 4865
5 13726 196 100000 10476
6 2272 103 2841 8628
7 4709 147 2137 314
8 26104 164 100000 17122
9 43028 54 8624 10421
10 11620 64 1910 4955
11 28964 119 100000 4483
12 2060 74 1647 2836
13 1174 90 1119 4390
14 2253 108 891 6698
15 910 111 1742 5246
16 6350 140 9255 6696
17 45 153 10373 18242
18 1706 129 1066 12436
19 52034 100 7452 8795
20 3039 97 1634 8138
21 150 177 100000 7485
22 37271 176 1023 7985
23 2622 67 100000 16908
24 15441 146 2357 4823
25 1827 152 12038 15708
Povprečje 10655,56 131,44 25078,87 9034,17
Min 45,00 54,00 891,00 314,00
Max 52034,00 270,00 100000,00 20136,00
Stdev.S 14900,65 49,34 41899,94 5155,46
Tabela 7: Število potrebnih korakov pri preiskovanju Rosenbrock z bližine
Dobljeni rezultati nam pojasnijo šibko področje implementacije ClonAlg in opt-aiNet ter
razlog, zakaj je DE nesporni zmagovalec turnirja. Pri reševanju Sphere je ClonAlg v
povprečju trikrat slabši od PSOOmega. Pri Griewank funkciji oba ClonAlg kot tudi
opt-aiNet premagata PSOOmega, ampak vseeno precej zaostajata za DE. Zanimivi so
tudi rezultati Rosenbrock funkcije, kjer opt-aiNet prvič premaga ClonAlg.
Primerjava rezultatov algoritmov MAGISTERIJ
58
8.3 Primerjava glede na eksploracijo in eksploatacijo
Teorijo eksploracije in eksploatacije smo predstavili v sedmem poglavju. Znotraj
primerjave smo si zamislili merjenje medsebojne oddaljenosti med staršem in potomcem:
- evklidska razdalja 𝑑12 = √∑(𝑥1 − 𝑥2)2,
- Manhattan razdalja 𝑑12 = ∑|𝑥1 − 𝑥2|.
Primerjali smo dva algoritma: ClonAlg in DE. Primerjavo smo izvedli na dveh problemih:
Sphere in Griewank. Pri vsakem merjenju smo naredili 25 ponovitev, pri tem pa nas je
zanimala povprečna vrednost in standardni odklon, oz. za koliko vrednosti odstopajo od
povprečja.
Priprava programa za prvo primerjavo:
public class Explore
double[] problemIntervals;
String problemName;
ArrayList<double[]> parent;
ArrayList<double[]> child;
ArrayList<Double> fitness_parent;
ArrayList<Double> fitness_child;
ArrayList<Double> euclidian;
ArrayList<Double> manhattan;
public Explore()
super();
parent = new ArrayList<>();
child = new ArrayList<>();
fitness_parent = new ArrayList<>();
fitness_child = new ArrayList<>();
euclidian = new ArrayList<>();
manhattan = new ArrayList<>();
Prikazana je struktura hranjenja vrednosti za starša, otroka, njune evklidske in Manhattan
razdalje. Ta struktura je bila uporabljena v vseh primerjavah eksploracije in eksploatacije.
Starš in otrok sta shranjena kot polje spremenjivk znotraj preiskovanega intervala.
Vrednosti ocenitvene funkcije za starša in otroka hranimo, ker nas v določenem primeru
zanimajo le uspešni prehodi, t.j. kadar je ocenitvena funkcija otroka boljša od starševe.
Razliko med staršem in potomcem ter medsebojno oddaljenost računamo po:
for (int z=0; z<taskProblem.getDimensions(); z++)
euclidian = euclidian + Math.pow((parent_x[z]-child_x[z]), 2);
difference = Math.abs(parent_x[z]-child_x[z])/explore.problemIntervals[z];
euclidian = Math.sqrt(euclidian);
Strukturo inicializiramo ob zagonu reševanja problema, vrednosti pa dodajamo po vsakem
ocenjevanju novega otroka. Dobljeno strukturo ob koncu preračunavanj shranimo kot
JSON (JavaScript Object Notation) objekt, kar nam omogoča lažjo ponovno uporabo in
smiselno hrambo podatkov.
Primerjava rezultatov algoritmov MAGISTERIJ
59
Parametri programov (dimenzija problema = 5, število ocenitvenih funkcij Max_Fes=106):
ClonAlg NP=5, Clones=15
DE NP=20, Cr=0.9, F=0.5
Ko smo merili evklidsko razdaljo med staršem in potomcem, smo prag ujemanja nastavili
na: 0.1, 0.01 in 0.001. Vrednosti pod pragom nam prav tako predstavljajo eksploatacijo,
vrednosti nad pragom pa eksploracijo.
Kot prvo prikažimo meritev evklidske razdalje algoritma ClonAlg za Sphere funkcijo pri
pragu 0.1, kjer levo stran predstavlja meritev vseh prehodov, desno stran pa meritev
uspešnih prehodov:
Zagon št.
pod 0.1
št. vseh Eksploatacija Eksploracija
Zagon št.
pod 0.1
št. uspešnih Eksploatacija Eksploracija
1 773 1191 0,6490 0,3510
1 341 370 0,9216 0,0784
2 557 938 0,5938 0,4062
2 194 220 0,8818 0,1182
3 2325 4163 0,5585 0,4415
3 112 124 0,9032 0,0968
4 5098 8791 0,5799 0,4201
4 2278 2541 0,8965 0,1035
5 2322 4222 0,5500 0,4500
5 99 120 0,8250 0,1750
6 1133 2361 0,4799 0,5201
6 157 174 0,9023 0,0977
7 292 476 0,6134 0,3866
7 129 150 0,8600 0,1400
8 8894 11750 0,7569 0,2431
8 92 102 0,9020 0,0980
9 9903 12815 0,7728 0,2272
9 5022 5059 0,9927 0,0073
10 367 656 0,5595 0,4405
10 104 114 0,9123 0,0877
11 923 2216 0,4165 0,5835
11 157 184 0,8533 0,1467
12 600 1118 0,5367 0,4633
12 242 296 0,8176 0,1824
13 24698 32171 0,7677 0,2323
13 213 263 0,8099 0,1901
14 28079 35725 0,7860 0,2140
14 13928 13970 0,9970 0,0030
15 442 1005 0,4398 0,5602
15 139 155 0,8968 0,1032
16 320 610 0,5246 0,4754
16 109 122 0,8934 0,1066
17 1729 3432 0,5038 0,4962
17 889 1198 0,7421 0,2579
18 6066 8670 0,6997 0,3003
18 3033 3144 0,9647 0,0353
19 967 2632 0,3674 0,6326
19 94 124 0,7581 0,2419
20 576 1167 0,4936 0,5064
20 206 230 0,8957 0,1043
21 590 1461 0,4038 0,5962
21 111 129 0,8605 0,1395
22 736 1552 0,4742 0,5258
22 226 252 0,8968 0,1032
23 1179 2777 0,4246 0,5754
23 99 132 0,7500 0,2500
24 912 1776 0,5135 0,4865
24 137 168 0,8155 0,1845
25 579 1486 0,3896 0,6104
25 106 122 0,8689 0,1311
Povprečje 0,5542 0,4458
Povprečje 0,8727 0,1273
Stdev.S 0,1256 0,1256
Stdev.S 0,0665 0,0665
Tabela 8: Meritev evklidske razdalje vsi in uspešni (ClonAlg, Sphere, prag 0.1)
Primerjava rezultatov algoritmov MAGISTERIJ
60
Kot drugo prikažimo meritev evklidske razdalje uspešnih prehodov za Sphere funkcijo pri
pragu 0.1, kjer levo stran predstavlja meritev algoritma ClonAlg, desno stran pa meritev
algoritma DE:
Zagon št.
pod 0.1
št. uspešnih Eksploatacija Eksploracija
Zagon št.
pod 0.1
št. uspešnih Eksploatacija Eksploracija
1 341 370 0,9216 0,0784
1 7196 7608 0,9458 0,0542
2 194 220 0,8818 0,1182
2 5547 6007 0,9234 0,0766
3 112 124 0,9032 0,0968
3 66 386 0,1710 0,8290
4 2278 2541 0,8965 0,1035
4 130 440 0,2955 0,7045
5 99 120 0,8250 0,1750
5 67 320 0,2094 0,7906
6 157 174 0,9023 0,0977
6 87 373 0,2332 0,7668
7 129 150 0,8600 0,1400
7 65 327 0,1988 0,8012
8 92 102 0,9020 0,0980
8 12942 13196 0,9808 0,0192
9 5022 5059 0,9927 0,0073
9 86 400 0,2150 0,7850
10 104 114 0,9123 0,0877
10 120 413 0,2906 0,7094
11 157 184 0,8533 0,1467
11 73 365 0,2000 0,8000
12 242 296 0,8176 0,1824
12 64 310 0,2065 0,7935
13 213 263 0,8099 0,1901
13 126 417 0,3022 0,6978
14 13928 13970 0,9970 0,0030
14 120 443 0,2709 0,7291
15 139 155 0,8968 0,1032
15 90 383 0,2350 0,7650
16 109 122 0,8934 0,1066
16 109 371 0,2938 0,7062
17 889 1198 0,7421 0,2579
17 80 352 0,2273 0,7727
18 3033 3144 0,9647 0,0353
18 5903 6231 0,9474 0,0526
19 94 124 0,7581 0,2419
19 95 417 0,2278 0,7722
20 206 230 0,8957 0,1043
20 4698 5082 0,9244 0,0756
21 111 129 0,8605 0,1395
21 109 402 0,2711 0,7289
22 226 252 0,8968 0,1032
22 76 361 0,2105 0,7895
23 99 132 0,7500 0,2500
23 160 473 0,3383 0,6617
24 137 168 0,8155 0,1845
24 104 388 0,2680 0,7320
25 106 122 0,8689 0,1311
25 281 664 0,4232 0,5768
Povprečje 0,8727 0,1273
Povprečje
0,3924 0,6076
Stdev.S 0,0665 0,0665
Stdev.S
0,2867 0,2867
Tabela 9: Meritev evklidske razdalje ClonAlg in DE (uspešni, Sphere, prag 0.1)
V tabeli 8 smo za algoritem ClonAlg prikazali razliko pri eksploraciji in eksploataciji med
vsemi in med uspešnimi prehodi. V tabeli 9 smo za uspešne prehode prikazali razliko med
algoritmoma ClonAlg in DE.
Primerjava rezultatov algoritmov MAGISTERIJ
61
Tabela 10 za ClonAlg, pri vseh prehodih, prikazuje razliko med pragoma 0.01 in 0.001.
Zagon št. pod
0.001 št.
vseh Eksploatacija Eksploracija
Zagon št. pod 0.01
št. vseh Eksploatacija Eksploracija
1 32 1191 0,0269 0,9731
1 202 1191 0,1696 0,8304
2 49 938 0,0522 0,9478
2 219 938 0,2335 0,7665
3 26 4163 0,0062 0,9938
3 519 4163 0,1247 0,8753
4 84 8791 0,0096 0,9904
4 1376 8791 0,1565 0,8435
5 36 4222 0,0085 0,9915
5 245 4222 0,0580 0,9420
6 41 2361 0,0174 0,9826
6 272 2361 0,1152 0,8848
7 13 476 0,0273 0,9727
7 113 476 0,2374 0,7626
8 240 11750 0,0204 0,9796
8 6192 11750 0,5270 0,4730
9 1155 12815 0,0901 0,9099
9 5782 12815 0,4512 0,5488
10 18 656 0,0274 0,9726
10 142 656 0,2165 0,7835
11 21 2216 0,0095 0,9905
11 174 2216 0,0785 0,9215
12 15 1118 0,0134 0,9866
12 145 1118 0,1297 0,8703
13 359 32171 0,0112 0,9888
13 9783 32171 0,3041 0,6959
14 3651 35725 0,1022 0,8978
14 18368 35725 0,5141 0,4859
15 56 1005 0,0557 0,9443
15 173 1005 0,1721 0,8279
16 37 610 0,0607 0,9393
16 132 610 0,2164 0,7836
17 73 3432 0,0213 0,9787
17 281 3432 0,0819 0,9181
18 27 8670 0,0031 0,9969
18 1295 8670 0,1494 0,8506
19 6 2632 0,0023 0,9977
19 139 2632 0,0528 0,9472
20 16 1167 0,0137 0,9863
20 191 1167 0,1637 0,8363
21 19 1461 0,0130 0,9870
21 195 1461 0,1335 0,8665
22 18 1552 0,0116 0,9884
22 178 1552 0,1147 0,8853
23 18 2777 0,0065 0,9935
23 312 2777 0,1124 0,8876
24 26 1776 0,0146 0,9854
24 322 1776 0,1813 0,8187
25 9 1486 0,0061 0,9939
25 157 1486 0,1057 0,8943
Povprečje 0,0252 0,9748
Povprečje 0,1920 0,8080
Stdev.S 0,0266 0,0266
Stdev.S 0,1300 0,1300
Tabela 10: Meritev evklidske razdalje za prag 0.001 in 0.01 (ClonAlg, vsi, Sphere)
Iz dobljenih rezultatov pri reševanju problema Sphere, lahko za ClonAlg trdimo, da je pri
merjenju evklidske razdalje med staršem in potomcem, pri pragu 0,001, eksploracija
97,48±2,66% (od 94,82 do 100%), eksploatacija pa 2,52±2,66% (od 0 do 5,18%). Prav
tako lahko trdimo, da je pri pragu 0,01, eksploracija 80,80±13,00% (od 80,80 do 93,80%),
eksploatacija pa 19,20±13,00% (od 6,20 do 19,20%).
Primerjava rezultatov algoritmov MAGISTERIJ
62
Zraven naštetega manjka le še primerjava med evklidsko in Manhattan razdaljo, ki je
prikazana v tabeli 11.
Ko smo merili Manhattan razdaljo med staršem in potomcem, smo prag ujemanja nastavili
na: 0.001, 0.0001 in 0.00001. Vrednosti pod pragom nam predstavljajo eksploatacijo,
vrednosti nad pragom pa eksploracijo.
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
1 13 370 0,0351 0,9649
1 370 370 1,0000 0,0000
2 17 220 0,0773 0,9227
2 217 220 0,9864 0,0136
3 9 124 0,0726 0,9274
3 121 124 0,9758 0,0242
4 24 2541 0,0094 0,9906
4 2526 2541 0,9941 0,0059
5 14 120 0,1167 0,8833
5 115 120 0,9583 0,0417
6 13 174 0,0747 0,9253
6 170 174 0,9770 0,0230
7 10 150 0,0667 0,9333
7 149 150 0,9933 0,0067
8 4 102 0,0392 0,9608
8 102 102 1,0000 0,0000
9 796 5059 0,1573 0,8427
9 5059 5059 1,0000 0,0000
10 2 114 0,0175 0,9825
10 111 114 0,9737 0,0263
11 6 184 0,0326 0,9674
11 181 184 0,9837 0,0163
12 10 296 0,0338 0,9662
12 295 296 0,9966 0,0034
13 10 263 0,0380 0,9620
13 255 263 0,9696 0,0304
14 2295 13970 0,1643 0,8357
14 13968 13970 0,9999 0,0001
15 6 155 0,0387 0,9613
15 153 155 0,9871 0,0129
16 16 122 0,1311 0,8689
16 120 122 0,9836 0,0164
17 26 1198 0,0217 0,9783
17 1186 1198 0,9900 0,0100
18 5 3144 0,0016 0,9984
18 3141 3144 0,9990 0,0010
19 4 124 0,0323 0,9677
19 120 124 0,9677 0,0323
20 12 230 0,0522 0,9478
20 227 230 0,9870 0,0130
21 6 129 0,0465 0,9535
21 123 129 0,9535 0,0465
22 7 252 0,0278 0,9722
22 251 252 0,9960 0,0040
23 6 132 0,0455 0,9545
23 126 132 0,9545 0,0455
24 14 168 0,0833 0,9167
24 161 168 0,9583 0,0417
25 5 122 0,0410 0,9590
25 119 122 0,9754 0,0246
Povprečje 0,0583 0,9417
Povprečje 0,9824 0,0176
Stdev.S 0,0433 0,0433
Stdev.S 0,0153 0,0153
Tabela 11: Meritev evklidske in Manhattan razdalje (ClonAlg, prag 0.001, uspešni, Sphere)
Primerjava rezultatov algoritmov MAGISTERIJ
63
Podobne meritve smo opravili tudi za Griewank funkcijo. V tabeli 12 smo merili evklidsko
razliko za uspešne prehode, kjer smo nastavili prag na 0,001 in prikazali razliko med
algoritmoma ClonAlg in DE.
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
1 6 228 0,0263 0,9737
1 352 734 0,4796 0,5204
2 21 206 0,1019 0,8981
2 1087 1483 0,7330 0,2670
3 3 208 0,0144 0,9856
3 402 788 0,5102 0,4898
4 25 2103 0,0119 0,9881
4 4212 5806 0,7255 0,2745
5 10 440 0,0227 0,9773
5 152 383 0,3969 0,6031
6 1 82 0,0122 0,9878
6 0 377 0,0000 1,0000
7 168 988 0,1700 0,8300
7 535 1346 0,3975 0,6025
8 2 139 0,0144 0,9856
8 297 603 0,4925 0,5075
9 12 338 0,0355 0,9645
9 2983 3725 0,8008 0,1992
10 4 253 0,0158 0,9842
10 741 1243 0,5961 0,4039
11 21 279 0,0753 0,9247
11 2925 3987 0,7336 0,2664
12 10 134 0,0746 0,9254
12 600 1098 0,5464 0,4536
13 0 133 0,0000 1,0000
13 6916 7788 0,8880 0,1120
14 5 92 0,0543 0,9457
14 2405 3073 0,7826 0,2174
15 2 76 0,0263 0,9737
15 3067 4009 0,7650 0,2350
16 6 101 0,0594 0,9406
16 3793 4465 0,8495 0,1505
17 8 116 0,0690 0,9310
17 422 877 0,4812 0,5188
18 7 136 0,0515 0,9485
18 12744 13629 0,9351 0,0649
19 7 154 0,0455 0,9545
19 11042 11809 0,9350 0,0650
20 6 147 0,0408 0,9592
20 6367 7069 0,9007 0,0993
21 5 162 0,0309 0,9691
21 1867 2334 0,7999 0,2001
22 1 115 0,0087 0,9913
22 3279 4295 0,7634 0,2366
23 48 374 0,1283 0,8717
23 627 2139 0,2931 0,7069
24 7 94 0,0745 0,9255
24 12656 13426 0,9426 0,0574
25 2 181 0,0110 0,9890
25 4894 6568 0,7451 0,2549
Povprečje 0,0470 0,9530
Povprečje 0,6597 0,3403
Stdev.S 0,0409 0,0409
Stdev.S 0,2342 0,2342
Tabela 12: Meritev evklidske razdalje ClonAlg in DE (uspešni, Griewank, prag 0.001)
Primerjava rezultatov algoritmov MAGISTERIJ
64
V tabeli 13 smo merili Manhattan razliko za uspešne prehode, kjer smo nastavili prag na
0,001 in prikazali razliko med algoritmoma ClonAlg in DE.
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
Zagon št. pod
0.001 št.
uspešnih Eksploatacija Eksploracija
1 204 228 0,8947 0,1053
1 539 734 0,7343 0,2657
2 205 206 0,9951 0,0049
2 1331 1483 0,8975 0,1025
3 192 208 0,9231 0,0769
3 608 788 0,7716 0,2284
4 2093 2103 0,9952 0,0048
4 5601 5806 0,9647 0,0353
5 419 440 0,9523 0,0477
5 240 383 0,6266 0,3734
6 77 82 0,9390 0,0610
6 175 377 0,4642 0,5358
7 981 988 0,9929 0,0071
7 1122 1346 0,8336 0,1664
8 131 139 0,9424 0,0576
8 420 603 0,6965 0,3035
9 333 338 0,9852 0,0148
9 3545 3725 0,9517 0,0483
10 245 253 0,9684 0,0316
10 1034 1243 0,8319 0,1681
11 272 279 0,9749 0,0251
11 3839 3987 0,9629 0,0371
12 131 134 0,9776 0,0224
12 948 1098 0,8634 0,1366
13 125 133 0,9398 0,0602
13 7588 7788 0,9743 0,0257
14 85 92 0,9239 0,0761
14 2875 3073 0,9356 0,0644
15 75 76 0,9868 0,0132
15 3833 4009 0,9561 0,0439
16 100 101 0,9901 0,0099
16 4297 4465 0,9624 0,0376
17 110 116 0,9483 0,0517
17 726 877 0,8278 0,1722
18 134 136 0,9853 0,0147
18 13413 13629 0,9842 0,0158
19 148 154 0,9610 0,0390
19 11673 11809 0,9885 0,0115
20 141 147 0,9592 0,0408
20 6917 7069 0,9785 0,0215
21 157 162 0,9691 0,0309
21 2173 2334 0,9310 0,0690
22 109 115 0,9478 0,0522
22 4086 4295 0,9513 0,0487
23 363 374 0,9706 0,0294
23 2004 2139 0,9369 0,0631
24 91 94 0,9681 0,0319
24 13259 13426 0,9876 0,0124
25 177 181 0,9779 0,0221
25 6407 6568 0,9755 0,0245
Povprečje 0,9628 0,0372
Povprečje 0,8795 0,1205
Stdev.S 0,0257 0,0257
Stdev.S 0,1322 0,1322
Tabela 13: Meritev Manhattan razdalje ClonAlg in DE (uspešni, Griewank, prag 0.001)
Primerjava rezultatov algoritmov MAGISTERIJ
65
Če upoštevamo, da smo dobili 48 tabel z rezultati ter od teh prikazali le tiste, ki nam
pokažejo različne primerjave in da nas zanimata predvsem povprečje ter standardni
odklon, lahko rezulate vseh tabel prikažemo združene v naslednjih tabelah:
Meritev evklidske razdalje med staršem in potomcem
Eksploatacija Povprečje Stdev.S Eksploracija Povprečje Stdev.S
Sphere-ClonAlg-vsi-0.001 0,0252 0,0266 Sphere-ClonAlg-vsi-0.001 0,9748 0,0266
Griewank-ClonAlg-vsi-0.001 0,0228 0,0232
Griewank-ClonAlg-vsi-0.001 0,9772 0,0232
Sphere-CloanAlg-vsi-0.01 0,1920 0,1300 Sphere-CloanAlg-vsi-0.01 0,8080 0,1300
Griewank-ClonAlg-vsi-0.01 0,1621 0,0690
Griewank-ClonAlg-vsi-0.01 0,8379 0,0690
Sphere-ClonAlg-vsi-0.1 0,8727 0,0665 Sphere-ClonAlg-vsi-0.1 0,1273 0,0665
Griewank-ClonAlg-vsi-0.1 0,5417 0,0835
Griewank-ClonAlg-vsi-0.1 0,4583 0,0835
Sphere-ClonAlg-uspešni-0.001 0,0583 0,0433 Sphere-ClonAlg-uspešni-0.001 0,9417 0,0433
Griewank-ClonAlg-uspešni-0.001 0,0470 0,0409
Griewank-ClonAlg-uspešni-0.001 0,9530 0,0409
Sphere-ClonAlg-uspešni-0.01 0,3624 0,1368 Sphere-ClonAlg-uspešni-0.01 0,6376 0,1368
Griewank-ClonAlg-uspešni-0.01 0,3575 0,1430
Griewank-ClonAlg-uspešni-0.01 0,6425 0,1430
Sphere-ClonAlg-uspešni-0.1 0,8727 0,0665 Sphere-ClonAlg-uspešni-0.1 0,1273 0,0665
Griewank-ClonAlg-uspešni-0.1 0,8855 0,0624
Griewank-ClonAlg-uspešni-0.1 0,1145 0,0624
Eksploatacija Povprečje Stdev.S Eksploracija Povprečje Stdev.S
Sphere-DE-vsi-0.001 0,1928 0,3935 Sphere-DE-vsi-0.001 0,8072 0,3935
Griewank-DE-vsi-0.001 0,8828 0,1861
Griewank-DE-vsi-0.001 0,1172 0,1861
Sphere-DE-vsi-0.01 0,2169 0,3906 Sphere-DE-vsi-0.01 0,7831 0,3906
Griewank-DE-vsi-0.01 0,8570 0,2458
Griewank-DE-vsi-0.01 0,1430 0,2458
Sphere-DE-vsi-0.1 0,3982 0,3056 Sphere-DE-vsi-0.1 0,6018 0,3056
Griewank-DE-vsi-0.1 0,8988 0,1763
Griewank-DE-vsi-0.1 0,1012 0,1763
Sphere-DE-uspešni-0.001 0,1591 0,3281 Sphere-DE-uspešni-0.001 0,8409 0,3281
Griewank-DE-uspešni-0.001 0,6597 0,2342
Griewank-DE-uspešni-0.001 0,3403 0,2342
Sphere-DE-uspešni-0.01 0,2004 0,3504 Sphere-DE-uspešni-0.01 0,7996 0,3504
Griewank-DE-uspešni-0.01 0,7514 0,2187
Griewank-DE-uspešni-0.01 0,2486 0,2187
Sphere-DE-uspešni-0.1 0,3924 0,2867 Sphere-DE-uspešni-0.1 0,6076 0,2867
Griewank-DE-uspešni-0.1 0,8525 0,1646
Griewank-DE-uspešni-0.1 0,1475 0,1646
Tabela 14: Prikaz povprečja in standardnega odklona pri merjenju evklidske razdalje med staršem
in potomcem
Primerjava rezultatov algoritmov MAGISTERIJ
66
Meritev Manhattan razdalje med staršem in potomcem
Eksploatacija Povprečje Stdev.S Eksploracija Povprečje Stdev.S
Sphere-ClonAlg-vsi-0.001 0,7733 0,0313 Sphere-ClonAlg-vsi-0.001 0,2267 0,0313
Griewank-ClonAlg-vsi-0.001 0,7232 0,0408
Griewank-ClonAlg-vsi-0.001 0,2768 0,0408
Sphere-CloanAlg-vsi-0.0001 0,5499 0,1029 Sphere-CloanAlg-vsi-0.0001 0,4501 0,1029
Griewank-ClonAlg-vsi-0.0001 0,4331 0,0748
Griewank-ClonAlg-vsi-0.0001 0,5669 0,0748
Sphere-ClonAlg-vsi-0.00001 0,2469 0,1027 Sphere-ClonAlg-vsi-0.00001 0,7531 0,1027
Griewank-ClonAlg-vsi-0.00001 0,1542 0,0487
Griewank-ClonAlg-vsi-0.00001 0,8458 0,0487
Sphere-ClonAlg-uspešni-0.001 0,9824 0,0153 Sphere-ClonAlg-uspešni-0.001 0,0176 0,0153
Griewank-ClonAlg-uspešni-0.001 0,9628 0,0257
Griewank-ClonAlg-uspešni-0.001 0,0372 0,0257
Sphere-ClonAlg-uspešni-0.0001 0,8106 0,0866 Sphere-ClonAlg-uspešni-0.0001 0,1894 0,0866
Griewank-ClonAlg-uspešni-0.0001 0,6776 0,1108
Griewank-ClonAlg-uspešni-0.0001 0,3224 0,1108
Sphere-ClonAlg-uspešni-0.00001 0,3767 0,1142 Sphere-ClonAlg-uspešni-0.00001 0,6233 0,1142
Griewank-ClonAlg-uspešni-0.00001 0,2336 0,0765
Griewank-ClonAlg-uspešni-0.00001 0,7664 0,0765
Eksploatacija Povprečje Stdev.S Eksploracija Povprečje Stdev.S
Sphere-DE-vsi-0.001 0,5842 0,2130 Sphere-DE-vsi-0.001 0,4158 0,2130
Griewank-DE-vsi-0.001 0,9118 0,1445
Griewank-DE-vsi-0.001 0,0882 0,1445
Sphere-DE-vsi-0.0001 0,3857 0,3117 Sphere-DE-vsi-0.0001 0,6143 0,3117
Griewank-DE-vsi-0.0001 0,8972 0,1788
Griewank-DE-vsi-0.0001 0,1028 0,1788
Sphere-DE-vsi-0.00001 0,2318 0,3820 Sphere-DE-vsi-0.00001 0,7682 0,3820
Griewank-DE-vsi-0.00001 0,8888 0,1856
Griewank-DE-vsi-0.00001 0,1112 0,1856
Sphere-DE-uspešni-0.001 0,5827 0,2008 Sphere-DE-uspešni-0.001 0,4173 0,2008
Griewank-DE-uspešni-0.001 0,8795 0,1322
Griewank-DE-uspešni-0.001 0,1205 0,1322
Sphere-DE-uspešni-0.0001 0,3791 0,2900 Sphere-DE-uspešni-0.0001 0,6209 0,2900
Griewank-DE-uspešni-0.0001 0,8191 0,1856
Griewank-DE-uspešni-0.0001 0,1809 0,1856
Sphere-DE-uspešni-0.00001 0,2120 0,3431 Sphere-DE-uspešni-0.00001 0,7880 0,3431
Griewank-DE-uspešni-0.00001 0,7351 0,2238
Griewank-DE-uspešni-0.00001 0,2649 0,2238
Tabela 15: Prikaz povprečja in standardnega odklona pri merjenju Manhattan razdalje med
staršem in potomcem
Primerjava rezultatov algoritmov MAGISTERIJ
67
8.4 Diskusija
Tabeli 3 in 4, kakor tudi slika 6 in 7, predstavljajo razvrstitev po točkah, ki jo algoritmi
dosežejo v tekmi po CRS4EAs. Slika 8 prikazuje občutno razliko med algoritmi, ki so v
tekmi sodelovali.
Tabele 5, 6 in 7 predstavljajo, koliko korakov posamezni algoritem potrebuje, da najde
rešitev, kadar začetne točke postavimo na rob oz. v bližino rešitve.
Podobnosti in razlike med eksploracijo ter eksploatacijo, med algoritmoma ClonAlg in
DE, so prikazane v tabelah: 8, 9, 10, 11, 12, 13, 14 in 15. Algoritma imata različen način
definiranja in spreminjanja populacije. Pri ClonAlg se vsak starš klonira v več potomcev.
Pri DE je prehod iz starša v otroka skrit v:
for (int j=0;j<taskProblem.getDimensions(); j++) //in wiki j is i
if ((Util.rnd.nextDouble()<CR) || (j==R))
y[j] = taskProblem.feasible(pop.get(a).getX()[j] + F*(pop.get(b).getX()[j]-
pop.get(c).getX()[j]),j);
else y[j] = pop.get(i).getX()[j];
kjer si "pop.get(a)" lahko predstavljamo kot enega od staršev, y pa potomca.
Zaključek MAGISTERIJ
68
9 ZAKLJUČEK
Magisterska naloga predstavlja nove algoritme, algoritme na osnovi umetnega
imunskega sistema in njihovo primerjavo z obstoječimi modernimi metahevrističnimi
algoritmi. Skozi poglavja smo predstavili biološke osnove, teorijo algoritmov umetnega
imunskega sistema, povzeli zgodovino raziskav in uporabo algoritma v aplikacijah.
Opisali smo tudi nekaj drugih algoritmov, s katerimi smo AIS algoritme primerjali. V
sedmem poglavju pa opisali eksploracijo (preiskovanje) in eksploatacijo (izkoriščanje) ter
samo implementacijo AIS algoritmov. Na začetku osmega poglavja smo opisali še NHST
in CRS4EAs, izvedli tekmo med algoritmi, izdelali preliminarno analizo glede začetne
populacije in dva izmed algoritmov primerjali glede na njune lastnosti preiskovanja
prostora in izkoriščanja okolice.
9.1 Cilji
Cilje naloge smo zastavili v samem uvodu. Uspelo nam je raziskati in implementirati
na umetnem imunskem sistemu zgrajene algoritme. Njihovo uspešnost, kakor tudi
eksploracijske in eksploatacijske lastnosti smo preverjali v osmem poglavju.
9.2 Spoznanja in razprave
V okviru naloge smo spoznali različne algoritme, kot so: BCA, ClonAlg, NSA, aiNet,
PSO, DE, ABC, TLBO in druge. Nekatere od teh algoritmov smo implementirali, nekateri
pa so se nahajali znotraj okolja EARS. Spoznali smo NHST, CRS4EAs, eksploracijo in
eksploatacijo,
Ker so AIS algoritmi v primerjavi z drugimi metahevrističnimi algoritmi še dokaj
neraziskani, si želimo v prihodosti še bolj raziskati, kaj so njihove prednosti in slabosti.
Dodatno nas zanima tudi kako na rezultate vpliva velikost populacije, verjetnost mutacije,
število generacij, vpliv novih protiteles (verjetnost povezave novih protiteles v mrežo),
uničenje nestimuliranih protiteles (verjetnost izbrisa iz mreže) in reprodukcija stimuliranih
protiteles (verjetnost kloniranja protiteles iz mreže).
Literatura MAGISTERIJ
69
10 LITERATURA
[1] Matej Črepinšek, EARS, 2016. Dostopno na:
https://github.com/matejxxx/EARS/tree/master/ECProblems/src/org/um/feri/ears/algorith
ms [27.3.2016]
[2] How Your Immune System Works, 2016. Dostopno na: http://health.howstuffworks.com/human-body/systems/immune/immune-system.htm [27.3.2016]
[3] Wikipedija: "Artificial bee colony algorithm", 2016. Dostopno na: https://en.wikipedia.org/wiki/Artificial_bee_colony_algorithm [27.3.2016]
[4] Wikipedija: "Differential evolution", 2016. Dostopno na: https://en.wikipedia.org/wiki/Differential_evolution [27.3.2016]
[5] Wikipedija: "Imunski sistem" , 2016. Dostopno na: http://sl.wikipedia.org/wiki/Imunski_sistem [27.3.2016]
[6] Wikipedija: "Particle swarm optimization", 2016. Dostopno na: https://en.wikipedia.org/wiki/Particle_swarm_optimization [27.3.2016]
[7] Bersini, H., Varela, F. J., "Learning and the Immune network: Reinforcement, recruitment and their applications.", Biologically inspired computation, (1994), strani 166–192
[8] Burnet, F.M., "The Clonal Selection Theory of Acquired Immunity", Vanderbilt University Press, Nashville, 1959.
[9] Castro, L.N. de, Zuben, F.J. von, "aiNet: An artificial immune network for data analysis", Data Mining: A Heuristic Approach, Idea Group Publishing, (2001), strani 231–259
[10] Castro, L.N. de, Timmis, J., "Artificial Immune Systems: A New Computational Intelligence Approach", Springer, 2002
[11] Castro, Leandro N. de, Timmis, Jon, "An Artificial Immune Network for Multimodal Function Optimisation", Proceedings of the IEEE Congress on Evolutionary Computation, 2002
[12] Castro, L.N. de, Zuben, F.J. Von, "Artificial Immune Systems: Part II – A Survey of Applications." Technical Report DCA-RT 02/00, 2000
[13] Castro, L.N. de, Zuben, F.J. Von, "Learning and optimization using the clonal selection principle", IEEE Transactions on Evolutionary Computation 6, (2002), strani 239–251.
[14] Cisar, Petar, Cisar, Sanja Maravic, Markoski, Branko, "Implementation of Immunological Algorithms in Solving Optimization Problems", Acta Polytechnica Hungarica, 01/2014, strani 225-239
[15] Clark, E., Hone, A., Timmis, J., "A Markov chain model of the B-cell algorithm", Proceedings of the 4th International Conference on Artificial Immune Systems, vol. 3627, Springer, 2005, strani 318–330.
[16] Coello Coello, C.A., Cruz Cortes, N., "An approach to solve multiobjective optimization problems based on an artificial immune system", ICARIS, (2002), strani 212–221
Literatura MAGISTERIJ
70
[17] Cooke, D., Hunt, J., "Recognising promoter sequences using an artificial immune system", Proc Int Conf Intell Syst Mol Biol 3, (1995), strani 89–97
[18] Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C., "Introduction to Algorithms", MIT Press., 2002
[19] Cruz Cortes, N., Coello Coello, C., "Multiobjective optimisation using ideas from the clonal selection principle", GECCO, vol. 1, (2003), strani 158–170.
[20] Cutello, V., Nicosia, G., Oliveto, P., Romeo, M., "On the convergence of immune algorithms", in: Proc.of Foundations of Computational Intelligence, 2007, strani 409–416.
[21] Črepinšek, Matej, Liu, Shih-Hsi, Mernik, Luka, "A note on teaching–learning-based optimization algorithm", Information Sciences, vol. 212, (2012), strani 79–93
[22] Črepinšek, Matej, Liu, Shih-Hsi, Mernik, Marjan, "Exploration and exploitation in evolutionary algorithms: A survey", Volume 45, Issue 3, Article No. 35, 2013
[23] Dasgupta, Dipankar, "Immunity based intrusion detection systems: A general framework.", Proceedings of the 22nd National Information Systems Security Conference (NISSC), (1999), strani 147–159
[24] Dasgupta, Dipankar, Yua, Senhua, Nino, Fernando, "Recent Advances in Artificial Immune Systems: Models and Applications" Applied Soft Computing 11, (2011), strani 1574–1587
[25] Edwards, Jonathan C. W., Cambridge, Geraldine, "B-cell targeting in rheumatoid arthritis and other autoimmune diseases", Nature Reviews Immunology 6, (2006), strani 394–403
[26] Farmer, J.D., Packard, N.H., Perelson, A.S., "The immune system, adaptation, and machine learning", Physica D 22, (1986), strani 187–204.
[27] Forrest, S., Perelson, A.S., Allen, L., Cherukuri, R., "Self-nonself discrimination in a computer", in: IEEE Symposium on Research in Security and Privacy, IEEE Computer Society Press, Los Alamos, CA, 1994, strani 202–212
[28] Fuentes, J. C., Coello, C. A., "Handling Constraints in Particle Swarm Optimization Using a Small Population Size," Lecture Notes in Computer Science, MICAI 2007: Advances in Artificial Intelligence, vol. 4827, Springer, 2007
[29] Goodman, D.E., Boggess, L., Watkin, A., "An Investigation into the Source of Power for AIRS, an Artificial Immune Classification System", In Proceedings of the International Joint Conference on Neural Networks (IJCNN), 2003
[30] Greensmith, Julie, Aickelin, Uwe, Tedesco, Gianni, "Information Fusion for Anomaly Detection with the Dendritic Cell Algorithm", Elsevier, 2007
[31] Hart, E., Ross, P., "Exploiting the analogy between immunology and spares distributed memories: A system for clustering non-stationary data", 1st International Conference on Artificial Immune Systems, Canterbury, UK, (2002), strani 49–58
[32] Herrera-Lozada, Carlos J., Calvo, H., Taud, H, »A Micro Artificial Immune System«, Polibits 43, (2011), strani 107–111.
[33] Hightower, R., Forrest, S., Perelson, A. S. "The evolution of emergent organization in immune system gene libraries", Proceedings of the Sixth International Conference on Genetic Algorithms, Morgan Kaufmann, San Francisco, CA, (1995), strani 344–350
[34] Hofmeister, T., Schöning, U., Schuler, R., Watanabe, O., "A probabilistic 3-SAT algorithm further improved", Computer Science, vol. 2285, (2002), strani 192–202.
Literatura MAGISTERIJ
71
[35] Hsu, Li-Fu, Hsu, Chiun-Chieh, Lin, Tsai-Duan, "An Intelligent Artificial System: Artificial Immune based Hybrid Genetic Algorithm for the Vehicle Routing Problem", APPLIED MATHEMATICS & INFORMATION SCIENCES 8(3), MAY 2014, strani 1191–1200
[36] Hunt, John E., Cooke, Denise E., "Learning using an artificial immune system", Journal of Network and Computer Applications, Volume 19, Issue 2, (1996), strani 189–212
[37] Hunt, J., Timmis, J., Cooke, D., Neal, M., King, C., "JISYS: Development of an artificial immune system for real-world applications", Artificial Immune Systems and their Applications, Springer, 1998, strani 157–186
[38] Ishida, Y. "Fully Distributed Diagnosis by PDP LEarning Algorithm: Towards Immune Network PDP Model", Int. Joint Conf. On Neural Networks, strani 777–782
[39] Jerne, N.K., "Towards a network theory of the immune system", Annals of Immunology (Paris) 125C, (1974), strani 373–389
[40] Kadia, Tapan, "Chronic Lymphocytic Leukemia: New Insights Lead to More Refined, Individualized Treatment", The Molecular Oncology Report, Vol 1, Number 2, 2007
[41] Kephart, J. O., "A biologically inspired immune system for computers", Proceedings of Artificial Life IV: The Fourth International Workshop on the Synthesis and Simulation of Living Systems. MIT Press, (1994), strani 130–139.
[42] Kelsey, J., Timmis, J., "Immune inspired somatic contiguous hypermutation for function optimisation", Computer Science, vol. 2723, (2003), strani 207–218.
[43] Krishnakumar, K., “Micro-genetic algorithms for stationary and nonstationary function optimization” in SPIE Proceedings: Intelligent Control and Adaptive systems, (1989), strani 289-296.
[44] Kuo, R. J., Chen, S. S., Cheng, W. C., "Integration of artificial immune network and K-means for cluster analysis", Knowledge and Information Systems, September 2014, Volume 40, Issue 3, strani 541–557
[45] Lanaridis, Aris, Stafylopatis, Andreas, "An artificial immune network for multiobjective optimization problems", Artificial Neural Networks – ICANN 2010, Volume 6353 of the series Lecture Notes in Computer Science, strani 531–536
[46] Ligeiro, Rui, "Monitoring applications: An immune inspired algorithm for software-fault detection", Applied Soft Computing Volume 24, November 2014, strani 1095–1104
[47] Liu, Ruochen, Ma, Chenlin, He, Fei, "Reference direction based immune clone algorithm for many-objective optimization", Frontiers of Computer Science, August 2014, Volume 8, Issue 4, strani 642–655
[48] Liu, Shih-Hsi, Mernik, Marjan, Hrnčič, Dejan, Črepinšek, Matej, "A parameter control method of evolutionary algorithms using exploration and exploitation measures with a practical application for fitting Sovova’s mass transfer model", Applied Soft Computing 13, (2013), strani 3792–3805.
[49] Mendoza, J., Morales, D., López, R., Vannier, J., Coello, C. A., "Multiobjective Location of Automatic Voltage Regulators in a Radial Distribution Network Using a Micro Genetic Algorithm," IEEE Transactions on Power Systems, vol. 22, issue 1, (2007), strani 404–412
[50] Ming, Y., Cheng, L., "Application of Micro Genetic Algorithm to Optimization of Time-Domain Ultra-Wide Band Antenna Array,” in Microwave and Millimeter Wave Technology, 2007, ICMMT '07, International Conference, (2007), strani 1–4
Literatura MAGISTERIJ
72
[51] Neal, M., "An artificial immune system for continuius analysis of time-varying data", 1st International Conference on Artificial Immune Systems, Canterbury, UK, (2002), strani 76–85
[52] Nicosia, G., "Immune algorithms for optimisation and protein structure prediction", Ph.D. Thesis, Department of Mathematics and Computer Science, University of Catania, Italy, 2004
[53] Nix, A. E., Vose, M. D., "Modeling genetic algorithms with markov chains", Annals of Mathematics and Artificial Intelligence 5, (1992), strani 79–88
[54] Percus, J.K., Percus, O.E., Perelson, A.S., "Predicting the size of the T-cell receptor and antibody combining region from consideration of efficient self-nonself discrimination", Proceedings of National Academy of Sciences USA 90 (1993), strani 1691–1695
[55] Perelson, A.S., Oster, G.F., "Theoretical studies of clonal selection: Minimal antibody repertoire size and reliability of self-nonself discrimination", 81 (1979), strani 645–670
[56] Qiu, Xueni, Lau, Henry Y. K., "An AIS-based hybrid algorithm for static job shop scheduling problem", Journal of Intelligent Manufacturing, June 2014, Volume 25, Issue 3, strani 489–503
[57] Rao, R. Venkata, Patel, Vivek, "An improved teaching-learning-based optimization algorithm for solving unconstrained optimization problems", Scientia Iranica, vol. 20, (2013), strani 710–720
[58] Rudolph, G., "Finite markov chain results in evolutionary computation: A tour d’horizon", Fundamenta Informaticae 35 (1–4), (1998), strani 67–89
[59] Segal, L.A., Perelson, A.S., "Computations in shape–space: A new approach to immune network theory", Theoretical Immunology, Part Two, 1988.
[60] Seresht, Neda Afzali, Azmi, Reza, "MAIS-IDS: A distributed intrusion detection system using multi-agent AIS approach", Engineering Applications of Artificial Intelligence, Volume 35, October 2014, strani 286–298
[61] Shang, Ronghua, Jiao, Licheng, Ren, Yujing, "Immune clonal coevolutionary algorithm for dynamic multiobjective optimization", Natural Computing, September 2014, Volume 13, Issue 3, strani 421–445
[62] Somayaji, A., Hofmeyr, S., Forrest, S., "Principles of a Computer Immune System.", New Security Paradigms Workshop, 1997
[63] Timmis, Jon, "Artificial Immune Systems: A novel data analysis technique inspired by the immune network theory", PhD thesis, Department of Computer Science, University of Wales, Aberystwyth. Ceredigion. Wales., 2000
[64] Timmis, J., Honec, A., Stibord, T., Clark, E., "Theoretical advances in artificial immune systems" Theoretical Computer Science 403, (2008), strani 11–32
[65] Timmis, Jon, Edmonds, C., Kelsey, Johnny, "Assessing the Performance of Two Immune Inspired Algorithms and a Hybrid Genetic Algorithm for Function Optimisation", Proceedings of the Congress on Evolutionary Computation (CEC04), (2004), strani 1044–1051.
[66] Toscano, G., Coello, Carlos. A., "A Micro-Genetic Algorithm for multiobjective optimization," in First International Conference on Evolutionary Multi-criterion Optimization, Lecture Notes in Computer Science, vol. 1993, Springer, (2001), strani 126–140.
Literatura MAGISTERIJ
73
[67] Varela, F., Coutinho, A., Dupire, B., Vaz, N., "Cognitive networks: Immune, neural, and otherwise", Theoretical Immunology, Part II, (1988), strani 359–375
[68] Veček, Niki, Mernik, Marjan, Črepinšek, Matej, "A chess rating system for evolutionary algorithms: A new method for the comparison and ranking of evolutionary algorithms", Information Sciences 277, (2014), strani 656–679
[69] Wang, Jinglian, Gong, Bin, Liu, Hong, "Heterogeneous computing and grid scheduling with parallel biologically inspired hybrid heuristics", Transactions of the Institute of Measurement & Control, Aug2014, Vol. 36, Issue 6
[70] Watkins, A., "Exploiting immunological metaphors in the development of serial, parallel and distributed learning algorithms", Ph.D. Thesis, University of Kent, Computing Laboratory, 2005
[71] Watkins, A., Timmis, J., Boggess, L., "Artificial Immune Recognition System (AIRS): An Immune Inspired Supervised Machine Learning Algorithm", Genetic Programming and Evolvable Machines, (2004), strani 291–318
[72] Wierzchon, S., Kuzelewska, U., "Stable clusters formation in an artificial immune system", 1st International Conference on Artificial Immune Systems, Canterbury, UK, (2002), strani 68–75
[73] Zhang, Ren-Long, Shan, Mi-Yuan; Liu, Xiao-Hong; "A novel fuzzy hybrid quantum artificial immune clustering algorithm based on cloud model", Engineering Applications of Artificial Intelligence Volume 35, October 2014, strani 1–13
[74] Zhang, Weiwei, Yen, Gary G., He, Zhongshi, "Constrained Optimization via Artificial Immune System", IEEE Transactions on Cybernetics, Volume 44, Issue 2, Feb 2014, strani 185–198
[75] Zheng, Chenyu, Sicker, Douglas C., "A Survey on Biologically Inspired Algorithms for Computer Networking", IEEE Communications Surveys & Tutorials, Volume 15, Issue 3, July 2013, strani 1160–1191
Življenjepis MAGISTERIJ
74
Življenjepis:
Ime in priimek: Andrej Barovič Karpov
Rojen: 27. septembra 1974
Osnovna šola: OŠ Bojana Ilicha, Maribor
Srednja šola: II. gimnazija Maribor
Fakulteta: FERI Maribor, program: elektrotehnika, smer: UNI elektronika
Podiplomski študij: FERI Maribor, program: računalništvo in informatika
Izjava MAGISTERIJ
75
IZJAVA:
Podpisani Andrej Barovič Karpov izjavljam, da sem magisterij izdelal sam. Zavedam se
tudi morebitnih posledic v primeru kršitve izjave.
—————————