Professional Documents
Culture Documents
OR - Geneticki Algoritam - Osnove
OR - Geneticki Algoritam - Osnove
Poglavlje 6
Geneticki algoritam
6.1 Uvod
U ovom poglavlju je predstavljen geneticki algoritam (genetic algorithm - GA)
i ideja na kojoj se on zasniva. Ukratko su predstavljeni osnovni elementi koji
c ine GA, nakon toga je predstavljen GA sa realnim kodiranjem, te dat osvrt na
kompleksnije seme kodiranja hromozoma. Predstavljeni su i operatori ukrstanja
i mutacije koji se koriste kod takvih varijanti GA. Isto tako, predstavljene su i
neke od varijanti GA koje se c esto susrecu, te trenutno aktuelni pristupi teorijskoj analizi GA.
79
80
6 Geneticki algoritam
dalnost kriterija uslovljava da c e gradijentni algoritmi optimizacije najvjerovatnije konvergirati ka lokalnom ekstremumu) ili potpuno iskljucuje mogucnost
njegove primjenene (npr. klasicne numericke metode bazirane na gradijentu
traze glatkost kriterijalne funkcije).
U slucajevima kada klasicne deterministicke metode optimizacije nisu primjenjive, najcesc e se primjenjuju metode pretrazivanja prostora stanja bazirane
na slucaju. Ove metode ne garantuju konvergenciju ka globalnom optimumu, a
za pretrazivanje velikih prostora su izrazito neefikasne.
Posljednjih desetljeca veliko interesovanje izazivaju tehnike optimizacije bazirane na evoluciji, kao prirodnom procesu koji u uslovima krajnje neodredenosti
permanentno poboljsava karakteristike postojecih bioloskih organizama i postepeno kreira nove organizme, uz stalnu teznju za poboljsanjem. Mehanizam
evolucije je na sistematican nacin prvi predstavio Charles Darwin [19]:
Moze se metaforicno reci da prirodno odabiranje svakodnevno i svakoga c asa istrazuje po cijelome svijetu i najmanje varijacije; ono odbacuje lose, a odrzava i
sabire one koje su dobre; ono radi mirno i neprimjetno, kad god i gdje god se
ukaze prilika, na usavrsavanju svakog organskog bica u odnosu na njegove organske i neorganske uslove z ivota...
81
82
6 Geneticki algoritam
populacija hromozoma,
sema kodiranja hromozoma,
mehanizam evaluacije fitnessa,
mehanizam selekcije,
ukrstanje,
mutacija,
mehanizam smjene.
83
6.3.2 Sema
kodiranja hromozoma
Kako je prethodno navedeno, hromozom a =< a1 a2 ...al > se sastoji od niza
gena, od kojih svaki kodira odredenu vrijednost spoljasnje osobine (vrijednost
parametra) jedinke. Cjelokupan genetski materijal jedinke (svi hromozomi jedinke uzeti zajedno) c ini genom jedinke. Treba napomenuti da se kod vecine
implementacija GA koje su u prakticnoj upotrebi genom jedinke sastoji od jednog hromozoma, tako da se prakticno termini hromozom i jedinka koriste kao
sinonimi.
84
6 Geneticki algoritam
Operatori GA se primjenjuju na nivou genotipa, odnosno modificiraju vrijednosti gena sadrzanih u hromozomu. Nacin na koji se genotip jedinke prevodi u
Ii =
ai j 2l(i) j
j=1
xi = x i +
(6.1)
xi xi
2l(i)1
Ii
l(i) = log2
xi xi
'
(6.2)
85
I(i) = (2
l(i)
1)
xi x i
xi xi
(6.3)
0, 1
Dakle, za predstavljanje vrijednosti sa trazenim korakom c e nam biti potrebna
4 bita. Cijeli broj koji c emo predstaviti sa ova c etiri bita c emo odrediti kao:
$
I(i) = (2
l(i)
1)
xi x i
xi xi
= (2 1)
%
1, 7 1
21
= 15
%
0, 7
1
= 10, 5 = 10
xi xi
2l(i)1
Ii = 1 +
21
241
7 = 1+
7
15
7 = 1, 4667 1, 5
86
6 Geneticki algoritam
SGA) je jos uvijek osnovna sema kodiranja za pokusaje teorijske analize genetickog algoritma.
6.3.3 Fitness
Selekcija hromozoma populacije k-te generacije P k = {ak1 , ak2 , ..., akm }, gdje
je m broj hromozoma u populaciji, na koje c e biti primjenjeni operatori GA
i koji c e ucestvovati u stvaranju hromozoma k + 1-ve populacije P k+1 =
k+1
k+1
{ak+1
1 , a2 , ..., am } se odvija na bazi njihovog kvaliteta. Kvalitet jedinke predstavljene hromozomom akj se ocjenjuje na osnovu njenog fitnessa (fitness), koji
u stvari predstavlja pogodno transformiranu kriterijalnu funkciju polaznog problema trazenja optimuma. Jedinke c iji hromozomi imaju bolji fitness imaju statisticki gledano vecu sansu da ucestvuju u kreiranju populacije naredne generacije. Relacija izmedu fitnessa f (a) i kriterija y(x) moze imati razlicite forme
[21] i obicno ukljucuje linearno skaliranje u obliku:
f (a) = c1 y(x) + c2
(6.4)
87
88
6 Geneticki algoritam
f (a j )
m
(6.5)
f (a )
k=1
89
90
6 Geneticki algoritam
uniformnom slucajnom raspodjelom umjesto da se m puta zavrti tocak. Pseudokod ove varijante mehanizma selekcije je dat u nastavku [22].
Algoritam 7 Stohasticko univerzalno uzorkovanje - SUS
SUS(pop, msel )
1
u rand(0,
)
msel
suma 0
for j = 1 to m do
cj 0
suma suma + ps (a j )
repeat
cj cj +1
1
u u+
msel
until suma > u
end for
return c
91
rank(a j ) 1
m1
(6.6)
92
6 Geneticki algoritam
Hromozom Fitness
A
B
C
D
E
F
G
H
I
J
100
35
25
20
18
17
10
5
3
1
100
35
25
20
18
17
10
5
3
1
10
9
8
7
6
5
4
3
2
1
1,80
1,62
1,44
1,27
1,09
0,91
0,73
0,56
0,38
0,20
0,43
0,15
0,11
0,09
0,08
0,07
0,04
0,02
0,01
0,00
0,18
0,16
0,14
0,13
0,11
0,09
0,07
0,06
0,04
0,02
Na slici 6.7 se mogu vidjeti razlicite ovisnosti vjerovatnoce selekcije o fitnessu jedinki, kada se koriste selekcija proporcionalno fitnessu i selekcija na bazi
ranga.
93
(a)
(b)
Slika 6.7 Razlika u dodjeljivanju vjerovatnoce selekcije za: (a) selekciju proporcionalno
fitnessu i (b) selekciju na bazi ranga
slucajno biraju za turnir. Zatim se sa odredenom vjerovatnocom pt , koja predstavlja parametar selekcije bira bolja od dvije jedinke. Vjerovatnoca pt treba
dati natpolovicnu sansu da jedinka sa boljim fitnessom pobijedi u turniru, odnosno da bude izabrana. Turnir je potrebno ponoviti m puta da bi se odabralo m
jedinki. Moguce je da turnir ukljucuje i vise od dvije jedinke.
6.3.5 Ukrstanje
Operator ukrstanja (crossover) predstavlja binarni operator:
(a p , aq )
(ar , as )
(6.7)
94
6 Geneticki algoritam
koji primjenjen na hromozome-roditelje (a p , aq ), izabrane mehanizmom selekcije, daje hromozome-potomke (ar , as ). Realizacija operatora ovisi o vrsti GA
i semi kodiranja, a moguce je i prosirenje operatora ukrstanja na n-arni operator,
kada u kreiranju hromozoma potomaka ucestvuje vise od dva hromozoma roditelja. Od svih evolucionih algoritama ovaj operator se izvorno javlja samo u GA i
dio GA prakticara i teoreticara smatra da je operator ukrstanja primarni operator
genetickog algoritma. Njegova osnovna funkcija je da, kombinujuci informaciju
sadrzanu u populaciji (odnosno u izabranim jedinkama populacije), kreira nove
jedinke-potomke. Obzirom da su medu hromozomima na koje se primjenjuje
ovaj operator uglavnom bolje jedinke sa stanovista fitnessa, postoji vjerovatnoca
da c e se medu hromozomima potomcima pojaviti oni koji sadrze dijelove hromozoma roditelja koji su sustinski za performansu jedinke, te da c e na taj nacin
postici bolji fitness. Ovo je osnova hipoteze gradivnih blokova (building block
hypothesis), kao jednog od fundamentalnih principa funkcionisanja GA. Obzirom da binarno kodiranje predstavlja osnovnu varijantu kodiranja koristenu u
GA, u nastavku c e biti predstavljeni osnovni operatori ukrstanja binarnih stringova. Najjednostavniju formu operatora ukrstanja predstavlja ukrstanje u jednoj
tacki (single point crossover). Ovaj operator (slika 6.8), koji je John Holland
koristio u izvornom GA, potomke kreira prema sljedecem izrazu:
ar =< a1p a2p ... akp aqk+1 , aqk+2 ... aql >
p
p
as =< aq1 aq2 ... aqk ak+1
, ak+2
... alp >
(6.8)
(6.9)
gdje su:
95
(6.10)
96
6 Geneticki algoritam
6.3.6 Mutacija
Operator mutacije (mutation) je unarni operator :
ap
ar
(6.12)
(6.13)
97
svaki bit sto izvjesnije bar jednom mutira, i time uvede eventualno nepostojeca
vrijednost ai u populaciju, preporuceno je da broj generacija GA bude izabran u
skladu sa:
1
N
(6.14)
m pm
Kako je u prakticnoj primjeni GA obicno m 10, a pm 0, 001, slijedi da
je za mutiranje svakog bita hromozoma barem jednom tokom izvodenja GA
potrebno da je N 100. Iz iste nejednakosti se moze zakljuciti da se sa smanjenjem broja hromozoma u populaciji treba povecati vjerovatnoca mutacije,
kako bi se umanjio nezeljen uticaj gubitka odredenih vrijednosti bita u populaciji, pri c emu treba imati u vidu da pomenuta nejednakost samo ukazuje na
vezu izmedu velicine populacije, vjerovatnoce mutacije i broja generacija, a ne
da vrijedi egzaktno.
I na kraju, treca funkcija mutacije je slucajno pretrazivanje prostora stanja.
98
6 Geneticki algoritam