24
Naslov seminarskog rada : Operatori kod genetskih algoritama za probleme s kontinuiranim varijablama

neuralne mreže i genetski algoritmi - seminarski rad

  • Upload
    enyca2

  • View
    44

  • Download
    3

Embed Size (px)

DESCRIPTION

neuralne mreže, genetski algoritmi, operatori

Citation preview

Page 1: neuralne mreže i genetski algoritmi - seminarski rad

Naslov seminarskog rada :

Operatori kod genetskih algoritama za probleme s

kontinuiranim varijablama

Page 2: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 3: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 4: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 5: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 6: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 7: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 8: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 9: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 10: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 11: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 12: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 13: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 14: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 15: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 16: neuralne mreže i genetski algoritmi - seminarski rad

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

Page 17: neuralne mreže i genetski algoritmi - seminarski rad

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