View
216
Download
0
Category
Preview:
Citation preview
1
Prirodom inspirirani optimizacijski algoritmi
Mr.sc. Marko ČupićZagreb, lipanj 2009.
FERUmjetna inteligencija
2
Uvod
• Izranjajuća inteligencija• Optimizacijski problemi• Genetski algoritam• Algoritam kolonije mrava• Algoritam roja čestica• Algoritmi umjetnog imunološkog
sustava
3
Izranjajuća inteligencija
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
4
Uvod: Evolucija
5
Uvod: Evolucija
6
Uvod: Jato ptica
7
Uvod: Rojenje pčela
8
Uvod: Mravlje kolonije
• Površina 50 m2, dubina 8 metara
9
Uvod: Mravlje kolonije
• Mravinjak, put…
10
Uvod: Mravlje kolonije
11
Uvod: Mravlje kolonije
12
Uvod: Jato riba
13
Uvod: zaključci
Dumb parts, properly connected
into a swarm, yield smartresults.
Kevin KellyNew Rules for the New Economy
Sep 1997
14
Uvod: zaključci
The whole is greaterthan
the sum of the parts.
15
Optimizacijski problemi
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
16
Optimizacijski problemi
• Optimizacija: postupak pronalaženja najboljeg rješenja problema, rješenja s najmanjom cijenom
• Tipično:– Kontinuirano područje– Kombinatorički problemi
17
Optimizacijski problemi
• Pretraživanje prostora stanja:– Nađi put od S0 do SF
– Rješenje je put (npr. slagalica 3x3!)• CSP: Constraint Satisfaction Problem
– Vrsta pretraživanja prostora stanja kod kojeg put od početnog do konačnog stanja nije bitan
– Rješenje je isključivo konačno stanje
18
Optimizacijski problemi
• CSP: Constraint Satisfaction Problem– Definira se niz ograničenja koja moraju biti
zadovoljena– Definira se kriterijska funkcija koja se
optimira
19
Optimizacijski problemi
• Način rješavanja kombinatoričkihproblema već smo upoznali– Algoritmi pretraživanja prostora stanja
• Pretraživanje u širinu• Pretraživanje u dubinu• A*• …
• Nažalost, u praksi često neiskoristivi
20
Optimizacijski problemi
• Problem trgovačkog putnika– Poznate koordinate n gradova na karti– Pronaći najkraću turu kroz sve gradove– Matematičkim žargonom: pronaći
Hamiltonov ciklus u grafu– NP težak problem
(faktorijelna složenost)
21
Optimizacijski problemi
• Problem trgovačkog putnika
22
Optimizacijski problemi
• Problem trgovačkog putnika– 12 gradova, 12 sekundi– 13 gradova, 2,5 minute– 14 gradova, pola sata– 15 gradova, 7,6 sati– 16 gradova, 4,7 dana– …– 500 gradova, ????
23
Optimizacijski problemi
• Drugi problemi– Raspoređivanje neraspoređenih
studenata u grupe za predavanja– Izrada rasporeda međuispita– Izrada rasporeda laboratorijskih vježbi
• Iscrpnom pretragom– Puno, puno više vremena no što je svemir
star!
24
Optimizacijski problemi
• Heuristike– Algoritmi koji pronalaze dovoljno dobra
rješenja, tipično ne nude garanciju optimalnosti, te imaju nisku računsku složenost (polinomijalnu)
– Dijelimo ih na• Konstrukcijske• Algoritmi lokalne pretrage
25
Optimizacijski problemi
• Heuristike– Konstrukcijske
• Grade rješenje segment po segment– Algoritmi lokalne pretrage
• Kreću od nekog početnog rješenja i pokušavaju ga inkrementalno poboljšavati
26
Optimizacijski problemi
• Metaheuristike– Skup algoritamskih koncepata koji
koristimo za definiranje heurističkih metoda primjenjivih na širok skup problema
– heuristika koja vodi problemski specifične heuristike
27
Optimizacijski problemi
• Metaheuristike– Simulirano kaljenje– Tabu pretraživanje– Evolucijski algoritmi– Mravlji algoritmi– Algoritmi rojeva– Algoritmi umjetnih imunoloških sustava– …
28
Genetski algoritam
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
29
Genetski algoritam
• Evolucija kao inspiracija
• Populacijski algoritmi• Darwinova teorija o
postanku vrsta
30
Genetski algoritam
• Temeljne postavke: Darwin– plodnost vrsta – potomaka uvijek ima više
no što je potrebno– veličina populacije je približno stalna– količina hrane je ograničena– kod vrsta koje se seksualno razmnožavaju,
nema identičnih jedinki već postojevarijacije, te
– najveći dio varijacija prenosi se nasljeđem
31
Genetski algoritam
• Primjer problema– Naći x za koji je f(x) minimalna
)2cos(1010)( 2 xxxf ⋅⋅⋅−+= π
32
Genetski algoritam
• Kako radi GA?– Radimo s populacijom kromosoma– Svaki kromosom je jedno rješenje
problema– Svako rješenje ima svoju dobrotu
(engl. fitness)– U našem primjeru dobrota i f(x) su suprotni
veći f(x), manja dobrota
33
Genetski algoritam
• Implementacija– Iterativno iz trenutne generacije stvaramo
sljedeću– Potomke imaju veću šansu stvoriti bolja
rješenja– Rješenja se kombiniraju operatorom
križanja– Operator mutacije
34
Genetski algoritam
• Dijagram toka
Nova populacija Mutacija Križanje
Evaluacija Provjera uvjeta Selekcija
Kraj
Stvaranje slučajne
populacije
35
Genetski algoritam
• Uloga– Selekcija selekcijski pritisak brzina
konvergencije– Križanje pretraživanje okoline roditelja– Mutacija bijeg iz lokalnih ekstrema,
veliki skokovi u prostoru pretraživanja
36
Genetski algoritam
• Binarni kromosom– Niz nula i jedinica koji se interpretira kao
rješenje problema (vrijednost varijable)– Npr. Trobitni kromosom: 000, 001, …, 111– Ako predstavlja realnu varijablu iz
područja [-2, 2], tada: 000≡-2, 001≡-1.43, …, 111≡2
– Broj bitova za određenu preciznost?
37
Genetski algoritam
• Binarni kromosom– Složeniji primjer
• rješenje za funkciju od tri varijable x, y, z
38
Genetski algoritam
• Križanje s jednom točkom prijeloma– Odabiru se dva roditelja– Slučajno se odabire točka prijeloma– Obavlja se križanje
39
Genetski algoritam
• Više vrsta križanja– Križanje s jednom točkom prijeloma– Križanje s n točaka prijeloma– Uniformno križanje– …
40
Genetski algoritam
• Operator mutacije– Zadana vjerojatnost mutacije bita– Operator okreće vrijednost bita
– Može generirati veliku promjenu!
41
Genetski algoritam
• Izbor roditelja – više tehnika– Proporcionalna selekcija
(engl. Roulette-wheel selection)– Što je jedinka bolja, to ima veću šansu biti
izabrana
∑=
= n
jjfit
ifitiprobSel
1)(
)()(
42
Genetski algoritam
• Izbor roditelja – proporcionalna selekcija
∑=
= n
jjfit
ifitilen
1)(
)()(
43
Genetski algoritamP = stvori_početnu_populaciju(VEL_POP)evaluiraj(P)ponavljaj_dok_nije_kraj
nova_populacija P' = ∅ponavljaj_dok_je veličina(P')<VEL_POPodaberi R1 i R2 iz P{D1, D2} = krizaj(R1, R2)mutiraj D1, mutiraj D2dodaj D1 i D2 u P'
krajP = P'evaluiraj(P)
Kraj
44
Genetski algoritam
45
Algoritam kolonije mrava
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
46
Algoritam kolonije mrava
• Mravi iskazuju zanimljivo ponašanje– Uspješno pronalaze
najkraći put do izvora hrane
47
Algoritam kolonije mrava
• Eksperimenti
48
Algoritam kolonije mrava
• Objašnjenje– Mravi prilikom kretanja za sobom
ostavljaju feromonski trag– Mrav se kreće slučajno, ali s većom
vjerojatnošću u smjeru u kojem osjeti jači feromonski trag
49
Algoritam kolonije mrava
• Direktna primjena na probleme prikazive grafovima
• Npr. Iz 1 može u 2, 3 i 4
1
2
83
4 7
11
9
6
5
10
Mravinjak
Izvor hrane⎪⎪⎩
⎪⎪⎨
⎧
∉
∈= ∑
∈ki
ki
Nlil
ij
kij
Nj
Njp
ki
ako,0
ako,α
α
ττ
konst=0τ
50
Algoritam kolonije mrava
• Algoritam Ant System– Uporaba heurističke informacije dodatno
poboljšava ponašanje
nnCm
=0τ
( )⎪⎪⎩
⎪⎪⎨
⎧
∉
∈⋅
⋅
= ∑∈
ki
ki
Nlilil
ijij
kij
Nj
Njp
ki
ako,0
ako,βα
βα
ητητ
1
2
83
4 7
11
9
6
5
10
Mravinjak
Izvor hrane
51
Algoritam kolonije mrava
• Algoritam Ant Systemponavljaj dok nije kraj
ponovi za svakog mravcastvori rješenjevrednuj rješenje
kraj ponoviispari feromonske tragoveponovi za sve_ili_neke mraveazuriraj feromonske tragove
kraj ponovikraj ponavljanja
52
Algoritam kolonije mrava
• Procedura: Stvori rješenje– Mrav kreće iz nekog čvora– Temeljem vjerojatnosti bira sljedeći čvor,
pa sljedeći, sve dok ne dođe do zadnjeg čvora
12
3,4
3,4
=
=
ητ 9.1
1.1
6,4
6,4
=
=
ητ
32.1
7,4
7,4
=
=
ητ
Uz α=1, β=2:
p(4 3)=11,9%
p(4 6)=23,7%
p(4 7)=64,4%
53
Algoritam kolonije mrava
• Procedura: Vrednuj rješenje– Funkcija računa ukupnu duljinu puta– Prelazak iz jednog čvora u drugi tipično je
povezan određenom cijenom (gradovi udaljenost)
54
Algoritam kolonije mrava
• Procedura: Ispari tragove– Funkcija feromonske tragove na svim
bridovima umanji za određeni iznos
– Geometrijska progresija!– Izuzetno skupo (graf ima puno bridova)
)1( ρττ −⋅← ijij
55
Algoritam kolonije mrava
• Procedura: Ažuriraj tragove– Funkcija za odabranog mrava dodaje
nove feromonske tragove iznosa:
– Novo stanje je tada:
∑=
Δ+←m
k
kijijij
1τττ
⎩⎨⎧
=Δinačn,0
mrava tog- stazi na - brid je ako,/1 kjiCkkijτ
56
Algoritam kolonije mrava
57
Algoritam roja čestica
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
58
Algoritam roja čestica
• Inspirirani jatima ptica: modeliranje socijalnih interakcija jedinki– Svaka jedinka ima svoje
stavove– Svaka jedinka ima
informaciju iz svoje okoline– Kombiniranje informacija
59
Algoritam roja čestica
• Svaka čestica:– Ima svoju trenutnu poziciju i brzinu– Pamti svoje najbolje pronađeno rješenje
(pbest)– Ima pristup najboljem pronađenom
rješenju okoline (gbest ili lbest)• Čestice lete kroz prostor i obavljaju
pretraživanje
60
Algoritam roja čestica
• Ažuriranje:
C1 – faktor individualnostiC2 – socijalna komponenta
Uobičajeno C1=C2=2
)(())(() 2,1,, xgbestrandcxpbestrandcvv ddididi −⋅⋅+−⋅⋅+=
dididi vxx ,,, +=)(2 xgbestc r
−⋅
)(1 xpbestc r−⋅
arbr
cr
61
Algoritam roja čestica// inicijaliziraj_populaciju:za i = 1 do VEL_POP
za d iz 1 do DIMx[i][d] = random(xmin[d], xmax[d])v[i][d] = random(vmin[d], vmax[d])
krajkrajponavljaj dok nije kraj
Na sljedećem slide-u
kraj
62
Algoritam roja čestica// evaluiraj_populaciju:za i = 1 do VEL_POP
f[i] = funkcija(x[i]);kraj// ima li čestica svoje bolje rješenje?za i = 1 do VEL_POP
ako je f[i] bolji od pbest_f[i] tadapbest_f[i] = f[i]pbest[i] = x[i]
krajkraj// ima li čestica globano najbolje rješenje?za i = 1 do VEL_POP
ako je f[i] bolji od gbest_f[i] tadagbest_f[i] = f[i]gbest[i] = x[i]
krajkraj// ažuriraj brzinu i poziciju česticeza i = 1 do VEL_POP
za d iz 1 do DIMv[i][d] = v[i][d] + c1*rand()*(pbest[i][d]-x[i][d])
+ c2*rand()*(gbest[d]-x[i][d])v[i][d] = iz_opsega(v[i][d], vmin[d], vmax[d])x[i][d] = x[i][d] + v[i][d]
krajkraj
63
Algoritam roja čestica
64
Algoritmi umjetnog imunološkog sustava
•Izranjajuća inteligencija•Optimizacijski problemi•Genetski algoritam•Algoritam kolonije mrava•Algoritam roja čestica•Algoritmi umjetnog imunološkog sustava
65
Imunološki algoritmi
• Inspirirani imunološkim sustavom sisavaca– Imunološki sustav ima
sposobnost prilagodbe i sposobnost učenja
66
Imunološki algoritmi
• Makrofag – bijela krvna zrnca koja traže uljeze (antigene) i uništavaju ih
• Sudjeluju u stvaranju antitijela specifičnih za pojedine antigene
• Antitijela se vežu s antigenima i omogućavaju T stanicama uništavanje uljeza
67
Imunološki algoritmi
• Prilikom nailaska na antigen kojem s kojim je antitijelo koliko-toliko kompatibilno (mjera kompatibilnosti zove se afinitet), antitijelo započinje postupak stvaranja klonova kako bi nastalo dovoljno antitijela za suzbijanje antigena
68
Imunološki algoritmi
• Intenzitet kloniranja direktno je proporcionalan afinitetu– Što je afinitet veći, antitijelo će stvoriti više
svojih klonova
69
Imunološki algoritmi
• Prilikom postupka kloniranja, klonovidoživljavaju potpuno slučajne mutacije
• Dio klonova bit će manjeg afiniteta, no dio će biti većeg afiniteta
• Klonovi većeg afiniteta i sami će se klonirati (i to još većim intenzitetom)
70
Imunološki algoritmi
• S vremenom će nastati antitijela vrlo visokog afiniteta koja će se efikasno boriti s antigenima
• Dio specijaliziranih antitijela ostaje permanentno u tijelu– Sekundarni odgovor imunološkog sustava
izuzetno efikasan– Stjecanje imunosti!
71
Imunološki algoritmi
• Klonovi vrlo niskog afiniteta koji se nisu specijalizirali niti za jedan antigen s vremenom će biti prekrojeni!
• Proučavanja imunološkog sustava dovela su do spoznaje da evolucija (križanjem dvaju roditelja) nije jedini način razvoja!
72
Imunološki algoritmi
• Primjenjeno na problem optimizacije– Antitijelo je rješenje problema; algoritam
radi s populacijom antitijela– Antigen je funkcija koja se optimira – traži
se prikladno antitijelo maksimalnog afiniteta
– Afinitet je ekvivalent dobroti rješenja, i najčešće predstavlja upravo vrijednost funkcije u promatranoj točki (antitijelu)
73
Imunološki algoritmi
• Jednostavan imunološki algoritamSIA(Ag, l, d, dup)
t = 0inicijaliziraj P(0) = {x1, x2, …, xd}evaluiraj(P(0), Ag)ponavljaj dok nije zaustavi(P(t))Pclo = kloniraj(P(t), dup)Phyp = hipermutiraj(Pclo)evaluiraj(Phyp, Ag)P(t+1) = odaberi(Phyp ∪ P(t), d)t = t+1
kraj ponavljanjakraj
74
Imunološki algoritmi
• Algoritam ClonAlgCLONALG(Ag, n, d, β)t = 0inicijaliziraj P(0) = {x1, x2, …, xd}ponavljaj dok nije zaustavi(P(t))evaluiraj(P(t), Ag)P(t) = odaberi(P(t), n)Pclo = kloniraj(P(t), β)Phyp = hipermutiraj(Pclo)evaluiraj(Phyp, Ag)P' = odaberi(Phyp, n)Pbirth = stvoriNove(d)P(t+1) = zamijeni(P', Pbirth)t = t+1
kraj ponavljanjaevaluiraj(P(t), Ag)
kraj
⎣ ⎦∑=
⋅=n
iC inN
1/)(β
fep ⋅−= ρ
75
Imunološki algoritmi
• Kod ClonAlg– Antitijelo se klonira proporcionalno
afinitetu– Operator hipermutacije djeluje obrnuto
proporcionalno afinitetu
76
Imunološki algoritmi
77
Zaključak
• Prirodom inspiriani algoritmi – danas vruće područje istraživanja!
• Po prvi puta pronađen način kako se uhvatiti u koštac s prethodno nerješivim problemima
• Svakih nekoliko godina novi algoritam (primjerice Bee Colony Optimization!)
78
Linkovi
• Video isječak o koloniji mravahttp://www.inquisitr.com/14238/holy-crap-billions-of-ants-in-one-colony/
• Djelovanje imunološkog sustavahttp://www.cartage.org.lb/en/themes/sciences/lifescience/generalbiology/Physiology/LymphaticSystem/Antibodymediated/Antibodymediated.htm
79
Linkovi
• Skriptalink…
• Implementacija svih algoritamahttp://java.zemris.fer.hr/nastava/ui/evoAlg.zip
80
Recommended