ga primjer
DESCRIPTION
sssfday6yTRANSCRIPT
Genetski algoritmi primjer:
Bit će razrađen problem sa vježbi:
Minimizirati
1 ,
0,2
Preciznost:2decimale
Trenutačna populacija: 0.15,0.45,0.65,1.25,1.9
Ograničenjem na preciznost, originalni kontinuirani optimizacijski problem je diskretiziran. Bit će pokazano kako reprezentirati stanja u, najčešće korištenom, binarnom alfabetu, kako izračunati fitness vrijednosti te kako teče jedna iteracija za 3 različita tipa GA.
Reprezentacija stanja
Minimalni broj stanja za željenu preciznost:
gg dg 10 1=201
Potreban broj bitova za reprezentaciju stanja:
log gg dg 10
1
log 2 0 10
1
7.65
Odabir je n=8, minimalni broj bitovalog2
koji zadovoljava gornju nejednakost.log2
Tada raspolažemo sa
2 stanja
kojima interval [0,2] želimo podijeliti uniformno na
dijelova, veličine
2
1
0.0078
1...11
1...10
1...01
0...00
dg dg i dg 2i dg 2 2 i gg
Sl. 1.: preslikavanje intervala [dg, gg] na prostor stanja.
Fitness
Važno je prisjetiti se da je fitness preslikavanje na
te da bolja (mora biti definirana
“lošije”, za svaki par stanja) rješenja moraju imati
usporedivost stanja po parovima u smislu “bolje” I0,
∞
pridružen veći fitness. Budući da se ovdje radi o minimizacijskom problemu, smisleno je jedinki koja
rezultira manjom vrijednošću funkcije pridružiti veći fitness. Odabir
prirodan je i jednostavan
te zadovoljava taj uvjet, gdje je K odabran tako da osigurava nenegativnost
preslikavanja.
K
U posljednja dva stupca Tab. 1 prikazan je postupak računanja fitness funkcije za zadanu populaciju.
Reprezentacija jedinki
Fitness
max
0.15
19
ound
0.0078
00010011
0.7225
0.0875
0.45
58
00111010
0.3025
0.5075
0.65
83
01010011
0.1225
0.6875
1.25
160
10100000
0.0625
0.7475
1.90
244
11110100
0.8100
0.0000
Tab. 1.: prikaz reprezentacijejedinki i izračuna fitness funkcije
max
0.81
Roulette Wheel Selection varijanta
Vjerojatnost izvlačenja pojedine jedinke dobiva se normalizacijom (množenjem sa konstantom) fitnessa te jedinke tako da suma normaliziranih fitnessa svih jedinki bude jednaka 1, kako je prikazano u Tab. 2.
Bazen nad kojim će djelovati genetski operatori formira se izvlačenjem sa vraćanjem jedinke iz prethodne populacije prema izračunatim vjerojatnostima VEL_POP puta, gdje je sa VEL_POP označena veličina populacije.
Nakon selekcije, nad bazenom slijedi primjena genetskih operatora, čime iteracija završava. (Napomena: svaka iteracija kreće sa praznim bazenom).
0.0431034
0.0875
0.2500000
0.5075
0.3386700
0.6875
0.3682270
0.0000000
0.7475
0.0000
0.0875
0.5075
0000
Tab. 2.:vjerojatnosti odabira po jedinkama za Roulette Wheel Selection
0.6875
0.7475 0.
Može se primjetiti da je posljedica odabira konkretne fitness funkcije iz Tab. 1 nulta vjerojatnost
izvlačenja jedinke
; za neku alternativnu fitness funkciju
, to
nije slučaj. Uz to,
sa povećanjem
raspodjela vjerojatnosti izvlačenja postaje bliža uniformnoj, što će se
11110100
max
,
0
odraziti na ponašanje i rezultat GA.
Varijanta sa kturnirskom eliminacijskom selekcijom
U svakoj iteraciji genetskog algoritma ovog tipa, iz populacije se slučajno uniformno izvuče k jedinki. Zatim se najlošija od njih eliminira i zamijeni novom, dobivenom nekom varijantom uporabe genetskih operatora nad preostalim izvučenim jedinkama.
Kvalitativno, selekcijski pritisak raste sa povećanjem k.
Neka je k=3 i neka je u našem primjeru nasumično izvlačenje turnira palo na jedinke koje odgovaraju vrijednostima 0.15,0.45,0.65 , 00010011,00111010,01010011 . Budući da jedinka 00010011 ima najmanji fitness, algoritam će je zamijeniti novom jedinkom dobivenom djelovanjem genetskih operatora nad preostale dvije.
Neka je genetski operator križanje sa jednom točkom prekida 4 5. Tada će jedinku ‐ 00010011 algoritam zamijeniti jednim od križanjem dobivene djece, iz Tab. 3.
Roditelj 1:
0011|1010
Roditelj 2:
Dijete 1:0011|0011
0101|0011
Dijete 2:
0101|1010
Tab. 3.: križanje uz primjer k turnirske eliminacijske selekcije‐
Varijanta sa kturnirskom generacijskom selekcijom
Jedna iteracija GA ovog tipa sastoji se od turnirskog formiranja bazena jedinki i, nakon što bazen bude formiran, primjene genetskih operatora nad bazenom.Za formiranje bazena koristi se višekratno ponavljanje turnira. Jedan turnir je slučajno uniformno izvlačenje k jedinki iz populacije, od kojih se izabire najbolja, koja se prenosi u bazen. (Napomena: svaka iteracija kreće sa praznim bazenom).
Kvalitativno, uspoređujući varijante turnirske generacijske selekcije u kojima se koristi izvlačenje bez vraćanja i izvlačenje sa vraćanjem, selekcijski pritisak je veći kod izvlačenja sa vraćanjem.
Neka je k=3 i neka je u našem primjeru nasumični odabir turnira pao na jedinke koje odgovaraju vrijednostima 0.15,0.45,0.65 , 00010011,00111010,01010011 . U bazen ulazi po fitnessu najbolja od tih jedinki, 01010011. Daljnje jedinke ulaze na isti način.
Neka je genetski operator samo jednostavna mutacija, koja neovisno svaki alel invertira uz određenu (malu) vjerojatnost. Nad tom odabranom jedinkom , moguć rezultat (i jedan od vjerojatnijih) prikazan je u Tab. 4.
Polazna jedinka
Jedinka nakon mutacije01110011
01010011
Tab.4.: mutacija na trećem alelu jedinke 01010011.
Komentare i eventualne ispravke molim na [email protected].
11. listopad 2011.