neuralne mreže i genetski algoritmi - seminarski rad
description
Transcript of neuralne mreže i genetski algoritmi - seminarski rad
Naslov seminarskog rada :
Operatori kod genetskih algoritama za probleme s
kontinuiranim varijablama
SADRŽAJ1. UVOD.......................................................................................................................3
2. GENETSKI ALGORITMI.......................................................................................4
3. KRIŽANJE, MUTACIJA I SELEKCIJA.................................................................7
3.1. Križanje..............................................................................................................7
3.2 Mutacija.................................................................................................................8
3.3 Selekcija jedinki....................................................................................................9
4. KONTINUIRANE VARIJABLE..............................................................................10
5. OPERATORI ZA PROBLEME S KONTINUIRANIM VARIJABLAMA............11
5.1. Operatori križanja..............................................................................................11
5.1.1. Operator križanja s jednom točkom prekida................................................11
5.1.2. Operator križanja s dvije točke prekida.......................................................12
5.1.3. Nasumično križanje.....................................................................................13
5.2.Operatori mutacije...............................................................................................13
5.2.1. Nasumični operator mutacije.......................................................................13
5.2.2.Gaussov operator..........................................................................................14
5.3. Operatori selekcije..............................................................................................14
5.3.1.Selekcija kotača ruleta..................................................................................14
5.3.2. Selekcija kotačem ruleta sa linearnim skaliranjem......................................15
ZAKLJUČAK...............................................................................................................16
LITERATURA..............................................................................................................17
2
1. UVOD
1960. godine I. Rechenberg u svome djelu „Evolucijske strategije“ donosi ideju evolucijskog
računarstva. Ideja je prihvaćena od strane istraživača na području računalne znanosti, te se
počinje intenzivno proučavati. Genetski algoritmi su rezultat istraživanja John-a Holland-a, u
čemu su mu pomogli njegovi kolege i studenti. Kao algoritmi koji crpe ideju iz prirode,
pogodni su za pretraživanje velikog prostora mogućnosti za najoptimalnijim rješenjem, tj.
preživljavanjem najpogodnijih.
U današnjem svijetu genetski algoritmi imaju veliku važnost u raznim primjenama strategije
igara, optimiziranju, upita i podataka u bazama. Riješavaju probleme najkraćeg puta,
minimalnog raspona stabla. Koriste se u problemima dizajna i sigurnosti mreža, te
problemima planiranja i transportnog problema.
U prvom dijelu rada opisuje se pojam genetskog algoritma te upoznavanje pojmova križanja,
mutacije i selekcije, potom se približava pojam kontinuiranih varijabli tj. opisana je razlika
između kontinuirane i diskretne varijable, a zatim je u drugom sijelu rada opisan rad operatora
za probleme s kontinuiranim varijablama.
3
2. GENETSKI ALGORITMI
Kao što im sam naziv kaže, ovdje nije riječ o jednom genetskom algoritmu, nego o
grupi metoda koje slijede sličan koncept. Genetski algoritam predstavlja heurističku
metodu slučajnog i usmjerenog pretraživanja prostora rješenja koja imitira prirodni
evolucijski proces. Genetski algoritam služi za rješavanje proračunski teških
optimizacijskih problema za koje ne postoji egzaktna matematička metoda rješavanja,
ili su izvanredno kompleksni, pa se za veći broj nepoznanica ne mogu riješiti u
zadanom vremenu.
Princip rada genetskog algoritma može se opisati na sljedeći način: nakon što se
generira početna populacija, genetski algoritam ciklički obavlja selekciju boljih jedinki
koje potom sudjeluju u reprodukciji, sve dok nije zadovoljen uslov završetka
evolucijskog procesa. Reprodukcija stvara nove jedinke uz pomoć genetskih operatora
križanja i mutacije. Križanjem se neka svojstva prenose s roditelja na djecu, a
mutacijom se slučajno mijenjaju svojstva jedinke. Genetski algoritam ne specificira
kako se križanjem svojstva prenose s roditelja na djecu, kako se slučajno mijenjaju
svojstva jedinki, kako se vrši selekcija boljih jedinki za reprodukciju, niti kako se
generira početna populacija. Upravo je ta sloboda u odabiru vrste križanja, mutacije,
selekcije i inicijalizacije otežavajuća okolnost u procesu izgradnje genetskog algoritma
za rješavanje specificnog optimizacijskog problema. Naime, pokazalo se da ne postoji
takav skup genetskih operatora za koji bi genetski algoritam, ako se primjeni za
rješavanje proizvoljnog skupa optimizacijskih problema, dao superiorne rezultate u
odnosu na genetski algoritam s nekim drugim operatorom..
Slika 1. Križanje kromosoma
4
Svaka jedinka čini potencijalno rješenje problema koji se obrađuje, a to može biti
matematička funkcija, plan rada neke elektrane, raspodjela opterećenja na proizvodne
jedinice i slično. Svaka je jedinka predstavljena s jednakom strukturom podataka (broj,
niz, matrica, stablo, itd.). Te jedinke se nazivaju kromosomi. Svakom rješenju se
dodjeljuje odredena mjera kvalitete koja se u literaturi obicno naziva dobrota, dok se
funkcija koja tu kvalitetu odreduje naziva funkcija cilja ili funkcija dobrote. Nova
populacija formira se iz stare tako što se, po nekom postupku odabira, izdvajaju bolje
jedinke iz skupa postojećih. Neki članovi ove nove populacije podvrgnuti su
utjecajima genetskih operatora koji iz njih formiraju nove jedinke. Operatori se dijele
na unarne, koji stvaraju novu jedinku mijenjajuci manji dio genetskog materijala
(mutacijska grupa) i operatore višeg reda, koji kreiraju nove individue kombinirajuci
svojstva nekoliko jedinki (grupa križanja). Nakon nekog broja formiranih generacija
cijeli postupak se prekida kada se zadovolji zahtjev zaustavljanja, a najbolji član
trenutne populacije predstavlja rješenje koje bi trebalo biti sasvim blizu optimuma.
Opća struktura genetskog algoritma prikazana je na sljedećem primjeru:
Genetski_algoritam{
t=0;generiraj početnu populaciju potencijalnih rješenjaP(0);sve dok nije zadovoljen zahtjev završetka evolucijskog procesa{t=t+1;selektiraj P'(t) iz P(t-1);križaj jedinke iz P'(t) i djecu spremi u P(t);mutiraj jedinke iz P(t);}
ispiši rješenje;}
Prilikom inicijalizacije formira se početna populacija jedinki. Obično se početna
populacija generira slučajnim odabirom rješenja iz domene, mada je moguće početnu
populaciju generirati uniformno (sve jedinke su iste, pa u početku evolucijskog
procesa genetski algoritam nije efikasan i taj postupak se ne preporučuje) ili se u
5
početnu populaciju može uvesti početno rješenje dobiveno primjenom neke druge
optimizacijske metode. Slijedi proces koji se ponavlja sve dok ne istekne vrijeme, ili
dok ne bude zadovoljen neki uvjet (naprimjer, za 95 % jedinki ostvarena funkcija
dobrote odstupa od željene za manje od ɛ). Taj proces se sastoji od djelovanja
genetskih operatora selekcije, križanja i mutacije nad populacijom jedinki. Tokom
selekcije loše jedinke odumiru, a bolje preživljavaju, te se u sljedećem koraku, kroz
križanje, razmnožavaju. Križanjem se svojstva prenose s roditelja na djecu. Mutacijom
se mijenjaju svojstva jedinke slučajnom promjenom gena. Takvim postupkom se
postiže sve veća prosječna dobrota populacije u svakoj sljedećoj generaciji. Genetski
algoritam simulira prirodni evolucijski proces za koji se može ustanoviti sljedeće:
postoji populacija jedinki;
neke jedinke su bolje (bolje su prilagođene okolini);
bolje jedinke imaju veću vjerovatnost preživljavanja i reprodukcije;
svojstva jedinki su zapisana u kromosomima pomoću genetskog koda;
djeca nasljeduju svojstva roditelja;
nad jedinkom može djelovati mutacija.
6
3. KRIŽANJE, MUTACIJA I SELEKCIJA
Kako bi se osigurao napredak populacije potrebno je osmisliti načine stvaranja
novih jedinki. Cilj je osiguranje opstanka genetskog materijala boljih jedinki, tj. onih
koje posjeduju veći koeficijent dobrote i na taj način promovirati što više željenih
osobina. Promatrajući evoluciju živih bića nailazimo na nekoliko načina stvaranja
novog genetskog materijala: križanje, mutacija i reprodukcija. S obzirom na strukturu
prikaza jedinke promatrat ćemo tri slučaja: stablo, graf i linearan prikaz.
3.1. Križanje
Postupak križanja imitira biološku reprodukciju dviju jedinki (roditelji), prilikom čega
dolazi do zamjene jednog dijela roditeljskog gena onime drugoga. Novonastala jedinka
(dijete) posjeduje genetski kod obaju roditelja, te kombinaciju njihovih osobina.
Križanjem dviju jedinki koje posjeduju pozitivne osobine očekujemo dijete koje će
također posjedovati pozitivne osobine, tim više što je moguće nadomještanje mogućih
negativnih osobina nekog od roditelja genima onog drugog čije su osobine bolje na
nepovoljnom segmentu.
Križanje kod stablastog prikaza prikazujemo grafički slikom 2.1. Prilikom križanja
odabere se čvor ispod kojega se odvija križanje, te se kod djeteta zamjene roditeljska
pod stabla.
Slika 2.1. Stablasti prikaz križanja
7
Kod linearnog križanja potrebno je odrediti proizvoljan broj točaka prekida na
kojima se odvija zamjena segmenata roditeljskih gena. Grafički prikaz linearnog
križanja predočen je na slici 2.2. Broj točaka prekida je proizvoljan i može varirati
između jedne i broja gena u jedinki. Dodatno je moguće definirati i vjerojatnost
križanja u određenim točkama i na taj način poboljšati učinkovitost rada algoritma
ako su poznata mjesta grupiranja gena zaduženih za isto obilježje.
Slika 2.2. Linearni prikaz križanja
Prilikom križanja roditelja opisanih strukturom grafa koristi se slijedeći algoritam:
Podijeli svaki od grafova u skupove od po dva čvora
Dodijeliti ime svim bridovima „unutarnji“ ukoliko povezuju čvorove unutar
fragmenta, inače „vanjski“
Dodijeliti ime svakom čvoru unutar fragmenta „izlaz“ ukoliko je izvor
„vanjskom“ bridu, a „ulaz“ ukoliko je odredište vanjskom bridu
Zamijeniti fragmente roditelja
Rasporediti bridove tako da svi vanjski bridovi fragmenta koji sada pripadaju
zajedno pokazuju na nasumično odabrane ulazne čvorove drugih fragmenata
3.2 Mutacija
Mutacija je trajna promjena genetskog materijala, najčešće uzrokovana vanjskim
čimbenicima. Smatraju se jednim od preduvjeta evolucije jer se procesom prirodnog
odabira u populaciji nakupljaju mutacije koje omogućuju bolju prilagodbu uvjetima
8
okoliša i time poboljšavaju vjerojatnost preživljavanja jedinke koja ih nosi te prijenose
na sljedeće generacije.
Mutacija se odvija nad pojedinom jedinkom, obično nakon postupka križanja svako
dijete prolazi kroz proces mutacije s proizvoljnim parametrom (najčešće malim)
vjerojatnosti. Ukoliko je jedinka odabrana za mutaciju bira se proizvoljan dio
genetskog koda jedinke koji će biti zamijenjen nasumičnim nizom (ili drugom
strukturom u ovisnosti o prikazu jedinke).
3.3 Selekcija jedinki
Selekcija je posljedica generacije velikog broja jedinki. Kako nije moguće sve jedinke
očuvati u populaciji mora se odrediti način odabira jedinki koje će opstati, te onih koje
ćemo ukloniti, tj. koje će uginuti. Iako je cilj da populacija sadrži samo jedinke
pozitivnih svojstava, prerana konvergencija kao posljedica selekcije samo najboljih
jedinki odražava se negativno na uspješnost algoritma. Postoji nekoliko različitih vrsta
selekcija koje pokušavaju riješiti taj problem. Neke od popularnijih tehnika selekcije
su jednostavna, turnirska, eliminacijska i elitizam.
9
4. KONTINUIRANE VARIJABLE
Varijabla je termin koji se koristi za opisivanje nečega što se može mjeriti, a također
može varirati. Suprotno od varijable je konstanta. Konstanta je veličina koja se ne
mijenja u određenom kontekstu. U znanstvenim eksperimentima, varijable se koriste
da bi seodređeni podaci grupirali. Varijable se mogu diejliti na diskretne i
kontinuirane varijabla.
Općenito, varijable su obilježje skupine objekata ili događaja koji se mogu mjeriti sa
različitim numeričkih vrijednostima. Diskretne varijable mogu imati samo određeni
broj različitih vrijednosti između dvije točke. Na primjer, u obitelji može biti jedno,
dvoje ili troje djece, ali ne može biti kontinuirana skala od 1,1, 1,5, ili 1,75 djece.
Kontinuirane varijable mogu imati neograničen broj različitih vrijednosti između dviju
točaka. Kao što je navedeno, ne može postojati kontinuirana skala djece u obitelji.
Ako se pak mjeri visina, varijable mogu biti kontinuirane zato što što postoji
neograničen broj mogućnosti, čak i ako se gleda samo između 1 i 1,1 metra.
Važno je upamtiti da su diskretne i kontinuirane varijable grupirane na temelju skale
koja se koristi za mjerenje ih i na temelju onoga što se mjeri. U većini znanstvenih
eksperimenata, diskretni skala se koristi za mjerenje obje, diskretne i kontinuirane
varijable. Budući da postoji beskonačano mogućnosti, mjerenja kontinuiranih varijabli
često se zaokružuju kako bi bilo lakše raditi s podacima. [1]
Izbor načina prikaza varijabli objektivnih funkcija ima bitan utjecaj na to koji će se
operatori primjeniti na jedinke populacije. U analogiji s biologijom vrijednosti
varijable nazivaju se fenotipi a njihov (unutarnji) prikaz genotip. U toj analogiji
vrijednost objektivne funkcije određuje sposobnost jedinke.
Prvi razvijeni algoritmi predtsavljali su jedinke kao vektore diskretnih vrijednosti
inspirirani DNA prikazima. Kasnije, kad se pojavila potreba za stavrnim vrijednostima
varijabli, one su aproksimirane dodjeljivanjem prave vrijednosti vektoru i skaliranjem
na odgovarajući način do željenog intervala.
10
5. OPERATORI ZA PROBLEME S KONTINUIRANIM VARIJABLAMA
5.1. Operatori križanja
5.1.1. Operator križanja s jednom točkom prekida
Operator križanja s jednom točkom prekida (one point crossover) je najjednostavniji
operator . Primjenjuje se na kromosomima prikazanim na indirektan način, jer postoji
mogućnost stvaranja neispravnog potomka. Prilikom rada s operatorom križanja s
jednom točkom prekida važno je odabrati mjesto prekida. Mjesto odaberemo
nasumično između bilo koja dva gena u jednom kromosomu. U primjeru je prikazano
križanje između 2. i 3. gena na slici 3.1.
PRIMJER:
Roditelj 1
Roditelj 2
Slika 3.1. Prekid između 2. i 3. Gena
Ovim postupkom križanja potomci preuzimaju gene jednog roditelja do prekida, a
nakon prekida preuzimaju gene drugog roditelja.
Potomak 1
Potomak 2
Slika 3.2. Potomci nastali primjenom operatora s jednom točkom prekida
Na slici 3.3. prikazan je bitovni prikaz rješenja za operator križanja u jednoj točki. On
radi tako da se za bitovni niz duljine n slučajnim odabirom izabere cijeli broj iz
intervala [0, n-1] i potom od tog mjesta nadalje zamijene svi bitovi roditelja.[2]
11
4 4 5 1 2 1 2 5 5
2 3 2 5 2 1 3 5 5
4 4 2 5 2 1 3 5 5
2 3 5 1 2 1 2 5 5
Slika 3.3. Bitovni prikaz rješenja za operator križanja u jednoj točki
5.1.2. Operator križanja s dvije točke prekida
Kod operatora križanja s dvije točke prekida situacija je ista kao i kod jedne točke
prekida,samo što ovdje imamo dva prekida. Potomci nasljeđuju gene prvog roditelja
do prve točke prekida,zatim nasljeđuju gene drugog do druge točke prekida,postupak
je isti. U primjeru je prikazano križanje na između 2. i 3. gena, te 5. i 6. gena na slici
4.1.
PRIMJER:
Roditelj 1
Roditelj 2
Slika 4.1. Prekid između 2. i 3. gena
Ovim postupkom križanja potomci preuzimaju gene jednog roditelja do prekida, a
nakon prekida preuzimaju gene drugog roditelja.
Potomak 1
Potomak 2
Slika 4.2. Potomci nastali primjenom operatora s dvije točke prekida
12
4 4 5 1 2 1 2 5 5
2 3 2 5 2 1 3 5 5
4 4 2 5 2 1 2 5 5
2 3 5 1 2 1 3 5 5
Na slici 4.3. prikazan je bitovni prikaz rješenja za operator križanj u dvije točke. On
radi tako da se za bitovni niz duljine n slučajnim odabirom izaberu prijelomna mjesta
te se bitovni niz dijeli na više podnizova, a djeca nastaju tako da se izmjenjuju
podnizovi oba roditelja.
Slika 4.3. Bitovni prikaz rješenja za operator križanja u dvije točke
5.1.3. Nasumično križanje Operator nasumičnog križanja uzima dva vektora kao ulaz i dobiva dva vektora iste
duljine kao izlaz. Svaka komponenta prvog rezultatnog vektora je slučajno odabrana
iz komponenti ulaznih vektora. Drugi rezultatni vektor sastoji se od ostalih
komponenti koje nisu izabrane za prvi dobiveni vektor. U malo drugačijoj definiciji,
rezultat je samo jedan vektor dvaju vektora u prethodnoj definiciji.
5.2.Operatori mutacije
5.2.1. Nasumični operator mutacije
Neka je x iz intervala [a,b] realna varijabla. Nasumični operator mutacije mijenja
x u gdje označava ravnomjernu distribucija na
intervalu. Tako je nova vrijednost neovisna od svoje prethodne vrijednosti. Primjenjuje
se s vjerojatnošću od nekoliko postotaka.
13
5.2.2.Gaussov operator
Gaussov operator je operator mutacije koji dodaje Gaussovu jedinicu te distribuira
slučajnu vrijednost odabranom genu. Nova vrijednost gena će biti odrezana ako izađe
izvan korisnički određene donje ili gornje granice za taj gen. Taj operater mutacije
može koristiti samo za cjelobrojne i pomične gene.
5.3. Operatori selekcije
5.3.1. Selekcija kotačem ruleta
Selekcija kotačem ruleta je tradicionalna metoda selekcije predložena u Hollandovom
izvornom radu o genetskim algoritmima: očekivana vrijednost (očekivani broj puta da
bude obabrana) jedinke je proporcionalna svojoj dobroti. Ova metoda može se provesti
pomoću ruleta na sljedeći način. Svakoj jedinki je dodijeljen komad kružnog ruleta, s
veličinom komada proporcionalnoj dobroti jedinke. Kotač se tada okreće N (veličina
populacije) puta. Nakon svakog okretaja, jedinkana koju pokazuje strelica kotača je
odabrana.
Slika 5. Prikaz odabira kotačem ruleta
14
5.3.2. Selekcija kotačem ruleta sa linearnim skaliranjem.
Ovaj efekt se može izbjeći ako se ne koriste vrijednosti objektivne funkcije izravno,
nego neizravno sortirajući populaciju prema objektivnim funkcijama. Ako je n broj
jedinki, tada je najboljoj jedinki dodijeljena vrijednost dobrote , a
najgoroj jedinki vrijednost , dok sve ostale jedinke primaju
vrijednosti linearno između najbolje i najgore vrijednosti.[3]
15
ZAKLJUČAK
U ovom radu sam pisala o genetskim algoritmima i operatorima genetskih algoritama
za probleme s kontinuiranim varijablama. Prvo sam opisala što je to genetski algoritam
i na koji način funkcionira te što su operacije križanja, mutacije i selekcije. Zatim
sam opisala kontinuirane varijable i napravila usporedbu kontinuiranih i diskretnih
varijabli da se pobliže može približiti pojam problema s kontinuiranim varijablama. U
drugom dijelu sam pobliže opisala operatore koji se koriste u tim situacijama.
Istraživanjem za ovaj rad i pisanjem istoga sam dobila širi uvid u genetske algoritme,
čemu služe i kako rade i također se pobliže upoznala s operatorima koji se koriste pri
operacijama stvaranja novih jedinki, tj pri križanju, mutaciji i selekciji.
16
LITERATURA
[1] www.wisegeek.com
[2] www.zemris.fer.hr
[3 ]www.iue.tuwien.ac.at/phd/heitzinger/node25.html
Evolutionary Computation 1, Basic algorithms and operators; edition 2000 ; T. Back,
D.B. Fogel and Z. Michlewcz
www.nd.com/products/genetic/mutation.htm
www.obitko.com/tutorials/genetic-algorithms/operators.php
http://lipas.uwasa.fi/cs/publications/2NWGA/node117.html
17