You are on page 1of 39

UMJETNA INTELIGENCIJA

GENETSKI ALGORITMI

Uvodna razmatranja
Genetski algoritam (GA) je raunalni model
zasnovan na oponaanju bioloke evolucije
koji slui za rjeavanje optimizacijskih
problema. Preciznije reeno, genetski
algoritam je recept koji kazuje to treba raditi
s genetskim materijalom kako bi se s
odreenom vjerojatnou nakon odreenog
vremena postiglo zadovoljavajue rjeenje
zadanog optimizacijskog problema. Genetski
materijal je skup svojstava koji opisuju neku
jedinku.

Genetski algoritam ne odreuje na koji nain


je genetski materijal pohranjen u radni
spremnik, niti kako treba manipulirati
genetskim materijalom, ve samo kae da se
genetski materijal treba razmjenjivati, sluajno
mijenjati, a bolje jedinke trebaju s veom
vjerojatnou preivljavati selekciju. . Kako e
se bolje jedinke selektirati za reprodukciju, te
kako e se i s kolikim vjerojatnostima obaviti
krianje i mutacija, odreuje se na temelju
iskustva i eksperimentalno, tj. heuristiki.
Stoga postoji velika sloboda u izradi genetskih
algoritama.

Podeavanjem (optimiranjem) parametara genetskog


algoritma mogu se postii zadovoljavajui rezultati.
Meutim, sm postupak podeavanja je dugotrajan
proces. Primjerice, postupak podeavanja samo tri
parametra genetskog algoritma traje je oko 100 sati,
unato tome to je jedan evolucijski proces trajao
svega nekoliko minuta. Nadalje, uporabe li se
genetski algoritmi za rjeavanje tekih optimizacijskih
problema s velikim brojem nepoznanica, postupak
optimiranja moe potrajati danima, a postupak
podeavanja parametara mjesecima i na danas
najbrim raunalima. Jedan od naina kako skratiti
trajanje postupka optimiranja jest paralelizacija
genetskih algoritama

Struktura genetskih algoritama


Genetski algoritam je heuristika metoda
sluajnog i usmjerenog pretraivanja
prostora rjeenja koja imitira prirodni
evolucijski proces.
Genetski algoritam slui za rjeavanje teih
optimizacijskih problema, za koje ne postoji
egzaktna matematika metoda rjeavanja ili
su NP-teki pa se za vei broj nepoznanica
ne mogu rijeiti u zadanom vremenu.

Posao koji obavlja genetski algoritam moe se


opisati jednom reenicom: nakon to se
generira poetna populacija, genetski
algoritam cikliki obavlja selekciju boljih jedinki
koje potom sudjeluju u reprodukciji, sve dok
nije zadovoljen uvjet zavretka evolucijskog
procesa
Genetski_algoritam(){
generiraj_poetnu_populaciju();
dok(nije_zadovoljen_uvjet_zavretka_evolucijskog
_procesa){
selektiraj_bolje_jedinke_za_reprodukciju();
reprodukcijom_generiraj_novu_populaciju();
}
}

Reprodukcija stvara nove jedinke uz pomo genetskih


operatora krianja i mutacije. Krianje prenosi svojstva
roditelja na djecu, a mutacija sluajno mijenja svojstva
jedinke. Genetski algoritam ne specificira kako se
krianjem prenose svojstva roditelja na djecu, kako se
sluajno mijenjaju svojstva jedinki, kako se selektiraju
bolje jedinke za reprodukciju, niti kako se generira
poetna populacija. Upravo je ta sloboda u odabiru
vrste krianja, mutacije, selekcije i inicijalizacije
oteavajua okolnost u procesu izgradnje genetskog
algoritma za rjeavanje specifinog optimizacijskog
problema. Naime, pokazalo se da ne postoji takav skup
genetskih operatora za koji bi GA, ako se primijeni za
rjeavanje proizvoljnog skupa optimizacijskih problema,
davao superiorne rezultate u odnosu na GA s nekim
drugim operatorima

Genetski algoritam obavlja genetske operatore


nad populacijom jedinki JiJ, gdje je J skup svih
moguih rjeenja. Primjerice, za binarni prikaz,
gdje se jedinke sastoje od b binarnih
znamenaka, kardinalni broj skupa J je broj svih
moguih rjeenja i iznosi #J=2b. Jedinke se
nazivaju jo i potencijalna rjeenja, jer genetski
algoritam manipulirajui genetskim materijalom
jedinki, postie rjeenje.
U raunalnom argonu, jedinka je nekakva
struktura podataka koja se sastoji od kromosoma
i vrijednosti funkcije cilja. Jedinka ili kromosom
se sastoji od gena koji opisuju svojstva jedinke.

Primjerice, za spomenuti binarni prikaz i za problem optimiranja

funkcije cilja realne varijable f (x ) , geni su binarne znamenke

s pomou kojih se odreuju vrijednosti xi vektora x


.

Populacija P={J1,J2,...,Ji,...,JN}JN se sastoji od N


jedinki. Poetna populacija se najee generira potpuno
sluajno, ali moe biti i uniformna (sve jedinke su jednake)
ili se moe sastojati od usaenih rjeenja dobivenih nekim
drugim optimizacijskim postupkom . Poetna populacija
P(0) se s vremenom (iz generaciju u generaciju) mijenja i u
trenutku (generaciji) t ima oznaku P(t). Obino je uvjet
zavretka evolucijskog procesa unaprijed zadan broj
iteracija I ili unaprijed zadano trajanje izvoenja Tuk, pa je
P(Tuk) skup rjeenja dobivenih optimiranjem koristei
genetski algoritam.

Selekcijom se odabiru bolje jedinke za


reprodukciju. Kvaliteta jedinki mjeri se s pomou
funkcije cilja f:JR. Neki postupci selekcije
zahtijevaju da funkcija cilja ne moe biti negativna, a
niti je poeljno da funkcija cilja poprima samo velike,
priblino jednake vrijednosti. Stoga se obino u
svakom koraku obavlja translacija funkcije cilja, tj. u
svakoj iteraciji oduzima se najmanja vrijednost
funkcije cilja u cijeloj populaciji. Rezultat je funkcija
dobrote d:JR+ koja se rauna prema izrazu:
d=f-fmin(t),
gdje je fmin(t) najmanja vrijednost funkcije cilja u generaciji t .
Jedinka Ji je bolja od jedinke Jk, ako je di>dk.

Genetski operatori: selekcija, krianje i mutacija u svakoj


iteraciji modificiraju populaciju P. Stoga se moe rei da
GA pretrauje prostor rjeenja mijenjajui populaciju u
svakoj iteraciji uz pomo nekakve sloene funkcije
g:JNJN. Mutacija i krianje pretrauju prostor
rjeenja, a selekcija koristi samo informaciju unutar
populacije, odnosno ne trai nova rjeenja, ve
favorizira bolje jedinke . Prostor rjeenja JN naziva
se jo i prostorom pretraivanja.
Jezgra genetskog algoritma je petlja koja se obavlja
sve dok nije zadovoljen uvjet zavretka evolucijskog
procesa. Tijelo te petlje ini selekcija i reprodukcija.
Kao to je ve spomenuto, nain na koji e se
obavljati genetski operatori nije tono odreen, jer
odabir genetskih operatora i prikaza ovisi o
zadanom optimizacijskom problemu

Dakle, s jedne strane je na raspolaganju


jednostavna jezgra genetskog algoritma, a s
druge je problem koji elimo rijeiti.
Treba jo odrediti: prikaz, mehanizme kontrole i
ispisa, funkciju cilja, nain inicijalizacije i
genetske operatore. Slijedi eksperimentalno
podeavanje parametara ili ugradnja mehanizma
za samopodeavanje parametara. Ukoliko je tako
dobiveni genetski algoritam prespor, rjeenje je
njegova paralelizacija, za koju jo dodatno treba
odrediti mehanizme sinkronizacije, komunikacije i
podesiti nove parametre. Opisani slojeviti pristup
izgradnji genetskih algoritama prikazan je na slici
1.

Kontrola
parametar
a (AGA)
Funkcija cilja

Ispis

Jezgra
genetskog
algoritma:
selekcija i
reprodukcija.

Inicijalizacija
PGA

Komunikacija

Sinkronizacija

Migracija

Inicijalizacija
GA
Krianje

Mutacija
Evaluacija

Slika 1. Slojevita struktura genetskog algoritma

Postupak izgradnje genetskog algoritma moe se u


grubo razloiti u sljedeih nekoliko koraka:
stvarni problem postaviti kao optimizacijski
problem (primjerice, problem rasporeda se svodi na
minimizaciju broja pogreaka u rasporedu);
odrediti prikaz i funkciju dobrote;
odrediti pojedine genetske operatore;
eksperimentalno podesiti parametre na
jednostavnijem problemu za koji je poznato
rjeenje;
eksperimentalno obaviti fino podeavanje
parametara na stvarnom problemu;
ukoliko postupak optimiranja stvarnog problema
traje predugo, odabrati najpogodniji paralelni model
GA i eksperimentalno podesiti dodatne parametre.

Svojstva genetskog algoritma, kao to su:


brzina konvergencije, vjerojatnost postizanja
globalnog optimuma i sl., ispituju se na
jednostavnim optimizacijskim problemima za
koje je rjeenje poznato. Na tim istim
jednostavnim optimizacijskim problemima se
obino jo obavlja i grubo podeavanje
parametara.

Podruja primjene genetskih algoritama su


raznolika. Genetski algoritmi se uspjeno
primjenjuju za rjeavanje mnogih optimizacijskih
problema kao to su problem rasporeda, problem
dizajna (filtera, mrea, sklopova, itd.), problem
kontrole (npr. plinovoda, izbjegavanje i navoenje
projektila), strojno uenje, podruje robotike (npr.
planiranje trajektorija i putova), razni kombinacijski
i numeriki problemi optimiranja, procesiranje
signala, itd.. Genetski algoritam u svojim
proizvodima koriste mnoga poduzea poput NEC,
Mitsubishi Electric i Fujitsu. Neki proizvodi koji se
temelje na GA su i patentirani.

Genetski algoritam se primjenjuje za rjeavanje


svih problema koji se mogu svesti na
optimizacijski problem, a za ije rjeavanje ne
postoji egzaktna metoda. Oni optimizacijski
problemi ije je rjeenje ili poznato ili je problem
mogue rijeiti nekom od poznatih metoda
optimiranja (linearno programiranje, metoda
najbreg spusta, Newton-Raphsonova metoda i
sl.) dobri su ispitni primjeri, tj. slue za ispitivanje
genetskih algoritama.
Obiljeja genetskih algoritama po kojima se
razlikuju od ostalih metoda optimiranja su:

postupak optimiranja je dugotrajan, tj. genetski


algoritam troi znatno vie procesorskog vremena
od drugih optimizacijskih metoda;
operatori djeluju nad populacijom rjeenja, a ne
nad jednim rjeenjem;
djeluju u domeni kodiranih rjeenja;
koriste stohastika, a ne deterministika naela;
informacija se prenosi iz generacije u
generaciju;
rezultat optimiranja je dobro (gotovo optimalno ili
optimalno) rjeenje, tj. GA ne pronalazi optimalno
rjeenje sa stopostotnom sigurnou;
jednostavni su za implementaciju;
pogodni za paralelno izvoenje;
robusni u pogledu dimenzije problema.

U literaturi postoji mnotvo primjera primjene


genetskih algoritama za rjeavanje cijelog
spektra optimizacijskih problema. Evo nekih
od tih primjera primjene gdje genetski
algoritam slui za:
optimiranje viedimenzijskih numerikih
funkcija,
rjeavanje kombinacijskih problema kao to
su:
1. problem trgovakog putnika,
2. problema podjele grafa, engleski: Traveling
Salesmen Problem, kratica: TSP

3. rjeavanje problema n kraljica na ahovskoj


ploi,
4. rjeavanje problema rasporeda, (primjerice
problem raspored poslova, engleski: Job-Shop
Scheduling Problem, kratica: JSSP, Mapping
Problem, kratica: MP
5. problema pakiranja:
1D (alokacija adresnog prostora, rezanje cijevi,
rasporeivanje reklama na TV, i sl.),
2D (problem krojenja, rasporeivanje elija u npr.
VLSI tehnologiji , rasporeivanje CMOS elija i sl.),
3D (PPPproblem pakiranja paketa, pakiranje
kamiona i sl.),

6. sintezu ili dizajn:


raunalnih mrea,
mrea antena za beine telefone,
optimalnih struktura (npr. mostova),
sustava za strojno uenje,
generatora ispitnih sekvenci ,
modeliranje, dizajniranje i kontrolu procesa,
elektronikih podlonih ploica,
VLSI sklopova,
kombinacijskih sklopova,
lijekova
oblika leteih tanjura,
distribuiranih sustava za rad u stvarnom
vremenu

7. optimiranje programskog koda ,


8. raspoznavanje uzoraka:
prepoznavanje lica prilikom kriminalistike
obrade (patentirano),
analizu uzoraka i slika (satelitske slike,
rendgenske slike),
analizu imunolokog sustava,
9. simuliranje:
simulaciju rada raznih biolokih mehanizama
(npr. imunolokog sustava, tj. za sintezu
antigena,
optimiranje sloenih simulacijskih sustava,
10.pojednostavljenje sloenih matematikih
izraza.

Sudei prema navedenom popisu primjene


genetskih
algoritama
i
prema
mnogobrojnim
dobrim
svojstvima
genetskog algoritma postavlja se pitanje:
U emu je problem, kada je genetski
algoritam toliko dobar?
Problem je u tome to je zadovoljavajui
genetski
algoritam
teko
izgraditi,
optimirati i analizirati.

Zadovoljavajui genetski algoritam je


takav genetski algoritam koji s
prihvatljivom vjerojatnou i u
razumnom vremenu pronalazi dovoljno
kvalitetna rjeenja.
Dovoljno kvalitetno rjeenje je, naravno,
optimum ili, u nekim sluajevima,
rjeenje blizu optimuma ili samo
poboljano ve postojee rjeenje.

Najvei problem genetskih algoritama je


njihova sporost u rjeavanju problema.
Najjednostavniji nain kako skratiti
trajanje optimiranja jest skraenje
vremena izvoenja pojedinih genetskih
operatora to je vie mogue.
Ako to ne pomogne, drugi nain
skraenja vremena izvoenja jest
paralelizacija algoritma.

Naini poboljanja djelotvornosti


genetskih algoritama
Djelotvornost genetskog algoritma se moe
poboljati na tri naina:
poveanjem vjerojatnosti postizanja dobrih
rjeenja,
poveanjem kvalitete dobivenih rjeenja i
skraenjem trajanja izvoenja.

Trajanje izvoenja se moe skratiti takoer na


tri naina:
poveanjem brzine konvergencije ime se
smanjuje broj iteracija,
smanjenjem trajanja izvoenja jedne iteracije i
paralelnim izvoenjem cijelog genetskog
algoritma ili samo pojedinih genetskih
operatora.
Navedeni ciljevi mogu se ostvariti
podeavanjem parametara, optimiranjem
izvornog teksta programa i paralelizacijom
genetskog algoritma (slika 2.).

POBOLJANJE DJELOTVORNOSTI GENETSKIH ALGORITAMA

CILJEVI

NAINI

poveanje vjerojatnosti postizanja


dobrih rjeenja
poveanje kvalitete dobivenih
rjeenja

podeavanje parametara

skraenje trajanja izvoenja


Programa

poveanje brzinu konvergencije


i smanjenje broj iteracija
skraenje trajanje izvoenja
jedne iteracije
paralelizacija

optimiranje izvornog
teksta programa
paralelno izvoenje

genetskih operacija

Slika 2. Ciljevi i naini poboljanja djelotvornosti genetskih algoritama

Poveanje vjerojatnosti postizanja dobrih


rjeenja, poveanje kvalitete rjeenja i
smanjenje broja iteracija moe se postii
podeavanjem parametara genetskog
algoritma. Podeavanje parametara je
dugotrajan posao, jer se obavlja iskljuivo
eksperimentalno. Mnogi autori se bave tom
problematikom, pa se u literaturi mogu
pronai neki skupovi parametara, koji su
podeeni za odreeni genetski algoritam
primijenjen za rjeavanje odreenog
optimizacijskog problema

POSTUPCI SELEKCIJE
Podjela
Genetski algoritmi koriste selekcijski
mehanizam za odabir jedinki koje e
sudjelovati u reprodukciji. Selekcijom se
omoguava prenoenje boljeg genetskog
materijala iz generacije u generaciju.
Zajedniko svojstvo svih vrsta selekcija je
vea vjerojatnost odabira boljih jedinki za
reprodukciju. Postupci selekcije se
meusobno razlikuju po nainu odabira
boljih jedinki.

Prema nainu prenoenja genetskog


materijala boljih jedinki u sljedeu iteraciju
postupci selekcije se dijele na (slika 3):
generacijske selekcije - selekcijom se
direktno biraju bolje jedinke iji e se
genetski materijal prenijeti u sljedeu
iteraciju i
eliminacijske selekcije - biraju se loe
jedinke za eliminaciju, a bolje jedinke preive
postupak selekcije.

PODJELA SELEKCIJA

GENERACIJSKE SELEKCIJE

1
2
3
4
5
6

1
2
5
4
1
2

ELIMINACIJSKE SELEKCIJE

1
2

Slika 3. Podjela postupaka selekcije prema nainu prenoenja genetskog materijala boljih
jedinki u novu iteraciju

Generacijskom selekcijom se odabiru bolje


jedinke koje e sudjelovati u reprodukciji.
Izmeu jedinki iz populacije iz prethodnog
koraka biraju se bolje jedinke i kopiraju u novu
populaciju. Ta nova populacija, koja sudjeluje u
reprodukciji, naziva se meupopulacijom . Na
taj nain se priprema nova generacija jedinki
za postupak reprodukcije. To je ujedno prvi
nedostatak generacijskih selekcija, jer se u
radnom spremniku odjednom nalaze dvije
populacije jedinki. Broj jedinki koje preive
selekciju je manji od veliine populacije.

Najee se ta razlika u broju preivjelih


jedinki i veliine populacije popunjava
duplikatima preivjelih jedinki. Pojava
duplikata u sljedeoj iteraciji je drugi
nedostatak generacijskih selekcija, jer
duplikati nikako ne doprinose kvaliteti
dobivenog rjeenja, ve samo usporavaju
evolucijski proces. Generacijska selekcija
postavlja granice meu generacijama. Svaka
jedinka egzistira tono samo jednu
generaciju. Izuzetak su jedino najbolje
jedinke koje ive due od jedne generacije i
to samo ako se primijeni elitizam.

Kod eliminacijskih selekcija bolje jedinke


preivljavaju mnoge iteracije pa stroge granice
izmeu generacija nema, kao to je to sluaj kod
generacijskih selekcija. Eliminacijska selekcija
brie M jedinki. Parametar M naziva se
mortalitetom ili generacijskim jazom. Izbrisane
jedinke bivaju nadomjetene jedinkama koje se
dobivaju
reprodukcijom.
Eliminacijskom
selekcijom se otklanjaju oba nedostatka
generacijske selekcije: nema dvije populacije u
istoj iteraciji i u postupku selekcije se ne stvaraju
duplikati. Na prvi pogled je uvoenje novog
parametra M nedostatak eliminacijske selekcije,
jer se svakim dodatnim

parametrom znaajno produava postupak


podeavanja algoritma.
Meutim, uvoenjem novog parametra,
nestaje parametar vjerojatnost krianja, jer
krianje treba obaviti tono onoliko puta koliko
je potrebno da se nadopuni populacija do
poetne veliine N. to je vea vjerojatnost
krianja, treba biti vei mortalitet i obrnuto.
Primjerice, ako se koristi uniformno krianje,
koje producira jednu novu jedinku, tada se
tono M puta treba ponoviti krianje kako bi se
nadopunila populacija, odnosno zamijenile
eliminirane jedinke.

Selekcijom se osigurava prenoenje boljeg genetskog materijala s veom


vjerojatnou u sljedeu iteraciju. Ovisno o metodi odabira boljih jedinki kod
generacijskih selekcija, odnosno loih jedinki kod eliminacijskih selekcija,
postupci selekcije se dijele na proporcionalne i rangirajue [CAN99b]. Vano
je napomenuti da je zajedniko obiljeje svim selekcijama vea vjerojatnost
preivljavanja bolje jedinke od bilo koje druge loije jedinke. Selekcije se
razlikuju prema nainu odreivanja vrijednosti vjerojatnosti selekcije
odreene jedinke. Proporcionalne selekcije odabiru jedinke s vjerojatnou
koja je proporcionalna dobroti jedinke, odnosno vjerojatnost selekcije ovisi o
kvocijentu dobrote jedinke i prosjene dobrote populacije. Broj jedinki s
odreenim svojstvom u sljedeoj iteraciji je proporcionalan kvocijentu
prosjene dobrote tih jedinki i prosjene dobrote populacije. Tako glasi dio
teorema sheme koji se odnosi na selekciju[1] [MIC94].
Rangirajue selekcije odabiru jedinke s vjerojatnou koja ovisi o poloaju
jedinke u poretku jedinki sortiranih po dobroti. Rangirajue selekcije se dijele
na sortirajue i turnirske selekcije. Sortirajue selekcije su: linearno
sortirajua selekcija, - selekcije i krnja selekcija. Turnirske selekcije se
dijele prema broju jedinki koje sudjeluju u turniru. Na slici Slika 4.2
prikazana je podjela selekcija na proporcionalne i rangirajue, te na njihove
podvrste.

Rangirajue selekcije odabiru jedinke s


vjerojatnou koja ovisi o poloaju jedinke u
poretku jedinki sortiranih po dobroti.
Rangirajue selekcije se dijele na sortirajue
i turnirske selekcije. Sortirajue selekcije su:
linearno sortirajua selekcija, - selekcije i
krnja selekcija. Turnirske selekcije se dijele
prema broju jedinki koje sudjeluju u turniru.
Na slici Slika 4.2 prikazana je podjela
selekcija na proporcionalne i rangirajue, te
na njihove podvrste.

VRSTE SELEKCIJA

PROPORCIONALNE SELEKCIJE

Jednostavna
proporcionalna
selekcija

Stohastika
univerzalna
selekcija

RANGIRAJUE SELEKCIJE

SORTIRAJUE
SELEKCIJE

SELEKCIJE
NAJBOLJIH

(,)
selekcija

(+)
selekcija

Linearno
sortirajua
selekcija

Krnja
selekcija

Slika 4.Vrste selekcija

TURNIRSKE
SELEKCIJE

k-turnirska
selekcija

Jednostavna
turnirska
selekcija

You might also like